Jump to content

Emistry

Forum Moderator
  • Posts

    10018
  • Joined

  • Days Won

    409

Everything posted by Emistry

  1. // trigger when attacking ... autobonus "{ sc_start2 SC_PROMOTE_HEALTH_RESERCH,500000,0,5; }",1000,60000; // trigger when attacked ... autobonus2 "{ sc_start2 SC_PROMOTE_HEALTH_RESERCH,500000,0,5; }",1000,60000;
  2. disable show zeny cost npc/custom/quests/quest_shop.txt#L49
  3. try this. - script Sample -1,{ OnInit: .last_kill_amount = 5; bindatcmd "lastkill",strnpcinfo(3) + "::OnAtcommand"; end; OnAtcommand: for (.@i = 0; .@i < .last_kill_amount; .@i++) if (last_killed_mobid[.@i]) mes (.@i+1)+". "+getmonsterinfo(last_killed_mobid[.@i]. MOB_NAME); end; OnNPCKillEvent: copyarray last_killed_mobid[1], last_killed_mobid[0], (.last_kill_amount - 1); last_killed_mobid[0] = killedrid; end; }
  4. db/re/item_noequip.txt#L9-L10
  5. account_id column is missing from your guild_member table ... it seem like the column has been removed in newer version of rAthena, so this script is now outdated and not usable. You had to update the script to fix it, or undo the changes did by rAthena, otherwise its pointless to re-add the column since it wont be populated by server.
  6. OnNPCKillEvent: .@party_id = getcharid(1); if (.@party_id > 0) { addrid(2, 0, .@party_id); specialeffect EF_HEAL; } end;
  7. // trigger when attacking ... autobonus "{ sc_start SC_Intravision,10000,0; }",1000,60000; // trigger when attacked ... autobonus2 "{ sc_start SC_Intravision,10000,0; }",1000,60000;
  8. - script sample -1,{ OnNPCKillEvent: if (rand(100) < 10) { // 10% drop getmapxy(.@map$, .@x, .@y); makeitem 512, 1, .@map$, .@x, .@y; } end; }
  9. I think change the equipment min/max equip level should do and *getitemslots(...) return the total slot of equipment has, not the equipment position.
  10. if i recall correctly, mob id range are limited between 1000~3999 , 4000+ are reserved for clones and etc.... and would display as poring for your custom mob.
  11. post the data saved in the SQL table.
  12. regrab it from the link above, updated it to fix some bug.
  13. just remove the map checking condition OnPCKillEvent: if( strcharinfo(3) != .map$ ) end; // <--- remove this line
  14. check your database, see if any record are saved there.
  15. https://github.com/rathena/rathena/blob/master/conf/battle/items.conf#L15-L17
  16. https://rathena.org/board/topic/71399-how-to-check-client-version/?do=findComment&comment=140283
  17. you can do it these ways function script MyFunction1 { .@size = getarraysize(getarg(0)); for (.@i = 0; .@i < .@size; .@i++) mes "array_1["+.@i+"] = "+getelementofarray(getarg(0), .@i); return; } function script MyFunction2 { .@size = getarraysize(getarg(0)); copyarray .@new_array, getarg(0), .@size; for (.@i = 0; .@i < .@size; .@i++) mes "array_2["+.@i+"] = "+.@new_array[.@i]; return; } Sample - script sample -1,{ OnInit: sleep 3000; setarray .items_1,1,2,3,4,5; callfunc("MyFunction1",.items_1); setarray .items_2,10,20,30,40,50,60,70; callfunc("MyFunction2",.items_2); end; } Output [Debug]: array_1[0] = 1 [Debug]: array_1[1] = 2 [Debug]: array_1[2] = 3 [Debug]: array_1[3] = 4 [Debug]: array_1[4] = 5 [Debug]: array_2[0] = 10 [Debug]: array_2[1] = 20 [Debug]: array_2[2] = 30 [Debug]: array_2[3] = 40 [Debug]: array_2[4] = 50 [Debug]: array_2[5] = 60 [Debug]: array_2[6] = 70
  18. perhaps this ? https://github.com/rathena/rathena/blob/master/conf/battle/skill.conf#L18-L21
  19. https://rathena.org/board/topic/108174-help-updating-git/
  20. that is because you duplicated the main npc that process everything about the quest. split it into 2 npc if you want to duplicate npcs like these prontera,164,175,6 script Questboard 4_BOARD3,{ doevent "quest_board_main::OnTalk"; } - script quest_board_main -1,{ OnTalk: if (c_run == true) { mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000"; mes "--------------------------------"; set .@size, getarraysize(getd("."+ currentquest$ + "_collectionitem")); for( set .@j, 0; .@j < .@size; set .@j,.@j+2){ mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+(.@j+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." +currentquest$+"_collectionprize"))?getitemname(getd("." +currentquest$+"_collectionprize"))+" - "+getd("." +currentquest$+"_collectionamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." +currentquest$+"_collectionzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+1+"]")+"^000000"; next; if(select("Finish:Abort") == 2){ mes "[^FF7700Questboard^000000]"; mes "Quest aborted."; set currentquest$, ""; set c_run, false; close; } goto L_checkitems; } if(h_run==true){ mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000"; mes "--------------------------------"; set .@size, getarraysize(getd("."+ currentquest$ + "_huntingmob")); for( set .@j, 0; .@j < .@size; set .@j,.@j+2){ set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@j)+"]"); mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["+.@j+"]"))+" - "+getd(currentquest$+"_"+.@currentmob+"_"+(.@j+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+(.@j+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." +currentquest$+"_huntingprize"))?getitemname(getd("." +currentquest$+"_huntingprize"))+" - "+getd("." +currentquest$+"_huntingamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." +currentquest$+"_huntingzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+1+"]")+"^000000"; next; if(select("Finish:Abort") == 2){ mes "[^FF7700Questboard^000000]"; mes "Quest aborted."; for(set .@x, 1; .@x < .@size; set .@x,.@x+2){ set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]"); setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0); } set currentquest$, ""; set h_run, false; close; } goto L_checkmobs; } mes "[^FF7700Questboard^000000]"; mes "Select category:"; next; switch(select((.collection)?"Collection Quests":"", (.hunting)?"Hunting Quests":"", "Exit")) { case 1: set .@collectmenu$, ""; for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1){ if (.@i) set .@collectmenu$,.@collectmenu$+":"; set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$"); } set .@selection,select(.@collectmenu$); if(.quest_repeat == true){ if(gettimetick(2) < getd(.@selection + "_collection_delay")){ mes "[^FF7700Questboard^000000]"; mes "You have to wait ^0000FF"+Time2Str(getd(.@selection + "_collection_delay"))+"^000000 to do this quest again."; close; } } else{ if(getd(.@selection + "_collection_repeat") == true){ mes "[^FF7700Questboard^000000]"; mes "You already did this quest."; mes "Please choose another one."; close; } } mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000"; mes "--------------------------------"; set .@size, getarraysize(getd("."+ .@selection + "_collectionitem")); for( set .@j, 0; .@j < .@size; set .@j,.@j+2){ mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000"; next; if(select("Accept:Decline") == 2){ close; } if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax")){ mes "[^FF7700Questboard^000000]"; mes "Quest accepted."; set c_run, true; set currentquest$, .@selection; close; } else{ mes "[^FF7700Questboard^000000]"; mes "You don't have the required"; mes "level to do this quest."; close; } case 2: set .@huntmenu$, ""; for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1){ if (.@i) set .@huntmenu$,.@huntmenu$+":"; set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$"); } set .@selection,select(.@huntmenu$); if(.quest_repeat == true){ if(gettimetick(2) < getd(.@selection + "_hunting_delay")){ mes "[^FF7700Questboard^000000]"; mes "You have to wait ^0000FF"+Time2Str(getd(.@selection + "_hunting_delay"))+"^000000 to do this quest again."; close; } } else{ if(getd(.@selection + "_hunting_repeat") == true){ mes "[^FF7700Questboard^000000]"; mes "You already did this quest."; mes "Please choose another one."; close; } } mes "[^FF7700Questboard^000000]"; mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000"; mes "--------------------------------"; set .@size, getarraysize(getd("."+ .@selection + "_huntingmob")); for( set .@j, 0; .@j < .@size; set .@j,.@j+2){ mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000"; } mes "--------------------------------"; mes "[Reward]"; mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000"); mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000"; mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000"; mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000"; next; if(select("Accept:Decline") == 2){ close; } if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax")){ mes "[^FF7700Questboard^000000]"; mes "Quest accepted."; set h_run, true; set currentquest$, .@selection; close; } else{ mes "[^FF7700Questboard^000000]"; mes "You don't have the required"; mes "level to do this quest."; close; } case 3: close; } L_checkitems: set .@size, getarraysize(getd("."+currentquest$+"_collectionitem")); for( set .@k,0; .@k < .@size; set .@k,.@k+2){ if(countitem(getd("."+currentquest$+"_collectionitem["+.@k+"]"))>=getd("."+currentquest$+"_collectionitem["+(.@k+1)+"]")){ set .@checkitem,.@checkitem+2; } } if(.@checkitem<.@size){ mes "[^FF7700Questboard^000000]"; mes "You don't have everything."; close; } for( set .@delcount,0; .@delcount < .@size; set .@delcount,.@delcount+2){ delitem getd("."+currentquest$+"_collectionitem["+.@delcount+"]"),getd("."+currentquest$+"_collectionitem["+(.@delcount+1)+"]"); } mes "[^FF7700Questboard^000000]"; mes "Congratulation! Here is your Reward."; if(getd("." +currentquest$+"_collectionprize")!=0) getitem(getd("." +currentquest$+"_collectionprize"),getd("." +currentquest$+"_collectionamount")); set Zeny,Zeny+getd("." +currentquest$+"_collectionzeny"); getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]"); setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay; setd(currentquest$ + "_collection_repeat"),true; set currentquest$, ""; set c_run, false; close; L_checkmobs: set .@size, getarraysize(getd("."+currentquest$+"_huntingmob")); set .@goal, .@size/2; for(set .@i, 1; .@i < .@size; set .@i,.@i+2){ set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]"); if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")==getd("."+currentquest$+"_huntingmob["+.@i+"]")){ set .@checkmonster, .@checkmonster+1; if(.@checkmonster==.@goal){ goto L_checkmobs2; } continue; } goto L_checkmobs2; } L_checkmobs2: if(.@checkmonster<.@goal){ mes "[^FF7700Questboard^000000]"; mes "You didn't kill everything."; close; } mes "[^FF7700Questboard^000000]"; mes "Congratulation! Here is your Reward."; set .@size, getarraysize(getd("."+currentquest$+"_huntingmob")); for(set .@x, 1; .@x < .@size; set .@x,.@x+2){ set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]"); setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0); } if(getd("." +currentquest$+"_huntingprize")!=0) getitem(getd("." +currentquest$+"_huntingprize"),getd("." +currentquest$+"_huntingamount")); set Zeny, Zeny+getd("." +currentquest$+"_huntingzeny"); getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]"); setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay; setd(currentquest$ + "_hunting_repeat"),true; set currentquest$, ""; set h_run, false; close; OnNPCKillEvent: if(h_run!=true) end; set .@size, getarraysize(getd("."+currentquest$+"_huntingmob")); for(set .@i, 1; .@i < .@size; set .@i,.@i+2){ if(killedrid==getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]")){ set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]"); if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")<getd("."+currentquest$+"_huntingmob["+.@i+"]")){ setd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+1); dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+ getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+.@i+"]")+")"; } if(getcharid(1) != 0 && .party_support == true){ getmapxy(.@map1$,.@x1,.@y1); set .@killerid, getcharid(3); set .@currentquest$, currentquest$; getpartymember getcharid(1),1; getpartymember getcharid(1),2; for(set .@j, 0; .@j < $@partymembercount; .@j++){ if(isloggedin($@partymemberaid[.@j], $@partymembercid[.@j])){ if(h_run==true && $@partymemberaid[.@j] != .@killerid && .@currentquest$ == getvar(currentquest$, $@partymembercid[.@j]) && readparam(HP, $@partymembercid[.@j]) > 0){ getmapxy(.@map2$,.@x2,.@y2,BL_PC,rid2name($@partymemberaid[.@j])); if(.@map1$ == .@map2$ && distance(.@x1,.@y1,.@x2,.@y2) < .party_range){ set .@kill_amt,getvar(getd(.@currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount"), $@partymembercid[.@j]); set .@kill_goal,getd("."+.@currentquest$+"_huntingmob["+.@i+"]"); if(.@kill_amt<.@kill_goal) { setd(.@currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", .@kill_amt+1, $@partymembercid[.@j]); dispbottom getd("."+.@currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+(.@kill_amt+1)+"/"+.@kill_goal+")", 0xB6FF00, $@partymembercid[.@j]; } } } } } } continue; } } end; OnInit: function AddCollection; function AddHunting; //Activate/Deactivate quest categories (true/1 - activated, false/0 - deactivated) set .collection, true; set .hunting, true; //Quest Delay (seconds) //24 hours = 86400 seconds set .quest_delay, 300; //Activate/Deactivate repeatable quests (true/1 - activated, false/0 - deactivated) set .quest_repeat, false; //Activate/Deactivate party support (true/1 - activated, false/0 - deactivated) set .party_support, true; //Max range for party support (+- x & y coordinations) set .party_range, 15; //Checks if quests are loaded (prevents out of index) if(.questsloaded==true) end; set .questsloaded, true; //Add Collection Quests here (You can add as many required items as you want) //AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...); AddCollection("drops",1,50,9002,1,1500,0,0,620,3); AddCollection("jellopy",1,10,7060,3,500,50,10,909,33); AddCollection("fluff",1,10,7060,3,500,50,10,914,33); AddCollection("chrysalis",1,15,7060,5,5000,150,50,915,100); AddCollection("bottle",1,15,7060,2,5000,150,150,716,25); AddCollection("feather of birds",5,20,7060,2,2500,630,470,916,50); AddCollection("tree root",5,20,7060,2,2500,630,470,902,50); AddCollection("talon",5,20,7060,2,2000,800,600,917,35); AddCollection("sticky webfoot",10,25,7060,2,2000,900,680,918,70); AddCollection("scorpion tail",10,25,7060,2,10000,1000,800,904,50); AddCollection("stem",10,25,7060,2,10000,1000,750,905,50); AddCollection("spore",15,30,7060,2,10000,1200,900,921,45); AddCollection("snail's shell",15,30,7060,2,5000,1200,900,946,50); AddCollection("rainbow shell",16,31,7060,2,8000,1300,1500,1013,50); AddCollection("powder of butterfly",18,33,7060,2,8000,1500,1600,924,50); AddCollection("cactus needle",18,33,7060,2,15000,1500,1600,952,50); AddCollection("dead branch",19,34,7060,2,10000,2600,3000,604,1); AddCollection("bill of birds",20,35,7060,2,7500,1700,1900,925,50); AddCollection("raccon leaf",24,39,7060,2,8000,1800,2000,945,50); //Add Hunting Quests here (You can add as many required mobs as you want) //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...); AddHunting("fabre",1,15,23280,50,500,500,400,1007,50); AddHunting("chonchon",1,15,23280,50,500,500,400,1011,50); AddHunting("lunatic",1,15,23280,50,500,400,300,1063,50); AddHunting("pupa",1,15,23280,50,500,500,400,1008,50); AddHunting("pupa",20,40,2102,1,0,0,0,1008,300); AddHunting("drops",1,15,23280,50,500,500,400,1113,50); AddHunting("willow",5,20,645,2,800,650,500,1010,50); AddHunting("condor",5,20,645,2,1000,800,600,1009,50); AddHunting("mandragora",10,25,23280,50,1000,1000,800,1020,50); AddHunting("roda frog",10,25,23280,50,1000,700,400,1012,50); AddHunting("scorpion",10,25,23280,50,1000,1100,800,1001,50); AddHunting("spore",15,30,12324,30,1500,1500,1000,1014,50); AddHunting("ambernite",15,30,12324,30,1500,1500,700,1094,50); AddHunting("stainer",15,30,645,5,1500,10000,5000,1174,75); AddHunting("creamy",20,35,0,0,2500,2000,2000,1018,50); AddHunting("muka",20,35,0,0,2500,2000,2000,1055,50); AddHunting("peco peco",20,35,0,0,2500,2000,2000,1019,50); AddHunting("smokie",25,40,0,0,3000,2500,2500,1056,50); AddHunting("ant",25,40,0,0,5000,2500,2500,1105,50); AddHunting("ant",25,40,0,0,5000,2500,2500,1160,50); AddHunting("ant",25,40,0,0,5000,2500,2500,1095,50); AddHunting("solider skeleton",25,40,0,0,5000,2500,2500,1028,50); AddHunting("bigfoot",25,40,0,0,5000,2500,2500,1060,50); AddHunting("hydra",30,45,11566,50,10000,3000,2000,1068,50); AddHunting("elder willow",30,45,11566,50,10000,3000,2000,1023,50); AddHunting("vitata",30,45,11566,50,10000,3000,2000,1176,50); AddHunting("cookie",30,45,11566,50,10000,3000,2000,1265,50); AddHunting("solider skeleton",30,45,0,0,20000,3000,1000,1028,50); AddHunting("yoyo",35,50,0,0,20000,3500,3500,1057,50); AddHunting("chrismas cookie",35,50,0,0,20000,3500,3500,1246,50); AddHunting("coco",35,50,0,0,20000,3500,3500,1104,50); AddHunting("cruiser",35,99,0,0,25000,4000,4000,1248,50); AddHunting("megalodon",35,99,624,5,20000,4000,4000,1064,50); AddHunting("thara frog",35,60,0,0,25000,4000,4000,1034,50); AddHunting("martin",35,60,0,0,20000,4000,4000,1145,50); AddHunting("giearth",35,60,0,0,20000,4000,4000,1121,50); AddHunting("marina",40,99,0,0,25000,5000,5000,1141,50); AddHunting("vadon",40,99,0,0,25000,5000,5000,1066,50); AddHunting("kukre",40,99,0,0,25000,5000,5000,1070,50); AddHunting("argos",40,99,1025,25,20000,5000,5000,1100,50); AddHunting("orc warrior",40,99,0,0,100000,5000,5000,1023,150); AddHunting("wolf",40,99,0,0,20000,5000,5000,1013,50); AddHunting("galapago",40,99,0,0,25000,5000,5000,1391,50); AddHunting("skeleton worker",40,99,0,0,30000,5000,5000,1169,50); AddHunting("steel chonchon",45,99,0,0,30000,6000,5000,1042,50); AddHunting("archer skeleton",45,99,0,0,30000,6000,5000,1016,50); AddHunting("fur seal",45,99,0,0,30000,6000,5000,1317,50); AddHunting("sea otter",45,99,0,0,30000,6000,5000,1323,50); AddHunting("orc zombie",45,99,0,0,30000,6000,5000,1153,50); AddHunting("verit",45,99,0,0,30000,6000,5000,1032,50); AddHunting("mummy",50,99,0,0,35000,7000,5000,1041,50); end; function AddCollection{ set .collectionquestcount,.collectionquestcount+1; setd ("." +.collectionquestcount+"_collectionname$", getarg(0)); setd ("." +.collectionquestcount+"_collectionmin", getarg(1)); setd ("." +.collectionquestcount+"_collectionmax", getarg(2)); setd ("." +.collectionquestcount+"_collectionprize", getarg(3)); setd ("." +.collectionquestcount+"_collectionamount", getarg(4)); setd ("." +.collectionquestcount+"_collectionzeny", getarg(5)); set .@argcount, 6; set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp")); setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount)); setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1)); set .@argcount, .@argcount+2; set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem")); while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1){ setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount)); setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1)); set .@argcount,.@argcount+2; set .@size, .@size+2; } return; } function AddHunting{ set .huntingquestcount,.huntingquestcount+1; setd ("." +.huntingquestcount+"_huntingname$", getarg(0)); setd ("." +.huntingquestcount+"_huntingmin", getarg(1)); setd ("." +.huntingquestcount+"_huntingmax", getarg(2)); setd ("." +.huntingquestcount+"_huntingprize", getarg(3)); setd ("." +.huntingquestcount+"_huntingamount", getarg(4)); setd ("." +.huntingquestcount+"_huntingzeny", getarg(5)); set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp")); set .@argcount, 6; setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount)); setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1)); set .@argcount, .@argcount+2; set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob")); while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1){ setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount)); setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1)); set .@argcount, .@argcount+2; set .@size, .@size+2; } return; } } // -------------------------------------------------- // Duplicates: // -------------------------------------------------- alberta,37,240,4 duplicate(Questboard) Questboard#alb 857 aldebaran,146,114,4 duplicate(Questboard) Questboard#alde 857 amatsu,207,87,4 duplicate(Questboard) Questboard#ama 857 ayothaya,212,174,6 duplicate(Questboard) Questboard#ayo 857 comodo,186,161,4 duplicate(Questboard) Questboard#com 857 einbech,53,36,6 duplicate(Questboard) Questboard#einbe 857 einbroch,74,202,4 duplicate(Questboard) Questboard#einbr 857 geffen,129,66,4 duplicate(Questboard) Questboard#gef 857 gonryun,155,126,4 duplicate(Questboard) Questboard#gon 857 hugel,102,146,4 duplicate(Questboard) Questboard#hug 857 izlude,131,152,4 duplicate(Questboard) Questboard#izl 857 //Pre-RE: (132,120) jawaii,251,133,4 duplicate(Questboard) Questboard#jaw 857 lighthalzen,154,107,4 duplicate(Questboard) Questboard#lhz 857 louyang,203,105,6 duplicate(Questboard) Questboard#lou 857 manuk,270,143,6 duplicate(Questboard) Questboard#man 857 mid_camp,218,286,4 duplicate(Questboard) Questboard#mid 857 morocc,148,87,4 duplicate(Questboard) Questboard#mor 857 moscovia,221,195,4 duplicate(Questboard) Questboard#mos 857 niflheim,197,180,4 duplicate(Questboard) Questboard#nif 857 payon,184,104,4 duplicate(Questboard) Questboard#pay 857 rachel,130,118,4 duplicate(Questboard) Questboard#rac 857 splendide,203,153,4 duplicate(Questboard) Questboard#spl 857 umbala,104,152,3 duplicate(Questboard) Questboard#umb 857 veins,214,121,4 duplicate(Questboard) Questboard#ve 857 xmas,153,140,6 duplicate(Questboard) Questboard#xmas 857 yuno,164,47,4 duplicate(Questboard) Questboard#yuno 857 // -------------------------------------------------- // Duplicates (Renewal): // -------------------------------------------------- brasilis,192,226,4 duplicate(Questboard) Questboard#bra 857 dewata,197,190,6 duplicate(Questboard) Questboard#dew 857 dicastes01,199,197,6 duplicate(Questboard) Questboard#dic 857 malangdo,140,116,6 duplicate(Questboard) Questboard#mal 857 malaya,231,193,4 duplicate(Questboard) Questboard#ma 857
  21. prontera,158,181,5 script Race-To-99 100,{ if (BaseLevel < 99) { npctalk "Sorry, Only Lvl 99 can claim the reward!"; end; } if (JobLevel < 70) { npctalk "Sorry, Only Job Lvl 70 can claim the reward!"; end; } if ($ItemGive == 100) { npctalk "Sorry, all rewards has been taken!"; end; } if (getreward) { npctalk "Sorry, Nothing for you!"; end; } announce "Congratulations! "+strcharinfo(0)+" has claimed his reward for Race to 99 Event", bc_all; ++$ItemGive; if ($ItemGive == 1) { getitem 501, 100; getitem 501, 100; getitem 501, 100; getitem 501, 100; } else if ($ItemGive == 2) { getitem 501, 100; getitem 501, 100; getitem 501, 100; } else if ($ItemGive == 3) { getitem 501, 100; getitem 501, 100; } else { getitem 501, 100; } getreward = 1; sleep 2000; announce "There are "+(100 - $ItemGive)+" rewards left to give!", bc_all; end; OnInit: waitingroom "Level 99 Rewarder", 0; end; }
  22. // zeny calculation moblv + random moblv [Valaris] zeny=(int) ((md->level+rnd()%md->level)*per*bonus/100.); if(md->db->mexp > 0) zeny*=rnd()%250;
  23. mes "What item are you looking for?"; input .@name$; .@qty = searchitem(.@matches[0],.@name$); mes "I found " + .@qty + " items:"; for (.@i = 0; .@i < .@qty; .@i++) // Display name (eg: "Apple[0]") mes getitemname(.@matches[.@i]) + "[" + getitemslots(.@matches[.@i]) + "]"; or better getiteminfo("<item name>", ITEMINFO_ID)
  24. i believe most likely are using the default endless tower map, just clone it...
×
×
  • Create New...