Jump to content

AnnieRuru

Members
  • Posts

    2044
  • Joined

  • Last visited

  • Days Won

    51

Everything posted by AnnieRuru

  1. wow ... that kind of feature, my script doesn't has I need to break down my script and make another one just purposely for you post up both of your edited script here ... even failed one nvm .. I can understand what you are going to do maybe some other time I need to figure out how to make this kind of configuration
  2. prontera,155,181,5 script Lotti Girl 100,{ mes "[Lotti Girl]"; mes "It costs "+ .cost[1] +"x "+ getitemname( .cost[0] ) +" to play."; mes " "; for ( .@i = 0; .@i < 20; .@i++ ) mes $lotti_girl_ladder$[.@i]; if ( countitem( .cost[0] ) < .cost[1] ) close; next; if ( select( "Deal me in!", "No way..." ) == 2 ) close; mes "[Lotti Girl]"; while (1) { mes "Here we go..."; delitem .cost[0], .cost[1]; .@rand = rand(.totalchance); .@r = 0; // <-- think you forgot to put this while ( ( .@rand = .@rand - getd( ".p"+ .@r +"[0]" ) ) >= 0 ) .@r++; .@size = getarraysize( getd(".p"+ .@r ) ); for ( .@i = 1; .@i < .@size; .@i += 2 ) getitem getd( ".p"+ .@r +"["+ .@i +"]" ), getd( ".p"+ .@r +"["+( .@i +1 )+"]" ); if ( getd( ".p"+ .@r +"[0]" ) < 50 ) // announce if below 50% chance announce "Congratulations to "+strcharinfo(0)+" for getting "+ .ann$[.@r] +"!", 0; if ( getd( ".p"+ .@r +"[0]" ) < 10 ) { // score the ladder if below 10% chance copyarray $lotti_girl_ladder$[1], $lotti_girl_ladder$[0], 19; $lotti_girl_ladder$ = strcharinfo(0) +" gains "+ .ann$[.@r] +" at "+ gettimestr( "%d/%m/%Y %H:%M %p", 21 ); } mes " "; mes "wanna try again ?"; next; if ( select( "Yes", "No" ) == 2 ) close; mes "[Lotti Girl]"; if ( countitem( .cost[0] ) < .cost[1] ) { mes "it seems you have ran out of "+ getitemname( .cost[0] ); close; } } close; OnInit: // setarray .p1, 70, 501,25; // debugging ... // setarray .p2, 70, 502,1; // setarray .p3, 40, 503,1; // setarray .p4, 40, 504,1; // setarray .p5, 40, 505,1; // setarray .p6, 50, 506,1, 507,1, 508,1, 509,1; // setarray .p7, 25, 512,1; // setarray .p8, 5, 513,1; setarray .p1, 70, 607,25; setarray .p2, 70, 13710,1; setarray .p3, 40, 5471,1; setarray .p4, 40, 5210,1; setarray .p5, 40, 5224,1; setarray .p6, 50, 2357,1, 2524,1, 2421,1, 2115,1; setarray .p7, 25, 2701,1; setarray .p8, 5, 2394,1; setarray .p9, 30+30+60+60+60+50+75+95, 12214,1; // default ... the chance are added up by 100-n% setarray .cost, 7227,300; .total = 9; freeloop 1; .@i = 1; while ( .@i <= .total ) { .totalchance = .totalchance + getd(".p"+ .@i ); .@j = 1; .@size = getarraysize( getd(".p"+ .@i ) ); while ( .@j < .@size ) { .ann$[.@i] = .ann$[.@i] + getd( ".p"+ .@i +"["+( .@j +1 )+"]" ) +"x "+ getitemname( getd( ".p"+ .@i +"["+ .@j +"]" ) ) +( ( .@j == .@size -2 )? "":"," ); // I think Euphy forgotten to make announcement when configuration has set more than 1 items .@j += 2; } .@i++; } freeloop 0; }
  3. I think you also misunderstood script request rules I repeat again what Euphy said in this section we MAKE the script for you, but only if you have explained clearly how your script going to work you can ask for pvp scripts, battleground scripts ... but only if you explained yourself clearly this is the correct way to ask for a script request http://rathena.org/b...ng/#entry145813 this is the wrong way to ask for a script request --> I want ABCD script from xxxxRO please share with me !!! this request is invalid until you can explain yourself more properly try this ... what I get from google search http://rathena.org/b...r-quest-script/
  4. 1st script ... our SVN has already explained woe_time_explanation 2nd script ... about rewarding .. . ... yeah ... make sense ... but its kinda crazy ... see I making over 20 posts a day I also couldn't find the time to update my scripts at script release section from eathena forum currently
  5. read wiki about instancing http://trac.rathena.org/changeset/16134/rathena means you are not using rathena ...
  6. did you create the table .... I never seen a poll can be edited ...Myzter's script also doesn't allow to edit the poll
  7. if ( getcharip(killedrid) == getcharip(getcharid(3)) ) end;
  8. like I said before ... adding custom features to existing scripts means = open a new topic because in request section, the request to based on 1st post ... hmm .... I use different formula than Euphy ... I dislike to make too much calculation when its possible to set everything on server startup prontera,155,181,5 script Lotti Girl 100,{ mes "[Lotti Girl]"; mes "It costs "+ .cost[1] +"x "+getitemname( .cost[0] )+" to play."; mes " "; for ( .@i = 0; .@i < 20; .@i++ ) mes $lotti_girl_ladder$[.@i]; if ( countitem( .cost[0] ) < .cost[1] ) close; next; if ( select( "Deal me in!", "No way..." ) == 2 ) close; mes "[Lotti Girl]"; mes "Here we go..."; progressbar "", 2; delitem .cost[0], .cost[1]; .@rand = rand(.totalchance); while ( ( .@rand = .@rand - getd( ".p"+ .@r +"[0]" ) ) >= 0 ) .@r++; .@size = getarraysize( getd(".p"+ .@r ) ); for ( .@i = 1; .@i < .@size; .@i += 2 ) getitem getd( ".p"+ .@r +"["+ .@i +"]" ), getd( ".p"+ .@r +"["+( .@i +1 )+"]" ); if ( getd( ".p"+ .@r +"[0]" ) < 50 ) // announce if below 50% chance announce "Congratulations to "+strcharinfo(0)+" for getting "+ .ann$[.@r] +"!", 0; if ( getd( ".p"+ .@r +"[0]" ) < 10 ) { // score the ladder if below 10% chance copyarray $lotti_girl_ladder$[1], $lotti_girl_ladder$[0], 19; $lotti_girl_ladder$ = strcharinfo(0) +" gains "+ .ann$[.@r] +" at "+ gettimestr( "%d/%m/%Y %H:%M %p", 21 ); } close; OnInit: // setarray .p1, 70, 501,25; // debugging ... // setarray .p2, 70, 502,1; // setarray .p3, 40, 503,1; // setarray .p4, 40, 504,1; // setarray .p5, 40, 505,1; // setarray .p6, 50, 506,1, 507,1, 508,1, 509,1; // setarray .p7, 25, 512,1; // setarray .p8, 5, 513,1; setarray .p1, 70, 607,25; setarray .p2, 70, 13710,1; setarray .p3, 40, 5471,1; setarray .p4, 40, 5210,1; setarray .p5, 40, 5224,1; setarray .p6, 50, 2357,1, 2524,1, 2421,1, 2115,1; setarray .p7, 25, 2701,1; setarray .p8, 5, 2394,1; setarray .p9, 30+30+60+60+60+50+75+95, 12214,1; // default ... the chance are added up by 100-n% setarray .cost, 7227,300; .total = 9; freeloop 1; .@i = 1; while ( .@i <= .total ) { .totalchance = .totalchance + getd(".p"+ .@i ); .@j = 1; .@size = getarraysize( getd(".p"+ .@i ) ); while ( .@j < .@size ) { .ann$[.@i] = .ann$[.@i] + getd( ".p"+ .@i +"["+( .@j +1 )+"]" ) +"x "+ getitemname( getd( ".p"+ .@i +"["+ .@j +"]" ) ) +( ( .@j == .@size -2 )? "":"," ); // I think Euphy forgotten to make announcement when configuration has set more than 1 items .@j += 2; } .@i++; } freeloop 0; } EDITING ... wait a moment .. I think this script is bugged... ok fixed
  9. "all", // comment this line to only trigger this script on these listed maps set .killingspree, 3; set .dominating, 4; set .megakill, 5; set .unstoppable, 6; set .wickedsick, 7; set .monsterkill, 8; set .godlike, 9; set .holyshit, 10; set this to 5,10,15,20 ... then if ( @PlayersKilledStreak == .killingspree ) setarray .@streakname$,"killingspree.wav","is on a KILLING SPREE","!"; change into if ( @PlayersKilledStreak == .killingspree ) { setarray .@streakname$,"killingspree.wav","is on a KILLING SPREE","!"; getitem 501,1; } something like this ...
  10. prontera,156,180,6 script GuildBaseWarper 100,{ .@npcname$ = strnpcinfo(1); mes .@npcname$; mes "Hi "+strcharinfo(0)+","; mes "Do you want to go in your Guild Base?"; next; if ( select( "Blueprint's Base", "Yakuza's Base", "No" ) == 3 ) close; .@s = @menu; mes .@npcname$; mes "Hi "+strcharinfo(0)+","; mes "Please enter your guild password"; next; if ( input( .@tmp$, 2, 70 ) ) close; if ( .@tmp$ != .password$[.@s] ) { mes .@npcname$; mes "Invalid password. Try again."; close; } announce strcharinfo(0) +": "+ strcharinfo(0), 0; // LOL ? I'm just replicating -> atcommand "@broadcast "+strcharinfo(0); warp getd( ".guildbase"+ .@s +"$[0]" ), atoi( getd( ".guildbase"+ .@s +"$[1]" ) ), atoi( getd( ".guildbase"+ .@s +"$[2]" ) ); close; OnInit: setarray .password$[1], "OMFG", "LMAO"; setarray .guildbase1$, "lou_fild01", "180", "180"; setarray .guildbase2$, "prt_fild08", "50", "50" ; end; } sometimes ... need a little bit spoon feed ... and your script is far too off .... that's why script request section exist ...
  11. prontera,155,184,5 script Notice Board 100,{ mes "[ PVP Notice Board ]"; mes "You can pvp in Arena, i can warp you there."; mes "Or you can go by your self @gopvp."; if ( select( "Warp to Arena", "Close" ) == 2 ) close; L_warp: switch ( rand(4) ) { default: warp "prt_are01",162,162; break; case 1: warp "prt_are01",162,138; break; case 2: warp "prt_are01",138,138; break; case 3: warp "prt_are01",138,162; } end; OnInit: bindatcmd("gopvp", strnpcinfo(3)+"::OnGo"); end; OnGo: if ( getmapflag( strcharinfo(3), mf_nowarp ) ) { dispbottom "Do not abuse this command !!"; end; } goto L_warp; } I'm quite sure if you overwrite @go like that, all the rest like @go 0 will stop to work already better create a new one
  12. resnametable.txt 2@g_vs.gnd#guild_vs2.gnd# 2@g_vs.gat#guild_vs2.gat# 2@g_vs.rsw#guild_vs2.rsw# À¯ÀúÀÎÅÍÆäÀ̽º\map\2@g_vs.bmp#À¯ÀúÀÎÅÍÆäÀ̽º\map\guild_vs2.bmp# function script instance__ { if ( ( .@ins = instance_create( getarg(0), getcharid(1) ) ) < 0 ) return .@ins; .@i = 3; while ( getstrlen( getarg( .@i, "" ) ) ) { if ( !getstrlen( instance_attachmap( getarg(.@i), .@ins ) ) ) { instance_destroy .@ins; return -5; } .@i++; } if ( getarg(1) || getarg(2) ) instance_set_timeout getarg(1), getarg(2), .@ins; instance_init .@ins; instance_attach .@ins; return .@ins; } prontera,156,185,5 script Devil Square 100,{ if ( !getcharid(1) ) { mes "you need a party to get in"; close; } if ( instance_id(1) && getstrlen( has_instance("2@g_vs") ) ) { mes "sry but you can't go in back"; close; } if ( instance_id(1) ) { mes "your party is currently running an instance"; close; } if ( !instance_check_party( getcharid(1), 1, 70 ) ) { mes "some of your party member do not meet base level requirement"; close; } if ( zeny < 20000 ) { mes "you did not bring enough (20,000) zeny"; close; } if ( callfunc( "instance__", "Devil Square", 30*60, 10*60, "2@g_vs" ) < 0 ) { // 30 mins to clear dungeon, 10 mins timeout if nobody inside mes "failed to create instance"; close; } zeny = zeny - 20000; warpparty "2@g_vs", 0,0, getcharid(1); donpcevent instance_npcname("Devil Square instanced")+"::OnStart"; close; OnInit: setarray .round1, 1511,1, 1630,1, 1039,1, 1271,1, 1046,1, 1389,1; // configure your mobs here .... setarray .round2, 1719,1, 1779,1, 1708,1, 1685,1, 1418,1, 1623,1; setarray .round3, 1917,1, 2022,1, 1751,1, 1871,1, 1647,1, 1768,1; .totalround = 3; end; } 2@g_vs,0,0,0 script Devil Square instanced -1,{ end; OnStart: sleep 5000; instance_announce 0, "Round 1 will start in 5 seconds ...", bc_all; sleep 5000; OnSummon: .round++; .@size = getarraysize( getvariableofnpc( getd( ".round"+ 'round ), "Devil Square" ) ); for ( .@i = 0; .@i < .@size; .@i += 2 ) { monster "2@g_vs",0,0, "[DS] "+ getmonsterinfo( getvariableofnpc( getd( ".round"+ 'round +"["+ .@i +"]" ), "Devil Square" ), 0 ), getvariableofnpc( getd( ".round"+ 'round +"["+ .@i +"]" ), "Devil Square" ), getvariableofnpc( getd( ".round"+ 'round +"["+( .@i +1 )+"]" ), "Devil Square" ), instance_npcname( strnpcinfo(0) )+"::OnKill"; 'mob = 'mob + getvariableofnpc( getd( ".round"+ 'round +"["+( .@i +1 )+"]" ), "Devil Square" ); } end; OnKill: 'mob--; if ( 'mob == 4 || 'mob == 1 ) { if ( 'round != getvariableofnpc( .totalround, "Devil Square" ) ) instance_announce 0, "Devil Square : "+ 'mob +" mobs left to enter Round "+( 'round +1 ), bc_all; else instance_announce 0, "Devil Square : "+ 'mob +" mobs left", bc_all; } else if ( !'mob ) { if ( 'round != getvariableofnpc( .totalround, "Devil Square" ) ) { instance_announce 0, "Devil Square will enter to Round "+( 'round +1 ), bc_all; goto OnSummon; } getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if ( strcharinfo(3) == has_instance("2@g_vs") ) getitem 20054, 1; // reward here } } sleep2 1; instance_destroy; } end; } dunno why the script looks so simple to me ... ... EDITED: a little bit ... EDIT for below : yeah ~ XD rep up
  13. wait wait wait.. wait.... wait .......wait .............. I created mine from scratch, and even compare to terces pvp ladder script ... if terces pvp ladder script doesn't have his bug, then mine should be the same ..... questions ... did you ever use reset ladder function once already ? but even so ... I couldn't reproduce this bug, unless someone else can find it for me holiday_event_ladder.0.3.txt
  14. your posted script can do by itself already or ... post#3 also can ... the rest just getting the topic complicated XD ( PS: we are just exploring other kinds of method to max its efficiency )
  15. with this simple script comment out the lines inside npc/scripts_guild.conf ... however if you use complicated script such as woe controller script in script release section .. need to read their instructions
  16. it's not like I want to brag my scripting skills, but event script is my strongest pointwhy not just turn this script into instanced script ? party leader can offline ...usually event script ... the reward always 1. send to every party member 2. send to killer ( which is "mob_npc_event_type" configure in battle\monster.conf ) 3. the ones that is still alive in the room ... use npc pop up also ... list up all your treasure chest ID
  17. prontera,156,180,5 script kjfhskfhjs 100,{ setoption 0x40, 1; sleep2 1000; setoption 0x40, 0; } however if you mean you want to make the players become spectator mode, I advise better do it with source modifications
  18. this script working exactly fine in my test server and I don't know why your server produce different result from mine
  19. update login set logincount = logincount +1 where account_id = 2000000; result : 1 row affected by the last command, no resultset return update login set logincount = logincount +1 where account_id = 0; result : Query return no result set if there's no query to update, it just send silently and do nothing .... ok ok I know you going to say this if ( $KOEGUILD ) query_sql "UPDATE guild SET guild_points=guild_points +1 WHERE guild_id="+ $KOEGUILD;
  20. replace query_sql "UPDATE guild SET guild_points=guild_points +1 WHERE guild_id="+ getcharid(2); with query_sql "UPDATE guild SET guild_points=guild_points +1 WHERE guild_id="+ $KOEGUILD;
  21. because we can only online 1 character per account in each timethere's no way to online multiple characters in same account at the same time ... isn't it ? prontera,154,184,4 script Test 85,{ .@testID = getcharid(3); mes strcharinfo(0) +" is my name"; mes getcharid(3) +" is my ID"; mes .@testID +" is target ID"; mes rid2name(.@testID) +" is the target name ..."; close; }
  22. your script there if let the script enter while loop that sleep .@interval * 1000; will pause the script for several seconds, then only disablenpc prontera,157,178,5 script Clemy 703,{ end; OnMon0000: OnWed0000: disablenpc strnpcinfo(0); end; OnSun0000: OnTue0000: OnSat0000: enablenpc strnpcinfo(0); OnInit: .@interval = 2; .@step = 5; while (1) { if ( gettime(4) != 0 && gettime(4) != 2 && gettime(4) != 6 ) { // if ( gettime(4) != 0 && gettime(4) != 2 ) { disablenpc strnpcinfo(0); // OnInit doesn't run disablenpc by itself now, and depends on this one to disablenpc itself end; } sleep .@interval * 1000; getmapxy .@map$, .@x, .@y, 1; while ( checkcell( .@map$, .@npc_x = .@x + rand( -.@step, .@step ), .@npc_y = .@y + rand( -.@step, .@step ), cell_chknopass ) ); npcwalkto .@npc_x, .@npc_y; npctalk callfunc( "F_RandMes", 2, "Heloo!!!", // 1 "Goodbye~!" // 2 ); } } hmm ... just need to reorganize the code
  23. yay for this <3http://www.eathena.ws/board/index.php?showtopic=243105 http://www.eathena.ws/board/index.php?showtopic=243358
  24. I have NEVER make an instanced script that need to return the user name in the map its not like this is a juggernaught script or Last Man Standing ... in RO, instanced script is only meant for party uses ( that instance ID is only meant for that party members only ) if needed, can always use getpartymember script command .... seriously, whats the idea behind to makes you do something like this ? EDIT: ... hmm... some trick prontera,156,185,5 script kjdfksfjh 100,{ freeloop 1; while ( getusers(1) > .@count ) { .@nb = query_sql("select account_id from `char` where online = 1 limit 128 offset "+ .@count, .@aid ); .@i = 0; while ( .@i < .@nb ) { if ( attachrid(.@aid[.@i]) ) if ( compare( strcharinfo(3), "1@test" ) || compare( strcharinfo(3), "2@test" ) ) { .@result_name$[ .@result ] = strcharinfo(0); .@result++; } .@i++; } .@count += 128; } freeloop 0; announce "there are "+ .@result +" players in this instance", 0; for ( .@i = 0; .@i < .@result; .@i++ ) announce ( .@i +1 )+". "+ .@result_name$[.@i], 0; end; } but this kind of trick should be avoided ...
×
×
  • Create New...