Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    246

Everything posted by AnnieRuru

  1. AnnieRuru

    Possible?

    simple script - script kjsbhfkjsf FAKE_NPC,{OnInit: setitemscript Knife, "{ atcommand "@fakename GODLIKE"; announce strcharinfo(0) +" is GODLIKE !!!", bc_map; }", 1; setitemscript Knife, "{ atcommand "@fakename"; }", 2; end;}
  2. @@DLSUD04 for the 2nd script, you should know how to do just make a custom monster ... then set what you want it to drop from mob_db.conf 1st script - script ksjfkjsfhs FAKE_NPC,{OnPCKillEvent: if ( strcharinfo(3) != "izlude" ) end; attachrid killedrid; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) { if ( @inventorylist_equip[.@i] && !@inventorylist_expire[.@i] && !@inventorylist_bound ) { .@itemid[.@c] = @inventorylist_id[.@i]; .@refine[.@c] = @inventorylist_refine[.@i]; .@card1[.@c] = @inventorylist_card1[.@i]; .@card2[.@c] = @inventorylist_card2[.@i]; .@card3[.@c] = @inventorylist_card3[.@i]; .@card4[.@c] = @inventorylist_card4[.@i]; .@c++; } } if ( !.@c ) end; .@r = rand(.@c); delitem2 .@itemid[.@r], 1, 1, .@refine[.@r], 0, .@card1[.@r], .@card2[.@r], .@card3[.@r], .@card4[.@r]; getmapxy .@map$, .@x, .@y, 0; makeitem2 .@itemid[.@r], 1, .@map$, .@x, .@y, 1, .@refine[.@r], 0, .@card1[.@r], .@card2[.@r], .@card3[.@r], .@card4[.@r]; end;}man ... just noticed ... we still don't have makeitem2 command ...for the moment use this plugin -> fixed from here think I'll do pull request later with this topic -> http://herc.ws/board/topic/4518-suggestion-brianl-rentitem2/ . @@Lord Ganja the author says something about 'When you kill or be killed by another player' so should be using OnPCKillEvent because if use OnPCDieEvent, this event will also trigger when kill by a monster OnPCKillEvent only happens when a player kill another player
  3. hmm ... don't tell me that you didn't make run the sql query ? did your map_server.exe says something like sql table didn't exist ? EDIT: I just saw this line if ( killedrid == f_valkyrie )so your custom mvp SpriteName is f_valkyrie ?if you not sure about that, better stick to mob_id ...
  4. @@ShadowLight 1 month late reply but meh ... http://herc.ws/board/topic/4608-sendmail/ just update this crap ...
  5. update to version 2 @@Kong well maybe late reply if you are still using the old version ... hercules ... ahem ... then version 1 needs to check offline player with *isloggedin now I just do version 2, no longer needs to do *isloggedin check anymore
  6. if you just want to execute an npc when player press that respawn button (Return to last save point) then you have to do source modification plugin #include "common/hercules.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include "map/pc.h"#include "map/npc.h"#include "common/HPMDataCheck.h"HPExport struct hplugin_info pinfo = { "OnPCRespawnEvent", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)};void pc_respawn_post( struct map_session_data* sd, clr_type clrtype ) { struct npc_data *nd = npc->name2id("OnPCRespawnEvent"); if ( !nd ) { ShowError( "OnPCRespawnEvent not found !" ); return; } script->run( nd->u.scr.script, 0, sd->bl.id, nd->bl.id ); return;}HPExport void plugin_init (void) { addHookPost( "pc->respawn", pc_respawn_post );}and write a script as it were executed like MOTD ...- script OnPCRespawnEvent FAKE_NPC,{ unittalk getcharid(3), "I'm ALIVE !!!"; end;OnPCDieEvent: unittalk getcharid(3), "I'm dead ..."; end;}.. however if you are actually writing an event script, such as instance script remember there are other checks to make sure the event run smoothly eg: warpping, log out ... etc etc
  7. reference .... http://herc.ws/board/topic/4552-mvp-ladder-script-enhancement/ so ... /*alter table `char` add column custom_mvp_rank int(11) default 0 after hotkey_rowshift, add index (custom_mvp_rank);*/- script ajdhkasdj FAKE_NPC,{OnInit: if ( $mvp_ladder_last_given == atoi( gettime(7) +""+ gettime(6) ) ) end; goto L_give;OnClock0000: if ( gettime(5) != 1 ) end;L_give: .@nb = query_sql( "select char_id, name, custom_mvp_rank from `char` where custom_mvp_rank > 0 order by custom_mvp_rank desc limit 5", .@cid, .@name$, .@killed ); if ( !.@nb ) end; setarray .@reward, 501, 502, 503, 504, 505; // <1st place>, <2nd place>, <3rd place> ... setarray .@amount, 10, 9, 8, 7, 6; for ( .@i = 0; .@i < .@nb; .@i++ ) query_sql "insert into mail ( send_name, dest_id, title, message, nameid, amount, identify, zeny, time ) values ( '"+ escape_sql( .@name$[.@i] ) +"', "+ .@cid[.@i] +", '[MVP RANK]', 'Congratulations for earning No. "+( .@i +1 )+" position in killing Custom MVPs. Here is your reward.', "+ .@reward[.@i] +", "+ .@amount[.@i] +", 1, 0, unix_timestamp( now() ) )"; query_sql "update `char` set custom_mvp_rank = 0"; // reset the ladder $mvp_ladder_last_given = atoi( gettime(7) +""+ gettime(6) ); end;OnNPCKillEvent: if ( killedrid == G_RANDGRIS ) // 1765 query_sql "update `char` set custom_mvp_rank = custom_mvp_rank +1 where char_id = "+ getcharid(0); end;}
  8. - script ksdfkjsdhfksj FAKE_NPC,{// set .@range, getbattleflag("area_size");// getmapxy .@map$, .@x, .@y, 0;// while ( checkcell( strcharinfo(3), .@x = rand( .@x - .@range, .@x + .@range ), .@y = rand( .@y - .@range, .@y + .@range ), cell_chknopass ) );// warp .@map$, .@x, .@y;// end;OnInit: setitemscript Wing_Of_Fly, "{ set .@range, getbattleflag("area_size"); getmapxy .@map$, .@x, .@y, 0; while ( checkcell( strcharinfo(3), .@x = rand( .@x - .@range, .@x + .@range ), .@y = rand( .@y - .@range, .@y + .@range ), cell_chknopass ) ); warp .@map$, .@x, .@y; }", 0;}@@Tranquilityvisible range is set in btw can anyone link me to the npc sprite ID with names ?gonne pin at script support because when I put 100 as sprite ID server pump msg says it is depricated soon EDIT: change -1 into FAKE_NPC
  9. finally got my test server up and running - script HerculesMOTD -1,{ message strcharinfo(0), "nanana"; end;OnMinute00: announce "wawawa", bc_all; end;}what you need is actually call "hourly announcer" scriptthere are plenty of them if you search that keyword
  10. so ... after years of showing up, then inactive, then come back, then inactive, I come back again .... hahahaha but I'm not very happy ... why ? . because I'm in DEBT ! . I am broke its because of this Malaysia 1MDB scandal ! (please google it) Malaysia Currency DROP NON-STOP . I borrow money from my relatives, already RM3500 accumulated which is nearly USD $900 it is a big amount .... if I don't find a method to increase my income, I'm gonna broke . . so ... I have google some sites on how to earn money online ... I almost get scam for a 'work at home' scheme . its here -> http://www.yyjob.net/display-job/5848/Urgent-Home-Base-Data-Entry-Typists.html?searchId=1445258816.89&page=1 I actually sent my email and my contact number for them then they reply .... I immediately spot 3 error 1. where is the company name & address ? 2. Data Entry job is ... of course I already googled it means that person gives you a shit ton of scanned documents then you sort it out and digitize them with microsoft excel now this is the legitimate site for freelancing, and it look like this there are always more than 50 peoples to bid on any data entry job, no matter how small the payout it what I read in the mail has nothing resemble to what I learn from google wait ... ADVERTISING ? since when data entry job becomes a salesgirl? 3. it ask you to deposit RM50 to start a business ... ok RM50 is actually small I just have to eat white bread/plain rice with plain water for 3 days, then I can save RM50 up but ... it just sound too good ... something fishy already so I keep on google until I found this site http://asiaparttime.com/blog/asiaparttime/how-to-tell-if-a-data-entry-job-is-a-scam/ end case there is no follow up, and don't want to talk to them anymore so after hours and hours of thinking and searching http://reviewopedia.com/workathome/7-ways-to-make-money-online/ of course there's more, but the #1 in particular ... ... makes me make a very tough decision I always say that everything on the internet should be free after all is information age nowadays everyone owns smartphones, and I own 2 but the real life get the better of me I have resort to earn money through selling scripts ... and I hate myself for saying this crap ... I used to argue and threaten others by reproducing their scripts and release for free but I don't have a choice now, seems like karma has hit back on me haiz ... so now I'm still in the middle of setting up a test server probably can start scripting tomorrow I think ... my current stance is 1. continue make free release in hercules script request or script release ---- if anyone wants to me to make it compatible with rathena, let's talk price 2. start making scripts over PM, of course, price negotiable ---- higher price for rathena users ... hahaha 3. if source edit is require, no longer release any patch ---- so there are less rathena users able to convert them I would keep this stance, and view next month (1st Dec) if I'm able to cover my expenses I just need earn about USD $300 per month to cover this debt if convert USD $300 into MYR, is about RM1200, that should be enough and that's also means how small malaysia currency is ... haiz
  11. currently still downloading latest kro client = 33% completed estimated download finish in 4 hours so wait until I am able to setup my test server @@Litro that .@less_one variable only trigger during OnPCLogoutEvent, and it never meant to trigger for OnPCDieEvent because .... well that script was made for rathena Euphy asked me to contribute some custom scripts for their script/custom folder so this was one of them https://github.com/rathena/rathena/commit/163a98cbc4014344781ec74e1e46c2e384155558 if my memory still serve me right, rathena OnPCLogoutEvent, although the player is in the process of logging out, but the system still count that player as online, so I need a temporary variable to make it count 1 less and for the part the script always check the hp ... of course if everyone died in the map, it should auto end the event in 10 seconds there are 2 things that comes to my mind 1. hercules going to take out *awake command https://github.com/HerculesWS/Hercules/pull/374 so I think *awake command doesn't work in hercules anymore 2. hercules way of handling OnPCLogoutEvent are different from rathena no matter what, I don't think that script having bug if use with rathena because if it is bug, Euphy would have fix it but on hercules, I not sure, I need a test server ... maybe tomorrow I can start writing scripts again
  12. just as it saidyour pet needs to be intimate enough such as .pet_min_friendly = getbattleflag("pet_support_min_friendly");@makeegg poring@hatch @petfriendly 1000
  13. https://github.com/HerculesWS/Hercules/blob/master/conf/inter-server.conf#L130 https://github.com/HerculesWS/Hercules/blob/master/sql-files/main.sql#L588
  14. work perfect in rathena ? no don't think so both rathena and hercules never change the behavior of OnNPCKillEvent prontera,158,184,5 script kjsdhfksjf 100,{ monster "this",-1,-1, "--ja--",1002,1,""; monster "this",-1,-1, "--ja--",1002,1,strnpcinfo(0)+"::Onaaa"; end;Onaaa: dispbottom "test1"; end;OnNPCKillEvent: dispbottom "test2"; end;}it only execute 1 or the other, OnNPCKillevent doesn't execute both since all castle monster already has monster label attached to them, you have to edit the castle script using OnNPCKillEvent doesn't work
  15. inside battle_calc_weapon_attack function, find this line if( wd.damage + wd.damage2 ) { //There is a total damage valueadd abovewd.damage = 1;
  16. that was the least complex method in writing an instance script o.o anyway prontera,158,180,0 script Guild Town 123,{ if ( !getcharid(2) ) { mes "need a guild"; close; } if ( agitcheck() || agitcheck2() ) { mes "woe in progress"; close; } if ( getcastledata( "prtg_cas01", 1 ) != getcharid(2) && getcastledata( "payg_cas01", 1 ) != getcharid(2) && getcastledata( "aldeg_cas04", 1 ) != getcharid(2) && getcastledata( "gefg_cas04", 1 ) != getcharid(2) ) { mes "you need to hold a castle to gain access to guild town map"; close; } warp "guild_vs2",49,49; end;OnAgitStart: mapwarp "guild_vs2", "prontera",150,180; end;}guild_vs2 mapflag nowarptoguild_vs2 mapflag nomemoguild_vs2 mapflag nosave SavePoint
  17. between version 1.1 and 1.2 I removed the lines in status_percent_change and applied them in 5 different killmonster functions
  18. people aren't saying it is a bug, so leave it then xD
  19. GmOcean gonna drool over this prontera,158,180,0 script Guild Town 123,{ if ( has_instance2( "guild_vs2" ) >= 0 ) { warp has_instance( "guild_vs2" ), 0,0; end; } if ( !getcharid(2) ) { mes "need a guild"; close; } if ( agitcheck() || agitcheck2() ) { mes "woe in progress"; close; } if ( getcastledata( "prtg_cas01", 1 ) != getcharid(2) && getcastledata( "payg_cas01", 1 ) != getcharid(2) && getcastledata( "aldeg_cas04", 1 ) != getcharid(2) && getcastledata( "gefg_cas04", 1 ) != getcharid(2) ) { mes "you need to hold a castle to gain access to guild town map"; close; } if ( ( .@ins = instance_create( "Guild Town", getcharid(2), IOT_GUILD ) ) < 0 ) { mes "error : "+ .@ins; close; } if ( instance_attachmap( "guild_vs2", .@ins, 1, getcharid(2)+"gtown" ) == "" ) { mes "error : 5"; instance_destroy .@ins; close; } instance_set_timeout 0, 0, .@ins; instance_init .@ins; instance_attach .@ins; .guild_town_id[.count] = .@ins; .count++; warp has_instance( "guild_vs2" ), 0,0; end;OnAgitStart: for ( .@i = 0; .@i < .count; .@i++ ) instance_destroy .guild_town_id[.@i]; deletearray .guild_town_id; .count = 0; end;}guild_vs2 mapflag nowarptoguild_vs2 mapflag nomemoguild_vs2 mapflag nosave SavePointchange guild_vs2 into guild_town
  20. I usually ignore this kind of post ... meh ................. http://herc.ws/board/topic/152-obtaining-hercules/ I wonder how are you exactly download the hercules ? if using tortoisegit, just right click -> Git Diff then select all file to patch, then save the name of the file you won't go anywhere without a tortoisegit, including making a pull request
  21. the chat room counting down is exclusive to toasty woe controller http://rathena.org/board/topic/57377-toastys-woe-controller/
  22. if you modify like jabote did, that will affect any other battleground script, which possibly caused them bug I won't touch the source if I were you the practical way to do this, is make them wait inside a room http://rathena.org/board/topic/97602-annierurus-bg-emp-edit-request/?p=267413 I've seen 2 battleground script using this method
  23. AnnieRuru

    NPC Buy/Sell

    this the topic I was talking about ... http://www.eathena.ws/board/index.php?showtopic=270771 btw you should use a patch file instead @evilpuncker basically just make a shop window that sells signed item to the player, using shop interface the trick is, instead of using buy window, this one using sell window with the sell button, but you don't sell the item, but buy it
  24. this new eathena host sux ... does anyone experience this ? 1. login eathena forum -> 20 seconds 2. click search button -> 20 seconds 3. after input the thing I want to search, wait for the result -> 30 seconds 4. click on 1 of the topic on the result -> opening a new window, another 20 seconds total time = 1.5 minute oh wait .. that's not the topic I want, I click on another topic in the search result, maybe that's the topic I'm looking for another 20 seconds this is driving me nuts I have 6.7k post count in eathena forum and still left a lot of information there
  25. apparently when I test it, at'er doesn't get kick by clif->authfail_fd, but get kick by clif->GM_kick . ACMD(test) { clif->authfail_fd( sd->fd, 1 ); return true;}#test ennyenny still continue vend @kick enny enny got kick . since my script using clif->authfail_fd, auto-traders doesn't get kick I just made 1.3 just now, just taking this chance to rewrite the script nothing much change, actually other than make the patch more understandable for napster to convert to rathena
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.