-
Content Count
1677 -
Joined
-
Last visited
-
Days Won
246
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by AnnieRuru
-
Some scripts will crash the maps in SVN 13836.
AnnieRuru replied to 安赫尔's question in Script Support
1. my test server also crashed hahaha yes this is a bug reported -> http://herc.ws/board/index.php?app=tracker&showissue=8025 2. seems like different issue probably because of maximum string length http://www.eathena.ws/board/index.php?s=&showtopic=241133&view=findpost&p=1318395 // max amount of mission per page .max_page_size = 30;what's your value here ?its client crash of server crash actually ? -
cannot reproduce . . cannot reproduce. . cannot reproduce . . it seems like your map-server.exe should spam a lot of error for this. . Euphy will not see this, he only active in rAthena
-
/*create table freebie (ip varchar(16) primary key,claimed tinyint(4)) engine = innodb;drop table freebie;*/prontera,154,185,5 script kjdhfksjhf 100,{ mes "freebie ..."; mes " "; if ( #freebie_claimed ) { mes "you have already claimed the prize"; close; } query_sql "select claimed from freebie where ip = '"+ getcharip() +"'", .@claimed; if ( .@claimed >= .limit ) { mes "this ip has reached the max limit to claimed the freebies"; close; } if ( !checkweight(501,1) ) { mes "lol ... you can't even carry 1 red pot"; close; } getitem 501,1; mes "gratzzzzzzz ... zzzz...."; query_sql "insert into freebie values ( '"+ getcharip() +"', 1 ) on duplicate key update claimed = claimed +1;"; #freebie_claimed = 1; close;OnInit: .limit = 2; // how many times 'player can actually create multiple account to cheat this system'. change to 5 // oh ... and then, reset the router again to change ip then claim again !}.. . if the sql query return the result within 0.1 sec, I don't think it will produce lagand this sql table has already indexed too
-
don't bump the topic within 24 hours ... 1st ... do you use woe controller script ? <-- nowadays everyone getting lazy and use it if yes ... show it 2nd... if you don't use woe controller ... then its simple ... script your own npcguildagit_controller.txt and npcwarpsguild_castles.txt I can script this on fly
-
run a search "jobchange" with "Find in files" in "herculesnpc" after every single *jobchange, getitem 501,1; .... quite hassle to do like this or the easy way, yet unoptimized way, is to use a custom npc, ask them come to this npc to claim the gift prontera,154,184,5 script kjdhfksdjfs 100,{ mes "blah blah come and get a prize"; next; if ( Class == Job_Novice ) { mes "no gift for the noobs"; close; } if ( Job_Gift[ Class ] ) { mes "You have already claim the gift"; close; } switch ( Class ) { case Job_Swordman: getitem 501, 1; break; case Job_Mage: getitem 501, 1; break; case Job_Archer: getitem 501, 1; break; case Job_Acolyte: getitem 501, 1; break; // .... add more default: mes "this job ID is not yet done because the author is feeling lazy hahaha"; close; } Job_Gift[ Class ] = 1; mes "have a nice day"; close;}1 thing good using another npc is you don't have to look at another file when debuggingthe bad ... of course, used up a few custom variable, and needs to reminds players to come and get it
-
really ? - script sdfkjhfkjhsdf -1,{OnInit: announce "[ Prontera, Capital of Rune Midgard ]", bc_all, 0x66AAFF, 0x190, 50;}
-
no need to do until that complicated just put this script in - script kjhfksfjhskfj -1,{OnInit: bindatcmd "afk", strnpcinfo(0)+"::OnCommand"; // overwrite the @afk command end;OnCommand: if ( !countitem(5474) ) { message strcharinfo(0), "You must have an AFK hat to use this command"; end; } atcommand "@afk"; // then execute back the original command end;}
-
what does the @afk command do ? -> kick the player offline but still remain in the server ? I think saw this before on some source release somewhere
-
then give an example how you want it to work maybe your explanation too vague
-
OnInit: bindatcmd "test", strnpcinfo(0)+"::Ontest"; end; Ontest: if ( !countitem(<item ID>) end; <blah blah here>; end; countitem for carrying, isequipped for wearing
-
http://upaste.me/3547106276d018f37 tested with prontera mapflag maxbaspd 185- script kdjfhksjfksd -1,{OnInit: announce getmapflag( "prontera", mf_maxbaspd ) +"", bc_all; sleep 1;// removemapflag "prontera", mf_maxbaspd; setmapflag "prontera", mf_maxbaspd, 199; announce getmapflag( "prontera", mf_maxbaspd ) +"", bc_all; announce getmapflag( "geffen", mf_maxbaspd ) +"", bc_all;}note that this mapflag can bypass max_aspd into 199
-
hmm ? how come ? with the patch, I put 0 on vending_tax and vending_tax_allies the vendor gets the full money from the purchase
-
how its not working ? OnMinute18: announce "runs without attachrid", bc_all;Onbbb:// while ( .@j++ < 100 ) { // ran a test with 100 times getservermember 2; callfunc "shuffle", 0, $@servermembercount -1, .@r; for ( .@i = 0; .@i < $@servermembercount; .@i++ ) { attachrid $@servermemberaid[ .@r[.@i] ]; if ( getgmlevel() < 60 && checkvending() != 2 ) { announce "Winner is "+ strcharinfo(0), bc_all; getitem 501, 1; break; } }// } end; PS: http://herc.ws/board/topic/4455-capped-aspd-mapflag/
-
spoon feed http://upaste.me/c52f10622f5d13d72
-
Onbbb:...... if ( getgmlevel() < 60 && checkvending() != 2 ) {this script will search on all online account ID, but only runs on players that is not GM60 and not autotraders you can try dual-client login 1 account with GM99 to test, then login another account with normal player account (no GM) it will always give the prize to the normal player, because GMs are not supposed to win this kind of event, players will complain GMs are cheating
-
since you said rAthena, so I guess your server supported *bindatcmd just load this script, no need source modification - script bst_atcommand -1,{OnInit: bindatcmd "bst",strnpcinfo(0)+"::OnCommand"; end;OnCommand: if ( !getstrlen(.@atcmd_parameters$) ) { message strcharinfo(0), "Please, enter a message (usage: @bst <message>)."; end; } if ( @bst_delay + 60 > gettimetick(2) ) { message strcharinfo(0), "There is a 60 seconds delay of using this command again"; end; } @bst_delay = gettimetick(2); announce "[Market] "+ strcharinfo(0) +" : "+ implode( .@atcmd_parameters$," " ), bc_all, 0x9999FF; end;}
-
of course not a check on the OnNPCKillEvent should tells you it doesn't have party kill support a snippet without party support OnNPCKillEvent: if ( killedrid == 1002 ) count++;with party supportOnNPCKillEvent: if ( killedrid == 1002 ) { if ( !getcharid(1) ) { // if no party count++; } else { getmapxy .@map1$, .@x1, .@y1, 0; // killer position getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; getmapxy .@map2$, .@x2, .@y2, 0; if ( .@map1$ == .@map2$ && distance(.@x1,.@y1,.@x2,.@y2) <= 30 ) // same map and the distance is within 30 cell range count++; } } } } end;this script doesn't have any *getpartymember script command, so there's no way it can support party kills and its quite complex so ... I'll spoon feed the answer instead http://upaste.me/4e9610616d28161ae PS: I bet the original author also doesn't know how to do this EDIT: put back the "if ( h_run != 1 )" stuff
-
Hi, can i request for a script something like this.
AnnieRuru replied to leloush's question in Script Requests
sleep 1 * 1000; // 1 second sleep 60 * 1000; // 60 seconds = 1 minute sleep 60 * 60 * 1000; // 60 minutes = 1 hour sleep 1 *60 *60 *1000; // 1 hour for testing purpose, perhaps can try 20 seconds sleep 20*1000; or sleep 20000; -
prontera,156,184,5 script kjfhksdjf 100,{attachnpctimer;initnpctimer;end;OnTimer1000:dispbottom "pass 1"; // OKstopnpctimer;end;}prontera,159,184,5 script kjfhksdjf2 100,{initnpctimer;attachnpctimer;end;OnTimer1000:dispbottom "pass 2"; // attachrid errorend;} to use attachnpctimer, this command must execute when the timer is not running https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt#L6195 . . initnpctimer;if ($@wedding_effect == 1)attachnpctimer $wed_bride$;if ($@wedding_effect == 2)attachnpctimer $wed_groom$; change into if ($@wedding_effect == 1)attachnpctimer $wed_bride$;if ($@wedding_effect == 2)attachnpctimer $wed_groom$;initnpctimer; AARRGGHHHH stupid {code} break ... fix it yourself <.< . . . ---- offtopic ---- test set $@haha, 1;$@haha = 1; how come your post got the mailto: stuffs ?
-
Hi, can i request for a script something like this.
AnnieRuru replied to leloush's question in Script Requests
- script kjdhfksdjfhs -1,{OnClock0000:OnClock0400:OnClock0800:OnClock1200:OnClock1600:OnClock2000: enablenpc "qwerty"; sleep 1 *60 *60 *1000; // 1 hour mapwarp "guild_vs2", "prontera",156,191; disablenpc "qwerty"; end;OnInit: disablenpc "qwerty"; end;}prontera,156,195,5 warp qwerty 2,2,guild_vs2,49,49change guild_vs2 into gld2_prt -
sql table create table guild_invite (id int(11) unsigned primary key auto_increment,char_id int(11) unsigned,guild_id int(11) unsigned,key (char_id),key (guild_id),unique (char_id,guild_id)) engine = innodb;source modificationhttp://upaste.me/648510601a30ea563 and the script http://upaste.me/a50910600302d4ea5 EDIT: oh wait, 100th post !
-
hmm ... you are quite supportive in script section but it seems you can't read source code yet ACMD_DEF(chkally),I am actually writing an atcommand inside atcommand.cI wrote that and tested so to make sure my compiler doesn't throw error, and its working in my test server put them inside atcommand.c, and you can type "@chkally AnnieRuru" to check the player is your guild member or guild ally the part that you need to refer, is only just this struct guild * g = guild->search( sd->status.guild_id ); if ( !g ) { clif->message( fd, "you don't have a guild" ); return false; }...................... int i = 0; ARR_FIND( 0, MAX_GUILDALLIANCE, i, pl_sd->status.guild_id == g->alliance[i].guild_id ); if ( sd->status.guild_id == pl_sd->status.guild_id || i < MAX_GUILDALLIANCE ) { clif->message( fd, "that player is your guild member or guild ally" ); return true; } else { clif->message( fd, "that player is not your guild member or ally" ); return true; }.. ... 1 more chance and I'll spoon feed =/
-
rAthena isn't dead yet, but its truth that over here has more helpful scripters (in rA its always answered by same person ...) I think your request probably needs source modification especially we don't have a script command like *guildjoin .. something like that so you need 3 custom commands @guildinvite @guildaccept @guildreject @guildinvite and @guildreject can simulate with *bindatcmd but @guildaccept must touch the source at least for having a *guildjoin script command actually ... its much better to write this entirely inside atcommand.c the problem is, I can write this easily and cope with hercules emulator but you are using ramod so ... you have to figure out how to convert into ramod so ... you want bindatcmd version or atcommand.c version ?
-
inside map_session_data function at pc.h add int bst_delay;.. what's so difficult =/ even Blue Jem on that topic also got it working fine in eathena
-
felt like this has gone off-topic you mean in woe/pvp/gvg map, there is a capped aspd ? guild_vs1 mapflag baspd 190if your server has 195 as max_aspd, but in guild_vs1 only has max_aspd 190, like this ?