Jump to content

glemor123

Members
  • Content Count

    287
  • Joined

  • Last visited

Everything posted by glemor123

  1. My client works perfect. but after I patch my client for new custom items using thor patcher. then I try to login in game. It tell Failed to authenticate then failed to connect the server. what could be the problem? i'm using 20120410
  2. the npc won't give the prize to the winner. but only announce the team winner how to fix //////////////////////////////////////////////////////////////////////////endless_war mapflag battleground 2endless_war,218,86,0 script #BattleGroundwarpA2 100,{ end;OnInit: waitingroom "Join Team A(Click)",2,"#BattleGroundwarpA2::OnJoin",1; end;OnJoin: if(!$@bg_id_a) set $@bg_id_a,waitingroom2bg("endless_war",205,85,"",""); else waitingroom2bg_single($@bg_id_a,"endless_war",205,85,"#BattleGroundwarpA2"); warpwaitingpc "endless_war",205,85; end;}endless_war,40,86,0 script #BattleGroundwarpB2 100,{ end;OnInit: waitingroom "Join Team B(Click)",2,"#BattleGroundwarpB2::OnJoin",1; end;OnJoin: if(!$@bg_id_ set $@bg_id_b,waitingroom2bg("endless_war",53,85,"",""); else waitingroom2bg_single($@bg_id_b,"endless_war",53,85,"#BattleGroundwarpB2"); warpwaitingpc "endless_war",53,85; end;}endless_war,165,86,0 script #BattleGroundwarpA1 45,2,2,{changelook 407,1; warp "endless_war",161,86; end;}endless_war,90,86,0 script #BattleGroundwarpB1 45,2,2,{ changelook 374,1; warp "endless_war",94,86; end;}prontera,150,180,4 script Battle Ground 100,{ if(.status==2) { mes "Game is running."; close; } if(.status==1) { if(.playernm>=128) { mes "Sorry, full"; close; } select("Join"); if(!.playerid[1]) { //callsub OnEndd; initnpctimer; } set .playernm,.playernm+1; set .playerid[.playernm],getcharid(0); mes "Complete"; mes "Please Prepare Yourself"; mes "You Will be Warped Into the Battleground After a Few Minutes"; close; } end;OnClock0115:OnClock0315:OnClock0515:OnClock0715:OnClock0915:OnClock1115:OnClock1315:OnClock1515:OnClock1715:OnClock1915:OnClock2205:OnClock2315: callsub OnActive; end;OnActive: callsub OnEndd; set .status,1; Announce "[Battle Ground]:Someone active the game! Go to prontera,150,180 and join us!",0; end;OnTimer60000: if(.playernm<=1) { Announce "[Battle Ground]:Sorry, player amount isn't enough",0; callsub OnEndd; end; } Announce "[Battle Ground]:Event is ready!",0; for(set .@i,1;.@i<=.playernm;set .@i,.@i+1) { if(.@i%2==0) warpchar "endless_war",218,86,.playerid[.@i]; else warpchar "endless_war",40,86,.playerid[.@i]; } callsub OnEnab2; end;OnTimer90000: set .status,2; Announce "[Battle Ground]:Go!",0; bg_monster $@bg_id_a,"endless_war",128,120,"A",1907,"Battle Ground::OnAdestory"; bg_monster $@bg_id_b,"endless_war",127,46,"B",1907,"Battle Ground::OnBdestory"; callsub OnEnab1; end;OnTimer100000: if(.point[1]>.point[2]){ for( set .@i,1; .playerid[.@i]; set .@i,.@i+1 ) { if( attachrid(.playerid[.@i]) ) { if( getcharid(4) == $@bg_id_a ) getitem 7227,10; } } Announce "[Battle Ground]:Team A Win!",0;}else if(.point[2]>.point[1]) { for( set .@i,1; .playerid[.@i]; set .@i,.@i+1 ) { if( attachrid(.playerid[.@i]) ) { if( getcharid(4) == $@bg_id_b ) getitem 7227,10; } } Announce "[Battle Ground]:Team B Win!",0; }else { Announce "[Battle Ground]:Draw!",0; } sleep2 3000; callsub OnEndd; end;OnBdestory: set .point[1],.point[1]+5; set .point[2],.point[2]-3; bg_updatescore "endless_war",.point[1],.point[2]; detachrid; sleep2 10000; bg_monster $@bg_id_b,"endless_war",127,46,"B",1907,"Battle Ground::OnBdestory"; end;OnAdestory: set .point[2],.point[2]+5; set .point[1],.point[1]-3; bg_updatescore "endless_war",.point[1],.point[2]; detachrid; sleep2 10000; bg_monster $@bg_id_a,"endless_war",128,120,"A",1907,"Battle Ground::OnAdestory"; end;OnEndd: set .status,0; bg_destroy $@bg_id_a; bg_destroy $@bg_id_b; set $@bg_id_a,0; set $@bg_id_b,0; setarray .point[1],0,0; killmonsterall "endless_war"; bg_updatescore "endless_war",.point[1],.point[2]; deletearray .playerid[0],128; mapwarp "endless_war","prontera",150,180; callsub OnDisa; return;OnEnab1: enablenpc "#BattleGroundwarpA1"; enablenpc "#BattleGroundwarpB1"; return;OnEnab2: enablenpc "#BattleGroundwarpA2"; enablenpc "#BattleGroundwarpB2"; return;OnDisa: disablenpc "#BattleGroundwarpA1"; disablenpc "#BattleGroundwarpB1"; disablenpc "#BattleGroundwarpA2"; disablenpc "#BattleGroundwarpB2"; return;OnInit: sleep2 10000; setwall "endless_war",218,87,1,1,0,"BattleGroundwarpA21"; setwall "endless_war",219,87,1,1,0,"BattleGroundwarpA22"; setwall "endless_war",219,86,1,1,0,"BattleGroundwarpA23"; setwall "endless_war",219,85,1,1,0,"BattleGroundwarpA24"; setwall "endless_war",218,85,1,1,0,"BattleGroundwarpA25"; setwall "endless_war",217,85,1,1,0,"BattleGroundwarpA26"; setwall "endless_war",217,86,1,1,0,"BattleGroundwarpA27"; setwall "endless_war",217,87,1,1,0,"BattleGroundwarpA28"; setwall "endless_war",40,87,1,1,0,"BattleGroundwarpB21"; setwall "endless_war",41,87,1,1,0,"BattleGroundwarpB22"; setwall "endless_war",41,86,1,1,0,"BattleGroundwarpB23"; setwall "endless_war",41,85,1,1,0,"BattleGroundwarpB24"; setwall "endless_war",40,85,1,1,0,"BattleGroundwarpB25"; setwall "endless_war",39,85,1,1,0,"BattleGroundwarpB26"; setwall "endless_war",39,86,1,1,0,"BattleGroundwarpB27"; setwall "endless_war",39,87,1,1,0,"BattleGroundwarpB28"; callsub OnEndd; end;OnPCKillEvent: if(strcharinfo(3)=="endless_war" && $@bg_id_a && $@bg_id_ { if(getcharid(4) == $@bg_id_a) { set .point[1],.point[1]+1; }else set .point[2],.point[2]+1; bg_updatescore "endless_war",.point[1],.point[2]; } end;}
  3. COOL!. Now it Works. thank you so much
  4. invek,135,164,5 script Guild Package 734,{ .@req_online = 4; // how many players need to online to claim. Default: 11 .@req_lv = 255; // minimum level of .@online players that has to be. Default: MAX_LEVEL in mmo.h mes "^FF0000The Guild Level must be level 50^000000"; mes ""; mes "^FF0000You must have 11 players online^000000 in your guild including the guild master"; mes ""; mes "^FF0000All you the player in the guild must be level 255^000000"; mes ""; mes "^00FF00Bound items^0000FF that gained cannot be "; mes "traded it to other account,sold,"; mes "nor dropped"; next; mes "The Guild Master Will Receive The Following"; mes " ^FF0000 1x Ghostring Card ^000000"; mes " ^FF0000 1x Moonlight Card ^000000"; mes " ^FF0000 4x Turtle General Card ^000000"; mes " ^FF0000 1x Thara Frog Card ^000000"; mes " ^FF0000 1x Orc hero Card ^000000"; mes " ^FF0000 1x Evil Snake Lord Card ^000000"; mes " ^FF0000 1x Raydric Card ^000000"; mes " ^FF0000 1x General Egnigem Cenia Card ^000000"; mes " ^FF0000 1x Hollow Mask(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Helm(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Armor(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Mantue(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shoes(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shield(BOUND) ^000000"; mes " ^FF0000 1000x Super Fish Slice(BOUND) ^000000"; mes " ^FF0000 10x Emergency Level 3 Scroll(BOUND) ^000000"; mes "^00FF00 1x Wing of Choice ^000000"; mes " ^FF0000 Arch demon wing OR Deviling Wing OR Angeling Wing(BOUND) ^000000"; mes "^00FF00 Random Items(BOUND) ^000000"; mes " ^FF0000 1x Earth Headprotector ^000000"; mes " ^FF0000 1x Fire Headprotector ^000000"; mes " ^FF0000 1x Lightning Headprotector ^000000"; mes " ^FF0000 1x Sound Headprotector ^000000"; mes " ^FF0000 1x Water Headprotector ^000000"; next; mes "The Guild Member Will Receive The Following"; mes " ^FF0000 1x Ghostring Card ^000000"; mes " ^FF0000 1x Moonlight Card ^000000"; mes " ^FF0000 4x Turtle General Card ^000000"; mes " ^FF0000 1x Thara Frog Card ^000000"; mes " ^FF0000 1x Orc hero Card ^000000"; mes " ^FF0000 1x Evil Snake Lord Card ^000000"; mes " ^FF0000 1x Raydric Card ^000000"; mes " ^FF0000 1x General Egnigem Cenia Card ^000000"; mes " ^FF0000 1x Hollow Mask(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Helm(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Armor(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Mantue(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shoes(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shield(BOUND) ^000000"; mes " ^FF0000 500x Super Fish Slice(BOUND) ^000000"; mes "^00FF00 1x Wing of Choice ^000000"; mes " ^FF0000 Arch demon wing OR Deviling Wing OR Angeling Wing(BOUND) ^000000"; mes "^00FF00 Random Items(BOUND) ^000000"; mes " ^FF0000 1x Earth Headprotector ^000000"; mes " ^FF0000 1x Fire Headprotector ^000000"; mes " ^FF0000 1x Lightning Headprotector ^000000"; mes " ^FF0000 1x Sound Headprotector ^000000"; mes " ^FF0000 1x Water Headprotector ^000000"; next; if ( !getcharid(2) ) { mes "You must have a guild"; close; } if ( getguildmasterid( getcharid(2) ) != getcharid(0) ) { mes "You cannot request the Guild Package,"; mes "only the guild master can request for the package"; close; } query_sql "SELECT guild_lv FROM guild WHERE guild_id = "+getcharid(2), .@guild_lv; if ( .@guild_lv != 50 ) { mes "You're guild level must be level 50"; close; } getguildmember getcharid(2), 1; getguildmember getcharid(2), 2; for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) .@online++; if ( .@online < .@req_online ) { mes "Your guild must have "+ .@req_online +" guild members online including the guild master"; close; } .@origin = getcharid(3); for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) { attachrid $@guildmemberaid[.@i]; if ( BaseLevel < .@req_lv ) { .@deny_name$[.@c] = strcharinfo(0); .@c++; } } } attachrid .@origin; if ( .@c ) { mes "There are "+ .@c +" member does not meet the level requirement"; mes "All members must be level 255"; mes implode( .@deny_name$, "," ); close; } for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) { attachrid $@guildmemberaid[.@i]; if ( #guild_package_claimeddd1211111 ) { .@deny_name$[.@c] = strcharinfo(0); .@c++; } } } attachrid .@origin; if ( .@c ) { mes "There are "+ .@c +" members already claimed this package within their account"; mes implode( .@deny_name$, "," ); close; } if ( query_sql( "select account_id as aaa, ( select last_ip from login where account_id = aaa ) as last_ip from guild_member where guild_id = "+ getcharid(2) +" group by last_ip", .@aid, .@ip$ ) < .@req_online ) { mes "same ip detected"; .@nb = query_sql( "select name, account_id as aaa, ( select last_ip from login where account_id = aaa ) as last_ip from guild_member where guild_id = "+ getcharid(2), .@name$, .@aid, .@ip$ ); for ( .@i = 0; .@i < .@nb; .@i++ ) mes (.@i +1)+". "+ .@name$[.@i] +" ("+ .@ip$ +")"; next; } mes "pass"; for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) { attachrid $@guildmemberaid[.@i]; if ( getguildmasterid( getcharid(2) ) != $@guildmembercid[.@i] ){ getitem 4047,1; getitem 4058,1; getitem 4143,1; getitem 4330,1; getitem 4133,1; getitem 4352,1; getitem 4131,1; getitem 4305,4; getitembound 30021,1,1; getitembound 30032,1,1; getitembound 30033, 1,1; getitembound 30034, 1,1; getitembound 30035, 1,1; getitembound 30036, 1,1; getitembound 14524, 500,1; getitembound callfunc( "F_Rand", 30082, 30083, 30084, 30085, 30086, 30087 ), 1,1; }else if ( getguildmasterid( getcharid(2) ) == $@guildmembercid[.@i] ){ getitem 4047, 1; getitem 4058, 1; getitem 4143, 1; getitem 4330, 1; getitem 4133, 1; getitem 4352, 1; getitem 4131,1; getitem 4305,4; getitembound 30021, 1,1; getitembound 30032, 1,1; getitembound 30033, 1,1; getitembound 30034, 1,1; getitembound 30035, 1,1; getitembound 30036, 1,1; getitembound 14524, 1000,1; getitembound 12970, 10,1; getitembound callfunc( "F_Rand", 30082, 30083, 30084, 30085, 30086, 30087 ), 1,1;}if( getguildmasterid( getcharid(2) ) != $@guildmembercid[.@i] || getguildmasterid( getcharid(2) ) == $@guildmembercid[.@i]){doevent "validation_sys::OnValidate";} #guild_package_claimeddd1211111 = 1; } } attachrid .@origin; close;} - script validation_sys -1,{OnValidate: switch( select( "Arch demon wing:Deviling Wing:Angeling Wing" ) ) { case 1: //getitem <item id>,<amount> getitembound 30027,1,1;skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; break; case 2: //getitem <item id>,<amount> getitembound 30028,1,1;skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; break; case 3: //getitem <item id>,<amount> getitembound 30030,1,1;skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; break; default: break; } close;} I tried your suggestion GMOcean.but doesn't work
  5. Time Stamp: 0x4c52288f - Fri Jul 30 09:19:11 2010Exception Type: 0xc00000050x0041d863 Test Ragnarok Online.exe0x00532113 Test Ragnarok Online.exe0x005a6696 Test Ragnarok Online.exe0x005a4bb2 Test Ragnarok Online.exe0x005a4796 Test Ragnarok Online.exe0x007030f3 Test Ragnarok Online.exe0x0071762d Test Ragnarok Online.exeeax: 0x00000000 ebx: 0x242a9978ecx: 0x00000000 edx: 0x1e3125ccesi: 0x000000d2 edi: 0x0018fae0ebp: 0x0018faa8 esp: 0x0018faa8stack 0018faa8 - 0018fea80018FAA8 : 04 FB 18 00 13 21 53 00 00 00 00 00 00 00 00 000018FAB8 : 0B 02 00 00 00 00 00 00 00 00 00 00 00 00 00 000018FAC8 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000018FAD8 : 00 00 00 00 00 00 00 00 CE 4F 44 00 0B 00 00 000018FAE8 : 00 00 00 00 FF FF FF FF 00 00 00 00 A0 46 81 000018FAF8 : A0 46 81 00 07 00 00 00 E0 46 81 00 70 FB 18 000018FB08 : 96 66 5A 00 D2 00 00 00 0B 02 00 00 00 00 00 000018FB18 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F0018FB28 : 00 00 00 00 FF FF FF FA 01 00 00 00 78 99 2A 240018FB38 : F0 26 4A 74 80 01 00 00 11 0A 31 1E 0B 00 00 000018FB48 : 1F 00 00 00 80 26 4A 74 71 00 31 1E 0B 00 00 000018FB58 : 1F 00 00 00 71 00 31 1E 11 0A 31 1E BC FB 18 000018FB68 : A0 36 73 00 01 00 00 00 98 FB 18 00 B2 4B 5A 000018FB78 : 00 00 00 00 78 99 2A 24 EF 10 61 75 7C 2C 3E 750018FB88 : 20 35 3E 75 01 00 00 00 00 00 00 00 C8 FB 18 000018FB98 : C8 FB 18 00 96 47 5A 00 72 42 81 00 9A 42 81 00Launch Info018E 018D 016A 016A 013A 00A6 018E 018D0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000Job : Mastersmithbasta yung na seselect langayanyanTime Stamp: 0x4c52288f - Fri Jul 30 09:19:11 2010Exception Type: 0xc00000050x0041d863 Test Ragnarok Online.exe0x00532113 Test Ragnarok Online.exe0x005a6696 Test Ragnarok Online.exe0x005a4bb2 Test Ragnarok Online.exe0x005a4796 Test Ragnarok Online.exe0x007030f3 Test Ragnarok Online.exe0x0071762d Test Ragnarok Online.exeeax: 0x00000000 ebx: 0x242a9978ecx: 0x00000000 edx: 0x1e3125ccesi: 0x000000d2 edi: 0x0018fae0ebp: 0x0018faa8 esp: 0x0018faa8stack 0018faa8 - 0018fea80018FAA8 : 04 FB 18 00 13 21 53 00 00 00 00 00 00 00 00 000018FAB8 : 0B 02 00 00 00 00 00 00 00 00 00 00 00 00 00 000018FAC8 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000018FAD8 : 00 00 00 00 00 00 00 00 CE 4F 44 00 0B 00 00 000018FAE8 : 00 00 00 00 FF FF FF FF 00 00 00 00 A0 46 81 000018FAF8 : A0 46 81 00 07 00 00 00 E0 46 81 00 70 FB 18 000018FB08 : 96 66 5A 00 D2 00 00 00 0B 02 00 00 00 00 00 000018FB18 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F0018FB28 : 00 00 00 00 FF FF FF FA 01 00 00 00 78 99 2A 240018FB38 : F0 26 4A 74 80 01 00 00 11 0A 31 1E 0B 00 00 000018FB48 : 1F 00 00 00 80 26 4A 74 71 00 31 1E 0B 00 00 000018FB58 : 1F 00 00 00 71 00 31 1E 11 0A 31 1E BC FB 18 000018FB68 : A0 36 73 00 01 00 00 00 98 FB 18 00 B2 4B 5A 000018FB78 : 00 00 00 00 78 99 2A 24 EF 10 61 75 7C 2C 3E 750018FB88 : 20 35 3E 75 01 00 00 00 00 00 00 00 C8 FB 18 000018FB98 : C8 FB 18 00 96 47 5A 00 72 42 81 00 9A 42 81 00Launch Info018E 018D 016A 016A 013A 00A6 018E 018D0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000Job : Mastersmith I'm using 2010-07-30. when I use bulk vending skill using the market ticket item. i got this error
  6. u I updated my thread. the problem is a menu popup first to the GM to choose the wing that the GM wants after choosing the wing. A menu pops up to 1 member then choose a wing after choosing a menu will popup to another player. what I want to be solve is that the menu will appear to all the players including the GM in a guild at once. not one at a time
  7. invek,135,164,5 script Guild Package 734,{ .@req_online = 11; // how many players need to online to claim. Default: 11 .@req_lv = 255; // minimum level of .@online players that has to be. Default: MAX_LEVEL in mmo.h mes "^FF0000The Guild Level must be level 50^000000"; mes ""; mes "^FF0000You must have 11 players online^000000 in your guild including the guild master"; mes ""; mes "^FF0000All you the player in the guild must be level 255^000000"; mes ""; mes "^00FF00Bound items^0000FF that gained cannot be "; mes "traded it to other account,sold,"; mes "nor dropped"; next; mes "The Guild Master Will Receive The Following"; mes " ^FF0000 1x Ghostring Card ^000000"; mes " ^FF0000 1x Moonlight Card ^000000"; mes " ^FF0000 4x Turtle General Card ^000000"; mes " ^FF0000 1x Thara Frog Card ^000000"; mes " ^FF0000 1x Orc hero Card ^000000"; mes " ^FF0000 1x Evil Snake Lord Card ^000000"; mes " ^FF0000 1x Raydric Card ^000000"; mes " ^FF0000 1x General Egnigem Cenia Card ^000000"; mes " ^FF0000 1x Hollow Mask(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Helm(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Armor(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Mantue(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shoes(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shield(BOUND) ^000000"; mes " ^FF0000 1000x Super Fish Slice(BOUND) ^000000"; mes " ^FF0000 10x Emergency Level 3 Scroll(BOUND) ^000000"; mes "^00FF00 1x Wing of Choice ^000000"; mes " ^FF0000 Arch demon wing OR Deviling Wing OR Angeling Wing(BOUND) ^000000"; mes "^00FF00 Random Items(BOUND) ^000000"; mes " ^FF0000 1x Earth Headprotector ^000000"; mes " ^FF0000 1x Fire Headprotector ^000000"; mes " ^FF0000 1x Lightning Headprotector ^000000"; mes " ^FF0000 1x Sound Headprotector ^000000"; mes " ^FF0000 1x Water Headprotector ^000000"; next; mes "The Guild Member Will Receive The Following"; mes " ^FF0000 1x Ghostring Card ^000000"; mes " ^FF0000 1x Moonlight Card ^000000"; mes " ^FF0000 4x Turtle General Card ^000000"; mes " ^FF0000 1x Thara Frog Card ^000000"; mes " ^FF0000 1x Orc hero Card ^000000"; mes " ^FF0000 1x Evil Snake Lord Card ^000000"; mes " ^FF0000 1x Raydric Card ^000000"; mes " ^FF0000 1x General Egnigem Cenia Card ^000000"; mes " ^FF0000 1x Hollow Mask(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Helm(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Armor(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Mantue(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shoes(BOUND) ^000000"; mes " ^FF0000 1x Silver Valkyrie Shield(BOUND) ^000000"; mes " ^FF0000 500x Super Fish Slice(BOUND) ^000000"; mes "^00FF00 1x Wing of Choice ^000000"; mes " ^FF0000 Arch demon wing OR Deviling Wing OR Angeling Wing(BOUND) ^000000"; mes "^00FF00 Random Items(BOUND) ^000000"; mes " ^FF0000 1x Earth Headprotector ^000000"; mes " ^FF0000 1x Fire Headprotector ^000000"; mes " ^FF0000 1x Lightning Headprotector ^000000"; mes " ^FF0000 1x Sound Headprotector ^000000"; mes " ^FF0000 1x Water Headprotector ^000000"; next; if ( !getcharid(2) ) { mes "You must have a guild"; close; } if ( getguildmasterid( getcharid(2) ) != getcharid(0) ) { mes "You cannot request the Guild Package,"; mes "only the guild master can request for the package"; close; } query_sql "SELECT guild_lv FROM guild WHERE guild_id = "+getcharid(2), .@guild_lv; if ( .@guild_lv != 50 ) { mes "You're guild level must be level 50"; close; } getguildmember getcharid(2), 1; getguildmember getcharid(2), 2; for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) .@online++; if ( .@online < .@req_online ) { mes "Your guild must have "+ .@req_online +" guild members online including the guild master"; close; } .@origin = getcharid(3); for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) { attachrid $@guildmemberaid[.@i]; if ( BaseLevel < .@req_lv ) { .@deny_name$[.@c] = strcharinfo(0); .@c++; } } } attachrid .@origin; if ( .@c ) { mes "There are "+ .@c +" member does not meet the level requirement"; mes "All members must be level 255"; mes implode( .@deny_name$, "," ); close; } for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) { attachrid $@guildmemberaid[.@i]; if ( #guild_package_claimeddd ) { .@deny_name$[.@c] = strcharinfo(0); .@c++; } } } attachrid .@origin; if ( .@c ) { mes "There are "+ .@c +" members already claimed this package within their account"; mes implode( .@deny_name$, "," ); close; } if ( query_sql( "select account_id as aaa, ( select last_ip from login where account_id = aaa ) as last_ip from guild_member where guild_id = "+ getcharid(2) +" group by last_ip", .@aid, .@ip$ ) < .@req_online ) { mes "same ip detected"; .@nb = query_sql( "select name, account_id as aaa, ( select last_ip from login where account_id = aaa ) as last_ip from guild_member where guild_id = "+ getcharid(2), .@name$, .@aid, .@ip$ ); for ( .@i = 0; .@i < .@nb; .@i++ ) mes (.@i +1)+". "+ .@name$[.@i] +" ("+ .@ip$ +")"; next; } mes "pass"; for ( .@i = 0; .@i < $@guildmembercount; .@i++ ) { if ( isloggedin( $@guildmemberaid[.@i], $@guildmembercid[.@i] ) ) { attachrid $@guildmemberaid[.@i]; if ( getguildmasterid( getcharid(2) ) != $@guildmembercid[.@i] ){ getitem 4047,1; getitem 4058,1; getitem 4143,1; getitem 4330,1; getitem 4133,1; getitem 4352,1; getitem 4131,1; getitem 4305,4; getitembound 30021,1,1; getitembound 30032,1,1; getitembound 30033, 1,1; getitembound 30034, 1,1; getitembound 30035, 1,1; getitembound 30036, 1,1; getitembound 14524, 500,1; getitembound callfunc( "F_Rand", 30082, 30083, 30084, 30085, 30086, 30087 ), 1,1; }else if ( getguildmasterid( getcharid(2) ) == $@guildmembercid[.@i] ){ getitem 4047, 1; getitem 4058, 1; getitem 4143, 1; getitem 4330, 1; getitem 4133, 1; getitem 4352, 1; getitem 4131,1; getitem 4305,4; getitembound 30021, 1,1; getitembound 30032, 1,1; getitembound 30033, 1,1; getitembound 30034, 1,1; getitembound 30035, 1,1; getitembound 30036, 1,1; getitembound 14524, 1000,1; getitembound 12970, 10,1; getitembound callfunc( "F_Rand", 30082, 30083, 30084, 30085, 30086, 30087 ), 1,1;}if( getguildmasterid( getcharid(2) ) != $@guildmembercid[.@i] || getguildmasterid( getcharid(2) ) == $@guildmembercid[.@i]){switch( select( "Arch demon wing:Deviling Wing:Angeling Wing" ) ) { case 1: //getitem <item id>,<amount> getitembound 30027,1,1;skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; break; case 2: //getitem <item id>,<amount> getitembound 30028,1,1;skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; break; case 3: //getitem <item id>,<amount> getitembound 30030,1,1;skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5;skilleffect 34,0; sc_start SC_BLESSING,360000,10;skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; break; default: break; }} #guild_package_claimeddd = 1; } } attachrid .@origin; close;} All the members must be given gpack. but out of 11 players. 2 players was only given. I think thr switch( select( function is the problem. Because after obtaining the freebies. each player including the guild master will choose there own choice of wing
  8. My goldroom delay works. But if the players gets disconnected or leaved the gold room area he/she will need to wait 24 hours even though the player haven't finished the 1 hour. I want that eventhough the player gets disconnected or leaved the gold room. the player can still go back inside the room if the player didn't finish the 1 hour yet // monster spawn for gold droppingordeal_3-2,0,0,0,0 monster Dokebi 1110,700,0,0,"Gold Room::OnGetGold"invek,161,154,3 script Gold Room 745,{function Generatetor;mes "Do you want to go to Gold room ?";mes "It Will Cost You 1,000,000 Zeny";next;mes "If you get Disconnected While Inside the Gold ROOM you can't return to the gold room anymore.";mes "You have to wait for 24 hours to be able to enter the GOLD ROOM again";next;if( Zeny < .zeny_cost ){mes "You Don't have 1 million zeny come back next time";end;}if( select( "Yes","No" ) == 1 ){ next; mes "Bot Checking..."; mes "Enter the ^FF0000RED COLOR^000000 Code.."; .@string$ = Generatetor( 15,rand(5,10) ); mes " "; mes "^0055FF"+Generatetor( 15,rand(2,6) )+" ^FF0000"+.@string$+"^0055FF "+Generatetor( 15,rand(2,6) )+"^000000"; input .@input$; next; if( .@input$ != .@string$ ){ mes "You entered Wrong code."; mes "^777777You will be kicked out from game^000000"; sleep2 3000; atcommand "@kick "+strcharinfo(0); }else{ mes "Done,..you may proceed into Gold Room by paying ^FF0000"+.zeny_cost+" zeny."; if( Zeny >= .zeny_cost ){ if( select( "Pay and Enter Gold Room","Cancel" ) == 1 ){ Zeny -= .zeny_cost; function t;function s; if ( #cooldown_warp > gettimetick(2) ) { mes "you must wait "+ t( #cooldown_warp - gettimetick(2) ); close; } warp .map$,0,0; #cooldown_warp = gettimetick(2) + 86400;// 86400 secs = 1h addtimer ( 3 *60 *40000 ), strnpcinfo(3) +"::OnEvent";// 3 hours end;OnEvent: dispbottom "Gold Hunt is Over"; warp "invek",146,173; end;function t { if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0); .@week = .@left / ( 86400 * 7 ); .@day = .@left / 86400; .@hour = .@left % 86400 / 3600; .@min = .@left % 3600 / 60; .@sec = .@left % 60; return ( ( .@week ? .@week +" week"+ s( .@week ) : "" ) + ( .@day ? .@day +" day"+ s( .@day ) : "" ) + ( .@hour ? .@hour +" hour"+ s( .@hour ) : "" ) + ( .@min ? .@min +" min"+ s( .@min ) : "" ) + ( .@sec ? .@sec +" sec"+ s( .@sec,1 ) : "" ) );function s { return ( ( getarg(0) > 1 ? "s" : "" ) + ( getarg(1,0) ? "" : " " ) ); }} } } }}close;OnGetGold: getitem 969,1; dispbottom "Gained a Gold."; end;OnInit:// map used for gold room.map$ = "ordeal_3-2";// entrance fee.zeny_cost = 1000000;// mapflag listsetarray .mapflag, mf_nomemo, mf_noteleport, mf_nosave, mf_nobranch, mf_notrade, mf_nowarp, mf_nomobloot, mf_nomvploot, mf_noreturn, mf_nowarpto, mf_nocommand, mf_nodrop, mf_novending, mf_nochat, mf_noskill, mf_monster_noteleport;.mapflag_size = getarraysize( .mapflag );for( .@i = 0; .@i < .mapflag_size; .@i++ ) setmapflag .map$,.mapflag[.@i];end;// Generatetor( <mode>,<length> );function Generatetor { .@mode = getarg(0); .@length = getarg(1); if( .@mode & 1 ) setarray .@word$[ getarraysize( .@word$ ) ],"1","2","3","4","5","6","7","8","9","0"; if( .@mode & 2 ) setarray .@word$[ getarraysize( .@word$ ) ],"A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","U","X","Y","Z"; if( .@mode & 4 ) setarray .@word$[ getarraysize( .@word$ ) ],"a","b","c","d","e","f","g","h","j","k","m","n","o","p","q","r","s","t","u","x","y","z"; if( .@mode & 8 ) setarray .@word$[ getarraysize( .@word$ ) ],"!","@","#","$","%","^","&","*","(",")","-","=","/","+"; .@word_size = getarraysize( .@word$ ); while( getstrlen( .@string$ ) < .@length ) .@string$ = .@string$ + .@word$[ rand( .@word_size ) ]; return .@string$;}waitingroom "Gold Room",0;}// Warpsordeal_3-2.gat,130,193,0 warp testwrp#1 3,3,ordeal_3-2.gat,154,154ordeal_3-2.gat,106,154,0 warp testwrp#2 3,3,ordeal_3-2.gat,154,154ordeal_3-2.gat,201,129,0 warp testwrp#3 3,3,ordeal_3-2.gat,154,154ordeal_3-2.gat,177,193,0 warp testwrp#4 3,3,ordeal_3-2.gat,154,154ordeal_3-2.gat,289,129,0 warp testwrp#5 3,3,ordeal_3-2.gat,154,154
  9. I'm requesting for the source on how to enable Star Gladiators to Use Parryling with Books
  10. //=============Valkyrie Quest============== //===================== BTS ===================================================== function script epoch_time { .@time = getarg(0); .@hour = ( .@time / 3600 ); .@min = ( .@time % 3600 / 60 ); .@sec = ( .@time % 3600 % 60 ); return sprintf( "%02d hr %02d min %02d sec",.@hour,.@min,.@sec );} invek,177,166,2 script Break The Seal 811,{ mes "[ Break The Seal ]";if ( BaseLevel < .level[0] || JobLevel < .level[1] ) { mes"Only Base Level "+.level[0]+" and Job Level "+.level[1]+" Player can use my services.";}else if ( bry_bry >= 1 ) { mes "You've already surpassed this quest and there is no point in doing it again.";}else if ( hen_hen >= 1 ) { mes "Go out and search the Fields of Payon the Fields of Geffen and the Towns of Lighthalzen and Comodo for the Valkyrie Equipments";}else if ( gettimetick(2) < #delay_bst ) { mes "Break the Seal Quest Cooldown."; mes "Cool down: "+epoch_time( #delay_bst - gettimetick(2) );}else { mes "I will foretell you about Breaking the Seal Quest"; mes "I am the guardian of the seal, break it and recieve my treasure."; next; mes "[ Break The Seal ]"; mes "These are what I need"; for ( .@i = 0; .@i < .item_size; .@i += 2 ) { mes "^777777 ~ "+.item[.@i+1]+" x "+getitemname( .item[.@i] )+"^000000"; if ( countitem( .item[.@i] ) < .item[.@i+1] ) .@fail++; } next; mes "[ Break The Seal ]"; if ( .@fail ) { mes "*piff*"; mes "You lack some items."; mes "I do not accept cowardice, come back to me when you're brave enough."; } else { mes "So, are you up to my quest dear child?"; if ( select( "Yes!.","No, I'm Sorry.") == 2 ) { mes "[ Break The Seal ]"; mes "Well too bad"; mes "Child, I don't like to call you a coward, but you are."; } else { for ( .@i = 0; .@i < .item_size; .@i += 2 ) delitem .item[.@i],.item[.@i+1]; mes "Another brave one succeded."; next; .@gamble1 = rand( 500 ); if ( .@gamble1 > 200 && .@gamble1 < 205 ) { .@gamble2 = rand( 10 ); if ( .@gamble2 < 3 ) .@item = 7086; else if ( .@gamble2 < 5 ) .@item = 7090; else if ( .@gamble2 < 7 ) .@item = 7091; else if ( .@gamble2 < 9 ) .@item = 7077; else .@item = 7078; } else if ( .@gamble1 <= 200 ) .@item = 7086; // esg else if ( .@gamble1 <= 300 ) .@item = 7090; // ripple else if ( .@gamble1 <= 400 ) .@item = 7091; // billow else if ( .@gamble1 <= 480 ) .@item = 7077; // silver else .@item = 7078; // wov getitem .@item,1; set ron_ron,1; #delay_bst = gettimetick(2) + .delay; mes "[ Break The Seal ]"; mes "Ah, you have out done your self!"; mes "Thank you for your aid."; mes "Now start your journey to find my Nephews who hold the Valkyries"; announce "Wow! The Seal has been annihilated by "+strcharinfo(0)+" He has just broken the seal and will start the quest of Valkyrie!",0x33FF66; } }}close; OnInit: .delay = 604800; setarray .level,255,120; setarray .item, 1054,100, 7289,50, 7297,50, 7018,20, 7020,20, 7035,15, 1009,200, 7442,100, 7227,30, 4399,1; .item_size = getarraysize( .item ) - 1; end;} pay_fild10.gat,182,157,5 script Kimuel 900,{ mes "[ Kimuel ]";if ( bry_bry >= 1 ) { mes "This quest, once done there is no more repeating";}else if ( kim_kim >= 1) { mes "As I said, complete the Valkyrie Quest"; mes "And then speak to Bryan";}else if ( ron_ron < 1 ) { mes "Are you the delivery boy of Pizza Hut?"; mes "If not go away I don't need you!";}else if ( gettimetick(2) < #delay_bst ) { mes "Break the Seal Quest Cooldown."; mes "Cool down: "+epoch_time( #delay_bst - gettimetick(2) );}else { mes "Oh Grasya Santisimo!!"; mes "You have spoken to Uncle Break The Seal!?"; next; mes "[ Kimuel ]"; mes "By the way I am Kimuel of Payon the Crafter of the Valkyrie Armor"; mes "Would you like to possess it?"; next; mes "[ Kimuel ]"; if ( select( "Yes, I deserve it!","No, I'm not good enough." ) == 2 ) { mes "Wacha Wachi Wacho... Go! Shoooo"; mes "Just speak to me if you want it already"; } else { mes "This Great Armor is very complicated, it needs very rare materials to craft it. If you really want to possess it gather these items for me"; next; for ( .@i = 0; .@i < .item_size; .@i += 2 ) { mes "^777777 ~ "+.item[.@i+1]+" x "+getitemname( .item[.@i] )+"^000000"; if ( countitem( .item[.@i] ) < .item[.@i+1] ) .@fail++; } next; mes "[ Kimuel ]"; if ( .@fail ) { mes "As I said, one missing material and all the others go to waste"; } else { mes "[ Kimuel ]"; mes "Very well done my friend you have finished the quest and acquired the Valkyrie Armor."; for ( .@i = 0; .@i < .item_size; .@i += 2 ) delitem .item[.@i],.item[.@i+1]; mes "Another brave one succeded."; next; getitem 2357,1; set kim_kim,1; #delay_bst = gettimetick(2) + .delay; next; mes "[ Kimuel ]"; mes "Good Job! Enjoy your precious item."; mes "Now, go ahead and seek my Brothers and Cousins to finish the quest"; mes "And when you gain the Valkyrie Set speak to Bryan"; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie"; announce "Wow!"+strcharinfo(0)+" has just acquired the mystical Valkyrie Armor.",8; } }}close; OnInit: .delay = 604800; setarray .item, 7443,300, 7444,300, 2315,1,7227,30, 4330,1; .item_size = getarraysize( .item ) - 1; end;} gef_fild07.gat,185,249,5 script Jhep 899,{ mes "[ Jhep ]";if ( bry_bry >=1 ) { mes "Dude, you can only do this quest once!";}else if ( jhe_jhe >=1 ) { mes "Complete the Valkyrie Quest and speak to Bryan";}else if ( ron_ron < 1 ) { mes "I am sight seeing, don't disturb me"; mes "Go far far away from me!!";}else if ( gettimetick(2) < #delay_bst ) { mes "Break the Seal Quest Cooldown."; mes "Cool down: "+epoch_time( #delay_bst - gettimetick(2) );}else { mes "Oh, you know my Uncle?"; mes "Well, nice to meet you. I'm Jhep"; mes "I craft the Valkyrie Shield"; mes "Would you like me to craft the said shield for you?"; next; mes "[ Jhep ]"; if ( select( "Okay","Nope" ) == 2 ) { mes "Okay, talk to me later."; } else { mes "The Valkyrie Shield is a very difficult item to craft and the materials are rare. Well if you're sure you want to make it.."; mes "Then these are the items I need."; next; mes "[ Jhep ]"; for ( .@i = 0; .@i < .item_size; .@i += 2 ) { mes "^777777 ~ "+.item[.@i+1]+" x "+getitemname( .item[.@i] )+"^000000"; if ( countitem( .item[.@i] ) < .item[.@i+1] ) .@fail++; } if ( .@fail ) { mes "You don't have the items!"; } else { mes "Wow, thanks!"; for ( .@i = 0; .@i < .item_size; .@i += 2 ) delitem .item[.@i],.item[.@i+1]; mes "Nicely done isn't? Enjoy the shield"; mes "So now, continue to search for my friends."; mes "And when you gain the Valkyrie Set speak to Bryan"; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie"; announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Valkyrie Shield.",8; set jhep_jhe,1; #delay_bst = gettimetick(2) + .delay; } }}close; OnInit: .delay = 604800; setarray .item, 7451,200, 2104,1, 7444,300,7227,30, 4441,1; .item_size = getarraysize( .item ) - 1; end;} lighthalzen.gat,189,297,5 script Frame 904,{ mes "[ Frame ]";if ( bry_bry >= 1 ) { mes "Nice to meet you again brave warrior. How is life treating you with your new godly equips?";}else if ( fra_fra >= 1 ) { mes "Search my cousins and after that, find Bryan!";}else if ( ron_ron < 1 ) { mes "I miss Donna"; mes "I wish I could see her again";}else if ( gettimetick(2) < #delay_bst ) { mes "Break the Seal Quest Cooldown."; mes "Cool down: "+epoch_time( #delay_bst - gettimetick(2) );}else { mes "You have spoken to my great Uncle Break The Seal?"; mes "I am Frame, the crafter of Valkyrie Shoes"; mes "Would you like me to craft you the shoes?"; next; if ( select( "Sure","Maybe Later" ) == 2 ) { mes "Talk to me when you want it already."; } else { mes "The shoe is quite brittle."; mes "So it needs some items to harness it."; mes "I require you to give me these items"; next; for ( .@i = 0; .@i < .item_size; .@i += 2 ) { mes "^777777 ~ "+.item[.@i+1]+" x "+getitemname( .item[.@i] )+"^000000"; if ( countitem( .item[.@i] ) < .item[.@i+1] ) .@fail++; } if ( .@fail ) { mes "Hurry up! I have something to do."; } else { mes "Oh thank you!"; for ( .@i = 0; .@i < .item_size; .@i += 2 ) delitem .item[.@i],.item[.@i+1]; set fra_fra,1; #delay_bst = gettimetick(2) + .delay; next; mes "[ Frame ]"; mes "Good one boy! Enjoy the shoes"; mes "And continue the holy Valkyrie Quest"; mes "And when you gain the Valkyrie Set speak to Bryan"; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie"; announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Valkyrie Shoes.",8; } }}close; OnInit: .delay = 604800; setarray .item, 7450,100, 7444,300, 2405,1,7227,30, 4236,1; .item_size = getarraysize( .item ) - 1; end;} comodo.gat,172,229,5 script JmKhov 731,{ mes "[ JmKhov ]";if ( bry_bry >= 1 ) { mes "Wow, you're one of the Mega-Warrior! How is life treating you my friend?";}else if ( jmk_jmk >=1 ) { mes "Finish my Uncle's quest and speak to Bryan at the Valkyrie";}else if ( ron_ron < 1 ) { mes "Hi?."; mes "Now fly, you noob!";}else if ( gettimetick(2) < #delay_bst ) { mes "Break the Seal Quest Cooldown."; mes "Cool down: "+epoch_time( #delay_bst - gettimetick(2) );}else { mes "So you know my uncle Break The Seal? Wow that's great!"; mes "I can make the Valkyrie Manteau for you!"; mes "You surely want it noob?"; next; mes "[ JmKhov ]"; if ( select( "Yeye","Newvermind,thanks" ) == 2 ) { mes "Huhu *sob*! You've wasted my time! Get lost noob!"; } else { mes "Oh, holy! Give me these items right away!"; next; for ( .@i = 0; .@i < .item_size; .@i += 2 ) { mes "^777777 ~ "+.item[.@i+1]+" x "+getitemname( .item[.@i] )+"^000000"; if ( countitem( .item[.@i] ) < .item[.@i+1] ) .@fail++; } if ( .@fail ) { mes "Incomplete items, noob!"; } else { mes "I see, you're a trustworthy one."; for ( .@i = 0; .@i < .item_size; .@i += 2 ) delitem .item[.@i],.item[.@i+1]; getitem 2524,1; set jmk_jmk,1; #delay_bst = gettimetick(2) + .delay; mes "[ JmKhov ]"; mes "Rawr! Take this robe and continue the Valkyrie Quest,"; mes "And when you gain the Valkyrie Set speak to Bryan."; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie"; announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Valkyrie Manteau.",8; } }}close; OnInit: .delay = 604800; setarray .item, 7450,100, 7444,300, 2405,1,7227,30, 4236,1; .item_size = getarraysize( .item ) - 1; end;} valkyrie.gat,49,49,5 script Bryan 733,{ mes "[ Bryan ]";mes "Hello there child, I am Bryan.";next;mes "[ Bryan ]";if ( bry_bry >= 1 ) { mes "You have already gained 100 Credit"; mes "How dare you speak to me again!? Now, I order you to go back to Prontera!"; next; percentheal -100,0; warp "prontera.gat",0,0;}else if ( countitem(2524) < 1 || countitem(2421) < 1 || countitem(2357) < 1 || countitem(2115) < 1 ) { mes "Oh my bad, I see you are just another newbie."; mes "Go fly away";}else if ( jmk_jmk < 1 ) { mes "Oh my bad, I see you are just another newbie."; mes "Go fly away"; close;}else if ( gettimetick(2) < #delay_bst ) { mes "Break the Seal Quest Cooldown."; mes "Cool down: "+epoch_time( #delay_bst - gettimetick(2) );}else { mes "Good you have the Valkyrie Set if you must know I am the crafter of the 100 Credit."; next; mes "[ Bryan ]"; mes "I see, You really have spoken to my brothers."; mes "Very well then!"; next; mes "[ Bryan ]"; mes "By the way I am Bryan of the Valkyries and you already know what I make."; mes "Do you desire to have the 100 Credits?"; next; if ( select( "Yes","No") == 2 ) { mes "Go away! If you don't want it. You're wasting my time already."; mes "Just speak to me if you're ready."; } else { mes "[ Bryan ]"; mes "The Great Sleipnir named after Odin's trustee"; mes "Steed, is the most powerful shoe in the land"; mes "Gather these items so I may craft it"; next; for ( .@i = 0; .@i < .item_size; .@i += 2 ) { mes "^777777 ~ "+.item[.@i+1]+" x "+getitemname( .item[.@i] )+"^000000"; if ( countitem( .item[.@i] ) < .item[.@i+1] ) .@fail++; } if ( .@fail ) { mes "You lack of items, complete it!"; mes "I will be waiting for you great one."; } else { mes "Very well done child."; mes "You are very good!"; for ( .@i = 0; .@i < .item_size; .@i += 2 ) delitem .item[.@i],.item[.@i+1]; getitem 30005,100; set bry_bry,1; #delay_bst = gettimetick(2) + .delay; mes "You are now a Mega-Warrior of Innovative Ragnarok Online"; mes "Go wild and free, you noble man"; announce "Raise the Roof! "+strcharinfo(0)+" has just become the Mega-Warrior and gained 100 Credits.",8; } }}close; OnInit: .delay = 604800; setarray .item,7435,300, 7035,300, 969,300,7227,30, 7227,100; .item_size = getarraysize( .item ) - 1; end;} I set it to 7 days. then I finished the first requirements then waited for 7 days. after 7 days. the npc require me again to give all the quest requirements from the beginning. I only reach the first step. I keep in repeating it. how to fix it
  11. Internalguard also is dead or dying.
  12. glemor123

    pub house

    if there is a trading house. how about a pub house. As we can see to other RO that there are tons of pub in 1 place. how about creating an npc where a player can post his pub there. then another player can reply to a pub then a one who posted the pub will be notified.
  13. I'm using 20100730 client when i try to click the pub of the player that has a buying store. my client will stop responding how to fix? Also How to fix the price limit
  14. It's seems that i had found the problem. i'm using 2010-07-30 and the weapon type is 4 and should be 5 because of the latest GIT i'm using. I changed all my weapon type to 4. because if it is weapon type 5. when i put it in my storage it goes to armor tab.how to fix the problem for 2010 client users? help!
  15. when i refine using the weapon refine skill of the whitesmith nothing happens. what could be the problem? i tried any kind of weapon. i have the right requirement but still it doesnt work. when i press ok nothing happens
  16. when A Gm right click a player. a spam about account info will occur i tried already this fix but didn't work 2010-07-30 here http://rathena.org/board/tracker/issue-9186-infinite-account-info-spam-for-2010-07-30/ http://rathena.org/board/topic/94135-infinite-accinfo-on-charcters/
  17. got it but how to randomize the rewards. so that 1 reward only will be given randomly.
  18. //===== rAthena Script =======================================//= Euphy's WOE Controller//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.5//===== Compatible With: =====================================//= rAthena Project//===== Description: =========================================//= A controller for War of Emperium designed for//= simplicity and ease of use.//= Many concepts taken from ToastOfDoom's script,//= and "rewards" function originally by Goddameit.//===== Additional Comments: =================================//= Be sure to disable the default agit controllers!//== npcguildagit_controller.txt//== npcguild2agit_start_se.txt//============================================================// Information NPC//============================================================invek,138,149,5 script WOE Information 835,{ doevent "WOE_CONTROL::OnMenu"; end;OnAgitStart: while(agitcheck()) { specialeffect EF_BEGINSPELL6; sleep 425; } end; OnInit: waitingroom "Woe Information",0; end;}// Script Core//============================================================- script WOE_CONTROL -1,{function Disp_Owner; function Add_Zero;OnInit: // -----------------------------------------------------------// Configuration settings.// ----------------------------------------------------------- set .CastleWarp,0; // 1: Always enable all castle warps. | 0: Warp only to active castles. set .AutoKick,1; // Automatically kick players from inactive castles during WOE? (1:yes / 0:no) set .NoOwner,1; // Automatically kick players from unconquered castles outside of WOE? (1:yes / 0:no) set .ExitWarp,0; // Warp all players from castles when WOE ends? (1:yes / 0:no) set .GMAccess,99; // GM level required to access Session Manager.// -----------------------------------------------------------// Reward options.// -----------------------------------------------------------// [1] Enable rewards.// [2] Mail all rewards.// - If not set, players receive items in their inventory.// - Only ONE item can be sent via mail, plus Zeny.// - Note that offline players do NOT receive rewards.// [4] Only reward Guild Masters.// - If not set, all guild members are rewarded.// - If mailing is enabled (option 2), offline Guild Masters WILL receive rewards.// [8] Duplicate IP check.// - Members in a guild with the same IP address are not rewarded.// - If Guild Masters is enabled (option 4), this feature is not used.// ----------------------------------------------------------- // Combine values as needed (e.g. 1|8 = 1+8 = 9). set .Options, 1|8; // Rewards per castle. // -- when given directly: <itemID>,<amount>{,<itemID>,<amount>,...} // -- via mail (option 2): <itemID>,<amount>,<Zeny> setarray .Reward[0],607,100;// -----------------------------------------------------------// Constants (leave this section alone).// ----------------------------------------------------------- setarray .Castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; setarray .EndLabel$[0],"ar01","ar02","ar03","ar04","ar05","sc01","sc02","sc03","sc04","sc05"; setarray .Days$[0],"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"; setarray .Regions$[0],"Prontera","Payon","Geffen","Aldebaran","Arunafeltz","Schwaltzvalt"; setarray .Map$[0],"prt_gld","pay_gld","gef_fild13","alde_gld","aru_gld","sch_gld"; setarray .MapX[0],134,240,153,111,208,121,295,317,140,204,214,308,143,193,305,48, 95,142,239,264,158,83, 68,299,292,293,288, 97,137, 71; setarray .MapY[0], 65,128,137,240,240,233,116,293,160,266, 75,240,240,278, 87,83,249, 85,242, 90,272,47,155,345,107,100,252,196, 90,315;// ----------------------------------------------------------- set .Size, getarraysize($WOE_CONTROL); if (.AutoKick || .NoOwner) for(set .@i,0; .@i<30; set .@i,.@i+1) { setmapflag .Castles$[.@i], mf_loadevent; setd "."+.Castles$[.@i], .@i; } if (!agitcheck() && !agitcheck2()) sleep 4000; set .Init,1;OnMinute00: freeloop(1); if (agitcheck() || agitcheck2()) { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) == $WOE_CONTROL[.@i+2]) { OnWOEEnd: announce "The War Of Emperium is over!",bc_all|bc_woe; AgitEnd; AgitEnd2; sleep 1000; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1); if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3; } if (.Options&1 && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0]; deletearray .Active[0],2; if (.ForceEnd) { set .ForceEnd,0; end; } break; } } if ((!agitcheck() && !agitcheck2()) || .Init) { if (!agitcheck() && !agitcheck2()) set .Init,0; for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { deletearray .Active[0],2; set .Active[0], $WOE_CONTROL[.@i+3]; if (.Init) { AgitEnd; AgitEnd2; } else announce "The War Of Emperium has begun!",bc_all|bc_woe; sleep 1000; AgitStart; AgitStart2; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) { if (!.Init) Disp_Owner(.Castles$[.@j],0); set .Active[1], .Active[1] | (1<<((.@j/5)+1)); } else { if (.@j<20) { donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd"; killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak"; } else { donpcevent "Manager#"+.Castles$[.@j]+"::OnAgitEnd2"; killmonster .Castles$[.@j], "Steward#"+.EndLabel$[.@j-20]+"::OnStartArena"; } } } break; } } set .Init,0; end;function Disp_Owner { set .@o, getcastledata(getarg(0),1); if (.@o) announce "The ["+getcastlename(getarg(0))+"] castle "+((getarg(1))?"has been conquered":"is currently held")+" by the ["+getguildname(.@o)+"] guild.",bc_all|bc_woe; else announce "The ["+getcastlename(getarg(0))+"] castle is currently unoccupied.",bc_all|bc_woe; return;}function Add_Zero { return ((getarg(0)<10)?"0":"")+getarg(0)+(getarg(1,0)?".":":")+"00";}OnReward: set .@sql$, ((.Options&4)?"position = 0":"online = 1"); if (.Options&2) set .@str$,gettimestr("%B %d, %Y",21); freeloop(1); for(set .@i,0; .@i<30; set .@i,.@i+1) if (getarg(0)&(1<<.@i)) { set .@gid, getcastledata(.Castles$[.@i],1); if (!.@gid) continue; set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); for(set .@j,0; .@j<.@size; set .@j,.@j+1) { if (.Options&8 && !(.Options&4)) { set .@ip$, replacestr(getcharip(.@aid[.@j]),".","a"); if (getd(".@ip_"+.@i+"_"+.@ip$)) continue; setd ".@ip_"+.@i+"_"+.@ip$,1; } if (.Options&2) { query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"+.@cid[.@j]+",'** Siege Reward: "+getcastlename(.Castles$[.@i])+" **',"+ "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "+.@str$+".% % % % % [ Your reward is attached. ]',"+ .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))"); if (!getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) { setd ".@str_"+.@cid[.@j],1; message rid2name(.@aid[.@j]),"You've got mail! Please re-login to update your mailing list."; } } else if (isloggedin(.@aid[.@j])) { for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2) getitem .Reward[.@k], .Reward[.@k+1], .@aid[.@j]; message rid2name(.@aid[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+"."; } } } if (.Options&2) query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'"); return;OnPCLoadMapEvent: if (!compare(strcharinfo(3),"g_cas")) end; if (((.AutoKick && .Active[0]) || (.NoOwner && !getcastledata(strcharinfo(3),1))) && !(.Active[0]&(1<<getd("."+strcharinfo(3))))) { if (getcharid(2) && getcastledata(strcharinfo(3),1) == getcharid(2)) end; sleep2 1000; message strcharinfo(0), getcastlename(strcharinfo(3))+" is currently inactive."; sleep2 5000; if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0; } end;OnMenu:while(1) { mes "[WOE Information]"; if (agitcheck() || agitcheck2()) { if (.Active[0]) { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { set .@i, $WOE_CONTROL[.@i+2]; break; } mes "The War of Emperium is ^0055FFactive^000000 until ^FF0000"+Add_Zero(.@i)+"^000000 in the following regions:"; mes " "; for(set .@i,0; .@i<6; set .@i,.@i+1) if (.Active[1]&(1<<(.@i+1))) mes " > ^777777"+.Regions$[.@i]+"^000000"; } else mes "The War of Emperium is ^0055FFactive^000000."; } else { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if ((gettime(4) == $WOE_CONTROL[.@i] && gettime(3) <= $WOE_CONTROL[.@i+1]) || gettime(4) < $WOE_CONTROL[.@i]) { setarray .@time[0],$WOE_CONTROL[.@i],$WOE_CONTROL[.@i+1]; break; } if (!getarraysize(.@time)) setarray .@time[0],$WOE_CONTROL[0],$WOE_CONTROL[1]; mes "The War of Emperium is ^777777inactive^000000."; if (.Size) { mes " "; mes "The next session will begin"; mes "on ^0055FF"+.Days$[.@time[0]]+"^000000 at "+Add_Zero(.@time[1])+"^000000."; } } next; switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp to castles...":"")+": ~ Check schedule...: ~ View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manage sessions...")+": ~ ^777777Cancel^000000")) { case 1: if (.CastleWarp) set .@clr$,"^0055FF"; set .@menu$,""; for(set .@i,0; .@i<6; set .@i,.@i+1) { if (.CastleWarp || .Active[1]&(1<<(.@i+1))) set .@menu$, .@menu$+" ~ "+((.Active[1]&(1<<(.@i+1)))?.@clr$:"^777777")+.Regions$[.@i]+" Castles^000000"; set .@menu$, .@menu$+":"; } set .@i, select(.@menu$)-1; set .@menu$,""; for(set .@j,.@i*5; .@j<(.@i*5)+5; set .@j,.@j+1) { if (.CastleWarp || .Active[0]&(1<<.@j)) set .@menu$, .@menu$+" ~ "+((.Active[0]&(1<<.@j))?.@clr$:"^777777")+getcastlename(.Castles$[.@j])+"^000000"; set .@menu$, .@menu$+":"; } set .@j, select(.@menu$)-1; warp .Map$[.@i],.MapX[(.@i*5)+.@j],.MapY[(.@i*5)+.@j]; close; case 2: mes "[Schedule]"; if (.Size) { freeloop(1); for(set .@i,0; .@i<.Size; set .@i,.@i+4) { mes "> ^FF0000"+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1])+"-"+Add_Zero($WOE_CONTROL[.@i+2])+")^000000"; for(set .@j,0; .@j<30; set .@j,.@j+1) if ($WOE_CONTROL[.@i+3]&(1<<.@j)) mes " ~ "+getcastlename(.Castles$[.@j])+" ^777777("+.Castles$[.@j]+")^000000"; if (.@i+4 < .Size) mes " "; } freeloop(0); } else mes "No times are configured."; next; break; case 3: mes "[Castle Ownership]"; for(set .@i,0; .@i<6; set .@i,.@i+1) { set .@k, .@i*5; mes "> ^FF0000"+.Regions$[.@i]+"^000000"; for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) { set .@t, getcastledata(.Castles$[.@j],1); mes " ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000"; } if (.@i < 5) mes " "; } next; break; case 4: while(1) { mes "[Session Manager]"; mes "There are ^0055FF"+(.Size/4)+" session(s)^000000 configured."; mes "What would you like to do?"; next; switch(select(" ~ Add a session...: ~ Delete a session...: ~ Reload settings...:"+((agitcheck() || agitcheck2())?" ~ End WOE session...":"")+": ~ ^777777Go back^000000")) { case 1: mes "[New Session]"; if (.Size > 127) { mes "You have already reached the maximum of 32 sessions."; next; break; } mes "Select a day."; next; set .@Day, select(" ~ "+implode(.Days$,": ~ "))-1; mes "[New Session]"; mes "Select a start time for ^0055FF"+.Days$[.@Day]+"^000000."; next; set .@menu$,""; for(set .@i,0; .@i<23; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; set .@Start, select(.@menu$)-1; mes "[New Session]"; mes "Select an end time for ^0055FF"+.Days$[.@Day]+"^000000."; next; set .@menu$,""; for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; set .@End, select(.@menu$)+.@Start; for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (.@Day == $WOE_CONTROL[.@i] && ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) || (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) || (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) { mes "[New Session]"; mes "The chosen times overlap with an existing session."; next; set .@d,1; break; } if (.@d) { set .@d,0; break; } set .@Castle,0; while(1) { mes "[New Session]"; mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000"; mes " > Castles:"; if (!.@Castle) mes " ~ ^777777(none selected)^000000"; else for(set .@i,0; .@i<30; set .@i,.@i+1) if (.@Castle&(1<<.@i)) mes " ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")"; next; set .@menu$,((.@Castle)?" ~ ^FF0000Finished...^000000":"")+":"; for(set .@i,0; .@i<30; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:"; set .@i, select(.@menu$)-1; if (.@i) set .@Castle, .@Castle^(1<<(.@i-1)); else { mes "[New Session]"; mes "Are you sure?"; next; switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) { case 1: for(set .@i,0; .@i<.Size; set .@i,.@i+4) if ((.@Day == $WOE_CONTROL[.@i] && .@End <= $WOE_CONTROL[.@i+1]) || .@Day < $WOE_CONTROL[.@i]) { set .@d,1; break; } if (!.@d) { set .@d,1; set .@i,.Size; } copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i; setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle; set .Size, getarraysize($WOE_CONTROL); case 3: mes "[New Session]"; mes ((.@d)?"Session added.":"Cancelled."); next; set .@d,1; case 2: break; } if (.@d) { set .@d,0; break; } } } break; case 2: mes "[Remove Session]"; if (!.Size) { mes "There are no sessions configured."; next; break; } mes "Select a session to remove."; next; set .@menu$,""; for(set .@i,0; .@i<.Size; set .@i,.@i+4) set .@menu$, .@menu$+" ~ "+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1],1)+"-"+Add_Zero($WOE_CONTROL[.@i+2],1)+"):"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; set .@i, select(.@menu$)-1; if (.@i == (.Size/4)) break; mes "[Remove Session]"; mes "Delete ^0055FF"+.Days$[$WOE_CONTROL[.@i*4]]+"'s^000000 session?"; mes "This action cannot be undone."; next; set .@j, select(" ~ ^FF0000Delete session...^000000: ~ ^777777Cancel^000000"); mes "[Remove Session]"; if (.@j == 2) mes "Cancelled."; else { deletearray $WOE_CONTROL[.@i*4],4; set .Size, getarraysize($WOE_CONTROL); mes "Session deleted."; } next; break; case 3: mes "[Reload Settings]"; mes "This will trigger all events related to new session configurations, if any."; if (agitcheck() || agitcheck2()) { mes " "; mes "Be aware that this will disrupt the current WOE session."; } next; set .@i, select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000"); mes "[Reload Settings]"; if (.@i == 2) mes "Cancelled."; else { set .Init,1; donpcevent "WOE_CONTROL::OnMinute00"; mes "Variables have been re-initialized."; } next; break; case 4: mes "[Force Agit End]"; if (!agitcheck() && !agitcheck2()) { mes "WOE has already ended."; next; break; } mes "This command will safely execute all AgitEnd events."; mes " "; mes "Kill the current WOE session?"; next; set .@i, select(" ~ ^FF0000End session...^000000:"+((.Options&1)?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000"); mes "[Force Agit End]"; if (.@i == 3) mes "Cancelled."; else { set .ForceEnd, .@i; donpcevent "WOE_CONTROL::OnWOEEnd"; mes "WOE session terminated."; } next; break; case 5: set .@d,1; break; } if (.@d) { set .@d,0; break; } } break; case 5: close; } }} how to enable this so that the rewards will be given to all the guild members including the guild master?
  19. sorry about that. edited. you can now see a bigger image You should have SQL table named mob_db_re <- If Using RE or mob_db <- If Using Pre-re You can find those tables on "sql-files/" folder ohh. I forgot to import my mob.sql thank you
  20. sorry about that. edited. you can now see a bigger image
  21. attached the image of the problem how to fix it? //===== rAthena Script =======================================//= Hunting Missions//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.4//===== Compatible With: ===================================== //= rAthena Project//===== Description: =========================================//= Random hunting missions.//= Rewards are based on quest difficulty.//= //= NOTE: Requires SQL mob database.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.1 Small improvements and fixes.//= 1.2 Added party support and replaced blacklists with an//= SQL query, both thanks to AnnieRuru.//= 1.3 Re-added a blacklist adapted for the SQL query.//= 1.3a Added mission reset options.//= 1.3b Function updates.//= 1.4 Check for deleted characters, thanks to AnnieRuru.//= Syntax updates and style cleaning.//============================================================invek,187,193,3 script Hunting Missions 951,{function Chk; mes "[Hunting Missions]"; mes "Hello, " + strcharinfo(0) + "!"; if (!#Mission_Delay) { next; mes "[Hunting Missions]"; mes "I can't find any records..."; mes "You must be new here!"; emotion e_omg; next; callsub Mission_Info; emotion e_go; #Mission_Delay = 1; close; } mes rand(2) ? "Working hard, as always..." : "Not slacking, I hope..."; mes "Is there anything I can help"; mes "you with?"; mes " "; mes "^777777~ You've completed " + callfunc("F_InsertPlural",Mission_Total,"mission",0,"^0055FF%d^777777 %s") + ". ~^000000"; next; switch(select( ((!Mission0) ? " ~ New Mission::" : ": ~ Mission Status: ~ Abandon Mission") + ": ~ Information: ~ View Top Hunters: ~ ^777777Cancel^000000" )) { case 1: mes "[Hunting Missions]"; if (#Mission_Count) { mes "You've started a mission"; mes "on another character."; if (!@hm_char_del_check) { // check for deleted character query_sql("SELECT 1 FROM `global_reg_value` WHERE `str` = 'Mission0' AND `char_id` IN(SELECT `char_id` FROM `char` WHERE `account_id` = " + getcharid(3) + ")", .@i); if (!.@i) { next; mes "[Hunting Missions]"; mes "I can't seem to find any records"; mes "for that character, though..."; mes "One moment, please."; emotion e_hmm; #Mission_Count = 0; } @hm_char_del_check = 1; } close; } if (#Mission_Delay > gettimetick(2) && .Delay) { mes "I'm afraid you'll have to wait " + callfunc("Time2Str",#Mission_Delay) + " before taking another mission."; close; } mes "You must hunt:"; query_sql("SELECT ID FROM `" + .mob_db$ + "` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT " + .Quests, .@mob); for (.@i = 0; .@i < .Quests; .@i++) { setd "Mission" + .@i, .@mob[.@i]; setd "Mission" + .@i +"_", 0; } #Mission_Count = rand(.Count[0], .Count[1]); callsub Mission_Status; next; mes "[Hunting Missions]"; mes "Report back when"; mes "you've finished."; mes "Good luck!"; close; case 2: mes "[Hunting Missions]"; mes "Mission status:"; callsub Mission_Status; close; case 3: mes "[Hunting Missions]"; mes "Do you really want to"; mes "abandon your mission?"; if (.Reset < 0 && .Delay) mes "Your delay time will not be reset."; else if (.Reset > 0) mes "It will cost " + callfunc("F_InsertComma",.Reset) + " Zeny."; next; switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) { case 1: if (.Reset > 0) { if (Zeny < .Reset) { mes "[Hunting Missions]"; mes "You don't have enough"; mes "Zeny to drop this mission."; emotion e_sry; close; } Zeny -= .Reset; emotion e_cash; } mes "[Hunting Missions]"; mes "Alright, I've dropped"; mes "your current mission."; specialeffect2 EF_STORMKICK4; for (.@i = 0; .@i < .Quests; .@i++) { setd "Mission"+.@i, 0; setd "Mission"+.@i+"_", 0; } #Mission_Count = 0; if (.Reset < 0 && .Delay) #Mission_Delay = gettimetick(2) + (.Delay * 3600); close; case 2: mes "[Hunting Missions]"; mes "I knew you were kidding!"; mes "Keep up the good work."; emotion e_heh; close; } case 4: callsub Mission_Info; close; case 5: mes "[Hunting Missions]"; mes "The top hunters are:"; query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `global_reg_value` WHERE str = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5", .@id, .@name$, .@val); for (.@i = 0; .@i < 5; .@i++) mes " [Rank " + (.@i+1) + "] " + ((.@name$[.@i] == "") ? "^777777none" : "^0055FF" + .@name$[.@i]+"^000000 : ^FF0000" + .@val[.@i] + " pt.") + "^000000"; close; case 6: mes "[Hunting Missions]"; mes "Nothing? Okay..."; emotion e_hmm; close; } end;Mission_Status: @f = 0; deletearray .@j[0], getarraysize(.@j); for (.@i = 0; .@i < .Quests; .@i++) { .@j[.@i] = getd("Mission" + .@i); .@j[.Quests] = .@j[.Quests] + strmobinfo(3,.@j[.@i]); .@j[.Quests+1] = .@j[.Quests+1] + (strmobinfo(6,.@j[.@i]) / (getbattleflag("base_exp_rate") / 100) * .Modifier[0]); .@j[.Quests+2] = .@j[.Quests+2] + (strmobinfo(7,.@j[.@i]) / (getbattleflag("job_exp_rate") / 100) * .Modifier[1]); mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count) + strmobinfo(1,.@j[.@i]) + " (" + getd("Mission"+.@i+"_") + "/" + #Mission_Count + ")^000000"; } // Reward formulas: .@Mission_Points = 3 + (.@j[.Quests] / .Quests / 6); .@Base_Exp = #Mission_Count * .@j[.Quests+1] / 5; .@Job_Exp = #Mission_Count * .@j[.Quests+2] / 5; .@Zeny = #Mission_Count * .Quests * .@j[.@i] * .Modifier[2]; next; mes "[Hunting Missions]"; mes "Mission rewards:"; mes " > TCG CARD: ^0055FF5 ^000000"; mes " > Base Experience: ^0055FF" + callfunc("F_InsertComma",.@Base_Exp) + "^000000"; mes " > Job Experience: ^0055FF" + callfunc("F_InsertComma",.@Job_Exp) + "^000000"; mes " > Zeny: ^0055FF" + callfunc("F_InsertComma",.@Zeny) + "^000000"; if (@f) { @f = 0; return; } next; mes "[Hunting Missions]"; mes "Oh, you're done!"; mes "Good work."; mes "Here's your reward."; emotion e_no1; specialeffect2 EF_ANGEL; specialeffect2 EF_TRUESIGHT; getitem 7227,5; BaseExp += .@Base_Exp; JobExp += .@Job_Exp; Zeny += .@Zeny; for (.@i = 0; .@i < .Quests; .@i++) { setd "Mission" + .@i, 0; setd "Mission" + .@i+"_", 0; } #Mission_Count = 0; if (.Delay) #Mission_Delay = gettimetick(2) + (.Delay * 3600); Mission_Total++; if (Mission_Total == 1) query_sql("INSERT INTO `global_reg_value` (`char_id`,`str`,`value`,`type`,`account_id`) VALUES (" + getcharid(0) + ",'Mission_Total','1',3,0)"); else query_sql("UPDATE `global_reg_value` SET `value` = " + Mission_Total + " WHERE char_id = " + getcharid(0) + " AND `str` = 'Mission_Total'"); close;Mission_Info: mes "[Hunting Missions]"; mes "If you so choose, I can assign"; mes "you a random hunting quest."; mes "Some are easier than others, but"; mes "the rewards increase with difficulty."; next; mes "[Hunting Missions]"; mes "Missions points are shared"; mes "amongst all your characters."; if (.Delay) mes "Delay time is, too."; mes "You can't take missions on"; mes "multiple characters at once."; next; mes "[Hunting Missions]"; mes "You can start a quest"; mes (.Delay ? "every " + ((.Delay == 1) ? "hour." : .Delay + " hours.") : "whenever you want."); mes "That's everything~"; return;function Chk { if (getarg(0) < getarg(1)) { @f = 1; return "^FF0000"; } else return "^00FF00";}OnNPCKillEvent: if (!getcharid(1) || !.Party) { if (!#Mission_Count || !Mission0) end; for (.@i = 0; .@i < .Quests; .@i++) { if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission" + .@i))) { if (getd("Mission" + .@i + "_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed " + (set(getd("Mission" + .@i + "_"),getd("Mission" + .@i + "_") + 1)) + " of " + #Mission_Count + " " + strmobinfo(1,killedrid) + "."; end; } } } } else if (.Party) { .@mob = killedrid; getmapxy(.@map1$,.@x1,.@y1,0); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for (.@i = 0; .@i < $@partymembercount; .@i++) { if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) { attachrid $@partymemberaid[.@i]; if (#Mission_Count && Mission0 && HP > 0) { getmapxy(.@map2$,.@x2,.@y2,0); if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) { for (.@j = 0; .@j < .Quests; .@j++) { if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) { if (getd("Mission"+.@j+"_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed " + (set(getd("Mission" + .@j + "_"),getd("Mission" + .@j + "_") + 1)) + " of " + #Mission_Count + " " + strmobinfo(1,.@mob) + "."; break; } } } } } } } } end;OnInit: .Delay = 12; // Quest delay, in hours (0 to disable). .Quests = 4; // Number of subquests per mission (increases rewards). .Party = 3; // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only) .Reset = -1; // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time) setarray .Count[0], // Min and max monsters per subquest (increases rewards). 40,70; setarray .Modifier[0], // Multipliers for Base Exp, Job Exp, and Zeny rewards. getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60; .mob_db$ = // Table name of SQL mob database (checkre(0))?"mob_db_re":"mob_db"; setarray .Shop[0], // Reward items: <ID>,<point cost> (about 10~20 points per hunt). 512,1,513,1,514,1,538,5,539,5,558,10,561,10; .Blacklist$ = // Blacklisted mob IDs. "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+ "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+ "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+ "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+ "1975,1976,1977,1978,1979"; npcshopdelitem "mission_shop",512; for (.@i = 0; .@i < getarraysize(.Shop); .@i += 2) npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1]; end;}- shop mission_shop -1,512:-1
  22. got it fixed. just updated my jobname.lua
  23. whats the link for the script for AFAIK auction system? AFAIK = As Far As I Know GMOcean is Referring to Ragnarok's Original Auction System. sorry about that T_T. the auction system doesn't allow usable items
  24. whats the link for the script for AFAIK auction system?
×
×
  • Create New...

Important Information

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