Jump to content

YuliChenz

Members
  • Posts

    40
  • Joined

  • Last visited

Everything posted by YuliChenz

  1. could anyone please modif this script to make it works on rathena??? its eathena script though //========= Description =========== // Floating Rates NPC, accesible via WHISPER //========= By ============ // Kitsune (www.ro.noobfury.com) //========= Version =========== // 1.0 - Working version archieved. [Kitsune] // 1.1 - Added a random rate float and added auto rate multipliers. [Kitsune] // 1.2 - Added a event announce on login and corrected some bugs. [Kitsune] //========= Works on ========= // Eathena 900+ ? //=========================== //++EDIT++ // If you want this NPC to be invisible, uncomment the first line // and comment the second. //script frates -1,{ prt_in,94,70,5 script FloatingRates 939,{ OnWhisperGlobal: if (getgmlevel() == 99){ mes "["+$servername$+" Rates event]"; mes "Hello master ^0000FF" + strcharinfo(0) +"!"; mes "^000000What must i do for you?"; switch (select("Manual rate float & set","Cancel ongoing float","Set event Time","Exit","Randomic Rate Float")){ case 1: next; mes "["+$servername$+" Rates event]"; mes "Please tell me which Base rate you want"; mes "PS: It gets multiplied auto!"; input $mbrate; set $mbrate,$mbrate*100; //Multiplies the rate by 100 So you don't have to put the raw rate. next; mes "["+$servername$+" Rates event]"; mes "Please tell me which Job rate you want"; mes "PS: It gets multiplied auto!"; input $mjrate; set $mjrate,$mjrate*100; next; mes "["+$servername$+" Rates event]"; mes "Want to change the drop rates?"; switch (select("Yes","No")){ case 1: next; mes "["+$servername$+" Rates event]"; mes "Please tell me which DROP rate you want"; mes "PS: It gets multiplied auto!"; input $mdrate; set $mdrate,$mdrate*100; break; case 2: next; set $mdrate,0; break; } mes "["+$servername$+" Rates event]"; mes "Ok the rates are:"; mes "Base:^0000FF"+($mbrate/100); mes "^000000Job:^FF0000"+($mjrate/100); if ($mdrate == 0){ mes "^000000Drop:^00FF00Not changed!"; } else { mes "^000000Drop:^00FF00"+($mdrate/100); } next; mes "["+$servername$+" Rates event]"; mes "It\'s ok to change?"; switch (select("Yes","No")){ case 1: next; mes "["+$servername$+" Rates event]"; mes "O.K.!! Changing the rates now!"; next; mes "["+$servername$+" Rates event]"; mes "Rate sucessfuly changed! Have fun."; close2; callfunc("ratechange"); callfunc("defaultrates"); end; case 2: next; mes "["+$servername$+" Rates event]"; mes "Bailing out!"; close; } case 2: next; mes "["+$servername$+" Rates event]"; mes "Are you sure that you want to cancel the ongoing float?"; switch (select("Yes","No")){ case 1: next; mes "["+$servername$+" Rates event]"; mes "Cancelling..."; callfunc("defaultrates"); next; mes "["+$servername$+" Rates event]"; mes "Rate float cancellated"; close; case 2: next; mes "Bailing out!"; close; } case 3: next; mes "["+$servername$+" Rates event]"; mes "Please input the new time duration of the event in HOURS"; input $tempo; next; mes "["+$servername$+" Rates event]"; mes "The new time is "+$tempo+" Hours"; close; case 4: close; case 5: next; mes "["+$servername$+" Rates event]"; mes "Radomically changing rates"; close2; callfunc("randomrates"); callfunc("ratechange"); callfunc("defaultrates"); end; } } mes "["+$servername$+" Rates event]"; mes "Good day "+strcharinfo(0); mes "I Shall not be used by non GM caracters"; close; //Hours that the script runs - OPTIONAL //Horas que o script vai rodar - OPCIONAL Onclock2200: Onclock1200: callfunc("randomrates"); callfunc("ratechange"); callfunc("defaultrates"); end; //-------------------------------- OnInit: //DEFAULT RATES GOES HERE //RATE PADR�O AQUI set $basedefault,200000; set $jobdefault,200000; set $itemdefault,100000; //MAXIMUM RANDOM RATE FLOAT //RATE RANDOM MAXIMA set $basemaxrandom,300000; set $jobmaxrandom,300000; set $itemmaxrandom,150000; //SERVER NAME GOES HERE!!! //NOME DO SEU SERVER AQUI!!! set $servername$,"NoobFury RO"; //Sets the default time in hours. //Coloca o tempo padr�o if (!$tempo) set $tempo,1; debugmes "NPC: Floating Rates Loaded Successfully"; end; } function script ratechange { //Base exp setbattleflag("base_exp_rate",$mbrate); //Job exp setbattleflag("job_exp_rate",$mjrate); //Drops caso use if ($mdrate != 0){ setbattleflag("item_rate_common",$mdrate); setbattleflag("item_rate_heal",$mdrate); setbattleflag("item_rate_use",$mdrate); setbattleflag("item_rate_equip",$mdrate); announce $servername$+" ADMINS PROUDLY PRESENTS!",bc_all,0xFFFFFF; sleep 3000; announce "Super Rates Event Time!!!",bc_all,0xFFFFFF; sleep 5000; announce "LOOK! THE RATES CHANGED!: Base:"+($mbrate/100)+"x Job:"+($mjrate/100)+"x Drops:"+($mdrate/100)+"x",bc_all,0xFFFFFF; sleep 5000; announce "Run Cause this will last "+$tempo+" hour only!!!",bc_all,0xFFFFFF; atcommand "@reloadmobdb"; set $fratesevent,1; sleep2 $tempo*60*60*1000; return; } announce $servername$+" ADMINS PROUDLY PRESENTS!",bc_all,0xFFFFFF; sleep 3000; announce "Super Rates Event Time!!!",bc_all,0xFFFFFF; sleep 5000; announce "LOOK! THE RATES CHANGED!: Base:"+($mbrate/100)+"x Job:"+($mjrate/100)+"x",bc_all,0xFFFFFF; sleep 5000; announce "Run \'cause this will last "+$tempo+" hour only!!!",bc_all,0xFFFFFF; atcommand "@reloadmobdb"; set $fratesevent,1; sleep2 $tempo*60*60*1000; return; } function script defaultrates { //Base exp setbattleflag("base_exp_rate",$basedefault); //Job exp setbattleflag("job_exp_rate",$jobdefault); //Drops caso use if ($mdrate != 0){ setbattleflag("item_rate_common",$itemdefault); setbattleflag("item_rate_heal",$itemdefault); setbattleflag("item_rate_use",$itemdefault); setbattleflag("item_rate_equip",$itemdefault); } announce "Rates Changed Back to normal!",bc_all,0xFFFFFF; set $fratesevent,0; atcommand "@reloadmobdb"; return; } function script randomrates { set $mbrate,rand($basedefault,$basemaxrandom); set $mjrate,rand($jobdefault,$jobmaxrandom); set $mdrate,rand($itemdefault,$itemmaxrandom); return; } - script ratesevent -1,{ OnPcLoginEvent: if ($fratesevent == 1) dispbottom "Super rates Event currently active!"; end; }
  2. Thank you very much ^^ i will try it
  3. could you please help me making a script for private dead branch room? i wanna use 06guild_01 - 06guild_08 as a map. i need 1 NPC in this room for healing when no monster arround, and an option to clear all monster in map. also put password so no one else can get in when there is player in room, and put time limit for 1 hour. set zeny cost for 1m zeny. i really need this script and i really need your help ^^ thanks in advance
  4. Ahhh.. Got it, i didnt add shop name on .shops$ array.. Thanks a lot euphy
  5. sorry, i know this topic is already exist, but no one reply on my post there, thats why i made this new topic, hoping there's some one can help me to solve this problem im using euphy's dynamic shop script, i need like 15 quest shop npcs, but i have some problem here : 1. i cant make more than 5 npcs in 1 script 2. i made the second script, but it selling same items like first script does. here is my script: this is the first script, all went well except i cant make more than 5 npcs even after i added the dummy shop data //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6 //===== Compatible With: ===================================== //= rAthena SVN r16862+ //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ ayo_in01,45,109,3 script Upper Headgear 459,{ callfunc "qshop",1; } ayo_in01,43,109,3 script Middle headgear 88,{ callfunc "qshop",2; } ayo_in01,41,109,3 script Lower Headgear 99,{ callfunc "qshop",3; } ayo_in01,39,109,3 script Shoes 70,{ callfunc "qshop",4; } ayo_in01,37,109,3 script Accessories 97,{ callfunc "qshop",5; } // Script Core //============================================================ - script quest_shop -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#CASHPOINTS","Cash Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Upper Headgears","Middle Headgears","Lower Headgears","Shoes","Accessories"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,29001,1,10000000,0,1059,300,7095,200,7157,100,7020,5,1030,5,2249,5,7109,5); Add(1,29002,1,10000000,0,968,50,7063,200,949,300,1124,10,1366,10,10018,5,4143,1); Add(1,29003,1,10000000,0,2256,5,5160,3,1466,5,1476,3,750,10,923,300,947,300); Add(1,29006,1,10000000,0,2508,20,1059,200,7166,150,7071,150,930,150); Add(1,29011,1,10000000,0,7510,20,5171,1,2357,1,2524,1,2421,1); Add(2,29007,1,10000000,0,7114,5,7157,100,7187,100,7568,100); Add(2,29008,1,10000000,0,2286,20,733,100,730,50,731,50,732,50); Add(2,29026,1,10000000,0,982,10,7263,100,2614,30); Add(2,29038,1,10000000,0,975,10,7263,100,2614,30); Add(3,29009,1,10000000,0,7211,5,7094,200,7095,200,7093,100); Add(3,29028,1,10000000,0,2254,5,2355,1,2420,1,2521,1,2116,1,5125,1,7063,200); Add(3,29029,1,10000000,0,749,100,995,100,12374,100,7066,200); Add(4,29030,1,10000000,0,7079,1,7063,300,4131,1,4381,30,4097,30,2421,1); Add(5,29031,1,10000000,0,7211,15,7300,15,4079,30); Add(5,29032,1,10000000,0,2618,15,7562,15,4027,30); Add(5,29033,1,10000000,0,7451,15,7754,15,4022,30); Add(5,29034,1,10000000,0,7562,15,7036,15,4412,30); Add(5,29035,1,10000000,0,7513,15,2700,15,4064,30); Add(5,29036,1,10000000,0,7566,15,1015,15,4293,30); Add(5,29037,1,10000000,0,2607,30,4195,20,4188,20); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshop"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 699; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1; if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2]; if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2]; if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[6]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; } deletearray @qe[0],7; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } } function script qshop { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "quest_shop::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshop1 -1,909:-1 - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 - shop qshop5 -1,909:-1 and here is the second script, even though the script on shop1 has diff item id with the first script, it still selling the same items like the first script //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6 //===== Compatible With: ===================================== //= rAthena SVN r16862+ //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "vshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ ayo_in01,16,109,6 script Flames 66,{ callfunc "vshop",1; } // Script Core //============================================================ - script quest_shop -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#CASHPOINTS","Cash Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Fairy Wings","Flames","Odin Masks","Shinobi Headbands"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,29020,1,10000000,0,7122,500,7097,300,994,100,983,10); Add(1,29021,1,10000000,0,7122,500,7097,300,994,100,982,10); Add(1,29022,1,10000000,0,7122,500,7097,300,994,100,981,10); Add(1,29023,1,10000000,0,7122,500,7097,300,994,100,979,10); Add(1,29024,1,10000000,0,7122,500,7097,300,994,100,980,10); Add(1,29025,1,10000000,0,7122,500,7097,300,994,100,978,10); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "vshop"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "vshop"+.@i,1; npcshopattach "vshop"+.@i; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 699; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1; if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2]; if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2]; if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[6]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; } deletearray @qe[0],7; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "vshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } } function script vshop { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "quest_shop::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop vshop1 -1,909:-1 - shop vshop2 -1,909:-1 - shop vshop3 -1,909:-1 - shop vshop4 -1,909:-1 - shop vshop5 -1,909:-1 i really need help here
  6. here is my first script, no prob with it here is my second script, i only made one, and it sell same items like first shop on first script help please
  7. i tried, but still cant, an error occured it said. then i tried to make another script, and i renamed all "qshop" on the script, but still the shop selling same items like the first script. i need 15 NPCs btw help pls
  8. im having error problem on qshop 6, is it limited up to 5 shops???
  9. how to remove all default npcs in town??? im using ayothaya as main town, and i want removing all npcs there, i wanna replace with our custom npcs. please help me
  10. hello, i got prob with your antibot, i cannot unjail a player even with lv 99 GM. and admins also get jailed with your script XD help pls
  11. i installed this script to my server, all installation went good, but i have problem with creating drill. i did this : wisphering to npc:drill with message make, but why always failed, the spell didnt work, no matter how much i tried. help pls.
  12. thanks for the replies guys.. i did like Mootie said, the collection pic showed up when i press right mouse click, but the item icon still not showed up, and caused error when i click the item. what should i do???
  13. yea, i follow that guide for headgear script, but for armor,garment,shoes and accessories, im completely lost >.< please explain
  14. hi, im newbie looking for a help can anyone help me with scripting items like garments, shoes, and accessories?? i dont understand how to add "view ID" part of the script, since equipments like garments, shoes and accessories doesnt has a sprite. and please tell me how to link bmp files on item and collection folder for those items thanks in advance
×
×
  • Create New...