

Kiritoryu
Members-
Posts
59 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Kiritoryu
-
cant work too for me. Im using the latest rAthena. Same problem. it been fine before. but when i updated the lastest rathena it stopped working
-
isit possible to set an amount that can be summon ? and set A limit to it( Max summon: 10 ?). Lets say 1 amonra is 1m. then we able to put an amount of 10 amonra, so it will be total 10m paid.
-
Can you help me?Cash point to KVM point (glorious)
Kiritoryu replied to deceel's question in Script Requests
Emistry. Don't change his gender lol Do you use rAthena ? if so post your current script please. Can i request on this post too? A NPC which can change an itemID to cash point. -
On the current new rAthena. This Script has error :>
-
Me too bump! BUMP! need this asap. Server no MVP ROOM D:?! Bumb bumb bump bump Bump
-
r17228: Channel System (replacement for @main)
Kiritoryu replied to Euphy's topic in Development News
Make sure you update your sources respectively (and don't forget to recompile) .. channel command and channel_admin permission are located in map/pc_groups.h and map/atcommand.c files - try to locate them here to make sure your files are up to date. Oh thanks. And i know why this happen. Haha. Im using eAmod as well -
r17228: Channel System (replacement for @main)
Kiritoryu replied to Euphy's topic in Development News
[Warning]: atcommand_config_read: can not set alias for non-existent command channel (conf/atcommand_athena.conf:59) [status]: Done reading '60' command aliases in 'conf/atcommand_athena.conf'. [Warning]: pc_groups:read_config: non-existent command name 'channel', removing... (conf/groups.conf:130) [Warning]: pc_groups:read_config: non-existent command name 'channel', removing... (conf/groups.conf:174) [Warning]: pc_groups:read_config: non-existent command name 'channels', removing... (conf/groups.conf:308) [Warning]: pc_groups:read_config: non-existent permission name 'channel_admin', removing... (conf/groups.conf:320) but i have channel.conf im using the latest rAthena -
Im using the new izlude map. but all my portals and NPC are all messed up. Anyone can share with me their fixed izlude.txt ? tthanksss
-
I need a baby job changer that doesnt have bug. Mine if i novice level, and i change to baby job. The stats points that are added reset-ed but the stats point that i didnt add stays. this allow in stats abuse. my server is 500/120 server with max stats 450 This is my script. Bugged. ////////////////////////////////////////////////////////////////////// //////////////////////// aERO2 Corp. Scripts ///////////////////////// ////////////////////////////////////////////////////////////////////// ////Script: Baby Job Master ////Writer: yandols ////Version: 1.01 ////Works with: All versions ////Desc: Job Master for Baby Class ////////////////////////////////////////////////////////////////////// ////Version Info: //// Not Available ////////////////////////////////////////////////////////////////////// sanctum,245,137,6 script Baby Job Master 96,{ if(SkillPoint != 0) goto Lskillpt; if(@CharReborned==1) goto LAlreadyReborn; if(baseLevel < 10) goto Lnotbabylevel; if(@chardefsize==2) goto Lnotitans; mes "[Baby Job Master]"; mes "I am the Baby Job Master for this server."; mes "Do you need a job change?"; next; menu "Become baby",Lbabytime,"First Class",LFirstClass,"Second Class (2-1)",LSecondClass,"Second Class (2-2)",LSecondClass2; L_Fail: mes "[Baby Job Master]"; mes "Only Novice can change into a baby!!"; close; LAlreadyReborn: mes "[Baby Job Master]"; mes "You are reborn class, I cannot provide jobchange to reborn class."; close; Lbabytime: if(Class != 0) goto L_Fail; if(Class==4023) goto LAlreadyNoob; mes "[Baby Job Master]"; mes "You want to become a baby?"; mes "If you become baby you cannot reborn."; next; menu "Ok",ResetYes,"Cancel",ResetNo; ResetYes: getitem 1202,1; getitem 2302,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFBaby^000000."; jobchange 4023; close; ResetNo: goto LCancel; LAlreadyNoob: mes "[Baby Job Master]"; mes "You are already a baby."; close; Lnotbabylevel: mes "[Baby Job Master]"; mes "I am the Baby Job Master for this server."; next; mes "[Baby Job Master]"; mes "If you want to become a baby, you must be at least level 10 and not a titan."; close; Lnotitans: mes "[Baby Job Master]"; mes "Sorry, I can't help you."; mes "Giants cannot become baby!!"; mes "Too big!!!"; close; LSnovice: if(class !=4023) goto LHell; if(baselevel<45) goto LHell; getitem 1202,1; getitem 2302,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFSuper Baby^000000!!"; jobchange 4045; close; LHell: mes "[Baby Job Master]"; mes "- You have to be a baby novice"; mes "- You need to be at least BaseLvl 45."; close; LFirstClass: if(class !=4023) goto Lnovice; if(joblevel<10) goto Ljobten; menu "Swordsman",LSword,"Mage",LMage,"Thief",LThief,"Merchant",LMerc,"Acolyte",LAco,"Archer",LArch,"Super Baby!!",LSnovice; Lnovice: mes "[Baby Job Master]"; mes "You are not a baby novice."; close; Ljobten: mes "[Baby Job Master]"; mes "- You need to be at least JobLvl 10 before changing into the first class."; close; Lskillpt: mes "[Error]"; mes "^FF0000Please use up all your skill points!^000000"; close; LTaekwon: mes "[Job Master] ^FF0000"; mes "An error has occured, unable to jobchange. please send error report to eAthena Server.^000000"; close; LGunz: mes "[Job Master] ^FF0000"; mes "An error has occured, unable to jobchange. please send error report to eAthena Server.^000000"; close; LNinja: mes "[Job Master] ^FF0000"; mes "An error has occured, unable to jobchange. please send error report to eAthena Server.^000000"; close; LSword: getitem 2304,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFSwordman^000000."; jobchange 4024; close; LMage: getitem 1602,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFMage^000000."; jobchange 4025; close; LThief: getitem 1214,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFThief^000000."; jobchange 4029; close; LMerc: getitem 1302,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFMerchant^000000."; jobchange 4028; close; LAco: getitem 1505,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFAcolyte^000000."; jobchange 4027; close; LArch: getitem 1702,1; getitem 1750,100; mes "[Baby Job Master]"; mes "Now you become a ^0000FFArcher^000000."; jobchange 4026; close; LCancel: mes "[Baby Job Master]"; mes "Okay then."; close; LSecondClass: if(joblevel<50) goto Ljobforty; menu "Knight",LKnight,"Wizard",LWizard,"Hunter",LHunter,"Blacksmith",LBlacksmith,"Assassin",LAssassin,"Priest",LPriest; Ljobforty: mes "[Baby Job Master]"; mes "You must be at least JobLvl 40 before changing to 2nd class."; close; LNotTaekwon: mes "[Baby Job Master]"; mes "You are not a Taekwon."; close; LStarglad: goto LNotTaekwon; mes "[Baby Job Master]"; mes "This job is not yet availible."; close; LKnight: if(class !=4024) goto LNotSword; goto LKnight2; LNotSword: mes "[Baby Job Master]"; mes "You are not a swordman."; close; LKnight2: getitem 1155,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFKnight^000000."; jobchange 4030; close; LHunter: if(class !=4026) goto LNotArcher; goto LHun2; LNotArcher: mes "[Baby Job Master]"; mes "You are not an archer."; close; LHun2: // warp "in_hunter.gat",100,18; // close; mes "[Baby Job Master]"; mes "Now you become a ^0000FFHunter^000000."; jobchange 4034; // give_special 2; close; LBlacksmith: mes "[Baby Job Master]"; if(class !=4028) goto LNotMerc; goto LBla2; LNotMerc: mes "[Baby Job Master]"; mes "You are not a Merchant."; close; LBla2: getitem 1358,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFBlacksmith^000000."; jobchange 4033; close; LAssassin: if(class !=4029) goto LNotThief; goto LAssass2; LNotThief: mes "[Baby Job Master]"; mes "You are not a Thief."; close; LAssass2: getitem 1251,1; mes "[Baby Job Master]"; mes "Now you become an ^0000FFAssassin^000000."; jobchange 4035; close; LPriest: if(class !=4027) goto LNotAco; goto LPri2; LNotAco: mes "[Baby Job Master]"; mes "You are not an Acolyte."; close; LPri2: getitem 1550,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFPriest^000000."; jobchange 4031; close; LWizard: if(class !=4025) goto LNotMage; goto LWiz2; LNotMage: mes "[Baby Job Master]"; mes "You are not a Mage."; close; LWiz2: getitem 1608,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFWizard^000000."; jobchange 4032; close; LSecondClass2: if(joblevel<40) goto Ljobforty; if(sex==0) goto LFsecond2; if(sex==1) goto LMsecond2; LFsecond2: menu "Crusader",LCrusader,"Sage",LSage,"Dancer",LDancer,"Alchemist",LAlchemist,"Rogue",LRogue,"Monk",LMonk,"Soul Linker",LSoulLink; LMsecond2: menu "Crusader",LCrusader,"Sage",LSage,"Bard",LBard,"Alchemist",LAlchemist,"Rogue",LRogue,"Monk",LMonk,"Soul Linker",LSoulLink; LNotTaekwon2: mes "[Baby Job Master]"; mes "You are not a Taekwon."; close; LSoulLink: goto LNotTaekwon2; mes "[Baby Job Master]"; mes "This job is not yet availible."; close; LCrusader: if(class !=4024) goto LNotSword2; goto LCrus2; LNotSword2: mes "[Baby Job Master]"; mes "You are not a Swordman"; close; LCrus2: getitem 1117,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFCrusader^000000."; jobchange 4037; close; LBard: if(class !=4026) goto LNotArch3; goto LBard2; LNotArch3: mes "[Baby Job Master]"; mes "You are not an Archer"; close; LBard2: getitem 1902,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFBard^000000."; jobchange 4042; close; LDancer: if(class !=4026) goto LNotArch2; goto LDanc2; LNotArch2: mes "[Baby Job Master]"; mes "You are not an Archer"; close; LDanc2: getitem 1951,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFDancer^000000."; jobchange 4043; close; LAlchemist: mes "[Baby Job Master]"; if(class !=4028) goto LNotMerc2; goto LAlch2; LNotMerc2: mes "[Baby Job Master]"; mes "You are not a Merchant"; close; LAlch2: getitem 1358,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFAlchemist^000000."; jobchange 4041; close; LRogue: if(class !=4029) goto LNotThief2; goto LRogue2; LNotThief2: mes "[Baby Job Master]"; mes "You are not a Thief"; close; LRogue2: getitem 1214,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFRogue^000000."; jobchange 4040; close; LMonk: if(class !=4027) goto LNotAco2; goto LMonk2; LNotAco2: mes "[Baby Job Master]"; mes "You are not an Acolyte"; close; LMonk2: getitem 1802,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFMonk^000000."; jobchange 4038; close; LSage: if(class !=4025) goto LNotMage2; goto LSage2; LNotMage2: mes "[Baby Job Master]"; mes "You are not a Mage"; close; LSage2: getitem 1550,1; mes "[Baby Job Master]"; mes "Now you become a ^0000FFSage^000000."; jobchange 4039; close; }
-
How can i remove the cooldown of 5 minutes for this?
Kiritoryu posted a question in Scripting Support
//===== rAthena Script ======================================= // BattleGround System - KvM Entrance NPCs //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena 1.0 //===== Description: ========================================= //= [AEGIS Conversion] //= Kreiger Von Midgard Battleground Entrance NPCs //= Original NPCs scrapped from bg_common. //===== Additional Comments: ================================= //= 1.0 First Version. //= 1.1 Corrected some typos, and shifted messages around. //= Corrected iRO style quest log entries, however it's //= advisable that you not use them, as they conflict. //============================================================ // KvM Officer - Guillaume //============================================================ bat_room,164,178,5 script KVM Mercenary Officer#1 418,{ /* set .@kvm,checkquest(6026,PLAYTIME); if ((.@kvm == 0) || (.@kvm == 1)) { mes "[Croix Mercenary Officer]"; mes "I know that you've already signed with the Croix. Go back and join their team. We will not accept traitors to fight for us."; close; } else if (.@kvm == 2) erasequest 6026; */ set .@permit,checkquest(6025,PLAYTIME); if ((.@permit == 0) || (.@permit == 1)) { mes "[Guillaume Mercenary Officer]"; mes "It seems you have recently participated in a KVM battle. You must wait 5 minutes before signing up again."; close; } else if (.@permit == 2) erasequest 6025; mes "[Guillaume Mercenary Officer]"; mes "Let them know the real might of Guillaume!"; next; switch(select("I will fight with you.:End Conversation.")) { case 1: mes "[Guillaume Mercenary Officer]"; mes "Show them how strong we are."; mes "Today, everyone will hear the shout of triumph from Guillaume!"; close2; //setquest 6025; if (BaseLevel > 79) warp "bat_room",169,223; else if (BaseLevel < 60) warp "bat_room",197,223; else warp "bat_room",225,223; close; case 2: mes "[Guillaume Mercenary Officer]"; mes "We will win!"; close; } } // Guillaume Knight - KvM //============================================================ bat_room,167,178,5 script Guillaume Knight#kvm 417,{ mes "[Guillaume Knight]"; mes "Hello."; mes "What do you want to know?"; next; switch(select("Apply for KVM.:What is KVM?:How do I participate in KVM?:I want to know my Kreiger Points.")) { case 1: mes "[Guillaume Knight]"; mes "Applications are not available yet."; mes "To apply, you need to go to a KVM Mercenary Officer."; close; case 2: mes "[Guillaume Knight]"; mes "KVM is the abbreviation of Kreiger Von Midgard."; mes "Adventurer, are you aware that the way to the new world has been opened?"; next; mes "[Guillaume Knight]"; mes "We, the Guillaume Administration, have several plans to advance to the new world."; mes "And KVM is one of them."; next; mes "[Guillaume Knight]"; mes "It means that we, one of many countries in the Midgard continent,"; mes "have decided to employ many adventurers for the immediate advance to the new world."; next; mes "[Guillaume Knight]"; mes "Therefore, to select the best adventurers, we are holding the KVM."; mes "We exspect responses from many adventurers."; next; mes "[Guillaume Knight]"; mes "And we will give them rewards for their participation!"; mes "As for the rewards, please contact a KVM Logistic Officer."; close; case 3: mes "[Guillaume Knight]"; mes "Basically, KVM is a 5 on 5 battle."; mes "First, you apply with a KVM receptionist, in a group or individually."; next; mes "[Guillaume Knight]"; mes "Group applications are for when you intend to enter the KVM with your party members,"; mes "and a personal application is for when you intend to enter the KVM individually."; next; mes "[Guillaume Knight]"; mes "Please apply with a KVM officer, and he will contact you later when you are in Prontera."; next; mes "[Guillaume Knight]"; mes "Then you enter and follow the instructions in the battlefield."; next; mes "[Guillaume Knight]"; mes "However, please be advised that unless you are in the KVM office, he cannot contact you."; close; case 4: mes "[Guillaume Knight]"; mes "Your Kreiger Points are:"; mes ""+kvm_point+"."; close; } } // KvM Officer - Croix //============================================================ bat_room,164,121,1 script KVM Mercenary Officer#2 414,{ /* set .@kvm,checkquest(6025,PLAYTIME); if ((.@kvm == 0) || (.@kvm == 1)) { mes "[Croix Mercenary Officer]"; mes "I know that you've already signed with the Guillaume. Go back and join their team. We will not accept traitors to fight for us."; close; } else if (.@kvm == 2) erasequest 6025; */ set .@permit,checkquest(6025,PLAYTIME); if ((.@permit == 0) || (.@permit == 1)) { mes "[Croix Mercenary Officer]"; mes "It seems you have recently participated in a KVM battle. You must wait 5 minutes before signing up again."; close; } else if (.@permit == 2) erasequest 6025; mes "[Croix Mercenary Officer]"; mes "Let them know the real might of Croix!"; next; switch(select("I will fight with you.:End Conversation.")) { case 1: mes "[Croix Mercenary Officer]"; mes "Show them how strong we are."; mes "Today, everyone will hear the shout of triumph from Croix!"; close2; //setquest 6026; if (BaseLevel > 79) warp "bat_room",169,207; else if (BaseLevel < 60) warp "bat_room",197,207; else warp "bat_room",225,207; close; case 2: mes "[Croix Mercenary Officer]"; mes "We will win!"; close; } } // Croix Knight - KvM //============================================================ bat_room,167,121,1 script Croix Knight#kvm 413,{ mes "[Croix Knight]"; mes "Hello."; mes "What do you want to know?"; next; switch(select("Apply for KVM.:What is KVM?:How do I participate in KVM?:I want to know my Kreiger Points.")) { case 1: mes "[Croix Knight]"; mes "Applications are not available yet."; mes "To apply, you need to go to a KVM Mercenary Officer."; close; case 2: mes "[Croix Knight]"; mes "KVM is the abbreviation of Kreiger Von Midgard."; mes "Adventurer, are you aware that the way to the new world has been opened?"; next; mes "[Croix Knight]"; mes "We, the Croix Administration, have several plans to advance to the new world."; mes "And KVM is one of them."; next; mes "[Croix Knight]"; mes "It means that we, one of many countries in the Midgard continent,"; mes "have decided to employ many adventurers for the immediate advance to the new world."; next; mes "[Croix Knight]"; mes "Therefore, to select the best adventurers, we are holding the KVM."; mes "We exspect responses from many adventurers."; next; mes "[Croix Knight]"; mes "And we will give them rewards for their participation!"; mes "As for the rewards, please contact a KVM Logistic Officer."; close; case 3: mes "[Croix Knight]"; mes "Basically, KVM is a 5 on 5 battle."; mes "First, you apply with a KVM receptionist, in a group or individually."; next; mes "[Croix Knight]"; mes "Group applications are for when you intend to enter the KVM with your party members,"; mes "and a personal application is for when you intend to enter the KVM individually."; next; mes "[Croix Knight]"; mes "Please apply with a KVM officer, and he will contact you later when you are in Prontera."; next; mes "[Croix Knight]"; mes "Then you enter and follow the instructions in the battlefield."; next; mes "[Croix Knight]"; mes "However, please be advised that unless you are in the KVM office, he cannot contact you."; close; case 4: mes "[Croix Knight]"; mes "Your Kreiger Points are:"; mes ""+kvm_point+"."; close; } } -
variable tied to MAC address (I am using Harmony)
Kiritoryu replied to Reducto's question in Script Requests
I wanna ask. How do i use check on ip and mac, & on the same time give to only new players register from today onwards - example Lets say i have 1000 accounts register in my sql db. i want the ACCOUNT_ID from 1001 only can receive the freebies. and also to check mac / ip at the same time? cause mine is a server that is already launch. and some players already have freebies. Or any other alternative to do this? -
Fix Devotion for r17013. Reflect goes to atker not pally.
Kiritoryu replied to Kiritoryu's question in Source Requests
Haha is me dude. and thanks for it ! -
Fix Devotion for r17013. Reflect goes to atker not pally.
Kiritoryu posted a question in Source Requests
I would like someone to help me with reflect skill ( of any kind, Pally's reflect, Orc_lord card reflect , VM reflect or any other possible reflect ) A = Champ B = Pally C = LK D = Pally 2 B devo A , and D devo C. Both pally is reflect skill is on. C Bowling bash B&A . C receives the reflect damage rather then his pally D. (Nor the D pally or the LK receive ) Senario 2. A VS C on GVG. A with devo B , C is not. C wears VM or Orclord card. A asuras C but, A receive the reflect dmg from the vm or orclord . ( I want this B the pally to receive it) Dont mind purchasing it. PM me. -
is not appearing D: it says script loaded. i even tabbed the sec_pri,26,47,4 script GMSPAWNER 990,{
-
I would like to have a NPC that i can put at my GM headquarters. This npc let GM's above a certain lvl to use it to get item = replacing @item And it allow lvl 99 gm's to view the log of which GM get what item from the NPC. to prevent abuse anyone ?
-
How to disable kagerou and Oboro in this script. This is euphy all in 1 NPC if (getarraysize(.OnClick)) { if (.OnClick[0]) { specialeffect2 313; percentheal 100,100; } if (.OnClick[1]) { specialeffect2 42; sc_start SC_BLESSING,600000,10; specialeffect2 37; sc_start SC_INCREASEAGI,600000,10; } if (.OnClick[2] && getbrokenid(1)) { specialeffect2 101; atcommand "@repairall"; } } set .@menu$,""; for (set .@i,0; .@i < getarraysize(.MainMenu$); set .@i,.@i+1) { if (.MenuOption & pow(2,.@i)) set .@menu$, .@menu$+" ~ "+.MainMenu$[.@i]; set .@menu$, .@menu$+":"; } switch(select(.@menu$)) { case 1: function Job_Menu; function A_An; if (Class > 4049) { message strcharinfo(0),"No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { message strcharinfo(0),"Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { message strcharinfo(0),"Please use all your skill points before proceeding."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } if (Class > 21) { Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while(1) { set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); } } set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99; if (Class == Job_Ninja) setarray .@exp[0],.@j1,70; if (.@exp[0] && .ThirdClass) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel; message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } Job_Menu(.@exp[0]); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { message strcharinfo(0),"No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) message strcharinfo(0),"A job level of "+.JobReq[0]+" is required to change into the 1st Class."; else if (Class == 4001 && .LastJob && lastJob) Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); default: message strcharinfo(0),"An error has occurred."; break; } close; } if (.@eac&EAJL_THIRD && Upper == 0) { // Non-trans third job if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } Job_Menu(4001); close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) message strcharinfo(0),"No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) message strcharinfo(0),"A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) Job_Menu(lastJob+4001); else Job_Menu(.@j1,.@j2); close; function Job_Menu { if (getargcount() > 1) { set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; } while(1) { if (getargcount() > 1) { set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; } else set .@i, getarg(0); if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { message strcharinfo(0),"A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; } else if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777Go back^000000")==1) { message strcharinfo(0),"Became "+A_An(jobname(.@i))+"!"; if (.@i==4001 && .LastJob) set lastJob, Class; jobchange .@i; if (.@i==4001 || .@i==4023) resetlvl(1); specialeffect2 338; specialeffect2 432; if (.Platinum) Get_Platinum; close; } if (getargcount() == 1) return; } end; }
-
Requesting a script that it will auto mute <minutes> , when a player is spamming skill over a certain <amount> Example. dangerous soul collect + critical explosion = 2 skills And will mute when spamm more then = 10 skills Mute minute increases if he continues to abuse skill spam. will be reset after 24 hours. Anyone?
-
Im sorry. i dont get it. What should i replace. can u explain to me? im very noob on what im suppose to do
-
Yeah i know that. i change it to other places. but it cant seem to work. i've change quest_shop & qshop to qshop1 & quest_shop1 Im trying to say. I want to use this npc for a drif function. 1st npc is the above script and is working fine - selling scrolls. 2nd NPC is for doing quest's. But if i put it another place. it will clash together.\ Here is my second script. Whats the problem //===== 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>{,...}}}; //============================================================ dicastes01,228,197,5 script Quest Shop#2 958,{ callfunc "qshop"; } // Script Core //============================================================ - script quest_shop47 -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],"Quest A","Quest B","Quest C"; // ----------------------------------------------------------- // 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,30271,1,0,0,7289,400,7226,250,975,350,4001,99,703,350); Add(1,30613,1,0,0,7289,400,7226,250,976,350,4001,99,703,350); Add(1,30466,1,0,0,7289,400,7226,250,980,350,4001,99,703,350); Add(1,30098,1,0,0,7289,400,7226,250,978,350,4001,99,703,350); Add(1,30419,1,0,0,7289,400,7226,250,981,350,4001,99,703,350); Add(2,30110,1,0,0,7035,200,7152,470,975,400,4409,74); Add(2,30706,1,0,0,7035,200,7152,470,976,400,4409,74); Add(2,30179,1,0,0,7035,200,7152,470,978,400,4409,74); Add(2,30477,1,0,0,7035,200,7152,470,980,400,4409,74); Add(3,30707,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); Add(3,30573,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); Add(3,30572,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); Add(3,30571,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); Add(3,30570,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); Add(3,30180,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); Add(3,5426,1,0,0,7267,400,6032,470,975,500,4116,88,703,450); // ----------------------------------------------------------- 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_shop47::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
-
What things do i need to change to make this a different npc ? First NPC i use it for players to make scroll. Second i would like to make it for a quest shop. But it seems i cant get it work, It either mix together and one cant work or it cant even open. This is one of Euphy Scipt. //===== 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>{,...}}}; //============================================================ dicastes01,279,157,0 script Scroll Shop#1 998,{ callfunc "qshop"; } // 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],"Scroll","Linker","Converters"; // ----------------------------------------------------------- // 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,12216,150,0,0,671,2); Add(1,12215,150,0,0,671,2); Add(1,12219,150,0,0,671,2); Add(1,12220,100,0,0,671,2); Add(1,12217,100,0,0,671,2); Add(1,12218,100,0,0,671,2); Add(1,14516,100,0,0,671,2); Add(1,14588,5,0,0,671,1); Add(1,14589,5,0,0,671,1); Add(1,14590,5,0,0,671,1); Add(1,14591,5,0,0,671,1); Add(1,12150,7,0,0,671,1); Add(2,22000,10,0,0,671,1); Add(2,22001,10,0,0,671,1); Add(2,22002,10,0,0,671,1); Add(2,22003,10,0,0,671,1); Add(2,22004,10,0,0,671,1); Add(2,22005,10,0,0,671,1); Add(2,22006,10,0,0,671,1); Add(2,22007,10,0,0,671,1); Add(2,22008,10,0,0,671,1); Add(2,22009,10,0,0,671,1); Add(2,22010,10,0,0,671,1); Add(2,22011,10,0,0,671,1); Add(2,22012,10,0,0,671,1); Add(2,22013,10,0,0,671,1); Add(2,22014,10,0,0,671,1); Add(3,12114,50,0,0,671,1); Add(3,12115,50,0,0,671,1); Add(3,12116,50,0,0,671,1); Add(3,12117,50,0,0,671,1); // ----------------------------------------------------------- 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
-
isit like this setarray .Reward[1],671,10; // Reward for all members of conquering guilds, per castle: <ID>,<Count>{,...} (0 to disable) ? I tried but players get nothing
-
I cant get it to work for my server. I try clicking it nothing happen. using r17013
-
If you guess right then he just need to change the drops of his treasure ( mob_db ) Where do i need to change it and how many do i need to change it? :X to make it 100 per castle
-
Can i request a nice dummy / emp test room ?
Kiritoryu replied to Kiritoryu's question in Script Requests
Huh i dont get it. How do i use this? Im a newb sorry :x