sader1992 Posted July 9, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 3 hours ago Share Posted July 9, 2017 (edited) View File sader's hunting quest This system is simple the player choose the categories, he gets a hunting quest to kill a monster (random monster from the list that you put in the config) when he complete the quest , he will get a exp/job exp and if you want you can add items to the reward too and he will get cooldown , he can do more then 1 categories at the time you can add as much as you want categories/monsters the quest are ether account base or character based , it's up to you (seethe config at the end of the script) the quests not for party , if you want it to work with parties , you need to edit it your self in version 5 of the script , a full rewrite what changed the configuration completely you can now add as much as you want categories following this example: AddCata(<"name">,<.var>,<mini level>,<max level>,<cooldown in hours>,<base exp reward>,<job exp reward>,<point reward>,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>}}) AddCata("Normal",.Normal,25,75,5,10000,1000,100); you can add as much as you want monsters in each categories following this example: AddMob(<.var>,<mob id>,<min count>,<max count>); AddMob(.Normal,1002,150,150); Submitter sader1992 Submitted 07/08/2017 Category Games, Events, Quests Video Content Author sader1992 Edited July 12, 2017 by sader1992 1 Quote Link to comment Share on other sites More sharing options...
Elysium Posted July 9, 2017 Group: Members Topic Count: 41 Topics Per Day: 0.01 Content Count: 164 Reputation: 17 Joined: 03/15/12 Last Seen: October 24, 2020 Share Posted July 9, 2017 Curios, The way you add menus Quote switch(select(""+"shop"+":"+"close"+"")){ to Quote switch(select("shop","close")){ Quote switch(select(""+"easy difficulty"+":"+"normal difficulty"+":"+"hard difficulty"+":"+"indeterminate difficulty"+":"+"shop"+":"+"close"+"")){ to Quote switch(select("easy difficulty","normal difficulty","hard difficulty","indeterminate difficulty","shop","close")){ Can you tell me what's the differences? Kinda confuse why you add "+ in each menus. Quote Link to comment Share on other sites More sharing options...
yuchinin Posted July 10, 2017 Group: Members Topic Count: 12 Topics Per Day: 0.00 Content Count: 120 Reputation: 48 Joined: 07/23/13 Last Seen: August 27, 2021 Share Posted July 10, 2017 13 hours ago, Elysium said: Curios, The way you add menus to to Can you tell me what's the differences? Kinda confuse why you add "+ in each menus. There is two way to add menu: 1. Use comma to separate each string 2. Add a ":" to separate each menu like select("Options A:Options B"), this is same as select("Options A","Options B") Quote Link to comment Share on other sites More sharing options...
sader1992 Posted July 12, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 3 hours ago Author Share Posted July 12, 2017 (edited) adding //v2 //v3 info to the post //v.4.0 fix where all the players get the same quest fix where you need to kill the monster counts +1 to complete the quest add subclasses for adding custom rewards for each mode line 207 to 220 Fix where @reloadscript reset the quest Edited July 12, 2017 by sader1992 Quote Link to comment Share on other sites More sharing options...
sprdosat Posted February 4, 2019 Group: Members Topic Count: 11 Topics Per Day: 0.00 Content Count: 75 Reputation: 5 Joined: 08/28/13 Last Seen: February 14, 2024 Share Posted February 4, 2019 (edited) Up Edited February 6, 2019 by sprdosat I thought there were errors in NPC Quote Link to comment Share on other sites More sharing options...
JaranSwitch0101 Posted February 6, 2019 Group: Members Topic Count: 11 Topics Per Day: 0.00 Content Count: 59 Reputation: 5 Joined: 07/02/18 Last Seen: September 3, 2020 Share Posted February 6, 2019 It's nice! Can you add a description line for each mission before performing monster hunting missions? It will be more perfect if there are items hunting... Quote Link to comment Share on other sites More sharing options...
morpheus159 Posted June 11, 2019 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 1 Reputation: 0 Joined: 02/24/12 Last Seen: July 8, 2024 Share Posted June 11, 2019 Hello, I did the installation of the file but when there is no NPC located in "Prontera" nothing happens. What can I do to solve it? Quote Link to comment Share on other sites More sharing options...
spinzaku Posted November 9, 2019 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 82 Reputation: 6 Joined: 04/20/16 Last Seen: July 23, 2024 Share Posted November 9, 2019 (edited) Thank you for this script. There seems to be a bug sometimes when killing required monsters. Lets say iv given a task to kill 400 porings. Sometimes killing 1 poring gives me 50 kill count instead of only 1 kill count. Sometimes the bug happens sometimes does not on different monsters. If you use @monster summon no bug. go to area where the mob is. Sometimes i can go 5/200 then at 6 it would suddenly become 56/200 EDIT: might have figured it out because i duplicated this npc in many areas. thats why count per kill is not correct. need to disable duplicate Edited November 12, 2019 by spinzaku Quote Link to comment Share on other sites More sharing options...
syndrome93 Posted February 29, 2020 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 36 Reputation: 0 Joined: 09/08/13 Last Seen: September 30, 2020 Share Posted February 29, 2020 @sader1992 how to add for 1 IP addres.. the setting only for 1 character or 1 account.. can i request for more option for IP address?? @sader1992 all the character can make quest even i use setting for account only.. why? .accharlimit = 0; // 0 = once per account , 1 = once pet character ////v4.1 update Quote Link to comment Share on other sites More sharing options...
ApocalypseRo Posted April 9, 2020 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 22 Reputation: 0 Joined: 03/19/20 Last Seen: July 22, 2020 Share Posted April 9, 2020 (edited) @sader1992 1 • what would it be like, need to hat, aura, wing to complete the quest ?? 2 • how would it be in % kill ??? you kill 150 but for the drop the count is 42 out of 100 monsters. Setarray. hardc, 75, 100, 150; // Monster count in hard mode ((Random)) ,150; <---- This is the % drop killer? (I need %) • And how would it be that when killing a mob it appears in the hunter player [you carry 40/50 zombies] @sader1992 Edited April 10, 2020 by ApocalypseRo Quote Link to comment Share on other sites More sharing options...
ItsRas Posted December 30, 2020 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 30 Reputation: 0 Joined: 03/08/15 Last Seen: July 1, 2022 Share Posted December 30, 2020 Hi Sader! I am currently trying this script on my test server and I noticed an error. Even the quest is done and I use @reloadscript, the npc will still give you the exp and rewards. Quote Link to comment Share on other sites More sharing options...
tonn Posted January 11, 2021 Group: Members Topic Count: 2 Topics Per Day: 0.00 Content Count: 10 Reputation: 1 Joined: 10/10/20 Last Seen: January 20, 2024 Share Posted January 11, 2021 (edited) Hey @sader1992, In this bit (line 29), I think you mistakenly reused .@i where you could've used something else like .@j. It is, obviously, causing some problems when the categories have an item reward. if(getd(".IRD_" + .@i)){ for(.@i=0;.@i<getarraysize(getd(".IRD_" + .@i));.@i++){ getitem(getd(".IRD_" + .@i + "[" + .@i + "]"),getd(".CRD_" + .@i + "[" + .@i + "]")); } } I appreciate you rewriting this script, though. I find it more flexible than the previous version. Edited January 11, 2021 by tonn 1 Quote Link to comment Share on other sites More sharing options...
aferny Posted January 24, 2021 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 20 Reputation: 0 Joined: 09/28/20 Last Seen: August 9, 2021 Share Posted January 24, 2021 Hey @sader1992 Im using this on our server, how ever someone actually exploited it. They got 10k points with in a few min. Do you have any idea how this happened? The guy didnt want to say anything. Thank you! Quote Link to comment Share on other sites More sharing options...
sader1992 Posted January 25, 2021 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 3 hours ago Author Share Posted January 25, 2021 (edited) On 1/11/2021 at 2:36 AM, tonn said: Hey @sader1992, In this bit (line 29), I think you mistakenly reused .@i where you could've used something else like .@j. It is, obviously, causing some problems when the categories have an item reward. if(getd(".IRD_" + .@i)){ for(.@i=0;.@i<getarraysize(getd(".IRD_" + .@i));.@i++){ getitem(getd(".IRD_" + .@i + "[" + .@i + "]"),getd(".CRD_" + .@i + "[" + .@i + "]")); } } I appreciate you rewriting this script, though. I find it more flexible than the previous version. thanks for the report , the problems should be fixed in 5.1 On 1/24/2021 at 10:25 AM, aferny said: Hey @sader1992 Im using this on our server, how ever someone actually exploited it. They got 10k points with in a few min. Do you have any idea how this happened? The guy didnt want to say anything. Thank you! thanks for the report , the problems should be fixed in 5.2 <exploit explanation removed from this reply, I encourage updating the script so no one exploit it> I would suggest to change the main variable (I moved it to the config in 5.2)[also change the shop variable] , if you changed the variable , the whole system will be reseted , and all the points would be reseted for all the players(or just delete the points from the player who exploited the system) Edited January 25, 2021 by sader1992 Removing exploit explanation Quote Link to comment Share on other sites More sharing options...
aferny Posted January 25, 2021 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 20 Reputation: 0 Joined: 09/28/20 Last Seen: August 9, 2021 Share Posted January 25, 2021 (edited) 2 hours ago, sader1992 said: thanks for the report , the problems should be fixed in 5.1 thanks for the report , the problems should be fixed in 5.2 <exploit explanation removed from this reply, I encourage updating the script so no one exploit it> I would suggest to change the main variable (I moved it to the config in 5.2)[also change the shop variable] , if you changed the variable , the whole system will be reseted , and all the points would be reseted for all the players(or just delete the points from the player who exploited the system) Thank you so much! It works good now! Edited January 25, 2021 by sader1992 Removing exploit explanation Quote Link to comment Share on other sites More sharing options...
lyleham Posted July 30, 2021 Group: Members Topic Count: 11 Topics Per Day: 0.00 Content Count: 27 Reputation: 4 Joined: 09/25/15 Last Seen: November 1, 2021 Share Posted July 30, 2021 Hi Good day, in this script possible to have 2 or 3 different mobs to hunt in 1 quest? Thank you Quote Link to comment Share on other sites More sharing options...
manuel Posted July 18, 2022 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 48 Reputation: 2 Joined: 03/19/14 Last Seen: April 16 Share Posted July 18, 2022 QUESTION¡¡ AND ITEMS COLLECTIONS ? Quote Link to comment Share on other sites More sharing options...
SovietBR Posted December 12, 2022 Group: Members Topic Count: 7 Topics Per Day: 0.01 Content Count: 20 Reputation: 1 Joined: 12/10/22 Last Seen: April 11 Share Posted December 12, 2022 Hey, love the script, but I was looking and I did't find where I put the items on the shop, or the value for them, can you show me, please? Quote Link to comment Share on other sites More sharing options...
SovietBR Posted July 5, 2024 Group: Members Topic Count: 7 Topics Per Day: 0.01 Content Count: 20 Reputation: 1 Joined: 12/10/22 Last Seen: April 11 Share Posted July 5, 2024 Hi, can anyone help me with this, please? When I select the option I want (in this case ,130), it is blank and the dialog closes. It doesn't claim any errors or anything, it just closes the dialogue as if nothing had happened, am I missing something? Also, it's kind of random to happen, sometimes when I modify something in AddCata some quest options work and others don't. But is always on the quests beyond 99. //===== rAthena Script ======================================= //= saders hunting quest //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 5.2 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/3579-saders-hunting-quest/ //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //============================================================ //============================================================ - pointshop Hunting_Quest_Shop -1,#HUNT_Q_POINTS,512:1; //Account Based Shop //- pointshop Hunting_Quest_Shop -1,HUNT_Q_POINTS,512:1; //Character Based Shop prt_in,40,115,4 script Legendary Monster Hunter 667,{ function Ac; mes "Your Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ mes .CataName$[.@i] + ": Complete"; setd Ac() + "POINTS",getd(Ac() + "POINTS") + .CataRP[.@i]; if(.ExpServerRate){ getexp .CataBXP[.@i],.CataJXP[.@i]; }else{ getexp2 .CataBXP[.@i],.CataJXP[.@i]; } if(getd(".IRD_" + .@i)){ for(.@j=0;.@j<getarraysize(getd(".IRD_" + .@i));.@j++){ getitem(getd(".IRD_" + .@i + "[" + .@j + "]"),getd(".CRD_" + .@i + "[" + .@j + "]")); } } setd(Ac() + "CD_" + .@i,gettimetick(2) + (.CataCD[.@i] * 60 * 60)); setd(Ac() + "COM_" + .@i,false); setd(Ac() + "ID_" + .@i,0); setd(Ac() + "C_" + .@i,0); setd(Ac() + "CC_" + .@i,0); continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ mes .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i)){ mes .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } mes .CataName$[.@i] + ": None"; } .@s1 = select("Open Shop:" + implode(.CataName$,":")) -2; clear; if(.@s1 == -1){ callshop "Hunting_Quest_Shop",1; end; } .@CD = getd(Ac() + "CD_" + .@s1); if(.@CD > gettimetick(2)){ mes "you are under the cooldown effect"; mes "try again after " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); end; } if(getd(Ac() + "ID_" + .@s1)){ mes "Your Quest Progress:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); if(.AllowDeleteQuest){ mes "would you like to delete the quest?"; if(select("yes:no") == 2) end; mes "by deleting the quest you wont get any reward"; if(.ApplyCoolDownOnDelete) mes "and the cooldown will be applied!"; mes "Are you sure!?"; if(select("yes:no") == 2) end; clear; if(.ApplyCoolDownOnDelete){ setd(Ac() + "CD_" + .@s1,gettimetick(2) + (.CataCD[.@s1] * 60 * 60)); } setd(Ac() + "ID_" + .@s1,0); setd(Ac() + "C_" + .@s1,0); setd(Ac() + "CC_" + .@s1,0); mes "your quest has been deleted!"; end; } end; } if(BaseLevel < .CataMN_L[.@s1] || BaseLevel > .CataMX_L[.@s1]){ mes "you need to be between level " + .CataMN_L[.@s1] + " And " + .CataMX_L[.@s1] + " to get this quest!"; end; } mes "would you like to get a quest?"; if(select("yes:no") == 2) end; copyarray(.@mid,getd(".m_id_" + .@s1),getarraysize(getd(".m_id_" + .@s1))); .@r = rand(getarraysize(.@mid)); copyarray(.@mmn,getd(".m_mn_" + .@s1),getarraysize(getd(".m_mn_" + .@s1))); copyarray(.@mmx,getd(".m_mx_" + .@s1),getarraysize(getd(".m_mx_" + .@s1))); setd(Ac() + "ID_" + .@s1,.@mid[.@r]); setd(Ac() + "C_" + .@s1,rand(getd(".m_mn_" + .@s1 + "[" + .@r + "]"),getd(".m_mx_" + .@s1 + "[" + .@r + "]"))); setd(Ac() + "CC_" + .@s1,0); mes "Please Kill:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); end; OnNPCKillEvent: for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ setd(Ac() + "CC_" + .@i,getd(Ac() + "CC_" + .@i) + 1); dispbottom "Hunting Quest [" + .CataName$[.@i] + "]: (" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo( 1,getd(Ac() + "ID_" + .@i)); if(getd(Ac() + "CC_" + .@i) >= getd(Ac() + "C_" + .@i)){ dispbottom "Your " + .CataName$[.@i] + " Hunting Quest is Done."; setd(Ac() + "COM_" + .@i,true); } } } end; OnHuntingCheck: dispbottom "Your Hunting Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + ": Complete"; continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ dispbottom .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } dispbottom .CataName$[.@i] + ": None"; } end; function Ac { if(.AccountBase) return "#" + .variable_name$; return .variable_name$; } function AddCata { .@s = getarraysize(.CataName$); set getarg(1),.@s; .CataName$[.@s] = getarg(0); .CataMN_L[.@s] = getarg(2); .CataMX_L[.@s] = getarg(3); .CataCD[.@s] = getarg(4); .CataBXP[.@s] = getarg(5); .CataJXP[.@s] = getarg(6); .CataRP[.@s] = getarg(7); for(.@i=8;.@i<getargcount();.@i+=2){ .@s2 = getarraysize(getd(".IRD_" + .@s)); setd ".IRD_" + .@s + "[" + .@s2 + "]",getarg(.@i); setd ".CRD_" + .@s + "[" + .@s2 + "]",getarg(.@i+1); } return; } function AddMob { .@s = getarraysize(getd(".m_id_" + getarg(0))); setd ".m_id_" + getarg(0) + "[" + .@s + "]",getarg(1); setd ".m_mn_" + getarg(0) + "[" + .@s + "]",getarg(2); setd ".m_mx_" + getarg(0) + "[" + .@s + "]",getarg(3); return; } OnInit: .AccountBase = false;//wither or not the quests are on account or on character .ExpServerRate = true;//get exp according to the server rate? .AllowDeleteQuest = true;//allow player to delete his quest without getting the reward .ApplyCoolDownOnDelete = true;//wither or not apply cooldown on deleting the quest. .variable_name$ = "#HUNT_Q_POINTS"; //keep in mind if you changed this you need to change the points in the shop! bindatcmd("MyQuest",strnpcinfo(3)+"::OnHuntingCheck",0,250); freeloop(1); //You can add as much categories as you want! //recommended not more then 25! //AddCata(<"name">,<.var>,<mini level>,<max level>,<cooldown in hours>,<base exp reward>,<job exp reward>,<point reward>,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>}}) AddCata("Easy",.Easy,10,99,0,500,500,10,673,5,12210,0,676,1); AddCata("Normal",.Normal,30,99,0,2500,2500,30,673,10,12210,0,670,1); AddCata("Hard",.Hard,70,150,0,10000,10000,50,673,20,677,1,670,rand(0,2)); AddCata("Undead Easy",.UndeadOne,10,99,0,500,500,10,673,5,677,0,676,1); AddCata("Undead Normal",.UndeadTwo,30,99,0,2500,2500,20,673,10,677,0,670,1); AddCata("Undead Hard",.UndeadThree,70,99,0,10000,10000,30,673,20,677,1,670,rand(0,2)); AddCata("Level 99",.Trans,99,150,0,4000000,4000000,30,673,30,677,1,670,2); AddCata("Level 110",.Trans,110,150,1,10000000,10000000,30,673,30,677,1,670,2); AddCata("Level 120",.Trans,120,250,1,20000000,20000000,30,673,30,677,1,670,2); AddCata("Level 130",.TransNormal,130,250,1,40000000,40000000,30,673,30,677,1,670,2); AddCata("Level 140",.TransNormal,140,250,1,150000000,60000000,30,673,30,677,1,670,2); AddCata("Level 150",.TransMedium,150,250,1,200000000,80000000,30,673,30,677,1,670,2); AddCata("Level 160",.TransMedium,160,250,1,400000000,100000000,30,673,30,677,1,670,2); AddCata("Level 170",.TransMedium,170,250,1,800000000,1500000000,30,673,30,677,1,670,2); AddCata("Level 180",.TransMedium,180,250,1,1800000000,1800000000,30,673,30,677,1,670,2); AddCata("Level 190",.TransMedium,190,250,1,50000000000,50000000000,30,673,30,677,1,670,2); AddCata("MVP",.TransMVP,200,250,0,1000000000000,1000000000000,30,673,50,12210,1,677,5,670,4); AddCata("Indeterminate",.Indeterminate,66,250,0,1000000,1000000,20,673,25,677,5,670,2); //You can add as much mobs as you want! //AddMob(<.var>,<mob id>,<min count>,<max count>); AddMob(.Easy,1052,25,75); AddMob(.Easy,1076,25,75); AddMob(.Easy,1015,25,75); AddMob(.Easy,1014,25,75); AddMob(.Easy,1055,25,75); AddMob(.Easy,1019,25,75); AddMob(.Easy,1178,25,75); AddMob(.Easy,1023,25,75); AddMob(.Easy,1153,25,75); AddMob(.Easy,1060,25,75); AddMob(.Easy,1013,25,75); AddMob(.Easy,1127,25,75); AddMob(.Easy,1106,25,75); AddMob(.Easy,1028,25,75); AddMob(.Easy,1026,25,75); AddMob(.Easy,1053,25,75); AddMob(.Easy,1031,25,75); AddMob(.Easy,1024,25,75); AddMob(.Easy,1052,25,75); AddMob(.Easy,1077,25,75); AddMob(.Easy,1033,25,75); AddMob(.Easy,1141,25,75); AddMob(.Easy,1613,25,75); AddMob(.Easy,1139,25,75); AddMob(.Easy,1152,25,75); AddMob(.Easy,1243,25,75); AddMob(.Normal,1146,50,100); AddMob(.Normal,1016,50,100); AddMob(.Normal,1177,25,75); AddMob(.Normal,1044,25,75); AddMob(.Normal,1273,25,75); AddMob(.Normal,1188,25,75); AddMob(.Normal,1170,25,75); AddMob(.Normal,1248,25,75); AddMob(.Normal,1164,25,75); AddMob(.Normal,1417,25,75); AddMob(.Normal,1628,25,75); AddMob(.Normal,1041,25,75); AddMob(.Normal,1261,25,75); AddMob(.Normal,1032,25,75); AddMob(.Normal,1249,25,75); AddMob(.Normal,1215,25,75); AddMob(.Normal,1140,25,75); AddMob(.Normal,1836,25,75); AddMob(.Normal,1036,25,75); AddMob(.Normal,1143,25,75); AddMob(.Normal,1776,25,75); AddMob(.Normal,1616,25,75); AddMob(.Normal,1102,25,75); AddMob(.Normal,1155,25,75); AddMob(.Normal,1517,25,75); AddMob(.Normal,1189,25,75); AddMob(.Normal,1493,25,75); AddMob(.Normal,1213,25,75); AddMob(.Normal,1149,25,75); AddMob(.Normal,1512,25,75); AddMob(.Normal,1369,25,75); AddMob(.Normal,1193,25,75); AddMob(.Normal,1117,25,75); AddMob(.Hard,1206,25,50); AddMob(.Hard,1154,25,50); AddMob(.Hard,1883,25,50); AddMob(.Hard,1321,25,50); AddMob(.Hard,1504,25,50); AddMob(.Hard,1314,25,50); AddMob(.Hard,1317,25,50); AddMob(.Hard,1297,25,50); AddMob(.Hard,1310,25,50); AddMob(.Hard,1365,25,50); AddMob(.Hard,1617,25,50); AddMob(.Hard,1318,25,50); AddMob(.Hard,1717,25,50); AddMob(.Hard,1372,25,50); AddMob(.Hard,1316,25,50); AddMob(.Hard,1366,25,50); AddMob(.Hard,1148,25,50); AddMob(.Hard,1219,25,50); AddMob(.Trans,1098,25,50); AddMob(.Trans,1315,25,50); AddMob(.Trans,1714,25,50); AddMob(.Trans,1319,25,50); AddMob(.Trans,1366,25,50); AddMob(.Trans,1505,25,50); AddMob(.Trans,1148,25,50); AddMob(.Trans,1316,25,50); AddMob(.Trans,1376,25,50); AddMob(.TransNormal,1716,25,50); AddMob(.TransNormal,1713,25,50); AddMob(.TransNormal,1769,25,50); AddMob(.TransNormal,1098,25,50); AddMob(.TransNormal,1315,25,50); AddMob(.TransNormal,1714,25,50); AddMob(.TransNormal,1319,25,50); AddMob(.TransNormal,1376,25,50); AddMob(.TransNormal,1866,25,50); AddMob(.TransNormal,1867,25,50); AddMob(.TransNormal,2017,25,50); AddMob(.TransNormal,1206,25,50); AddMob(.TransNormal,1154,25,50); AddMob(.TransNormal,1883,25,50); AddMob(.TransNormal,1321,25,50); AddMob(.TransNormal,1504,25,50); AddMob(.TransNormal,1314,25,50); AddMob(.TransNormal,1317,25,50); AddMob(.TransNormal,1297,25,50); AddMob(.TransNormal,1310,25,50); AddMob(.TransNormal,1365,25,50); AddMob(.TransNormal,1617,25,50); AddMob(.TransNormal,1318,25,50); AddMob(.TransNormal,1717,25,50); AddMob(.TransNormal,1372,25,50); AddMob(.TransNormal,1316,25,50); AddMob(.TransNormal,1366,25,50); AddMob(.TransNormal,1148,25,50); AddMob(.TransNormal,1219,25,50); AddMob(.TransMedium,1716,25,50); AddMob(.TransMedium,1713,25,50); AddMob(.TransMedium,1759,25,50); AddMob(.TransMedium,1786,25,50); AddMob(.TransMedium,1769,25,50); AddMob(.TransMedium,1098,25,50); AddMob(.TransMedium,1315,25,50); AddMob(.TransMedium,1714,25,50); AddMob(.TransMedium,1319,25,50); AddMob(.TransMedium,1376,25,50); AddMob(.TransMedium,1866,25,50); AddMob(.TransMedium,1867,25,50); AddMob(.TransMedium,2017,25,50); AddMob(.TransMedium,1716,25,50); AddMob(.TransMedium,1713,25,50); AddMob(.TransMedium,1759,25,50); AddMob(.TransMedium,1786,25,50); AddMob(.TransMedium,1769,25,50); AddMob(.TransMedium,1098,25,50); AddMob(.TransMedium,1315,25,50); AddMob(.TransMedium,1714,25,50); AddMob(.TransMedium,1319,25,50); AddMob(.TransMedium,1376,25,50); AddMob(.TransMedium,1866,25,50); AddMob(.TransMedium,1867,25,50); AddMob(.TransMedium,1310,25,50); AddMob(.TransMedium,1365,25,50); AddMob(.TransMedium,1617,25,50); AddMob(.TransMedium,1318,25,50); AddMob(.TransMedium,1717,25,50); AddMob(.TransMedium,1372,25,50); AddMob(.TransMedium,1316,25,50); AddMob(.TransMedium,1366,25,50); AddMob(.TransMedium,1148,25,50); AddMob(.TransMedium,1219,25,50); AddMob(.TransMedium,1268,1,3); AddMob(.TransMedium,1720,1,3); AddMob(.TransMedium,1289,1,3); AddMob(.TransMVP,1511,1,2); AddMob(.TransMVP,1785,1,5); AddMob(.TransMVP,1389,1,2); AddMob(.TransMVP,1112,1,2); AddMob(.TransMVP,1252,1,2); AddMob(.TransMVP,1251,1,2); AddMob(.TransMVP,1147,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1038,1,2); AddMob(.TransMVP,1087,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1086,1,2); AddMob(.TransMVP,1115,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1583,1,2); AddMob(.TransMVP,1492,1,2); AddMob(.TransMVP,1190,1,2); AddMob(.TransMVP,1511,1,2); AddMob(.Indeterminate,1033,200,300); AddMob(.Indeterminate,1057,200,300); AddMob(.Indeterminate,1784,200,300); AddMob(.Indeterminate,1178,200,300); AddMob(.Indeterminate,1067,200,300); AddMob(.Indeterminate,1153,200,300); AddMob(.Indeterminate,1023,200,300); AddMob(.Indeterminate,1044,200,300); AddMob(.Indeterminate,1165,200,300); AddMob(.Indeterminate,1164,200,300); AddMob(.Indeterminate,1041,200,300); AddMob(.Indeterminate,1032,200,300); AddMob(.Indeterminate,1249,200,300); AddMob(.Indeterminate,1376,25,50); AddMob(.Indeterminate,1098,25,50); AddMob(.Indeterminate,1366,25,50); AddMob(.UndeadOne,1076,25,75); AddMob(.UndeadOne,1015,25,75); AddMob(.UndeadOne,1064,25,75); AddMob(.UndeadOne,1153,25,75); AddMob(.UndeadOne,1071,25,75); AddMob(.UndeadOne,1152,25,75); AddMob(.UndeadOne,1028,25,75); AddMob(.UndeadOne,1026,25,75); AddMob(.UndeadOne,1169,25,75); AddMob(.UndeadTwo,1016,25,75); AddMob(.UndeadTwo,1188,25,75); AddMob(.UndeadTwo,1041,25,75); AddMob(.UndeadTwo,1032,25,75); AddMob(.UndeadTwo,1036,25,75); AddMob(.UndeadTwo,1616,25,75); AddMob(.UndeadTwo,1192,25,75); AddMob(.UndeadTwo,1512,25,75); AddMob(.UndeadTwo,1117,25,75); AddMob(.UndeadThree,1132,25,75); AddMob(.UndeadThree,1297,25,75); AddMob(.UndeadThree,1098,25,75); AddMob(.UndeadThree,1401,25,75); AddMob(.UndeadThree,1505,25,75); AddMob(.UndeadThree,1219,25,75); end; } Thanks in advance and I'm sorry if this is the wrong place for this. Quote Link to comment Share on other sites More sharing options...
Racaae Posted July 5, 2024 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 214 Reputation: 94 Joined: 06/02/12 Last Seen: 31 minutes ago Share Posted July 5, 2024 2 hours ago, SovietBR said: Hi, can anyone help me with this, please? When I select the option I want (in this case ,130), it is blank and the dialog closes. It doesn't claim any errors or anything, it just closes the dialogue as if nothing had happened, am I missing something? Also, it's kind of random to happen, sometimes when I modify something in AddCata some quest options work and others don't. But is always on the quests beyond 99. Hi, each category needs a unique .variable, it cannot be shared. AddCata("Level 150",.TransMedium AddCata("Level 160",.TransMedium AddCata("Level 170",.TransMedium AddCata("Level 180",.TransMedium AddCata("Level 190",.TransMedium In the example above only the last loaded category (Level 190) gets the variable .TransMedium. The previous ones remain empty. I edited the script to support more .variables for each AddMob. It's just a workaround so I don't know if that will work for you. Syntax example: //AddMob(<.var>,<mob id>,<min count>,<max count> {,<extra .var{,<extra .var...}}); AddMob(.Hard,1219,25,50); AddMob(.Trans,1098,25,50,Trans110,Trans120); AddMob(.TransNormal,1219,25,50,.TransNor140); AddMob(.TransMedium,1716,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); //===== rAthena Script ======================================= //= saders hunting quest //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 5.2 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/3579-saders-hunting-quest/ //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //============================================================ //============================================================ - pointshop Hunting_Quest_Shop -1,#HUNT_Q_POINTS,512:1; //Account Based Shop //- pointshop Hunting_Quest_Shop -1,HUNT_Q_POINTS,512:1; //Character Based Shop prt_in,40,115,4 script Legendary Monster Hunter 667,{ function Ac; mes "Your Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ mes .CataName$[.@i] + ": Complete"; setd Ac() + "POINTS",getd(Ac() + "POINTS") + .CataRP[.@i]; if(.ExpServerRate){ getexp .CataBXP[.@i],.CataJXP[.@i]; }else{ getexp2 .CataBXP[.@i],.CataJXP[.@i]; } if(getd(".IRD_" + .@i)){ for(.@j=0;.@j<getarraysize(getd(".IRD_" + .@i));.@j++){ getitem(getd(".IRD_" + .@i + "[" + .@j + "]"),getd(".CRD_" + .@i + "[" + .@j + "]")); } } setd(Ac() + "CD_" + .@i,gettimetick(2) + (.CataCD[.@i] * 60 * 60)); setd(Ac() + "COM_" + .@i,false); setd(Ac() + "ID_" + .@i,0); setd(Ac() + "C_" + .@i,0); setd(Ac() + "CC_" + .@i,0); continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ mes .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i)){ mes .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } mes .CataName$[.@i] + ": None"; } .@s1 = select("Open Shop:" + implode(.CataName$,":")) -2; clear; if(.@s1 == -1){ callshop "Hunting_Quest_Shop",1; end; } .@CD = getd(Ac() + "CD_" + .@s1); if(.@CD > gettimetick(2)){ mes "you are under the cooldown effect"; mes "try again after " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); end; } if(getd(Ac() + "ID_" + .@s1)){ mes "Your Quest Progress:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); if(.AllowDeleteQuest){ mes "would you like to delete the quest?"; if(select("yes:no") == 2) end; mes "by deleting the quest you wont get any reward"; if(.ApplyCoolDownOnDelete) mes "and the cooldown will be applied!"; mes "Are you sure!?"; if(select("yes:no") == 2) end; clear; if(.ApplyCoolDownOnDelete){ setd(Ac() + "CD_" + .@s1,gettimetick(2) + (.CataCD[.@s1] * 60 * 60)); } setd(Ac() + "ID_" + .@s1,0); setd(Ac() + "C_" + .@s1,0); setd(Ac() + "CC_" + .@s1,0); mes "your quest has been deleted!"; end; } end; } if(BaseLevel < .CataMN_L[.@s1] || BaseLevel > .CataMX_L[.@s1]){ mes "you need to be between level " + .CataMN_L[.@s1] + " And " + .CataMX_L[.@s1] + " to get this quest!"; end; } mes "would you like to get a quest?"; if(select("yes:no") == 2) end; copyarray(.@mid,getd(".m_id_" + .@s1),getarraysize(getd(".m_id_" + .@s1))); mes .@s1 + " " + .@mid[0] + " " + .@mid[1]; .@r = rand(getarraysize(.@mid)); copyarray(.@mmn,getd(".m_mn_" + .@s1),getarraysize(getd(".m_mn_" + .@s1))); copyarray(.@mmx,getd(".m_mx_" + .@s1),getarraysize(getd(".m_mx_" + .@s1))); setd(Ac() + "ID_" + .@s1,.@mid[.@r]); setd(Ac() + "C_" + .@s1,rand(getd(".m_mn_" + .@s1 + "[" + .@r + "]"),getd(".m_mx_" + .@s1 + "[" + .@r + "]"))); setd(Ac() + "CC_" + .@s1,0); mes "Please Kill:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); end; OnNPCKillEvent: for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ setd(Ac() + "CC_" + .@i,getd(Ac() + "CC_" + .@i) + 1); dispbottom "Hunting Quest [" + .CataName$[.@i] + "]: (" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo( 1,getd(Ac() + "ID_" + .@i)); if(getd(Ac() + "CC_" + .@i) >= getd(Ac() + "C_" + .@i)){ dispbottom "Your " + .CataName$[.@i] + " Hunting Quest is Done."; setd(Ac() + "COM_" + .@i,true); } } } end; OnHuntingCheck: dispbottom "Your Hunting Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + ": Complete"; continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ dispbottom .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } dispbottom .CataName$[.@i] + ": None"; } end; function Ac { if(.AccountBase) return "#" + .variable_name$; return .variable_name$; } function AddCata { .@s = getarraysize(.CataName$); set getarg(1),.@s; .CataName$[.@s] = getarg(0); .CataMN_L[.@s] = getarg(2); .CataMX_L[.@s] = getarg(3); .CataCD[.@s] = getarg(4); .CataBXP[.@s] = getarg(5); .CataJXP[.@s] = getarg(6); .CataRP[.@s] = getarg(7); for(.@i=8;.@i<getargcount();.@i+=2){ .@s2 = getarraysize(getd(".IRD_" + .@s)); setd ".IRD_" + .@s + "[" + .@s2 + "]",getarg(.@i); setd ".CRD_" + .@s + "[" + .@s2 + "]",getarg(.@i+1); } return; } function AddMob { for (.@i = 0; .@i < getargcount(); .@i++) { .@s = getarraysize(getd(".m_id_" + getarg(.@i))); setd ".m_id_" + getarg(.@i) + "[" + .@s + "]",getarg(1); setd ".m_mn_" + getarg(.@i) + "[" + .@s + "]",getarg(2); setd ".m_mx_" + getarg(.@i) + "[" + .@s + "]",getarg(3); if (.@i == 0) .@i = 3; } return; } OnInit: .AccountBase = false;//wither or not the quests are on account or on character .ExpServerRate = true;//get exp according to the server rate? .AllowDeleteQuest = true;//allow player to delete his quest without getting the reward .ApplyCoolDownOnDelete = true;//wither or not apply cooldown on deleting the quest. .variable_name$ = "#HUNT_Q_POINTS"; //keep in mind if you changed this you need to change the points in the shop! bindatcmd("MyQuest",strnpcinfo(3)+"::OnHuntingCheck",0,250); freeloop(1); //You can add as much categories as you want! //recommended not more then 25! //.VAR MUST BE UNIQUE FOR EACH CATEGORY //AddCata(<"name">,<.var>,<mini level>,<max level>,<cooldown in hours>,<base exp reward>,<job exp reward>,<point reward>,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>}}) AddCata("Easy",.Easy,10,99,0,500,500,10,673,5,12210,0,676,1); AddCata("Normal",.Normal,30,99,0,2500,2500,30,673,10,12210,0,670,1); AddCata("Hard",.Hard,70,150,0,10000,10000,50,673,20,677,1,670,rand(0,2)); AddCata("Undead Easy",.UndeadOne,10,99,0,500,500,10,673,5,677,0,676,1); AddCata("Undead Normal",.UndeadTwo,30,99,0,2500,2500,20,673,10,677,0,670,1); AddCata("Undead Hard",.UndeadThree,70,99,0,10000,10000,30,673,20,677,1,670,rand(0,2)); AddCata("Level 99",.Trans,99,150,0,4000000,4000000,30,673,30,677,1,670,2); AddCata("Level 110",.Trans110,110,150,1,10000000,10000000,30,673,30,677,1,670,2); AddCata("Level 120",.Trans120,120,250,1,20000000,20000000,30,673,30,677,1,670,2); AddCata("Level 130",.TransNormal,130,250,1,40000000,40000000,30,673,30,677,1,670,2); AddCata("Level 140",.TransNor140,140,250,1,150000000,60000000,30,673,30,677,1,670,2); AddCata("Level 150",.TransMedium,150,250,1,200000000,80000000,30,673,30,677,1,670,2); AddCata("Level 160",.TransMed160,160,250,1,400000000,100000000,30,673,30,677,1,670,2); AddCata("Level 170",.TransMed170,170,250,1,800000000,1500000000,30,673,30,677,1,670,2); AddCata("Level 180",.TransMed180,180,250,1,1800000000,1800000000,30,673,30,677,1,670,2); AddCata("Level 190",.TransMed190,190,250,1,50000000000,50000000000,30,673,30,677,1,670,2); AddCata("MVP",.TransMVP,200,250,0,1000000000000,1000000000000,30,673,50,12210,1,677,5,670,4); AddCata("Indeterminate",.Indeterminate,66,250,0,1000000,1000000,20,673,25,677,5,670,2); //You can add as much mobs as you want! //AddMob(<.var>,<mob id>,<min count>,<max count> {,<extra .var{,<extra .var...}}); AddMob(.Easy,1052,25,75); AddMob(.Easy,1076,25,75); AddMob(.Easy,1015,25,75); AddMob(.Easy,1014,25,75); AddMob(.Easy,1055,25,75); AddMob(.Easy,1019,25,75); AddMob(.Easy,1178,25,75); AddMob(.Easy,1023,25,75); AddMob(.Easy,1153,25,75); AddMob(.Easy,1060,25,75); AddMob(.Easy,1013,25,75); AddMob(.Easy,1127,25,75); AddMob(.Easy,1106,25,75); AddMob(.Easy,1028,25,75); AddMob(.Easy,1026,25,75); AddMob(.Easy,1053,25,75); AddMob(.Easy,1031,25,75); AddMob(.Easy,1024,25,75); AddMob(.Easy,1052,25,75); AddMob(.Easy,1077,25,75); AddMob(.Easy,1033,25,75); AddMob(.Easy,1141,25,75); AddMob(.Easy,1613,25,75); AddMob(.Easy,1139,25,75); AddMob(.Easy,1152,25,75); AddMob(.Easy,1243,25,75); AddMob(.Normal,1146,50,100); AddMob(.Normal,1016,50,100); AddMob(.Normal,1177,25,75); AddMob(.Normal,1044,25,75); AddMob(.Normal,1273,25,75); AddMob(.Normal,1188,25,75); AddMob(.Normal,1170,25,75); AddMob(.Normal,1248,25,75); AddMob(.Normal,1164,25,75); AddMob(.Normal,1417,25,75); AddMob(.Normal,1628,25,75); AddMob(.Normal,1041,25,75); AddMob(.Normal,1261,25,75); AddMob(.Normal,1032,25,75); AddMob(.Normal,1249,25,75); AddMob(.Normal,1215,25,75); AddMob(.Normal,1140,25,75); AddMob(.Normal,1836,25,75); AddMob(.Normal,1036,25,75); AddMob(.Normal,1143,25,75); AddMob(.Normal,1776,25,75); AddMob(.Normal,1616,25,75); AddMob(.Normal,1102,25,75); AddMob(.Normal,1155,25,75); AddMob(.Normal,1517,25,75); AddMob(.Normal,1189,25,75); AddMob(.Normal,1493,25,75); AddMob(.Normal,1213,25,75); AddMob(.Normal,1149,25,75); AddMob(.Normal,1512,25,75); AddMob(.Normal,1369,25,75); AddMob(.Normal,1193,25,75); AddMob(.Normal,1117,25,75); AddMob(.Hard,1206,25,50); AddMob(.Hard,1154,25,50); AddMob(.Hard,1883,25,50); AddMob(.Hard,1321,25,50); AddMob(.Hard,1504,25,50); AddMob(.Hard,1314,25,50); AddMob(.Hard,1317,25,50); AddMob(.Hard,1297,25,50); AddMob(.Hard,1310,25,50); AddMob(.Hard,1365,25,50); AddMob(.Hard,1617,25,50); AddMob(.Hard,1318,25,50); AddMob(.Hard,1717,25,50); AddMob(.Hard,1372,25,50); AddMob(.Hard,1316,25,50); AddMob(.Hard,1366,25,50); AddMob(.Hard,1148,25,50); AddMob(.Hard,1219,25,50); AddMob(.Trans,1098,25,50,.Trans110,.Trans120); AddMob(.Trans,1315,25,50,.Trans110,.Trans120); AddMob(.Trans,1714,25,50,.Trans110,.Trans120); AddMob(.Trans,1319,25,50,.Trans110,.Trans120); AddMob(.Trans,1366,25,50,.Trans110,.Trans120); AddMob(.Trans,1505,25,50,.Trans110,.Trans120); AddMob(.Trans,1148,25,50,.Trans110,.Trans120); AddMob(.Trans,1316,25,50,.Trans110,.Trans120); AddMob(.Trans,1376,25,50,.Trans110,.Trans120); AddMob(.TransNormal,1716,25,50,.TransNor140); AddMob(.TransNormal,1713,25,50,.TransNor140); AddMob(.TransNormal,1769,25,50,.TransNor140); AddMob(.TransNormal,1098,25,50,.TransNor140); AddMob(.TransNormal,1315,25,50,.TransNor140); AddMob(.TransNormal,1714,25,50,.TransNor140); AddMob(.TransNormal,1319,25,50,.TransNor140); AddMob(.TransNormal,1376,25,50,.TransNor140); AddMob(.TransNormal,1866,25,50,.TransNor140); AddMob(.TransNormal,1867,25,50,.TransNor140); AddMob(.TransNormal,2017,25,50,.TransNor140); AddMob(.TransNormal,1206,25,50,.TransNor140); AddMob(.TransNormal,1154,25,50,.TransNor140); AddMob(.TransNormal,1883,25,50,.TransNor140); AddMob(.TransNormal,1321,25,50,.TransNor140); AddMob(.TransNormal,1504,25,50,.TransNor140); AddMob(.TransNormal,1314,25,50,.TransNor140); AddMob(.TransNormal,1317,25,50,.TransNor140); AddMob(.TransNormal,1297,25,50,.TransNor140); AddMob(.TransNormal,1310,25,50,.TransNor140); AddMob(.TransNormal,1365,25,50,.TransNor140); AddMob(.TransNormal,1617,25,50,.TransNor140); AddMob(.TransNormal,1318,25,50,.TransNor140); AddMob(.TransNormal,1717,25,50,.TransNor140); AddMob(.TransNormal,1372,25,50,.TransNor140); AddMob(.TransNormal,1316,25,50,.TransNor140); AddMob(.TransNormal,1366,25,50,.TransNor140); AddMob(.TransNormal,1148,25,50,.TransNor140); AddMob(.TransNormal,1219,25,50,.TransNor140); AddMob(.TransMedium,1716,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1713,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1759,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1786,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1769,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1098,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1315,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1714,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1319,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1376,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1866,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1867,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,2017,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1716,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1713,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1759,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1786,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1769,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1098,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1315,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1714,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1319,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1376,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1866,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1867,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1310,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1365,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1617,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1318,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1717,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1372,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1316,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1366,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1148,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1219,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1268,1,3,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1720,1,3,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1289,1,3,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMVP,1511,1,2); AddMob(.TransMVP,1785,1,5); AddMob(.TransMVP,1389,1,2); AddMob(.TransMVP,1112,1,2); AddMob(.TransMVP,1252,1,2); AddMob(.TransMVP,1251,1,2); AddMob(.TransMVP,1147,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1038,1,2); AddMob(.TransMVP,1087,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1086,1,2); AddMob(.TransMVP,1115,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1583,1,2); AddMob(.TransMVP,1492,1,2); AddMob(.TransMVP,1190,1,2); AddMob(.TransMVP,1511,1,2); AddMob(.Indeterminate,1033,200,300); AddMob(.Indeterminate,1057,200,300); AddMob(.Indeterminate,1784,200,300); AddMob(.Indeterminate,1178,200,300); AddMob(.Indeterminate,1067,200,300); AddMob(.Indeterminate,1153,200,300); AddMob(.Indeterminate,1023,200,300); AddMob(.Indeterminate,1044,200,300); AddMob(.Indeterminate,1165,200,300); AddMob(.Indeterminate,1164,200,300); AddMob(.Indeterminate,1041,200,300); AddMob(.Indeterminate,1032,200,300); AddMob(.Indeterminate,1249,200,300); AddMob(.Indeterminate,1376,25,50); AddMob(.Indeterminate,1098,25,50); AddMob(.Indeterminate,1366,25,50); AddMob(.UndeadOne,1076,25,75); AddMob(.UndeadOne,1015,25,75); AddMob(.UndeadOne,1064,25,75); AddMob(.UndeadOne,1153,25,75); AddMob(.UndeadOne,1071,25,75); AddMob(.UndeadOne,1152,25,75); AddMob(.UndeadOne,1028,25,75); AddMob(.UndeadOne,1026,25,75); AddMob(.UndeadOne,1169,25,75); AddMob(.UndeadTwo,1016,25,75); AddMob(.UndeadTwo,1188,25,75); AddMob(.UndeadTwo,1041,25,75); AddMob(.UndeadTwo,1032,25,75); AddMob(.UndeadTwo,1036,25,75); AddMob(.UndeadTwo,1616,25,75); AddMob(.UndeadTwo,1192,25,75); AddMob(.UndeadTwo,1512,25,75); AddMob(.UndeadTwo,1117,25,75); AddMob(.UndeadThree,1132,25,75); AddMob(.UndeadThree,1297,25,75); AddMob(.UndeadThree,1098,25,75); AddMob(.UndeadThree,1401,25,75); AddMob(.UndeadThree,1505,25,75); AddMob(.UndeadThree,1219,25,75); end; } 1 Quote Link to comment Share on other sites More sharing options...
SovietBR Posted July 5, 2024 Group: Members Topic Count: 7 Topics Per Day: 0.01 Content Count: 20 Reputation: 1 Joined: 12/10/22 Last Seen: April 11 Share Posted July 5, 2024 7 hours ago, Racaae said: Hi, each category needs a unique .variable, it cannot be shared. AddCata("Level 150",.TransMedium AddCata("Level 160",.TransMedium AddCata("Level 170",.TransMedium AddCata("Level 180",.TransMedium AddCata("Level 190",.TransMedium In the example above only the last loaded category (Level 190) gets the variable .TransMedium. The previous ones remain empty. I edited the script to support more .variables for each AddMob. It's just a workaround so I don't know if that will work for you. Syntax example: //AddMob(<.var>,<mob id>,<min count>,<max count> {,<extra .var{,<extra .var...}}); AddMob(.Hard,1219,25,50); AddMob(.Trans,1098,25,50,Trans110,Trans120); AddMob(.TransNormal,1219,25,50,.TransNor140); AddMob(.TransMedium,1716,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); //===== rAthena Script ======================================= //= saders hunting quest //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 5.2 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/3579-saders-hunting-quest/ //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //============================================================ //============================================================ - pointshop Hunting_Quest_Shop -1,#HUNT_Q_POINTS,512:1; //Account Based Shop //- pointshop Hunting_Quest_Shop -1,HUNT_Q_POINTS,512:1; //Character Based Shop prt_in,40,115,4 script Legendary Monster Hunter 667,{ function Ac; mes "Your Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ mes .CataName$[.@i] + ": Complete"; setd Ac() + "POINTS",getd(Ac() + "POINTS") + .CataRP[.@i]; if(.ExpServerRate){ getexp .CataBXP[.@i],.CataJXP[.@i]; }else{ getexp2 .CataBXP[.@i],.CataJXP[.@i]; } if(getd(".IRD_" + .@i)){ for(.@j=0;.@j<getarraysize(getd(".IRD_" + .@i));.@j++){ getitem(getd(".IRD_" + .@i + "[" + .@j + "]"),getd(".CRD_" + .@i + "[" + .@j + "]")); } } setd(Ac() + "CD_" + .@i,gettimetick(2) + (.CataCD[.@i] * 60 * 60)); setd(Ac() + "COM_" + .@i,false); setd(Ac() + "ID_" + .@i,0); setd(Ac() + "C_" + .@i,0); setd(Ac() + "CC_" + .@i,0); continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ mes .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i)){ mes .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } mes .CataName$[.@i] + ": None"; } .@s1 = select("Open Shop:" + implode(.CataName$,":")) -2; clear; if(.@s1 == -1){ callshop "Hunting_Quest_Shop",1; end; } .@CD = getd(Ac() + "CD_" + .@s1); if(.@CD > gettimetick(2)){ mes "you are under the cooldown effect"; mes "try again after " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); end; } if(getd(Ac() + "ID_" + .@s1)){ mes "Your Quest Progress:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); if(.AllowDeleteQuest){ mes "would you like to delete the quest?"; if(select("yes:no") == 2) end; mes "by deleting the quest you wont get any reward"; if(.ApplyCoolDownOnDelete) mes "and the cooldown will be applied!"; mes "Are you sure!?"; if(select("yes:no") == 2) end; clear; if(.ApplyCoolDownOnDelete){ setd(Ac() + "CD_" + .@s1,gettimetick(2) + (.CataCD[.@s1] * 60 * 60)); } setd(Ac() + "ID_" + .@s1,0); setd(Ac() + "C_" + .@s1,0); setd(Ac() + "CC_" + .@s1,0); mes "your quest has been deleted!"; end; } end; } if(BaseLevel < .CataMN_L[.@s1] || BaseLevel > .CataMX_L[.@s1]){ mes "you need to be between level " + .CataMN_L[.@s1] + " And " + .CataMX_L[.@s1] + " to get this quest!"; end; } mes "would you like to get a quest?"; if(select("yes:no") == 2) end; copyarray(.@mid,getd(".m_id_" + .@s1),getarraysize(getd(".m_id_" + .@s1))); mes .@s1 + " " + .@mid[0] + " " + .@mid[1]; .@r = rand(getarraysize(.@mid)); copyarray(.@mmn,getd(".m_mn_" + .@s1),getarraysize(getd(".m_mn_" + .@s1))); copyarray(.@mmx,getd(".m_mx_" + .@s1),getarraysize(getd(".m_mx_" + .@s1))); setd(Ac() + "ID_" + .@s1,.@mid[.@r]); setd(Ac() + "C_" + .@s1,rand(getd(".m_mn_" + .@s1 + "[" + .@r + "]"),getd(".m_mx_" + .@s1 + "[" + .@r + "]"))); setd(Ac() + "CC_" + .@s1,0); mes "Please Kill:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); end; OnNPCKillEvent: for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ setd(Ac() + "CC_" + .@i,getd(Ac() + "CC_" + .@i) + 1); dispbottom "Hunting Quest [" + .CataName$[.@i] + "]: (" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo( 1,getd(Ac() + "ID_" + .@i)); if(getd(Ac() + "CC_" + .@i) >= getd(Ac() + "C_" + .@i)){ dispbottom "Your " + .CataName$[.@i] + " Hunting Quest is Done."; setd(Ac() + "COM_" + .@i,true); } } } end; OnHuntingCheck: dispbottom "Your Hunting Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + ": Complete"; continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ dispbottom .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } dispbottom .CataName$[.@i] + ": None"; } end; function Ac { if(.AccountBase) return "#" + .variable_name$; return .variable_name$; } function AddCata { .@s = getarraysize(.CataName$); set getarg(1),.@s; .CataName$[.@s] = getarg(0); .CataMN_L[.@s] = getarg(2); .CataMX_L[.@s] = getarg(3); .CataCD[.@s] = getarg(4); .CataBXP[.@s] = getarg(5); .CataJXP[.@s] = getarg(6); .CataRP[.@s] = getarg(7); for(.@i=8;.@i<getargcount();.@i+=2){ .@s2 = getarraysize(getd(".IRD_" + .@s)); setd ".IRD_" + .@s + "[" + .@s2 + "]",getarg(.@i); setd ".CRD_" + .@s + "[" + .@s2 + "]",getarg(.@i+1); } return; } function AddMob { for (.@i = 0; .@i < getargcount(); .@i++) { .@s = getarraysize(getd(".m_id_" + getarg(.@i))); setd ".m_id_" + getarg(.@i) + "[" + .@s + "]",getarg(1); setd ".m_mn_" + getarg(.@i) + "[" + .@s + "]",getarg(2); setd ".m_mx_" + getarg(.@i) + "[" + .@s + "]",getarg(3); if (.@i == 0) .@i = 3; } return; } OnInit: .AccountBase = false;//wither or not the quests are on account or on character .ExpServerRate = true;//get exp according to the server rate? .AllowDeleteQuest = true;//allow player to delete his quest without getting the reward .ApplyCoolDownOnDelete = true;//wither or not apply cooldown on deleting the quest. .variable_name$ = "#HUNT_Q_POINTS"; //keep in mind if you changed this you need to change the points in the shop! bindatcmd("MyQuest",strnpcinfo(3)+"::OnHuntingCheck",0,250); freeloop(1); //You can add as much categories as you want! //recommended not more then 25! //.VAR MUST BE UNIQUE FOR EACH CATEGORY //AddCata(<"name">,<.var>,<mini level>,<max level>,<cooldown in hours>,<base exp reward>,<job exp reward>,<point reward>,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>}}) AddCata("Easy",.Easy,10,99,0,500,500,10,673,5,12210,0,676,1); AddCata("Normal",.Normal,30,99,0,2500,2500,30,673,10,12210,0,670,1); AddCata("Hard",.Hard,70,150,0,10000,10000,50,673,20,677,1,670,rand(0,2)); AddCata("Undead Easy",.UndeadOne,10,99,0,500,500,10,673,5,677,0,676,1); AddCata("Undead Normal",.UndeadTwo,30,99,0,2500,2500,20,673,10,677,0,670,1); AddCata("Undead Hard",.UndeadThree,70,99,0,10000,10000,30,673,20,677,1,670,rand(0,2)); AddCata("Level 99",.Trans,99,150,0,4000000,4000000,30,673,30,677,1,670,2); AddCata("Level 110",.Trans110,110,150,1,10000000,10000000,30,673,30,677,1,670,2); AddCata("Level 120",.Trans120,120,250,1,20000000,20000000,30,673,30,677,1,670,2); AddCata("Level 130",.TransNormal,130,250,1,40000000,40000000,30,673,30,677,1,670,2); AddCata("Level 140",.TransNor140,140,250,1,150000000,60000000,30,673,30,677,1,670,2); AddCata("Level 150",.TransMedium,150,250,1,200000000,80000000,30,673,30,677,1,670,2); AddCata("Level 160",.TransMed160,160,250,1,400000000,100000000,30,673,30,677,1,670,2); AddCata("Level 170",.TransMed170,170,250,1,800000000,1500000000,30,673,30,677,1,670,2); AddCata("Level 180",.TransMed180,180,250,1,1800000000,1800000000,30,673,30,677,1,670,2); AddCata("Level 190",.TransMed190,190,250,1,50000000000,50000000000,30,673,30,677,1,670,2); AddCata("MVP",.TransMVP,200,250,0,1000000000000,1000000000000,30,673,50,12210,1,677,5,670,4); AddCata("Indeterminate",.Indeterminate,66,250,0,1000000,1000000,20,673,25,677,5,670,2); //You can add as much mobs as you want! //AddMob(<.var>,<mob id>,<min count>,<max count> {,<extra .var{,<extra .var...}}); AddMob(.Easy,1052,25,75); AddMob(.Easy,1076,25,75); AddMob(.Easy,1015,25,75); AddMob(.Easy,1014,25,75); AddMob(.Easy,1055,25,75); AddMob(.Easy,1019,25,75); AddMob(.Easy,1178,25,75); AddMob(.Easy,1023,25,75); AddMob(.Easy,1153,25,75); AddMob(.Easy,1060,25,75); AddMob(.Easy,1013,25,75); AddMob(.Easy,1127,25,75); AddMob(.Easy,1106,25,75); AddMob(.Easy,1028,25,75); AddMob(.Easy,1026,25,75); AddMob(.Easy,1053,25,75); AddMob(.Easy,1031,25,75); AddMob(.Easy,1024,25,75); AddMob(.Easy,1052,25,75); AddMob(.Easy,1077,25,75); AddMob(.Easy,1033,25,75); AddMob(.Easy,1141,25,75); AddMob(.Easy,1613,25,75); AddMob(.Easy,1139,25,75); AddMob(.Easy,1152,25,75); AddMob(.Easy,1243,25,75); AddMob(.Normal,1146,50,100); AddMob(.Normal,1016,50,100); AddMob(.Normal,1177,25,75); AddMob(.Normal,1044,25,75); AddMob(.Normal,1273,25,75); AddMob(.Normal,1188,25,75); AddMob(.Normal,1170,25,75); AddMob(.Normal,1248,25,75); AddMob(.Normal,1164,25,75); AddMob(.Normal,1417,25,75); AddMob(.Normal,1628,25,75); AddMob(.Normal,1041,25,75); AddMob(.Normal,1261,25,75); AddMob(.Normal,1032,25,75); AddMob(.Normal,1249,25,75); AddMob(.Normal,1215,25,75); AddMob(.Normal,1140,25,75); AddMob(.Normal,1836,25,75); AddMob(.Normal,1036,25,75); AddMob(.Normal,1143,25,75); AddMob(.Normal,1776,25,75); AddMob(.Normal,1616,25,75); AddMob(.Normal,1102,25,75); AddMob(.Normal,1155,25,75); AddMob(.Normal,1517,25,75); AddMob(.Normal,1189,25,75); AddMob(.Normal,1493,25,75); AddMob(.Normal,1213,25,75); AddMob(.Normal,1149,25,75); AddMob(.Normal,1512,25,75); AddMob(.Normal,1369,25,75); AddMob(.Normal,1193,25,75); AddMob(.Normal,1117,25,75); AddMob(.Hard,1206,25,50); AddMob(.Hard,1154,25,50); AddMob(.Hard,1883,25,50); AddMob(.Hard,1321,25,50); AddMob(.Hard,1504,25,50); AddMob(.Hard,1314,25,50); AddMob(.Hard,1317,25,50); AddMob(.Hard,1297,25,50); AddMob(.Hard,1310,25,50); AddMob(.Hard,1365,25,50); AddMob(.Hard,1617,25,50); AddMob(.Hard,1318,25,50); AddMob(.Hard,1717,25,50); AddMob(.Hard,1372,25,50); AddMob(.Hard,1316,25,50); AddMob(.Hard,1366,25,50); AddMob(.Hard,1148,25,50); AddMob(.Hard,1219,25,50); AddMob(.Trans,1098,25,50,.Trans110,.Trans120); AddMob(.Trans,1315,25,50,.Trans110,.Trans120); AddMob(.Trans,1714,25,50,.Trans110,.Trans120); AddMob(.Trans,1319,25,50,.Trans110,.Trans120); AddMob(.Trans,1366,25,50,.Trans110,.Trans120); AddMob(.Trans,1505,25,50,.Trans110,.Trans120); AddMob(.Trans,1148,25,50,.Trans110,.Trans120); AddMob(.Trans,1316,25,50,.Trans110,.Trans120); AddMob(.Trans,1376,25,50,.Trans110,.Trans120); AddMob(.TransNormal,1716,25,50,.TransNor140); AddMob(.TransNormal,1713,25,50,.TransNor140); AddMob(.TransNormal,1769,25,50,.TransNor140); AddMob(.TransNormal,1098,25,50,.TransNor140); AddMob(.TransNormal,1315,25,50,.TransNor140); AddMob(.TransNormal,1714,25,50,.TransNor140); AddMob(.TransNormal,1319,25,50,.TransNor140); AddMob(.TransNormal,1376,25,50,.TransNor140); AddMob(.TransNormal,1866,25,50,.TransNor140); AddMob(.TransNormal,1867,25,50,.TransNor140); AddMob(.TransNormal,2017,25,50,.TransNor140); AddMob(.TransNormal,1206,25,50,.TransNor140); AddMob(.TransNormal,1154,25,50,.TransNor140); AddMob(.TransNormal,1883,25,50,.TransNor140); AddMob(.TransNormal,1321,25,50,.TransNor140); AddMob(.TransNormal,1504,25,50,.TransNor140); AddMob(.TransNormal,1314,25,50,.TransNor140); AddMob(.TransNormal,1317,25,50,.TransNor140); AddMob(.TransNormal,1297,25,50,.TransNor140); AddMob(.TransNormal,1310,25,50,.TransNor140); AddMob(.TransNormal,1365,25,50,.TransNor140); AddMob(.TransNormal,1617,25,50,.TransNor140); AddMob(.TransNormal,1318,25,50,.TransNor140); AddMob(.TransNormal,1717,25,50,.TransNor140); AddMob(.TransNormal,1372,25,50,.TransNor140); AddMob(.TransNormal,1316,25,50,.TransNor140); AddMob(.TransNormal,1366,25,50,.TransNor140); AddMob(.TransNormal,1148,25,50,.TransNor140); AddMob(.TransNormal,1219,25,50,.TransNor140); AddMob(.TransMedium,1716,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1713,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1759,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1786,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1769,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1098,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1315,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1714,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1319,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1376,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1866,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1867,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,2017,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1716,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1713,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1759,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1786,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1769,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1098,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1315,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1714,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1319,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1376,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1866,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1867,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1310,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1365,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1617,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1318,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1717,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1372,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1316,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1366,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1148,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1219,25,50,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1268,1,3,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1720,1,3,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMedium,1289,1,3,.TransMed160,.TransMed170,.TransMed180,.TransMed190); AddMob(.TransMVP,1511,1,2); AddMob(.TransMVP,1785,1,5); AddMob(.TransMVP,1389,1,2); AddMob(.TransMVP,1112,1,2); AddMob(.TransMVP,1252,1,2); AddMob(.TransMVP,1251,1,2); AddMob(.TransMVP,1147,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1038,1,2); AddMob(.TransMVP,1087,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1086,1,2); AddMob(.TransMVP,1115,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1583,1,2); AddMob(.TransMVP,1492,1,2); AddMob(.TransMVP,1190,1,2); AddMob(.TransMVP,1511,1,2); AddMob(.Indeterminate,1033,200,300); AddMob(.Indeterminate,1057,200,300); AddMob(.Indeterminate,1784,200,300); AddMob(.Indeterminate,1178,200,300); AddMob(.Indeterminate,1067,200,300); AddMob(.Indeterminate,1153,200,300); AddMob(.Indeterminate,1023,200,300); AddMob(.Indeterminate,1044,200,300); AddMob(.Indeterminate,1165,200,300); AddMob(.Indeterminate,1164,200,300); AddMob(.Indeterminate,1041,200,300); AddMob(.Indeterminate,1032,200,300); AddMob(.Indeterminate,1249,200,300); AddMob(.Indeterminate,1376,25,50); AddMob(.Indeterminate,1098,25,50); AddMob(.Indeterminate,1366,25,50); AddMob(.UndeadOne,1076,25,75); AddMob(.UndeadOne,1015,25,75); AddMob(.UndeadOne,1064,25,75); AddMob(.UndeadOne,1153,25,75); AddMob(.UndeadOne,1071,25,75); AddMob(.UndeadOne,1152,25,75); AddMob(.UndeadOne,1028,25,75); AddMob(.UndeadOne,1026,25,75); AddMob(.UndeadOne,1169,25,75); AddMob(.UndeadTwo,1016,25,75); AddMob(.UndeadTwo,1188,25,75); AddMob(.UndeadTwo,1041,25,75); AddMob(.UndeadTwo,1032,25,75); AddMob(.UndeadTwo,1036,25,75); AddMob(.UndeadTwo,1616,25,75); AddMob(.UndeadTwo,1192,25,75); AddMob(.UndeadTwo,1512,25,75); AddMob(.UndeadTwo,1117,25,75); AddMob(.UndeadThree,1132,25,75); AddMob(.UndeadThree,1297,25,75); AddMob(.UndeadThree,1098,25,75); AddMob(.UndeadThree,1401,25,75); AddMob(.UndeadThree,1505,25,75); AddMob(.UndeadThree,1219,25,75); end; } Worked like a charm, thank you so very much! I was going insane trying to fix this alone (I'm not good at programing). Quote Link to comment Share on other sites More sharing options...
hmwater001 Posted March 30 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 12 Reputation: 0 Joined: 08/09/17 Last Seen: 8 hours ago Share Posted March 30 latest revision of rathena give error at line 47. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.