Jump to content

minx123

Members
  • Content Count

    283
  • Joined

  • Last visited

Everything posted by minx123

  1. the portal still not hide. player can come again when wrong kill poring for bindatcmd is perfectly work.
  2. hi.. i need help to change from one map to all map. florian,111,130,4 script Player Online 47,{end; OnInit: OnTimer1000: delwaitingroom; waitingroom getmapusers("florian")+" player"+( getmapusers("florian") > 1 ? "s":"") +" in Town", 0; initnpctimer;}
  3. the npc warp always on. cant hide? only show when event start. if i want put bindcmd for manual start how? OnInit: bindatcmd "p.summon",strnpcinfo(3)+"80,80; end;
  4. //= Poring Catcher - Auto Event Script//===== By: =================================================================================//= Washi - www.EarthBound-RO.com//===== Compatible With: ====================================================================//= Any eAthena Version//===== Description: ========================================================================//= Single NPC that starts automatically starts every hour.//===== Additional Comments: ================================================================//= This script is a combenation of the Dice Event by [Mahina]//= and the origonal Poring Catcher Event by [Wild Karrd]//===========================================================================================//= OnMinute - Change this to the minute you would like this script to load. [ LINE 22 ]//= getitem - Change this to the Item ID of your prize. [ LINE 118 ]//===========================================================================================- script poring#announcer -1,{OnInit: disablenpc "poringevent"; hideonnpc "poringevent"; hideonnpc "Poring Catcher#evnt2"; end;OnMinute27: // SET THE 30 TO THE MINUTE YOU WANT THE EVENT TO START EACH HOUR. announce "Poring Catcher : It's time to play some Poring Catcher!",bc_blue; announce "Poring Catcher : Prize will be Credit.",bc_blue; killmonster "poring_w01","All"; sleep2 10000; announce "Poring Catcher : Please make your way to the centre of Event Area.",bc_blue; sleep2 10000; announce "Poring Catcher : After one minute the portal will close.",bc_blue; sleep2 10000; announce "Poring Catcher : Enter the warp portal now if you want to join.",bc_blue; hideoffnpc "poringevent"; enablenpc "poringevent"; initnpctimer; end;OnTimer30000: announce "Poring Catcher : Last 30 seconds.",bc_blue; sleep2 5000; announce "Poring Catcher : Hurry to the upper Left of dewata if you want to join.",bc_blue; end; OnTimer50000: announce "Poring Catcher : Last 10 seconds.",bc_blue; end; OnTimer55000: announce "Poring Catcher : 5.",bc_blue; end; OnTimer56000: announce "Poring Catcher : 4.",bc_blue; end; OnTimer57000: announce "Poring Catcher : 3.",bc_blue; end; OnTimer58000: announce "Poring Catcher : 2.",bc_blue; end; OnTimer59000: announce "Poring Catcher : 1.",bc_blue; end; OnTimer60000: announce "Poring Catcher : Time's up! Portal will open again in 1 hour.",bc_blue; end; OnTimer61000: disablenpc "poringevent"; hideonnpc "poringevent"; donpcevent "Poring Catcher#evnt2::OnEnable"; stopnpctimer; end; } //-------------------------------------------------- florian,95,115,0 warp poringevent 2,2,poring_w01,106,129 //--------------------------------------------------poring_w01,100,127,4 script Poring Catcher#evnt2 715,{//-------------------------------------------------- mes "[Poring Catcher]"; if(PORING == 1) goto L_PORING; mes "Please tell me your name"; next; input .@name$; if(.@name$ != strcharinfo(0)) { mes "[Poring Catcher]"; mes "Are you sure thats your character name?"; close; } mes "[Poring Catcher]"; mes "Congrats. You've won."; close2; announce "Poring Catcher : All laugh at, "+.@name$+". - This player tried to cheat the system. Muhahahahaha!",bc_blue; warp "dicastes01",197,184; end;L_PORING: mes "Please tell me your name"; next; input .@name$; if(.@name$ != strcharinfo(0)) { mes "[Poring Catcher]"; mes "Are you sure thats your character name?"; close; } mes "[Poring Catcher]"; mes "Congrats. You've won."; close2; announce "Poring Catcher : We have a winner, "+.@name$+". - Event Award Won!",0; getitem 7227,2; //set zeny,zeny+1000000; set PORING,0; warp "dicastes01",197,184; hideonnpc "Poring Catcher#evnt2"; end; OnEnable: mapannounce "poring_w01","Poring Catcher : I will be summoning 100 different Porings.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : Only one of these Porings is the correct Poring.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : The correct Poring is called [ Poring ], all the other Porings have different names.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : Take your time because if you kill the wrong Poring, your out of the game.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : The first player to kill the correct Poring wins.",0; sleep2 10000; mapannounce "poring_w01","Poring Catcher : That's that.. Now let's play...",0; goto L_Start; end; L_Start: mapannounce "poring_w01","Poring Catcher : 5",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 4",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 3",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 2",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : 1",0; sleep2 1000; mapannounce "poring_w01","Poring Catcher : Lets Do This!",0; areamonster "poring_w01",84,119,121,90,"Poring",1002,1,"poringwin::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Pouring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Proing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poiring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"I am not Poring",1002,5,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Gniriop",1002,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porring",1113,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porinng",1062,1,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Poriiing",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"PoriNgg",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porong",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"P0ring",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Por1ng",1002,10,"poringlose::OnMobKilled"; areamonster "poring_w01",84,119,121,90,"Porng",1002,1,"poringlose::OnMobKilled"; end;}- script poringwin -1,{OnMobKilled: dispbottom "Poring : Congratulations. You've got me."; set PORING,1; atcommand "@doommap"; killmonster "poring_w01","All"; mapannounce "poring_w01","Poring Catcher : Come to me and tell me your name.",0; hideoffnpc "Poring Catcher#evnt2"; end;}- script poringlose -1,{OnMobKilled: dispbottom "Poring Catcher : Wahaha, your a loser! - I wasnt the correct Poring."; warp "florian",111,150; end;}// -- Mapflagsporing_w01 mapflag nowarpporing_w01 mapflag nowarptoporing_w01 mapflag noteleportporing_w01 mapflag nosaveporing_w01 mapflag nomemoporing_w01 mapflag nobranchporing_w01 mapflag nolootporing_w01 mapflag noskillporing_w01 mapflag nopenalty hello.. i need help to fix this script.. player cant get reward after kill the real poring.
  5. hello.. i need some help.. how to make pvp area on this map?
  6. thank you. @@Anisotropic Defixation @@Winterfox
  7. hello.. i need some help, how to make random box with announce get special item? i want make box if player get the special item. it will announce to all map.
  8. //===== rAthena Script =======================================//= Dungeon Party System//===== By ===================================================//= lllchrislll//===== Version ==============================================//= 1.0 - Initial Release// - Fixxed an bug with warping to the Start Point - Thanks to Azeroth for the bug report// - Removed "set .pt_max" and replaced it with "MAX_PARTY" in the checks//===== Compatible With ======================================//= rAthena SQL 11.06.2015 Rev+//===== Tested With ==========================================//= rAthena SQL 11.06.2015 Rev//===== Description ==========================================//= Additional EXP Bonus (in Percent) based on Dungeon's Difficulty// - Difficulties: Easy, Medium, Hard// - EXP Rates: 50%, 100%, 150% (changeable)//= Dungeon Warp Service// - Warp to the Entrance only//= Party Settings dynamically changeable// - Quantity of Parties in 1 Dungeon//= Party Join Feature// - Requesting to join an existing Party, on accept the Leader can decide// to which member the applicant will be warped to//= Dungeon Rewards:// - Regular Dungeon Points (On/Off Function)// Base Points*Difficulty of Dungeon// - MvP Dungeon Points (On/Off Function)// Per slain MvP, you gain "x" Points (changeable)// Different kind of Points are: Custom Character Permanent Variable for Exchanger or #CASHPOINTS// - Dungeon Points Exchanger//===== Credits ==============================================//= To the author of the "Ultimate Warper" from the eAthena Board.// Since no header was included and I forgot the name of him/her,// I couldn't ask the permission to use an part of the script.// I used the map coordinates.//===== Notes ============================================//= Aldebaran and Clock Tower Dungeon: I splitted those two apart, even though they are connected//= Glastheim: I put the NPC duplicate at the main map, because the// dungeon is connected with each other, so it was difficult to decide// where to put the "Exit"//===== ToDo List ============================================//= Thinking if my funtion "SyncPartyData" is useful or not about the memory usage//============================================================prontera,151,185,4 script Dungeon Party Service 110,{mes .n$;mes "Hello, "+strcharinfo(0)+"!";mes "How can I help you?";next;switch(select("- Dungeon Menu:- Information:- "+ ( (.dg_rew == 1)?"Points Exchanger:- Nothing":"Nothing") )) { case 1: if(getd("$@pty_"+getcharid(1)+"_m$[0]") == "") { set @join,0; if(!getcharid(1)) { mes .n$; mes "Do you want to join a party?"; if(getarraysize(.pty_id) < 1) { mes "But since there is no party yet you could join, you need to create one yourself."; mes "Also you require 2 or more members to use the Dungeon Party Service."; close; } next; if(select("- Yes:- No") - 1) { mes .n$; mes "Then you need to create one first, also you require 2 and more members to use the Dungeon Party Service."; close; } next; mes .n$; mes "Please choose the dungeon first, then the party you want to join in."; set @join,1; next; } if(!@join) { if(strcharinfo(0) != getpartyleader(getcharid(1))) { mes .n$; mes "Only the party leader can register your party for the Dungeon Party Service."; close; } getpartymember(getcharid(1),2); for ( set .@p,0; .@p < $@partymembercount; set .@p,.@p + 1) if(isloggedin($@partymemberaid[.@p]) == 1) // Member logged in? set .@ct,.@ct + 1; if(.@ct < 2) { mes .n$; mes "A party requires 2 members minimum to use the Dungeon Party Service."; close; } set .@partyct,$@partymembercount; } set .men_dung$,""; // =============== Creating Dungeon Menu =============== for ( set .@du,0; .@du < getarraysize(.dungn$); set .@du,.@du + 1) { setd(".@"+.dungpre$[.@du]+"_ct"),0; // ========== Dungeon Party Counter ========= for( set .@i,0; .@i < getarraysize(.pty_id); set .@i,.@i + 1) { // Checking if the current Party is in this dungeon if(getd("$@pty_"+.pty_id[.@i]+"$") == .dungpre$[.@du]) setd(".@"+.dungpre$[.@du]+"_ct"),getd(".@"+.dungpre$[.@du]+"_ct") + 1; } set .men_dung$,.men_dung$ + "- "+.dungn$[.@du] +" ("+getd(".@"+.dungpre$[.@du]+"_ct")+"/"+.pt_limit+") (Min.Level - "+getd("."+.dungpre$[.@du]+"$[1]")+")"+ ( (.dungn$[.@du+1] != "")?":":""); } mes .n$; mes "Now please choose the dungeon your party wants to go:"; set @d,select( .men_dung$ ) - 1; next; mes .n$; mes "Dungeon: "+.dungn$[@d]; mes "Difficulty: "+( (getd("."+.dungpre$[@d]+"$[0]") == "1")?"Easy":( (getd("."+.dungpre$[@d]+"$[0]") == "2")?"Medium":"Hard") ); mes "Minimum Level: "+getd("."+.dungpre$[@d]+"$[1]"); mes "Existing Parties: "+getd(".@"+.dungpre$[@d]+"_ct"); if(@join) { next; mes .n$; if(BaseLevel < atoi(getd("."+.dungpre$[@d]+"$[1]"))) { mes "I'm sorry, but you don't meet the level requirement, which is "+getd("."+.dungpre$[@d]+"$[1]")+"!"; mes "Please try an other dungeon or level up until you reach that level."; close; } mes "I will now list the available parties:"; mes " "; for ( set .@l,0; .@l < getarraysize(.pty_id); set .@l,.@l + 1) { getpartymember(.pty_id[.@l]); if(getd("$@pty_"+.pty_id[.@l]+"$") == .dungpre$[@d] && $@partymembercount < MAX_PARTY) { mes "==================="; mes "Party Name: "+getpartyname(.pty_id[.@l]); mes "Leader: "+getpartyleader(.pty_id[.@l]); mes "Current Members: "+$@partymembercount; setarray .@pty_list[getarraysize(.@pty_list)],.pty_id[.@l]; set .@pty_menu$,.@pty_menu$ + "- "+getpartyname(.pty_id[.@l]) + ( (.pty_id[.@l+1] != 0)?":":""); mes ( (.pty_id[.@l+1] != 0)?"":"==================="); } } if(getarraysize(.@pty_list) < 1) { next; mes .n$; mes "I'm sorry, but there is no party on this map."; close; } mes " "; mes "Please choose, which party you want to send an application at:"; set .@p,select(.@pty_menu$) - 1; if(isloggedin(getpartyleader(.@pty_list[.@p],1),getpartyleader(.@pty_list[.@p],2)) == 1) { mes "I will send now an request to the party leader with your Level and Class."; mes "Please wait until the leader will accept or decline your request."; mes "If the leader doesn't respond in any way, please try to PM him/her by yourself."; mes "The leader's name is ["+getpartyleader(.@pty_list[.@p])+"]."; close2; set .@req_id,getcharid(0); // Creating Applicant array for the party setarray getd("$@req_"+.@pty_list[.@p]+"_id["+getarraysize(getd("$@req_"+.@pty_list[.@p]+"_id"))+"]"),.@req_id; // Applicant Info setarray getd("$@req_"+.@req_id+"$[0]"),strcharinfo(0),""+BaseLevel+"/"+JobLevel,"Class: "+jobname(Class); detachrid; attachrid(getpartyleader(.@pty_list[.@p],1)); announce .n$+": The player ["+getd("$@req_"+.@req_id+"$[0]")+"] with Level "+getd("$@req_"+.@req_id+"$[1]")+", "+getd("$@req_"+.@req_id+"$[2]")+" requests to join your party. You can accept/decline by sending an whisper to me via "NPC:Party_Join" and as text "List". There you gain additional information.",bc_self; end; } else { mes "It seems like that the party leader of "+getpartyname(.@pty_list[@p])+" isn't online."; mes "Please try another party."; close; } } next; mes .n$; if(getd(".@"+.dungpre$[@d]+"_ct") > .pt_limit) { mes "I'm sorry, but this dungeon already reached the maximum of parties it can hold."; mes "Please choose a different one."; close; } mes "I will now check the levels of your party members. Please wait...."; getpartymember(getcharid(1),1); for ( set .@l,0; .@l < $@partymembercount; set .@l,.@l + 1) // Checking Level of each party member if(readparam(11,""+strcharinfo(0,$@partymembercid[.@l])) < atoi(getd("."+.dungpre$[@d]+"$[1]"))) set .@l_ct,.@l_ct + 1; next; mes .n$; if(.@l_ct > 0) { mes "It seems like "+.@l_ct+" of your members haven't reached the required level for this dungeon."; mes "Please choose either a different dungeon or try to level up your members with lower level."; mes "The minimum level for this dungeon is "+getd("."+.dungpre$[@d]+"$[1]")+"!"; close; } mes "Your party will recieve an bonus of "+.exp[atoi(getd("."+.dungpre$[@d]+"$[0]"))]+"%."; mes "I will warp you and your party now to the "+.dungn$[@d]+ ( (compare(.dungn$[@d],"Dungeon") == 1)?" ":" Dungeon "); mes "Happy leveling!!!"; close2; // Saving Account and Character ID about Party Members callfunc "SyncPartyData",getcharid(1); // Saving Array Index of the Dungeon for .dungpre$ or .dungn$ setd(".pty_"+getcharid(1)+"_ix"),@d; // Used to save the Leveling Maps of the party for ( set .@d,3; .@d < getarraysize(getd("."+.dungpre$[@d]+"$")); set .@d,.@d + 4) setarray getd("$@pty_"+getcharid(1)+"_m$["+getarraysize(getd("$@pty_"+getcharid(1)+"_m$"))+"]"),""+getd("."+.dungpre$[@d]+"$["+.@d+"]"); // Saving Dungeon Prefix setd("$@pty_"+getcharid(1)+"$"),""+.dungpre$[@d]; // Setting Start Point setarray getd(".pty_"+getcharid(1)+"_st$[0]"),""+getd("."+.dungpre$[@d]+"$[3]"),""+getd("."+.dungpre$[@d]+"$[4]"),""+getd("."+.dungpre$[@d]+"$[5]"); // Setting Check Point variable to the 1st level of the dungeon, used to update the Start Point when reaching a new map setd(".pty_"+getcharid(1)+"_cp"),1; // Warping Party ... warpparty getd(".pty_"+getcharid(1)+"_st$[0]")+".gat",atoi(getd(".pty_"+getcharid(1)+"_st$[1]")),atoi(getd(".pty_"+getcharid(1)+"_st$[2]")),getcharid(1); // Debug Messages if(.debug) { for ( set .@b,0; .@b < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@b,.@b + 1) debugmes "Leveling Map Array - ["+.@b+"]: "+getd("$@pty_"+getcharid(1)+"_m$["+.@b+"]"); debugmes "Dungeon Prefix: "+getd("$@pty_"+getcharid(1)+"$"); debugmes "Start Point Array - [0]:"+getd(".pty_"+getcharid(1)+"_st$[0]")+", [1]: "+getd(".pty_"+getcharid(1)+"_st$[1]")+", [2]: "+getd(".pty_"+getcharid(1)+"_st$[2]"); debugmes "Check Point: "+getd(".pty_"+getcharid(1)+"_cp"); debugmes "WarpParty - Array: "+getd(".pty_"+getcharid(1)+"_st$[0]")+".gat,"+atoi(getd(".pty_"+getcharid(1)+"_st$[1]"))+","+atoi(getd(".pty_"+getcharid(1)+"_st$[2]")); } setarray .pty_id[getarraysize(.pty_id)],getcharid(1); // Loading Dungeon NPC, if it is not loaded yet if(.debug) debugmes .n$+": Loading Dungeon NPC, if it is not loaded yet"; if(getvariableofnpc(.DGN_Load,"DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")) == 0) { donpcevent "DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")+"::OnDGLoad"; if(.debug) debugmes .n$+": Dungeon NPC - "DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")+"" - Status: "+( (getvariableofnpc(.DGN_Load,"DG Party Progress#"+getd("$@pty_"+getcharid(1)+"$")) == 1)?"Online":"Offline"); } break; // ============ Party is already registered ============== } else { mes .n$; mes "How can I help you?"; next; switch(select("- Remove Party from list:- Warp Options:- "+( (.dg_rew == 1)?"Dungeon Reward":"Nothing") )) { case 1: mes .n$; if(strcharinfo(0) != getpartyleader(getcharid(1))) { mes "I'm sorry, but only your party leader can can do this."; close; } mes "Do you really want to delete your party from my list?"; mes "You won't be able to gain any bonus EXP until you re-register your party!"; next; if(select("- Yes:- No") - 1) close; if(.dg_rew == 1 && getd("$@pty_"+getcharid(1)+"_rew") == 1) { mes .n$; mes "I'm sorry, but you still haven't collected your reward from the completed dungeon."; close; } close2; for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) { set .@p_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID set .@p_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID if(isloggedin(.@p_aid,.@p_cid) == 1 && .@p_aid != getpartyleader(getcharid(1),1)) { dispbottom .n$+": Your party leader wants to remove your party from my list, so....",0x00FF00,.@p_cid; dispbottom .n$+": I will warp you all in 10 seconds to your Save Points.",0x00FF00,.@p_cid; } } goto OnPartyDelete; end; case 2: mes .n$; mes "Do you want to be warped to one of your party members or to the start point?"; if(select("- To my comrades:- Start Point") - 1) { close2; warp getd(".pty_"+getcharid(1)+"_st$[0]")+".gat",atoi(getd(".pty_"+getcharid(1)+"_st$[1]")),atoi(getd(".pty_"+getcharid(1)+"_st$[2]")); end; } next; mes .n$; mes "Please select to which party member you want to be warped to:"; next; set .@pty_ml$,""; callfunc "SyncPartyData",getcharid(1); for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) { set .@p_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID set .@p_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID if(isloggedin(.@p_aid,.@p_cid) == 1) { // Member logged in? getmapxy(@map$,@mapx,@mapy,0,strcharinfo(0,.@p_cid)); for ( set .@c,0; .@c < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@c,.@c + 1) if(@map$ == getd("$@pty_"+getcharid(1)+"_m$["+.@c+"]")) { // Member on an leveling Map as registered? set .@pty_ml$,.@pty_ml$ + "- "+strcharinfo(0,.@p_cid) + ( (.@p_aid) == getpartyleader(getcharid(1),1)?" (Leader)":"")+":"; setarray .@pty_mlc[getarraysize(.@pty_mlc)],.@p_cid; } } } if(.@pty_ml$ == "") { mes .n$; mes "I'm sorry, but no member of your party has been found on the dungeon map."; close; } set .@pm,select(.@pty_ml$) - 1; mes .n$; mes strcharinfo(0,.@pty_mlc[.@pm]) + ( (.@pty_mlc[.@pm] == getpartyleader(getcharid(1),2))?" (Leader)":""); mes "Correct?"; if(select("- Yes:- No") - 1) close; close2; atcommand "@warpto "+strcharinfo(0,.@pty_mlc[.@pm]); end; // Dungeon Reward case 3: if(!.dg_rew) close; mes .n$; if(strcharinfo(0) != getpartyleader(getcharid(1))) { mes "I'm sorry, but only your party leader can can do this."; close; } mes "Hello!"; mes "Let me check, if you have completed an dungeon to claim an reward."; next; mes .n$; if(getd("$@pty_"+getcharid(1)+"_rew") != 1) { mes "I'm sorry, but it seems like your party didn't complete an dungeon yet."; mes "Come again, when you did."; close; } mes "Congratulation for completing the dungeon, "+.dungn$[getd(".pty_"+getcharid(1)+"_ix")]+"!"; mes "I will now reward you and your party with "+set(.@res, (.dg_pts*atoi(getd("."+.dungpre$[getd(".pty_"+getcharid(1)+"_ix")]+"$[0]") ) ))+"x Dungeon Points."; mes "To reuse my service, please register your party again for the next dungeon."; close2; callfunc "SyncPartyData",getcharid(1); for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) { set .@p_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID set .@p_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID if(isloggedin(.@p_aid,.@p_cid) == 1) { setd(""+.dg_var$),getd(""+.dg_var$) + .@res,.@p_cid; if(.@p_aid != getpartyleader(getcharid(1),1) ) { dispbottom .n$+": For completing the dungeon, "+.dungn$[getd(".pty_"+getcharid(1)+"_ix")]+", you will be rewarded with "+.@res+"x Dungeon Points!",0x00FF00,.@p_cid; dispbottom .n$+": Also just in case you are still in the dungeon, I will warp you to Prontera!",0x00FF00,.@p_cid; } } } goto OnPartyDelete; end; } } break; case 2: mes .n$; mes "I can offer my Dungeon Party Service to any Party, which uses my Dungeon Warp Service, which allows the party to recieve more EXP based on the dungeons difficulty."; mes "For each Dungeon exists an party limit, how many parties can be in one Dungeon at once. Which is "+.pt_limit; mes "Also every Dungeon has a Level Requirement, which each party member must have reached!"; next; mes .n$; if(.dg_rew == 1) { mes "[====== Dungeon Rewards ======]"; mes "Depending on the Dungeon's Difficulty, you can get different amount of rewards."; mes "Currently you can gain "+.dg_pts+" Dungeon Points multiplied by "1" for Easy, by "2" for Medium, by "3" for Hard, Dungeons."; if(.mvp_rew == 1) { mes " "; mes "Also you can gain special points for each MvP your party kills:"; mes .mvp_pts +"x "+( (.mvp_rew == 1)?"MvP Points":"Cash Points")+", which also be multiplied by the difficulty of the Dungeon."; } } next; mes .n$; mes "[=== EXP Rates per Difficulty ===]"; mes "Easy: "+.exp[1]+"%"; mes "Medium: "+.exp[2]+"%"; mes "Hard: "+.exp[3]+"%"; close; // Dungeon Points Exchanger, if .dg_rew == 1 case 3: if(!.dg_rew) close; mes .n$; mes "Which points do you want to exchange?"; mes "Your Dungeon Points: "+getd(""+.dg_var$); mes "Your MvP Points: "+getd(""+.mvp_var$); next; switch(select("- Dungeon Points:- MvP Points")) { case 1: mes .n$; mes "Please choose the item you want your points to exchange to:"; mes "Format: Amount x Item (Price per Exchange)"; next; set .@b,select(.ex_m$) - 1; mes .n$; mes "You have selected "+.dg_ex_am+"x "+getitemname(.dg_ex[.@b])+"."; mes "Is that correct?"; if(select("- Yes:- No") - 1) close; next; mes .n$; mes "Now type the how often you want to exchange:"; mes "Price per exchange: "+.dg_ex_cost[.@b]; mes "Your Dungeon Points: "+getd(""+.dg_var$); // Setting exchange limit based on the current points you have set .@l,(getd(""+.dg_var$)/.dg_ex_cost[.@b]); mes "Maximum possible: "+.@l+", based on your current points."; next; if(input(.@buy,1,.@l) != 0) { mes .n$; mes "It seems like you put either a 0 or more than "+.@l+", which is the maximum you could exchange based on your points."; close; } mes .n$; getitem .dg_ex[.@b],.dg_ex_am[.@b]; setd(""+.dg_var$),getd(""+.dg_var$) - (.@buy*.dg_ex_cost[.@b]); mes "Your exchange has been completed."; mes "See you again for the next exchange."; break; case 2: mes .n$; if(!.mvp_rew) { mes "I'm sorry, but this exchange service is not currently available duo the fact MvP Points not being gainable."; mes "Please come back another time."; close; } mes "Please choose the item you want your points to exchange to:"; mes "Format: Amount x Item (Price per Exchange)"; next; set .@b,select(.ex_mvp_m$) - 1; mes .n$; mes "You have selected "+.mvp_ex_am+"x "+getitemname(.mvp_ex[.@b])+"."; mes "Is that correct?"; if(select("- Yes:- No") - 1) close; next; mes .n$; mes "Now type the how often you want to exchange:"; mes "Price per exchange: "+.mvp_ex_cost[.@b]; mes "Your MvP Points: "+getd(""+.mvp_var$); // Setting exchange limit base on the current points you have set .@l,(getd(""+.mvp_var$)/.mvp_ex_cost[.@b]); mes "Maximum possible: "+.@l+", based on your current points."; next; if(input(.@buy,1,.@l) != 0) { mes .n$; mes "It seems like you put either a 0 or more than "+.@l+", which is the maximum you could exchange based on your points."; close; } mes .n$; getitem .mvp_ex[.@b],.mvp_ex_am[.@b]; setd(""+.mvp_var$),getd(""+.mvp_var$) - (.@buy*.mvp_ex_cost[.@b]); mes "Your exchange has been completed."; mes "See you again for the next exchange."; break; } case 4: close;}end;OnPartyDelete:sleep2 10000;if(getd("$@pty_"+getcharid(1)+"_rew") != 1) warpparty "prontera.gat",156,191,getcharid(1);setd(".pty_"+getcharid(1)+"_ix"),0;setd("$@pty_"+getcharid(1)+"$"),"";setd("$@pty_"+getcharid(1)+"_rew"),0;deletearray getd(".pty_"+getcharid(1)+"_st$[0]"),128;setd(".pty_"+getcharid(1)+"_cp"),0;deletearray getd("$@pt_"+getcharid(1)+"_maid[0]"),128;deletearray getd("$@pt_"+getcharid(1)+"_mcid[0]"),128;for ( set .@m,0; .@m < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@m,.@m + 1) deletearray getd("$@pt_"+getcharid(1)+"_"+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"_mct"),128;deletearray getd("$@pty_"+getcharid(1)+"_m$"),128;for ( set .@d,0; .@d < getarraysize(.pty_id); set .@d,.@d + 1) if(getcharid(1) == .pty_id[.@d]) deletearray .pty_id[.@d],1;end;OnInit:// =============== NPC Name ===============set .n$,"["+strnpcinfo(1)+"]";// =============== Debug Mode ===============// * (Debug Messages in Map Server)// > 0: Off// > 1: On set .debug,0; // ============== Party Settings ================== //set .pt_limit,2; // x Parties per Dungeon// ============== Dungeon Settings ================== //setarray .exp[1],50,100,150; // EXP Rate in % for Difficulty: Easy/Medium/Hard// Dungeon Reward > 0 = Off, 1 = Onset .dg_rew,1; if(.dg_rew == 1) { set .dg_var$,"DG_Pts"; set .dg_pts,10; // Base Dungeon Points, will be multiplied by Difficulty // Dungeon Points Exchanger: // > Item IDs setarray .dg_ex[0],512; // > How many items you get per exchange? setarray .dg_ex_am[0],10; // > How much does one exchange cost? setarray .dg_ex_cost[0],2; // Creating exchange menu for ( set .@m,0; .@m < getarraysize(.dg_ex); set .@m,.@m + 1) set .ex_m$,.ex_m$ + "- "+.dg_ex_am[.@m]+"x "+getitemname(.dg_ex[.@m])+" ("+.dg_ex_cost[.@m]+")"+ ( (.dg_ex[.@m+1] != 0)?":":""); // MvP Reward for each MvP > 0 = Off, 1 = Permanent Character Variable, 2 = #CASHPOINTS set .mvp_rew,1; if(.mvp_rew == 1) { set .mvp_var$,"MvP_Pts"; set .mvp_pts,1; // Base MvP Points, will also be multiplied by Difficulty // MvP Points Exchanger: // > Item IDs setarray .mvp_ex[0],512; // > How many items you get per exchange? setarray .mvp_ex_am[0],10; // > How much does one exchange cost? setarray .mvp_ex_cost[0],2; for ( set .@m,0; .@m < getarraysize(.mvp_ex); set .@m,.@m + 1) set .ex_mvp_m$,.ex_mvp_m$ + "- "+.mvp_ex_am[.@m]+"x "+getitemname(.mvp_ex[.@m])+" ("+.mvp_ex_cost[.@m]+")"+ ( (.mvp_ex[.@m+1] != 0)?":":""); }}// =============== Dungeon Names ===============setarray .dungn$[0],"Cursed Abbey","Aldebaran Dungeon","Abyss Lake","Amatsu Dungeon","Ayothaya Dungeon","Bylan","Clock Tower","Coal Mine","Culvert","Einbech Dungeon","Gefenia","Geffen Dungeon","Glast Heim","Gonyrun Dungeon","Ice Dungeon","Labyrinth","Juperos","Kiel Academy","Lightalzen Bio Lab","Louyang Dungeon","Magma Dungeon","Odin Temple","Orc Dungeon","Payon Dungeon","Pyramid Dungeon","Sphinx Dungeon","Sunken Ship Dungeon","Thanatos Tower","Toy Factory Dungeon","Turtle Dungeon","Thor Volcano Dungeon";// =============== Dungeon Prefixes ===============setarray .dungpre$[0],"abbey","alde","abyss","amat","ayot","bylan","c_tow","coal","culv","einb","gefia","gefd","glas","gonr","iced","maze","jupe","kiel","lhz","louy","magma","odin","orcsd","pay","pyram","sphinx","pirate","thana","toy","turtle","thor_v";// =============== Dungeon Data ===============// = Format: Difficulty ,Level Requirement, Mob Counter Level 1,Map Name Level 1, Map X, Map Y, Mob Counter Level 2,....// = Difficulty: 1 = Easy, 2 = Medium, 3 = Hard// = Level: 1 = None, 2+ = Requirement// - ToDO: Adding Renewal Checksetarray .abbey$[0],"1","1","20","abbey01","51","14","20","abbey02","150","11","20","abbey03","120","10";setarray .alde$[0],"1","1","20","alde_dun01","197","25","20","alde_dun02","262","41","20","alde_dun03","276","53","20","alde_dun04","130","130";setarray .abyss$[0],"1","1","20","abyss_01","264","271","20","abyss_02","275","270","20","abyss_03","116","27";setarray .amat$[0],"1","1","20","ama_dun01","227","10","20","ama_dun02","32","43","20","ama_dun03","119","15";setarray .ayot$[0],"1","1","20","ayo_dun01","9","149","20","ayo_dun02","230","235";setarray .bylan$[0],"1","1","20","iz_dun00","168","168","20","iz_dun01","41","37","20","iz_dun02","236","204","20","iz_dun03","32","63","20","iz_dun04","26","27";setarray .c_tow$[0],"1","1","20","c_tower1","200","163","20","c_tower2","268","26","20","c_tower3","64","148","20","c_tower4","32","63";setarray .coal$[0],"1","1","20","mjo_dun01","52","17","20","mjo_dun02","381","343","20","mjo_dun03","302","261";setarray .culv$[0],"1","1","20","prt_sewb1","132","248","20","prt_sewb2","19","19;","20","prt_sewb3","180","169","20","prt_sewb4","100","92","20";setarray .einb$[0],"1","1","20","ein_dun01","22","18","20","ein_dun02","292","290";setarray .gefia$[0],"1","1","20","gefenia01","59","167","20","gefenia02","201","35","20","gefenia03","264","236","20","gefenia04","33","270";setarray .gefd$[0],"1","1","20","gef_dun00","104","100","20","gef_dun01","115","236","20","gef_dun02","106","132","20","gef_dun03","203","200";setarray .glas$[0],"1","1","20","gl_church","156","8","20","gl_chyard","147","15","20","gl_in01","121","59","20","gl_cas01","199","29","20","gl_cas02","104","25","20","gl_knt01","150","10","20","gl_knt02","157","287","20","gl_step","117","124","20","gl_sew01","258","255","20","gl_sew01","258","255","20","gl_sew02","108","291","20","gl_sew03","171","273","20","gl_dun01","133","271","20","gl_dun02","224","274","20","gl_prison","14","70","20","gl_prison1","150","14";setarray .gonr$[0],"1","1","20","gon_dun01","143","59","20","gon_dun02","17","114","20","gon_dun03","68","9";setarray .iced$[0],"1","1","20","ice_dun01","157","14","20","ice_dun02","151","155","20","ice_dun03","149","22","20","ice_dun04","34","139";setarray .maze$[0],"1","1","20","prt_maze01","176","7","20","prt_maze02","103","18","20","prt_maze03","23","8";setarray .jupe$[0],"2","65","20","juperos_01","99","92","20","juperos_02","34","59","20","jupe_core","150","285";setarray .kiel$[0],"2","1","20","kh_dun01","28","226","20","kh_dun02","41","198";setarray .lhz$[0],"2","60","20","lhz_dun01","151","286","20","lhz_dun02","18","148","20","lhz_dun03","140","136";setarray .louy$[0],"2","50","20","lou_dun01","218","196","20","lou_dun02","282","20","20","lou_dun03","165","37";setarray .magma$[0],"2","60","20","mag_dun01","126","69","20","mag_dun02","47","32";setarray .odin$[0],"3","70","20","odin_tem01","98","144","20","odin_tem02","22","181","20","odin_tem03","121","51";setarray .orcsd$[0],"1","1","20","orcsdun01","32","169","20","orcsdun02","21","185";setarray .pay$[0],"1","1","20","pay_dun00","22","180","20","pay_dun01","19","33","20","pay_dun02","19","63","20","pay_dun03","155","159","20","pay_dun04","201","204";setarray .pyram$[0],"1","1","20","moc_pryd01","192","9","20","moc_pryd02","10","192","20","moc_pryd03","100","92","20","moc_pryd04","181","11","20","moc_pryd05","94","96","20","moc_pryd06","192","8";setarray .sphinx$[0],"1","1","20","in_sphinx1","192","9","20","in_sphinx2","149","81","20","in_sphinx3","210","54","20","in_sphinx4","10","222","Level 5","in_sphinx5","100","99";setarray .pirate$[0],"1","1","20","treasure01","69","24","20","treasure02","102","27";setarray .thana$[0],"1","1","20","tha_t01","150","36","20","tha_t02","150","36","20","tha_t03","220","158","20","tha_t04","59","143","20","tha_t05","62","11","20","tha_t06","89","221","20","tha_t07","35","166","20","tha_t08","93","148","20","tha_t09","29","107","20","tha_t10","159","138","20","tha_t11","19","20","20","tha_t12","130","52","5";setarray .toy$[0],"1","40","20","xmas_dun01","205","16","20","xmas_dun02","129","133";setarray .turtle$[0],"2","50","20","tur_dun01","161","34","20","tur_dun02","148","256","20","tur_dun03","132","190","20","tur_dun04","100","192";setarray .thor_v$[0],"3","90","20","thor_v01","21","228","20","thor_v02","75","205","20","thor_v03","34","272";// Mapflagsfor ( set .@d,0; .@d < getarraysize(.dungn$); set .@d,.@d + 1) for ( set .@p,3; .@p < getarraysize(getd("."+.dungpre$[.@d]+"$")); set .@p,.@p + 4) { setmapflag getd("."+.dungpre$[.@d]+"$["+.@p+"]"),mf_nowarp; }if(.debug) debugmes "Starting Global Timer for Party Member Sync";initnpctimer; // Timer for re-copying Party Member Dataend;OnNPCKillEvent:if(!getcharid(1)) end;if(getmapflag(strcharinfo(3),mf_pvp) == 1 || getmapflag(strcharinfo(3),mf_gvg) == 1) end; // On PvP or GvG Maps = No effectif(getd("$@pty_"+getcharid(1)+"$") == "") end; // Not registered at the NPC.if(strcharinfo(3) != getd("$@pty_"+getcharid(1)+"_m$["+@map+"]")) for ( set .@m,0; .@m < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@m,.@m + 1) if(strcharinfo(3) != getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")) // Member is on the leveling map? set .@f,1; else { set .@f,0; set @map,.@m; }if(.@f) end;// Checking if the Start Point Map is the same as the current one, if not update the Start Point array and Check Point variableif(getpartyleader(getcharid(1),4) != getd("$@pty_"+getcharid(1)+"_m$["+(getd(".pty_"+getcharid(1)+"_cp")-1)+"]") ) for ( set .@s,3; .@s < getarraysize(getd("."+getd("$@pty_"+getcharid(1)+"$")+"$")); set .@s,.@s + 4) if(getpartyleader(getcharid(1),4) == getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+.@s+"]")) { // Checking if the current index is higher than the current _cp variable if(set(.@cp,(.@s+1)/4) > getd(".pty_"+getcharid(1)+"_cp")) { // Updating _cp variable to new index setd(".pty_"+getcharid(1)+"_cp"),.@cp; // Setting new Start Point setarray getd("$@pty_"+getcharid(1)+"_st$[0]"),getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+.@s+"]"),getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+(.@s+1)+"]"),getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+(.@s+2)+"]"); } }// Reading EXP values from Mob Database set .@expr,.exp[atoi(getd("."+.dungpre$[getd(".pty_"+getcharid(1)+"_ix")]+"$[0]"))];set .@bexp,(getmonsterinfo(killedrid,3)*.@expr)/100;set .@jexp,(getmonsterinfo(killedrid,4)*.@expr)/100;// Increasing Party Mob Counterif(getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") < atoi(getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+( (4*(.@m+1)) - 2)+"]"))) setd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct"),getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") + 1;// Reading party arrays and setting a temporar npc variable for better overviewfor ( set .@p,0; .@p < getarraysize(getd("$@pt_"+getcharid(1)+"_maid")); set .@p,.@p + 1) { set .@c_aid,getd("$@pt_"+getcharid(1)+"_maid["+.@p+"]"); // Current selected Member's Account ID set .@c_cid,getd("$@pt_"+getcharid(1)+"_mcid["+.@p+"]"); // Current selected Member's Character ID // Check if the selected member is still in the same party as before if(getcharid(1,strcharinfo(0,.@c_cid)) != getcharid(1)) callfunc "SyncPartyData",getcharid(1); // Current selected Character ID is not the same as the one attached // wouldn't make sense, since it was called by the attached player if(getcharid(0) != .@c_cid) { // Member logged in? if(isloggedin(.@c_aid,.@c_cid) == 0) continue; // Member is alive if(readparam(5,strcharinfo(0,.@c_cid)) < 1) continue; // Member is on the same Map as the one who killed something if(strcharinfo(3,.@c_cid) != strcharinfo(3)) continue; } if(getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") < atoi(getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+( (4*(.@m+1)) - 2)+"]"))) dispbottom .n$+": Mobs Killed on "+strcharinfo(3)+": "+getd("$@pt_"+getcharid(1)+"_"+strcharinfo(3)+"_mct") +"/"+getd("."+getd("$@pty_"+getcharid(1)+"$")+"$["+( (4*(.@m+1)) - 2)+"]")+"!",0x00FF00,.@c_cid; else dispbottom .n$+": You're Party has reached the required mob quantity to proceed to the next level or visit the "DG Party Progress" NPC to complete the Dungeon.",0x00FF00,.@c_cid; getexp .@bexp,.@jexp,.@c_cid; dispbottom .n$+": Recieved Bonus: "+.@expr+"% - Base EXP: "+.@bexp+"/Job EXP: "+.@jexp,0x00FF00,.@c_cid; // Killed MvP > rewarding with points if .mvp_rew > 0 if(getmonsterinfo(killedrid,22) != 0 && .mvp_rew > 0) { set .@m_res,.mvp_pts*atoi(getd("."+.dungpre$[getd(".pty_"+getcharid(1)+"_ix")]+"$[0]")); switch(.mvp_rew) { case 1: setd(""+.mvp_var$),getd(""+.mvp_var$) + .@m_res,.@c_cid; break; case 2: set #CASHPOINTS,#CASHPOINTS + .@m_res,.@c_cid; break; } dispbottom .n$+": Recieved MVP Points: "+.@m_res+"x "+ ( (.mvp_rew == 1)?"MvP Points":"Cash Points")+".",0x00FF00,.@c_cid; }}end;// Re-copying Party Member Data every 5 MinutesOnTimer300000:stopnpctimer;if(.debug) debugmes "OnTimer Executed at 5 Minute:";if(getarraysize(.pty_id) > 0) { for ( set .@t,0; .@t < getarraysize(.pty_id); set .@t,.@t + 1) { if(.debug) debugmes "Synchronizing Member Data of Party ID"+.pty_id[.@t]; callfunc "SyncPartyData",.pty_id[.@t]; sleep 2500; }}if(.debug) debugmes "Restarting Timer....";initnpctimer;end;OnPCLogoutEvent:if(!getcharid(1)) end; // Not in a Party > Just in Caseif(getd("$@pty_"+getcharid(1)+"_m$[0]") == "") end; // Not registered at the NPC > same as aboveif(getpartyleader(getcharid(1),1) != getcharid(3)) end; // Attached player is not party leaderif(.debug) debugmes "Party Leader logged off, changing leader:";set .@pty_id,getcharid(1);set .@pty_lead,getpartyleader(getcharid(1),1);if(.debug) debugmes "Party ID: "+.@pty_id+", Party Leader Acc ID:"+ .@pty_lead;for ( set .@p,0; .@p < getarraysize(getd("$@pt_"+.@pty_id+"_maid")); set .@p,.@p + 1) { set .@c_aid,getd("$@pt_"+.@pty_id+"_maid["+.@p+"]"); // Current selected Member's Account ID set .@c_cid,getd("$@pt_"+.@pty_id+"_mcid["+.@p+"]"); // Current selected Member's Character ID if(.debug) debugmes "Current Acc and Char ID: "+.@c_aid+", "+.@c_cid; // Member is logged in and is not the current Party Leader if(isloggedin(.@c_aid,.@c_cid) == 1 && .@c_aid != .@pty_lead) { if(.debug) debugmes "Changing Leader of party "+.@pty_id+" to "+.@c_cid; party_changeleader(.@pty_id,.@c_cid); break; }}end;}// Function to Re-Copy the Account ID and Character ID for each Party Member in an arrayfunction script SyncPartyData {// ============================================// getarg(0) = Party ID// ============================================getpartymember(getarg(0),1);getpartymember(getarg(0),2);copyarray getd("$@pt_"+getarg(0)+"_maid[0]"),$@partymemberaid[0],$@partymembercount;copyarray getd("$@pt_"+getarg(0)+"_mcid[0]"),$@partymembercid[0],$@partymembercount;if(getd("$@pt_"+getarg(0)+"_maid[0]") == 0) debugmes .n$+": Copy Array for Party ID "+getarg(0)+" failed. Use "setarray"!!!";return;}// ======================= Party Join Feature - NPC =====================- script Party_Join -,{OnInit:set .n$,getvariableofnpc(.n$,"Dungeon Party Service");end;OnWhisperGlobal:if(!getcharid(1)) end;if(getmapflag(strcharinfo(3),mf_pvp) == 1 || getmapflag(strcharinfo(3),mf_gvg) == 1) end; // On PvP or GvG Maps = No effectif(strcharinfo(0) != getpartyleader(getcharid(1))) end;// List of the requestersif(@whispervar0$ == "List" || @whispervar0$ == "list") { if(getarraysize(getd("$@req_"+getcharid(1)+"_id")) < 1) { dispbottom .n$+": I'm sorry, but there are no applicants to list!",0x00FFFF; end; } dispbottom .n$+": I will now list the requesters, which want to join your party.",0x00FFFF; dispbottom .n$+": Each requester gets an number, like 1.<Name>.",0x00FFFF; dispbottom .n$+": With this number, you have to re-pm me, but instead of "List", you have to use "Join" or "Abort"."Accept" or "Decline" does also work.",0x00FFFF; dispbottom .n$+": After "Join"/"Accept" or "Abort"/"Decline", you have to add "#<Number of requester>".",0x00FFFF; dispbottom "==================="; dispbottom "- Number: Name, Level:, Class",0xFF2200; for ( set .@r,0; .@r < getarraysize(getd("$@req_"+getcharid(1)+"_id")); set .@r,.@r + 1) dispbottom "- "+(.@r+1)+": "+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@r+"]")+"$[0]")+", "+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@r+"]")+"$[1]")+", "+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@r+"]")+"$[2]"),0xFF2200; dispbottom "==================="; dispbottom .n$+": I will now list here your party members, also with a number, to warp the chosen player to that party member.",0x00FFFF; dispbottom .n$+": To let the player warp to one of your party members add after the number of the player "#<Number of Member>".",0x00FFFF; dispbottom .n$+": So it would look something like this: "Join#1#1", this would let the 1st requester in the list to the 1st party member, most cases you.",0x00FFFF; dispbottom .n$+": Note: If you use "Abort"/"Decline" the number of the party member won't take effect, of course.",0x00FFFF; dispbottom "==================="; getpartymember(getcharid(1)); set @partyct,$@partymembercount; copyarray @partymemb$[0],$@partymembername$[0],@partyct; dispbottom "- Number: Member Name:",0xFF2200; for ( set .@p,0; .@p < @partyct; set .@p,.@p + 1) if(isloggedin(getcharid(3,@partymemb$[.@p]),getcharid(0,@partymemb$[.@p])) == 1) // Member logged in? dispbottom "- "+(.@p+1)+"."+@partymemb$[.@p] + ( (@partymemb$[.@p] == getpartyleader(getcharid(1)))?" (Leader)":""),0xFF2200; dispbottom "===================";// Accepting requesters} else if(compare(@whispervar0$,"Accept") == 1 || compare(@whispervar0$,"Join") == 1) { if(@whispervar1$ == "" || @whispervar2$ == "") { dispbottom .n$+": Either you didn't put the requesters number or the number of the party member he should be warped to!"; end; } // In case the leader logged of, the "@" variables were deleted if(@partymemb$[atoi(@whispervar2$)-1] == "") { dispbottom .n$+": An bug has occured, in which I couldn't find the list for your party members."; dispbottom .n$+": Possible Bug: You logged off or disconnected. Please repeat the previous step."; end; } set .@nr,atoi(@whispervar1$)-1; message getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),.n$+": Your request has been accepted, you will be warped to the party member chosen from the leader."; party_addmember(getcharid(1),getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")); sleep2 2000; charcommand "#warpto ""+strcharinfo(0,getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"))+"" "+@partymemb$[atoi(@whispervar2$)-1]; // Resync of Party Member Data callfunc "SyncPartyData",getcharid(1); // Deleting applicant from application list deletearray getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"),1; deletearray getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),128; // Declining requesters} else if(compare(@whispervar0$,"Decline") == 1 || compare(@whispervar0$,"Abort") == 1) { if(@whispervar1$ == "") { dispbottom .n$+": You didn't put the requesters number!"; end; } set .@nr,atoi(@whispervar1$)-1; if(isloggedin(getcharid(3,strcharinfo(0,getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"))),getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")) != 0) message getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),.n$+": I'm sorry, but your request has been declined."; dispbottom .n$+": The applicant ["+getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]")+"] has been deleted from the list."; deletearray getd("$@req_"+getcharid(1)+"_id["+.@nr+"]"),1; deletearray getd("$@req_"+getd("$@req_"+getcharid(1)+"_id["+.@nr+"]")+"$[0]"),128;} else dispbottom .n$+": I'm not sure, what you wanted from me, but I can't do that."; end;}// ======================= Inside Dungeon NPC =====================- script Dungeon Guard#main::DG_Main 110,{if(!getcharid(1)) end;set .@n$,"["+strnpcinfo(1)+"]";mes .@n$;if(getpartyleader(getcharid(1)) != strcharinfo(0)) { mes "Only the party leader can talk to me!"; close;}if(getd("$@pty_"+getcharid(1)+"_m$[0]") == "") { mes "You didn't register your party for the Dungeon Party Service."; close;}if(getarraysize(getd("."+strnpcinfo(2)+"$")) < 1) { mes "An bug has occured, please contact an GM."; mes "But talk to me again!!"; set .debug,1; close2; goto OnDGLoad;}mes "Here is your party's progress so far:";for ( set .@m,0; .@m < getarraysize(getd("$@pty_"+getcharid(1)+"_m$")); set .@m,.@m + 1) { mes "On the "+(.@m + 1)+". Level (Map: "+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"),"; for ( set .@n,3; .@n < getarraysize(getd("."+strnpcinfo(2)+"$")); set .@n,.@n + 4) { if(getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]") != getd("."+strnpcinfo(2)+"$["+.@n+"]")) continue; mes "your party has killed "+getd("$@pt_"+getcharid(1)+"_"+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"_mct")+"/"+atoi(getd("."+strnpcinfo(2)+"$["+(.@n-1)+"]")); if(getd("$@pt_"+getcharid(1)+"_"+getd("$@pty_"+getcharid(1)+"_m$["+.@m+"]")+"_mct") < atoi(getd("."+strnpcinfo(2)+"$["+(.@n-1)+"]")) ) set .@kc,.@kc + 1; }}if(.@kc) { next; mes .@n$; mes "But to complete the dungeon, your party still has to kill some more monsters."; mes "Please go back to the specific levels and kill the rest of the monsters."; close;}next;mes .@n$;mes "Congratulation!";mes "You have completed the dungeon.";if(getvariableofnpc(.dg_rew,"Dungeon Party Service") == 1) { mes "Please visit the "Dungeon Party Service" for your rewards."; setd("$@pty_"+getcharid(1)+"_rew"),1;}mes "You*re party will now be warped to Prontera.";close2;warpparty "prontera",156,191,getcharid(1);end;OnDGLoad:set .DGN_Load,1;while(getvariableofnpc(getd("."+strnpcinfo(2)+"$["+.@n+"]"),"Dungeon Party Service") != "") { setarray getd("."+strnpcinfo(2)+"$["+.@n+"]"),getvariableofnpc(getd("."+strnpcinfo(2)+"$["+.@n+"]"),"Dungeon Party Service"); if(.debug) debugmes strnpcinfo(0)+": getvariableofnpc:"+ getvariableofnpc(getd("."+strnpcinfo(2)+"$["+.@n+"]"),"Dungeon Party Service"); set .@n,.@n + 1; sleep 100;}if(.debug) set .debug,0;end;}// ======================= Start of Dungeon Exit - NPC Duplicates =====================//dungeon_map,x,y,facing duplicate(DG_Main) DG Party Progress#<dungeon array prefix> 110// NOTE: Don't change the "DG Party Progress" part of the npc names unless you change it everywhere in the script,// just search for it and exchange it with the new name.// You can add more dungeons as you like, except instance dungeons, which aren't supported by this script.// 1.: Take a look at the OnInit: above with the dungeon settings.// 2.: Add your dungeon data like the others.// 3.: Add an NPC Duplicate like below.// 4.: Restart the server/ @reloadscriptabbey03,234,216,4 duplicate(DG_Main) DG Party Progress#abbey 110abyss_03,98,103,4 duplicate(DG_Main) DG Party Progress#abyss 110ama_dun03,120,223,4 duplicate(DG_Main) DG Party Progress#amat 110ayo_dun02,149,246,4 duplicate(DG_Main) DG Party Progress#ayot 110iz_dun04,130,222,4 duplicate(DG_Main) DG Party Progress#bylan 110 c_tower4,82,138,4 duplicate(DG_Main) DG Party Progress#c_tow 110alde_dun04,165,268,4 duplicate(DG_Main) DG Party Progress#alde 110mjo_dun03,34,52,4 duplicate(DG_Main) DG Party Progress#coal 110prt_sewb4,34,52,4 duplicate(DG_Main) DG Party Progress#culv 110ein_dun02,25,88,4 duplicate(DG_Main) DG Party Progress#einb 110gefenia04,160,30,4 duplicate(DG_Main) DG Party Progress#gefia 110gef_dun03,119,104,4 duplicate(DG_Main) DG Party Progress#gefd 110glast_01,191,120,4 duplicate(DG_Main) DG Party Progress#glas 110gon_dun03,99,183,4 duplicate(DG_Main) DG Party Progress#gonr 110ice_dun03,149,116,4 duplicate(DG_Main) DG Party Progress#iced 110prt_maze03,177,89,4 duplicate(DG_Main) DG Party Progress#maze 110jupe_core,150,129,4 duplicate(DG_Main) DG Party Progress#jupe 110kh_dun02,129,98,4 duplicate(DG_Main) DG Party Progress#kiel 110lhz_dun02,150,145,4 duplicate(DG_Main) DG Party Progress#lhz 110lou_dun03,170,153,4 duplicate(DG_Main) DG Party Progress#louy 110mag_dun02,43,44,4 duplicate(DG_Main) DG Party Progress#magma 110odin_tem03,278,236,4 duplicate(DG_Main) DG Party Progress#odin 110orcsdun02,77,88,4 duplicate(DG_Main) DG Party Progress#orcsd 110pay_dun04,120,116,4 duplicate(DG_Main) DG Party Progress#pay 110moc_pryd06,97,59,4 duplicate(DG_Main) DG Party Progress#pyram 110in_sphinx5,100,149,4 duplicate(DG_Main) DG Party Progress#sphinx 110treasure02,101,166,4 duplicate(DG_Main) DG Party Progress#pirate 110tha_t12,136,65,4 duplicate(DG_Main) DG Party Progress#thana 110xmas_dun02,134,134,4 duplicate(DG_Main) DG Party Progress#toy 110tur_dun04,92,100,4 duplicate(DG_Main) DG Party Progress#turtle 110thor_v03,151,162,4 duplicate(DG_Main) DG Party Progress#thor_v 110// ======================= End of NPC Duplicates =====================// ======================= End of Script ===================== helo.. i need some help for fixing this script.
  9. wow.. thank so lot @@AnnieRuru :wub: :wub: cant wait the script.. hahaha
  10. Thx for reply.. I dig it coz it somehow nice.. Just need some adjust on script.. I already try running in my server.. Its seem bug only but still useful. I just need change something in script. Hehehe
  11. prontera,160,178,5 script debug 1_F_MARIA,{ $floorclear = 0; dispbottom "reset";}prontera,156,178,5 script SAO??NO 1_F_MARIA,{ mes "No. of stage beaten : "+( $floorclear +1 == .totalfloor ? "ALL" : $floorclear +" stage" ); mes "Which floor do you want to challenge ?"; next; for ( .@i = 0; .@i <= $floorclear; .@i++ ) .@menu$ = .@menu$ +"Floor No. "+( .@i +1 )+":"; .@s = select( .@menu$ ); if ( has_instance2("guild_vs2") >= 0 ) instance_destroy has_instance2("guild_vs2"); if ( ( .@ins = instance_create( "Challenge Floor No."+ .@s, getcharid(3), IOT_CHAR ) ) < 0 ) { mes "error : "+ .@ins; close; } if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, 1, ( getcharid(3) - 2000000 )+"SAO"+ .@s ) ) ) { mes "error : 5"; instance_destroy .@ins; close; } instance_set_timeout 3600, 15, .@ins; // 1 hour to kill, 15 seconds to destroy instance_attach .@ins; 'floor = .@s; instance_init .@ins; warp ( getcharid(3) - 2000000 )+"SAO"+ .@s, 50,50; end;OnInit: setarray .floor, OSIRIS, // 1st floor BAPHOMET, // 2nd floor DOPPELGANGER; // 3rd floor .totalfloor = getarraysize(.floor); end;}guild_vs2,50,50,5 script portal WARPNPC,2,2,{ if ( 'floor == getvariableofnpc( .totalfloor, "SAO??NO" ) ) { mes "no more"; close2; warp "Save", 0,0; instance_destroy has_instance( "guild_vs2" ); end; } if ( 'floor > $floorclear ) { announce "[SAO Instance???] Floor No. "+ 'floor +" has open !", bc_all; $floorclear = 'floor; } .@floor = 'floor +1; instance_destroy has_instance( "guild_vs2" ); if ( ( .@ins = instance_create( "Challenge Floor No."+ .@floor, getcharid(3), IOT_CHAR ) ) < 0 ) { mes "error : "+ .@ins; close; } if ( !getstrlen( instance_attachmap( "guild_vs2", .@ins, 1, ( getcharid(3) - 2000000 )+"SAO"+ .@floor ) ) ) { mes "error : 5"; warp "Save", 0,0; instance_destroy .@ins; close; } instance_set_timeout 3600, 15, .@ins; // 1 hour to kill, 15 seconds to destroy instance_attach .@ins; 'floor = .@floor; instance_init .@ins; warp ( getcharid(3) - 2000000 )+"SAO"+ .@floor, 50,50; end;OnInstanceInit: monster strnpcinfo(4), 50,50, "--ja--", getelementofarray( getvariableofnpc( .floor, "SAO??NO" ), 'floor -1 ), 1, instance_npcname( strnpcinfo(0) )+"::OnFloorBossDead"; hideonnpc instance_npcname( strnpcinfo(0) ); end;OnFloorBossDead: announce "Floor No. "+( 'floor )+" cleared ! Select an item from the drop list as your reward.", bc_map; mes "Select an item for your reward"; next; getmobdrops getelementofarray( getvariableofnpc( .floor, "SAO??NO" ), 'floor -1 ); for ( .@i = 0; .@i < $@MobDrop_count -1; .@i++ ) .@menu$ = .@menu$ + getitemname( $@MobDrop_item[.@i] ) +" - "+ $@MobDrop_rate[.@i] / 100 +"."+ $@MobDrop_rate[.@i] % 100 +"%:"; copyarray .@itemid, $@MobDrop_item, $@MobDrop_count -1; .@s = select( .@menu$ ) -1; getitem .@itemid[.@s], 1; hideoffnpc instance_npcname( strnpcinfo(0) ); close;} hello i need some help me.. 1- how to make it has delay? player will need to wait 10 minutes before can join again this room? 2- how to make it party only? 3- set monster base on ID not name 4- extra reward when finish all stage.
  12. can share me ur solo instance script?
  13. hello to all.. i was looking script like this. year 2011 if i not mistake that server already have this script. if some have this script can share it with me? *player will need in min/max party *point will be same in 1 party *15 stage total. clear room in 10 minutes *monster will base on dead branch and bloody branch + custom monster. *normal monster will get 1 point. Bos monster will get 5 point *talk to npc will get 1st white belt *only player have belt can join this instance *party will collect point and change to 2nd belt. *total belt will be 5. white > yellow > green > blue > black *no drop item. only point get.
  14. hard to say @@AnnieRuru 1st month fast reply and responsible but now silent. my ticket also still not reply. 5 month already since hosting with him. thank you so much @@AnnieRuru its work like charm. :wub:
  15. prontera,106,203,5 script Farm Zone 757,{function RandomizeItem;while( 1 ){mes "How can i help you ?";switch( select( "Information:Farm Items" )){case 1: mes "This is a Farm Zone."; mes "You are able to Hunt Monster inside this Room."; mes "Every Monster will award you random items."; next; mes "But there is some Condition.."; mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000"; mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000"; mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000"; next; mes "There will be a ^FF0000Room Cleaning^000000 from time to time..."; mes "All players will be kicked out, it is your bad luck if you meet this."; mes "Delay will still apply even though you just go in for 1 Seconds.."; next; break;case 2: if( #HuntRoomDelay > gettimetick(2) ){ set .last,#HuntRoomDelay - gettimetick(2); set .@min, .last % ( 24 * 3600 ) % 3600 / (60); mes "Wait for ^FF0000"+.@min+" Minutes^000000."; close; }else if( getarraysize( .Hunter ) >= .MaxPlayers ){ mes "Currently the Room is Full. Please try again later."; close; }else{ warp .Map$,0,0; set .Hunter[getarraysize( .Hunter )],strcharinfo(0); set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 ); set #FarmHunt,0; end; } }}OnInit:// Maximum Player can join per X Minutes.set .MaxPlayers,5;// Adding X Minutes of Delay before can go in again.set .DelayMin,5;// Maximum Hunt Limit per round inside the Zone.set .MaxItemLimit,50;// Map that will be used in thos Zone.set .Map$,"ordeal_3-1";// Clear Map Every X Minutes.set .RoomCleanMin,5;// Mapflag Initializationsetmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nomobloot;setmapflag .Map$,mf_nomvploot;setmapflag .Map$,mf_nowarpto;setmapflag .Map$,mf_nochat;setmapflag .Map$,mf_novending;setmapflag .Map$,mf_nocommand,60;setmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nojobexp;setmapflag .Map$,mf_nobaseexp;while( 1 ){ killmonster .Map$,"All"; mapwarp .Map$,"prontera",155,181; monster .Map$,1829,1830,1831,1833,1839,1699,1713,"[ Farm Zone ] Resident";-1,80,strnpcinfo(0)+"::OnNormalKill"; monster .Map$,1832,1511,1785,1630,1039,1272,1719,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill"; deletearray .Hunter,getarraysize( .Hunter ); announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue; sleep ( .RoomCleanMin * 60000 ); mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0; killmonster .Map$,"All"; sleep 3000; }end;OnNormalKill:RandomizeItem( 0,rand(1,5) );monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";end;OnBossKill:RandomizeItem( 1,rand(1,3) );monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";end;// Function that used to Generate Random Itemsfunction RandomizeItem {set #FarmHunt,#FarmHunt + getarg(1);// Normal Monster in Zone Drops Listsif( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12016,14534;// Normal Boss in Zone Drops Listsif( getarg(0) == 1 ) setarray .ItemList[0],14536,12267,12266,14601,13830,13831,13832,13833;for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){ getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1; }deletearray .ItemList,getarraysize( .ItemList );dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";if( #FarmHunt >= .MaxItemLimit ){ message strcharinfo(0),"Limit Reach , you may join again later."; sleep2 2000; warp "invek",147,164; }return;} } why i cant more mob normal or bos? if i make more than 2 mob or bos.. i will get error. and how add monster random based on Bloody Branch / Dead Branch @
  16. invek,106,203,5 script Farm Zone 757,{function RandomizeItem;while( 1 ){mes "How can i help you ?";switch( select( "Information:Farm Items" )){Case 1: mes "This is a Farm Zone."; mes "You are able to Hunt Monster inside this Room."; mes "Every Monster will award you random items."; next; mes "But there is some Condition.."; mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000"; mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000"; mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000"; next; mes "There will be a ^FF0000Room Cleaning^000000 from time to time..."; mes "All players will be kicked out, it is your bad luck if you meet this."; mes "Delay will still apply even though you just go in for 1 Seconds.."; next; break;Case 2: if( #HuntRoomDelay > gettimetick(2) ){ set .last,#HuntRoomDelay - gettimetick(2); set .@min, .last % ( 24 * 3600 ) % 3600 / (60); mes "Wait for ^FF0000"+.@min+" Minutes^000000."; close; }else if( getarraysize( .Hunter ) >= .MaxPlayers ){ mes "Currently the Room is Full. Please try again later."; close; }else{ warp .Map$,0,0; set .Hunter[getarraysize( .Hunter )],strcharinfo(0); set #HuntRoomDelay,gettimetick(2) + ( .DelayMin * 60 ); set #FarmHunt,0; end; } }}OnInit:// Maximum Player can join per X Minutes.set .MaxPlayers,5;// Adding X Minutes of Delay before can go in again.set .DelayMin,15;// Maximum Hunt Limit per round inside the Zone.set .MaxItemLimit,200;// Map that will be used in thos Zone.set .Map$,"guild_vs4";// Clear Map Every X Minutes.set .RoomCleanMin,15;// Mapflag Initializationsetmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nomobloot;setmapflag .Map$,mf_nomvploot;setmapflag .Map$,mf_nowarpto;setmapflag .Map$,mf_nochat;setmapflag .Map$,mf_novending;setmapflag .Map$,mf_nocommand,60;setmapflag .Map$,mf_nogo;setmapflag .Map$,mf_nojobexp;setmapflag .Map$,mf_nobaseexp;while( 1 ){ killmonster .Map$,"All"; mapwarp .Map$,"prontera",155,181; monster .Map$,0,0,"[ Farm Zone ] Resident",-1,80,strnpcinfo(0)+"::OnNormalKill"; monster .Map$,0,0,"[ Farm Zone ] Guardian",-3,5,strnpcinfo(0)+"::OnBossKill"; deletearray .Hunter,getarraysize( .Hunter ); announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue; sleep ( .RoomCleanMin * 60000 ); mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0; killmonster .Map$,"All"; sleep 3000; }end;OnNormalKill:RandomizeItem( 0,rand(1,5) );monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";end;OnBossKill:RandomizeItem( 1,rand(1,3) );monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";end;// Function that used to Generate Random Itemsfunction RandomizeItem {set #FarmHunt,#FarmHunt + getarg(1);// Normal Monster in Zone Drops Listsif( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12033,12016,14534;// Normal Boss in Zone Drops Listsif( getarg(0) == 1 ) setarray .ItemList[0],14536,12912,12267,12266,14601,13830,13831,13832,13833;for( set .@i,1; .@i <= getarg(1); set .@i,.@i + 1 ){ getitem .ItemList[ rand( getarraysize( .ItemList ) ) ],1; }deletearray .ItemList,getarraysize( .ItemList );dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";if( #FarmHunt >= .MaxItemLimit ){ message strcharinfo(0),"Limit Reach , you may join again later."; sleep2 2000; warp "invek",147,164; }return;} } [Error]: script error in file '(DIRECT INPUT)' line 7 column 1 parse_line: expect command, missing function name or calling undeclared function 4: while( 1 ){ 5: mes "How can i help you ?"; 6: switch( select( "Information:Farm Items" )){ * 7: Case 1: ^ 8: mes "This is a Farm Zone."; 9: mes "You are able to Hunt Monster inside this Room."; 10: mes "Every Monster will award you random items."; how to fix? i take from rathena and from this link most a script not compatible with Hercules emulator. https://rathena.org/board/index.php?app=core&module=search&do=user_activity&search_app=downloads&mid=241
  17. yes i pay to hosting. if have script include sql i will send ticket to hoster and when i ask to teach how, the hoster say let him do. the problem now is my hosting not reply my ticket. so i need to learn by myself. i have problem with this script.
  18. sorry.. because i see in script warper custom. i have warp to shop. so i copy from there. thank you so much for helping.
  19. invek,134,159,6 script Custom Mall 830,{ shop: warp "sky_quest" ,45,52; OnInit:waitingroom "Custom Mall",0;end;}invek,172,201,4 script Vending 858,{ OnInit: waitingroom "Vending AREA",0;end;}invek,118,205,4 script Event 858,{ OnInit:waitingroom "Event AREA",0;end;}invek,140,81,6 script WELCOME 858,{ OnInit:waitingroom "WELCOME TO AVILLIONRO",0;end;}invek,171,177,4 script REFINE 858,{ OnInit:waitingroom "Refine AREA",0;end;}sky_quest,46,55,6 script Town 830,{ shop: warp "invek" ,147,164; OnInit:waitingroom "Town",0;end;}gonryun,159,107,6 script Town2 830,{ shop: warp "invek" ,147,164; OnInit:waitingroom "Town",0;end;} there got error on my map server. room have been create, how to fix?
  20. i got some problem.. when i reload script.. the npc still gv to player and when player relog npc will gv to player againhow to fix? bump
  21. thank you so much.. can i request 1 more add on. how to announce welcome to newbie?
  22. thank you for the script. may i know this one will base on ip? player cant spam new id right?
×
×
  • Create New...

Important Information

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