Jump to content

Zac

Members
  • Posts

    44
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Zac

  1. rAthena actually have all of jobs quest. Job 3-1 Job 3-2
  2. Writing an Instanced Dungeon ._.

  3. Try this, I forgot to move OnPCLoginEvent into the last line. haven't tested it yet prontera,153,182,6[TAB]script[TAB]Class Master[TAB]808,{ set .npc$,"^ff0000[Class Master]^000000"; mes .npc$; mes "What can I help you?"; next; menu "Change Job",L_job_change,"Breeder Service",breed,"Reset Skills",L_rskill,"Platinum Skills",pltskill,"Cancel",-; close; L_rskill: mes .npc$; mes "I am the Ability Reseter."; mes "Reset Stats: 5,000z"; mes "Reset Skills: 5,000z"; mes "Reset Both: 9,000z"; mes "Please select the service you want:"; next; menu "^FF3355Reset Skills",L0,"Reset Stats",L1,"Reset Both^000000",L2,"Quit",LEnd; L0: mes .npc$; if (Zeny < 5000) goto NeedZenys; mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-5000; ResetSkill; close; L1: next; mes .npc$; mes "What do you want to do?"; menu "^FF3355Reset Stats^000000",-,"^0000FFBuilds^000000",Lbuilds; next; mes .npc$; if (Zeny < 5000) goto NeedZenys; mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-5000; ResetStatus; close; Lbuilds: if(Class == Job_Taekwon) { goto menubuild; } if(Class == Job_Soul_Linker) { goto menubuild; } if(Class == Job_Gunslinger) { goto menubuild; } if(Class == Job_Star_Gladiator) { goto menubuild; } if(Class == Job_Ninja) { goto menubuild; } if(Upper != 1) { next; mes .npc$; mes "You still can't use this feature."; close; } menubuild: if(BaseLevel != 255) { next; mes .npc$; mes "You still can't use this feature."; close; } if(build1$=="") { set build1$,"Build (1/5)"; } if(build2$=="") { set build2$,"Build (2/5)"; } if(build3$=="") { set build3$,"Build (3/5)"; } if(build4$=="") { set build4$,"Build (4/5)"; } if(build5$=="") { set build5$,"Build (5/5)"; } next; mes .npc$; mes "Builds CP"; menu build1$,Lb1, build2$,Lb2, build3$,Lb3, build4$,Lb4, build5$,Lb5; Lb1: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild1; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (1)."; input @build1$; set build1$,@build1$; set statpts1,readparam(9); set bstr1,readparam(bStr); set bagi1,readparam(bAgi); set bvit1,readparam(bVit); set bint1,readparam(bInt); set bdex1,readparam(bDex); set bluk1,readparam(bLuk); set build_1,1; next; mes .npc$; mes "Name: ^0000ff"+build1$+"^000000."; mes "Str: ^ff0000"+bstr1+"^000000."; mes "Agi: ^ff0000"+bagi1+"^000000."; mes "Vit: ^ff0000"+bvit1+"^000000."; mes "Int: ^ff0000"+bint1+"^000000."; mes "Dex: ^ff0000"+bdex1+"^000000."; mes "Luk: ^ff0000"+bluk1+"^000000."; mes "Build (1) - Save process complete!"; close; Lusebuild1: if(build_1 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr1 -1; statusup2 bAgi,bagi1 -1; statusup2 bVit,bvit1 -1; statusup2 bInt,bint1 -1; statusup2 bDex,bdex1 -1; statusup2 bLuk,bluk1 -1; set StatusPoint,statpts1; message strcharinfo(0),"You changed your Build to "+build1$+" Build."; close; Lb2: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild2; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (2)."; input @build2$; set build2$,@build2$; set statpts2,readparam(9); set bstr2,readparam(bStr); set bagi2,readparam(bAgi); set bvit2,readparam(bVit); set bint2,readparam(bInt); set bdex2,readparam(bDex); set bluk2,readparam(bLuk); set build_2,1; next; mes .npc$; mes "Name: ^0000ff"+build2$+"^000000."; mes "Str: ^ff0000"+bstr2+"^000000."; mes "Agi: ^ff0000"+bagi2+"^000000."; mes "Vit: ^ff0000"+bvit2+"^000000."; mes "Int: ^ff0000"+bint2+"^000000."; mes "Dex: ^ff0000"+bdex2+"^000000."; mes "Luk: ^ff0000"+bluk2+"^000000."; mes "Build (2) - Save process complete!"; close; Lusebuild2: if(build_2 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr2 -1; statusup2 bAgi,bagi2 -1; statusup2 bVit,bvit2 -1; statusup2 bInt,bint2 -1; statusup2 bDex,bdex2 -1; statusup2 bLuk,bluk2 -1; set StatusPoint,statpts2; message strcharinfo(0),"You changed your Build to "+build2$+" Build."; close; Lb3: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild3; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (3)."; input @build3$; set build3$,@build3$; set statpts3,readparam(9); set bstr3,readparam(bStr); set bagi3,readparam(bAgi); set bvit3,readparam(bVit); set bint3,readparam(bInt); set bdex3,readparam(bDex); set bluk3,readparam(bLuk); set build_3,1; next; mes .npc$; mes "Name: ^0000ff"+build3$+"^000000."; mes "Str: ^ff0000"+bstr3+"^000000."; mes "Agi: ^ff0000"+bagi3+"^000000."; mes "Vit: ^ff0000"+bvit3+"^000000."; mes "Int: ^ff0000"+bint3+"^000000."; mes "Dex: ^ff0000"+bdex3+"^000000."; mes "Luk: ^ff0000"+bluk3+"^000000."; mes "Build (3) - Save process complete!"; close; Lusebuild3: if(build_3 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr3 -1; statusup2 bAgi,bagi3 -1; statusup2 bVit,bvit3 -1; statusup2 bInt,bint3 -1; statusup2 bDex,bdex3 -1; statusup2 bLuk,bluk3 -1; set StatusPoint,statpts3; message strcharinfo(0),"You changed your Build to "+build3$+" Build."; close; Lb4: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild4; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (4)."; input @build4$; set build4$,@build4$; set statpts4,readparam(9); set bstr4,readparam(bStr); set bagi4,readparam(bAgi); set bvit4,readparam(bVit); set bint4,readparam(bInt); set bdex4,readparam(bDex); set bluk4,readparam(bLuk); set build_4,1; next; mes .npc$; mes "Name: ^0000ff"+build4$+"^000000."; mes "Str: ^ff0000"+bstr4+"^000000."; mes "Agi: ^ff0000"+bagi4+"^000000."; mes "Vit: ^ff0000"+bvit4+"^000000."; mes "Int: ^ff0000"+bint4+"^000000."; mes "Dex: ^ff0000"+bdex4+"^000000."; mes "Luk: ^ff0000"+bluk4+"^000000."; mes "Build (4) - Save process complete!"; close; Lusebuild4: if(build_4 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr4 -1; statusup2 bAgi,bagi4 -1; statusup2 bVit,bvit4 -1; statusup2 bInt,bint4 -1; statusup2 bDex,bdex4 -1; statusup2 bLuk,bluk4 -1; set StatusPoint,statpts4; message strcharinfo(0),"You changed your Build to "+build4$+" Build."; close; Lb5: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild5; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (5)."; input @build5$; set build5$,@build5$; set statpts5,readparam(9); set bstr5,readparam(bStr); set bagi5,readparam(bAgi); set bvit5,readparam(bVit); set bint5,readparam(bInt); set bdex5,readparam(bDex); set bluk5,readparam(bLuk); set build_5,1; next; mes .npc$; mes "Name: ^0000ff"+build5$+"^000000."; mes "Str: ^ff0000"+bstr5+"^000000."; mes "Agi: ^ff0000"+bagi5+"^000000."; mes "Vit: ^ff0000"+bvit5+"^000000."; mes "Int: ^ff0000"+bint5+"^000000."; mes "Dex: ^ff0000"+bdex5+"^000000."; mes "Luk: ^ff0000"+bluk5+"^000000."; mes "Build (5) - Save process complete!"; close; Lusebuild5: if(build_5 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr5 -1; statusup2 bAgi,bagi5 -1; statusup2 bVit,bvit5 -1; statusup2 bInt,bint5 -1; statusup2 bDex,bdex5 -1; statusup2 bLuk,bluk5 -1; set StatusPoint,statpts5; message strcharinfo(0),"You changed your Build to "+build5$+" Build."; close; L2: mes .npc$; if (Zeny < 9000) goto NeedZenys; mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-9000; ResetSkill; ResetStatus; close; NeedZenys: next; mes .npc$; mes "Sorry, you don't have enough Zeny."; close; LEnd: close; pltskill: mes .npc$; mes "I can give you the special skills available to your job. Would you like these skills now?"; next; menu "Yes",Lgetskills,"No",Lnogetskills; Lgetskills: if (BaseClass==Job_Novice) goto Lskillsnovice; if (BaseClass==Job_Swordman) goto Lskillsswordie; if (BaseClass==Job_Mage) goto Lskillsmage; if (BaseClass==Job_Archer) goto Lskillsarcher; if (BaseClass==Job_Acolyte) goto Lskillsaco; if (BaseClass==Job_Merchant) goto Lskillsmerchie; if (BaseClass==Job_Thief) goto Lskillsthief; goto Lother; Lskillsnovice: mes .npc$; mes "I see that you are a Novice Class. I will now add the special skills available to these jobs."; skill 142,1,0; if(BaseJob==0) skill 143,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsswordie: mes .npc$; mes "I see that you are a Swordman Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; skill 1002,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsmage: mes .npc$; mes "I see that you are a Mage Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 157,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsarcher: mes .npc$; mes "I see that you are an Archer Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 147,1,0; skill 148,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsaco: mes .npc$; mes "I see that you are an Acolyte Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 156,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsmerchie: mes .npc$; mes "I see that you are a Merchant Class.I will now add the special skills available to these jobs."; skill 142,1,0; skill 153,1,0; skill 154,1,0; if (Class==Job_Creator) { skill 243,1,0; skill 247,1,0; skill 238,1,0; skill 244,1,0; } mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsthief: mes .npc$; mes "I see that you are a Thief Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lother: mes .npc$; mes "I will now add the special skills available to your job."; skill 142,1,0; mes " "; mes "You now have all the special skills available to your job."; next; goto LskillsEND; LskillsEND: mes .npc$; mes "Have a nice day."; close; Lnogetskills: mes .npc$; mes "Aww, how come you don't want my special skills?"; mes "*sob* FINE!"; mes "Have a nice day... >.>"; close; breed: mes .npc$; mes "What would you rent?"; next; switch(select("Cart:Falcon:Peco")) { case 1: if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) { setcart; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } case 2: if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { setfalcon; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } case 3: if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) { setriding; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } } L_job_change: if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq; if(SkillPoint != 0){ mes .npc$; mes "I'm sorry, please use up all your skill points before changing jobs"; mes "Please come again soon!"; close; } if(JobLevel < 10) goto L_LvError; switch(Class){ case Job_Novice_High: case Job_Baby: case Job_Novice: skill 142,1,0; skill 143,1,0; mes .npc$; mes "Welcome, please select the job you wish to change into"; if(lastJob != 0 && Class == Job_Novice_High){ switch(lastJob){ case Job_Knight: case Job_Crusader: set @target_job, Job_Swordman_High; break; case Job_Monk: case Job_Priest: set @target_job, Job_Acolyte_High; break; case Job_Alchemist: case Job_Blacksmith: set @target_job, Job_Merchant_High; break; case Job_Rogue: case Job_Assassin: set @target_job, Job_Thief_High; break; case Job_Wizard: case Job_Sage: set @target_job, Job_Mage_High; break; case Job_Hunter: case Job_Bard: case Job_Dancer: set @target_job, Job_Archer_High; break; } } else { switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", "Super Novice","Taekwon","Gunslinger","Ninja")){ case 7: if(Class == Job_Novice_High) goto L_noReq; if($@JC_SupNovM > BaseLevel) goto L_BvError; if(Upper == 2) set @target_job, Job_Super_Baby; else set @target_job, Job_SuperNovice; break; case 8: if(Class == Job_Novice_High) goto L_noReq; if(Upper == 2) goto L_noReq; set @target_job, Job_Taekwon; break; case 9: case 10: if(Class == Job_Novice_High || Upper == 2) goto L_noReq; set @target_job, @menu + 15; break; default: set @target_job, @menu; if(Class == Job_Novice_High) set @target_job, @target_job + 4001; break; } } mes .npc$; mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes") == 2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; break; default: if(JobLevel < $@JC_MinimumJB) goto L_LvError; deletearray @job_opt, getarraysize(@job_opt); if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ if(lastJob != 0){ set @target_job, lastJob + 4001; } else { switch(Class){ case Job_Swordman_High: case Job_Baby_Swordman: case Job_Swordman: set @job_opt[0], Job_Knight; set @job_opt[1], Job_Crusader; break; case Job_Mage_High: case Job_Baby_Mage: case Job_Mage: set @job_opt[0], Job_Wizard; set @job_opt[1], Job_Sage; break; case Job_Archer_High: case Job_Baby_Archer: case Job_Archer: set @job_opt[0], Job_Hunter; if(Sex == 0) set @job_opt[1], Job_Dancer; else set @job_opt[1], Job_Bard; break; case Job_Acolyte_High: case Job_Baby_Acolyte: case Job_Acolyte: set @job_opt[0], Job_Priest; set @job_opt[1], Job_Monk; break; case Job_Merchant_High: case Job_Baby_Merchant: case Job_Merchant: set @job_opt[0], Job_Blacksmith; set @job_opt[1], Job_Alchemist; break; case Job_Thief_High: case Job_Baby_Thief: case Job_Thief: set @job_opt[0], Job_Assassin; set @job_opt[1], Job_Rogue; break; default: set @job_opt[0], Job_Star_Gladiator; set @job_opt[1], Job_Soul_Linker; break; } mes .npc$; mes "Welcome, please select the job you wish to change into"; set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; } mes .npc$; mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; } if(checkfalcon() || checkcart() || checkriding()) goto L_remove; if((Class >=Job_Knight) && (Class <=Job_Crusader2)){ mes .npc$; mes "Do you want to reborn?"; if(select("Yes","No")==1){ if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; set lastJob, Class; if(Class == Job_Knight2){ set lastJob, Job_Knight; } else { if(Class == Job_Crusader2){ set lastJob, Job_Crusader; } } jobchange Job_Novice_High; resetlvl(1); skill 142,1,0; skill 143,1,0; } close; } } mes .npc$; mes "I'm sorry, there are no further classes for your job."; close; L_GivePlat: if (BaseClass==Job_SuperNovice) goto L_sSuperN; if (BaseClass==Job_Swordman) goto L_sSword; if (BaseClass==Job_Mage) goto L_sMage; if (BaseClass==Job_Archer) goto L_sArcher; if (BaseClass==Job_Acolyte) goto L_sAcolyte; if (BaseClass==Job_Merchant) goto L_sMerchant; if (BaseClass==Job_Thief) goto L_sThief; close; L_sSuperN: skill 142,1,0; close; L_sSword: skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; close; L_sMage: skill 142,1,0; skill 157,1,0; close; L_sArcher: skill 142,1,0; skill 147,1,0; skill 148,1,0; close; L_sAcolyte: skill 142,1,0; skill 156,1,0; close; L_sMerchant: skill 142,1,0; skill 153,1,0; skill 154,1,0; skill 155,1,0; close; L_sThief: skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; close; L_cantCh: mes .npc$; mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_LvError: mes .npc$; mes "I'm sorry, you do not seem to have enough Job Levels"; mes "Please come again soon!"; close; L_BvError: mes .npc$; mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; L_noReq: mes .npc$; mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_remove: mes .npc$; mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; close; OnInit: // Variable Setup set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40) set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) end; OnPCLoginEvent: if (Class==Job_Creator) { skill 243,1,0; skill 247,1,0; } }
  4. Zac

    Creating a ladder

    Yes, because I'm using it for an arena that means it doesn't need certain cell x y. by the way thanks, now I'm testing it and going to release it soon.
  5. Pleasure. Yes, it has Baby Jobs there, hope it'll helps.
  6. Pleasure, I added Skill Reset, and Platinum Skills into the NPC. prontera,153,182,6[TAB]script[TAB]Class Master[TAB]808,{ set .npc$,"^ff0000[Class Master]^000000"; mes .npc$; mes "What can I help you?"; next; menu "Change Job",L_job_change,"Breeder Service",breed,"Reset Skills",L_rskill,"Platinum Skills",pltskill,"Cancel",-; close; L_rskill: mes .npc$; mes "I am the Ability Reseter."; mes "Reset Stats: 5,000z"; mes "Reset Skills: 5,000z"; mes "Reset Both: 9,000z"; mes "Please select the service you want:"; next; menu "^FF3355Reset Skills",L0,"Reset Stats",L1,"Reset Both^000000",L2,"Quit",LEnd; L0: mes .npc$; if (Zeny < 5000) goto NeedZenys; mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-5000; ResetSkill; close; L1: next; mes .npc$; mes "What do you want to do?"; menu "^FF3355Reset Stats^000000",-,"^0000FFBuilds^000000",Lbuilds; next; mes .npc$; if (Zeny < 5000) goto NeedZenys; mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-5000; ResetStatus; close; Lbuilds: if(Class == Job_Taekwon) { goto menubuild; } if(Class == Job_Soul_Linker) { goto menubuild; } if(Class == Job_Gunslinger) { goto menubuild; } if(Class == Job_Star_Gladiator) { goto menubuild; } if(Class == Job_Ninja) { goto menubuild; } if(Upper != 1) { next; mes .npc$; mes "You still can't use this feature."; close; } menubuild: if(BaseLevel != 255) { next; mes .npc$; mes "You still can't use this feature."; close; } if(build1$=="") { set build1$,"Build (1/5)"; } if(build2$=="") { set build2$,"Build (2/5)"; } if(build3$=="") { set build3$,"Build (3/5)"; } if(build4$=="") { set build4$,"Build (4/5)"; } if(build5$=="") { set build5$,"Build (5/5)"; } next; mes .npc$; mes "Builds CP"; menu build1$,Lb1, build2$,Lb2, build3$,Lb3, build4$,Lb4, build5$,Lb5; Lb1: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild1; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (1)."; input @build1$; set build1$,@build1$; set statpts1,readparam(9); set bstr1,readparam(bStr); set bagi1,readparam(bAgi); set bvit1,readparam(bVit); set bint1,readparam(bInt); set bdex1,readparam(bDex); set bluk1,readparam(bLuk); set build_1,1; next; mes .npc$; mes "Name: ^0000ff"+build1$+"^000000."; mes "Str: ^ff0000"+bstr1+"^000000."; mes "Agi: ^ff0000"+bagi1+"^000000."; mes "Vit: ^ff0000"+bvit1+"^000000."; mes "Int: ^ff0000"+bint1+"^000000."; mes "Dex: ^ff0000"+bdex1+"^000000."; mes "Luk: ^ff0000"+bluk1+"^000000."; mes "Build (1) - Save process complete!"; close; Lusebuild1: if(build_1 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr1 -1; statusup2 bAgi,bagi1 -1; statusup2 bVit,bvit1 -1; statusup2 bInt,bint1 -1; statusup2 bDex,bdex1 -1; statusup2 bLuk,bluk1 -1; set StatusPoint,statpts1; message strcharinfo(0),"You changed your Build to "+build1$+" Build."; close; Lb2: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild2; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (2)."; input @build2$; set build2$,@build2$; set statpts2,readparam(9); set bstr2,readparam(bStr); set bagi2,readparam(bAgi); set bvit2,readparam(bVit); set bint2,readparam(bInt); set bdex2,readparam(bDex); set bluk2,readparam(bLuk); set build_2,1; next; mes .npc$; mes "Name: ^0000ff"+build2$+"^000000."; mes "Str: ^ff0000"+bstr2+"^000000."; mes "Agi: ^ff0000"+bagi2+"^000000."; mes "Vit: ^ff0000"+bvit2+"^000000."; mes "Int: ^ff0000"+bint2+"^000000."; mes "Dex: ^ff0000"+bdex2+"^000000."; mes "Luk: ^ff0000"+bluk2+"^000000."; mes "Build (2) - Save process complete!"; close; Lusebuild2: if(build_2 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr2 -1; statusup2 bAgi,bagi2 -1; statusup2 bVit,bvit2 -1; statusup2 bInt,bint2 -1; statusup2 bDex,bdex2 -1; statusup2 bLuk,bluk2 -1; set StatusPoint,statpts2; message strcharinfo(0),"You changed your Build to "+build2$+" Build."; close; Lb3: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild3; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (3)."; input @build3$; set build3$,@build3$; set statpts3,readparam(9); set bstr3,readparam(bStr); set bagi3,readparam(bAgi); set bvit3,readparam(bVit); set bint3,readparam(bInt); set bdex3,readparam(bDex); set bluk3,readparam(bLuk); set build_3,1; next; mes .npc$; mes "Name: ^0000ff"+build3$+"^000000."; mes "Str: ^ff0000"+bstr3+"^000000."; mes "Agi: ^ff0000"+bagi3+"^000000."; mes "Vit: ^ff0000"+bvit3+"^000000."; mes "Int: ^ff0000"+bint3+"^000000."; mes "Dex: ^ff0000"+bdex3+"^000000."; mes "Luk: ^ff0000"+bluk3+"^000000."; mes "Build (3) - Save process complete!"; close; Lusebuild3: if(build_3 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr3 -1; statusup2 bAgi,bagi3 -1; statusup2 bVit,bvit3 -1; statusup2 bInt,bint3 -1; statusup2 bDex,bdex3 -1; statusup2 bLuk,bluk3 -1; set StatusPoint,statpts3; message strcharinfo(0),"You changed your Build to "+build3$+" Build."; close; Lb4: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild4; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (4)."; input @build4$; set build4$,@build4$; set statpts4,readparam(9); set bstr4,readparam(bStr); set bagi4,readparam(bAgi); set bvit4,readparam(bVit); set bint4,readparam(bInt); set bdex4,readparam(bDex); set bluk4,readparam(bLuk); set build_4,1; next; mes .npc$; mes "Name: ^0000ff"+build4$+"^000000."; mes "Str: ^ff0000"+bstr4+"^000000."; mes "Agi: ^ff0000"+bagi4+"^000000."; mes "Vit: ^ff0000"+bvit4+"^000000."; mes "Int: ^ff0000"+bint4+"^000000."; mes "Dex: ^ff0000"+bdex4+"^000000."; mes "Luk: ^ff0000"+bluk4+"^000000."; mes "Build (4) - Save process complete!"; close; Lusebuild4: if(build_4 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr4 -1; statusup2 bAgi,bagi4 -1; statusup2 bVit,bvit4 -1; statusup2 bInt,bint4 -1; statusup2 bDex,bdex4 -1; statusup2 bLuk,bluk4 -1; set StatusPoint,statpts4; message strcharinfo(0),"You changed your Build to "+build4$+" Build."; close; Lb5: next; mes .npc$; mes "Save Build (50k) || Use Build (5k)"; menu "Save Build",-,"Use this Build",Lusebuild5; if (Zeny < 50000) goto NeedZenys; set Zeny,zeny-50000; if(readparam(bStr) > 255) { close; } //Prevent Haxed stats if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats if(readparam(bVit) > 255) { close; } //Prevent Haxed stats if(readparam(bInt) > 255) { close; } //Prevent Haxed stats if(readparam(bDex) > 255) { close; } //Prevent Haxed stats if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats mes "Please - Name Your Build (5)."; input @build5$; set build5$,@build5$; set statpts5,readparam(9); set bstr5,readparam(bStr); set bagi5,readparam(bAgi); set bvit5,readparam(bVit); set bint5,readparam(bInt); set bdex5,readparam(bDex); set bluk5,readparam(bLuk); set build_5,1; next; mes .npc$; mes "Name: ^0000ff"+build5$+"^000000."; mes "Str: ^ff0000"+bstr5+"^000000."; mes "Agi: ^ff0000"+bagi5+"^000000."; mes "Vit: ^ff0000"+bvit5+"^000000."; mes "Int: ^ff0000"+bint5+"^000000."; mes "Dex: ^ff0000"+bdex5+"^000000."; mes "Luk: ^ff0000"+bluk5+"^000000."; mes "Build (5) - Save process complete!"; close; Lusebuild5: if(build_5 != 1) { next; mes .npc$; mes "You haven't save any build here."; close; } if (Zeny < 5000) goto NeedZenys; set Zeny,zeny-5000; ResetStatus; sleep2 10; statusup2 bStr,bstr5 -1; statusup2 bAgi,bagi5 -1; statusup2 bVit,bvit5 -1; statusup2 bInt,bint5 -1; statusup2 bDex,bdex5 -1; statusup2 bLuk,bluk5 -1; set StatusPoint,statpts5; message strcharinfo(0),"You changed your Build to "+build5$+" Build."; close; L2: mes .npc$; if (Zeny < 9000) goto NeedZenys; mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-9000; ResetSkill; ResetStatus; close; NeedZenys: next; mes .npc$; mes "Sorry, you don't have enough Zeny."; close; LEnd: close; pltskill: mes .npc$; mes "I can give you the special skills available to your job. Would you like these skills now?"; next; menu "Yes",Lgetskills,"No",Lnogetskills; Lgetskills: if (BaseClass==Job_Novice) goto Lskillsnovice; if (BaseClass==Job_Swordman) goto Lskillsswordie; if (BaseClass==Job_Mage) goto Lskillsmage; if (BaseClass==Job_Archer) goto Lskillsarcher; if (BaseClass==Job_Acolyte) goto Lskillsaco; if (BaseClass==Job_Merchant) goto Lskillsmerchie; if (BaseClass==Job_Thief) goto Lskillsthief; goto Lother; Lskillsnovice: mes .npc$; mes "I see that you are a Novice Class. I will now add the special skills available to these jobs."; skill 142,1,0; if(BaseJob==0) skill 143,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsswordie: mes .npc$; mes "I see that you are a Swordman Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; skill 1002,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsmage: mes .npc$; mes "I see that you are a Mage Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 157,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsarcher: mes .npc$; mes "I see that you are an Archer Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 147,1,0; skill 148,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsaco: mes .npc$; mes "I see that you are an Acolyte Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 156,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsmerchie: mes .npc$; mes "I see that you are a Merchant Class.I will now add the special skills available to these jobs."; skill 142,1,0; skill 153,1,0; skill 154,1,0; if (Class==Job_Creator) { skill 243,1,0; skill 247,1,0; skill 238,1,0; skill 244,1,0; } mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lskillsthief: mes .npc$; mes "I see that you are a Thief Class. I will now add the special skills available to these jobs."; skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; mes " "; mes "You now have all the special skills available to the these jobs."; next; goto LskillsEND; Lother: mes .npc$; mes "I will now add the special skills available to your job."; skill 142,1,0; mes " "; mes "You now have all the special skills available to your job."; next; goto LskillsEND; LskillsEND: mes .npc$; mes "Have a nice day."; close; Lnogetskills: mes .npc$; mes "Aww, how come you don't want my special skills?"; mes "*sob* FINE!"; mes "Have a nice day... >.>"; close; OnPCLoginEvent: if (Class==Job_Creator) { skill 243,1,0; skill 247,1,0; } breed: mes .npc$; mes "What would you rent?"; next; switch(select("Cart:Falcon:Peco")) { case 1: if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) { setcart; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } case 2: if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { setfalcon; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } case 3: if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) { setriding; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } } L_job_change: if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq; if(SkillPoint != 0){ mes .npc$; mes "I'm sorry, please use up all your skill points before changing jobs"; mes "Please come again soon!"; close; } if(JobLevel < 10) goto L_LvError; switch(Class){ case Job_Novice_High: case Job_Baby: case Job_Novice: skill 142,1,0; skill 143,1,0; mes .npc$; mes "Welcome, please select the job you wish to change into"; if(lastJob != 0 && Class == Job_Novice_High){ switch(lastJob){ case Job_Knight: case Job_Crusader: set @target_job, Job_Swordman_High; break; case Job_Monk: case Job_Priest: set @target_job, Job_Acolyte_High; break; case Job_Alchemist: case Job_Blacksmith: set @target_job, Job_Merchant_High; break; case Job_Rogue: case Job_Assassin: set @target_job, Job_Thief_High; break; case Job_Wizard: case Job_Sage: set @target_job, Job_Mage_High; break; case Job_Hunter: case Job_Bard: case Job_Dancer: set @target_job, Job_Archer_High; break; } } else { switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", "Super Novice","Taekwon","Gunslinger","Ninja")){ case 7: if(Class == Job_Novice_High) goto L_noReq; if($@JC_SupNovM > BaseLevel) goto L_BvError; if(Upper == 2) set @target_job, Job_Super_Baby; else set @target_job, Job_SuperNovice; break; case 8: if(Class == Job_Novice_High) goto L_noReq; if(Upper == 2) goto L_noReq; set @target_job, Job_Taekwon; break; case 9: case 10: if(Class == Job_Novice_High || Upper == 2) goto L_noReq; set @target_job, @menu + 15; break; default: set @target_job, @menu; if(Class == Job_Novice_High) set @target_job, @target_job + 4001; break; } } mes .npc$; mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes") == 2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; break; default: if(JobLevel < $@JC_MinimumJB) goto L_LvError; deletearray @job_opt, getarraysize(@job_opt); if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ if(lastJob != 0){ set @target_job, lastJob + 4001; } else { switch(Class){ case Job_Swordman_High: case Job_Baby_Swordman: case Job_Swordman: set @job_opt[0], Job_Knight; set @job_opt[1], Job_Crusader; break; case Job_Mage_High: case Job_Baby_Mage: case Job_Mage: set @job_opt[0], Job_Wizard; set @job_opt[1], Job_Sage; break; case Job_Archer_High: case Job_Baby_Archer: case Job_Archer: set @job_opt[0], Job_Hunter; if(Sex == 0) set @job_opt[1], Job_Dancer; else set @job_opt[1], Job_Bard; break; case Job_Acolyte_High: case Job_Baby_Acolyte: case Job_Acolyte: set @job_opt[0], Job_Priest; set @job_opt[1], Job_Monk; break; case Job_Merchant_High: case Job_Baby_Merchant: case Job_Merchant: set @job_opt[0], Job_Blacksmith; set @job_opt[1], Job_Alchemist; break; case Job_Thief_High: case Job_Baby_Thief: case Job_Thief: set @job_opt[0], Job_Assassin; set @job_opt[1], Job_Rogue; break; default: set @job_opt[0], Job_Star_Gladiator; set @job_opt[1], Job_Soul_Linker; break; } mes .npc$; mes "Welcome, please select the job you wish to change into"; set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; } mes .npc$; mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; } if(checkfalcon() || checkcart() || checkriding()) goto L_remove; if((Class >=Job_Knight) && (Class <=Job_Crusader2)){ mes .npc$; mes "Do you want to reborn?"; if(select("Yes","No")==1){ if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; set lastJob, Class; if(Class == Job_Knight2){ set lastJob, Job_Knight; } else { if(Class == Job_Crusader2){ set lastJob, Job_Crusader; } } jobchange Job_Novice_High; resetlvl(1); skill 142,1,0; skill 143,1,0; } close; } } mes .npc$; mes "I'm sorry, there are no further classes for your job."; close; L_GivePlat: if (BaseClass==Job_SuperNovice) goto L_sSuperN; if (BaseClass==Job_Swordman) goto L_sSword; if (BaseClass==Job_Mage) goto L_sMage; if (BaseClass==Job_Archer) goto L_sArcher; if (BaseClass==Job_Acolyte) goto L_sAcolyte; if (BaseClass==Job_Merchant) goto L_sMerchant; if (BaseClass==Job_Thief) goto L_sThief; close; L_sSuperN: skill 142,1,0; close; L_sSword: skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; close; L_sMage: skill 142,1,0; skill 157,1,0; close; L_sArcher: skill 142,1,0; skill 147,1,0; skill 148,1,0; close; L_sAcolyte: skill 142,1,0; skill 156,1,0; close; L_sMerchant: skill 142,1,0; skill 153,1,0; skill 154,1,0; skill 155,1,0; close; L_sThief: skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; close; L_cantCh: mes .npc$; mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_LvError: mes .npc$; mes "I'm sorry, you do not seem to have enough Job Levels"; mes "Please come again soon!"; close; L_BvError: mes .npc$; mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; L_noReq: mes .npc$; mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_remove: mes .npc$; mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; close; OnInit: // Variable Setup set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40) set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) end; }
  7. You are in the wrong section, you should post it in the Database Support. Open /conf/battle/player.conf And find this line: // Max weight carts can hold. max_cart_weight: 8000 Edit 8000 into your desired max weight.
  8. Zac

    Creating a ladder

    Well, I'd like to share it soon whenever I finished it e_e. Don't worry I'm not greedy.
  9. Zac

    Creating a ladder

    Yea It was the blabla version of the script ._. Alright, I think that will solve everything, thanks Arcenciel & Crish
  10. Zac

    Creating a ladder

    Arcenciel. Damn, I need 1 minute to understand your helpful words without commas. So its like. When the quest started. set #a,1; When the quest is running. OnPCKillEvent: if (#gladmember==1){ if (getmapxy("rwc01",0,0,0,strcharinfo(0)) { set #killpoint,#killpoint+1; dispbottom "You has killed another gladiator! your kill point is "+#killpoint+"."; } if (getmapxy("rwc02",0,0,0,strcharinfo(0)) { set #killpoint,#killpoint+1; dispbottom "You has killed another gladiator! your kill point is "+#killpoint+"."; } if (getmapxy("rwc03",0,0,0,strcharinfo(0)) { set #killpoint,#killpoint+1; dispbottom "You has killed another gladiator! your kill point is "+#killpoint+"."; } end; } Chris. Do you mean like this one? if yes, indeed its a lot easier, thanks.
  11. I'm sorry for the late reply, I was busy with my server. There's nothing wrong with the script you uploaded into mediafire, why you didnt use that script and using a normal breeder, then merge it into one NPC? Try this one I modified the original script with adding breeder into it. //===== eAthena Script ======================================= //= eAthena Jobchanger AKA Job Master //===== By: ================================================== //= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance] //===== Current Version: ===================================== //= 1.6 //===== Compatible With: ===================================== //= eAthena SVN Trunk 6674 //===== Description: ========================================= //= Changes your job without asking too much //= For other info, please contact me at [email protected] //= Editted menu to avoid button mashing. //= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus] //= script leaves grabage variable: 'lastJob' //= 1.4 Added NJ/GS, changed all job numbers to Job_* constants. //= All credits go to pxxx [skotlex] //= 1.5 Rewrite everything from scratch. [Lance] //= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] //= 1.6 added breeder [Zac] //============================================================ prontera,152,193,6[TAB]script[TAB]Class Master[TAB]808,{ set .npc$,"^ff0000[Class Master]^000000"; mes .npc$; mes "What can I help you?"; next; menu "Change Job",L_job_change,"Breeder Service",breed,"Cancel",-; close; breed: mes .npc$; mes "What would you rent?"; next; switch(select("Cart:Falcon:Peco")) { case 1: if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) { setcart; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } case 2: if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { setfalcon; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } case 3: if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) { setriding; close; }else{ mes .npc$; mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; close; } } L_job_change: if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq; if(SkillPoint != 0){ mes .npc$; mes "I'm sorry, please use up all your skill points before changing jobs"; mes "Please come again soon!"; close; } if(JobLevel < 10) goto L_LvError; switch(Class){ case Job_Novice_High: case Job_Baby: case Job_Novice: skill 142,1,0; skill 143,1,0; mes .npc$; mes "Welcome, please select the job you wish to change into"; if(lastJob != 0 && Class == Job_Novice_High){ switch(lastJob){ case Job_Knight: case Job_Crusader: set @target_job, Job_Swordman_High; break; case Job_Monk: case Job_Priest: set @target_job, Job_Acolyte_High; break; case Job_Alchemist: case Job_Blacksmith: set @target_job, Job_Merchant_High; break; case Job_Rogue: case Job_Assassin: set @target_job, Job_Thief_High; break; case Job_Wizard: case Job_Sage: set @target_job, Job_Mage_High; break; case Job_Hunter: case Job_Bard: case Job_Dancer: set @target_job, Job_Archer_High; break; } } else { switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", "Super Novice","Taekwon","Gunslinger","Ninja")){ case 7: if(Class == Job_Novice_High) goto L_noReq; if($@JC_SupNovM > BaseLevel) goto L_BvError; if(Upper == 2) set @target_job, Job_Super_Baby; else set @target_job, Job_SuperNovice; break; case 8: if(Class == Job_Novice_High) goto L_noReq; if(Upper == 2) goto L_noReq; set @target_job, Job_Taekwon; break; case 9: case 10: if(Class == Job_Novice_High || Upper == 2) goto L_noReq; set @target_job, @menu + 15; break; default: set @target_job, @menu; if(Class == Job_Novice_High) set @target_job, @target_job + 4001; break; } } mes .npc$; mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes") == 2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; break; default: if(JobLevel < $@JC_MinimumJB) goto L_LvError; deletearray @job_opt, getarraysize(@job_opt); if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ if(lastJob != 0){ set @target_job, lastJob + 4001; } else { switch(Class){ case Job_Swordman_High: case Job_Baby_Swordman: case Job_Swordman: set @job_opt[0], Job_Knight; set @job_opt[1], Job_Crusader; break; case Job_Mage_High: case Job_Baby_Mage: case Job_Mage: set @job_opt[0], Job_Wizard; set @job_opt[1], Job_Sage; break; case Job_Archer_High: case Job_Baby_Archer: case Job_Archer: set @job_opt[0], Job_Hunter; if(Sex == 0) set @job_opt[1], Job_Dancer; else set @job_opt[1], Job_Bard; break; case Job_Acolyte_High: case Job_Baby_Acolyte: case Job_Acolyte: set @job_opt[0], Job_Priest; set @job_opt[1], Job_Monk; break; case Job_Merchant_High: case Job_Baby_Merchant: case Job_Merchant: set @job_opt[0], Job_Blacksmith; set @job_opt[1], Job_Alchemist; break; case Job_Thief_High: case Job_Baby_Thief: case Job_Thief: set @job_opt[0], Job_Assassin; set @job_opt[1], Job_Rogue; break; default: set @job_opt[0], Job_Star_Gladiator; set @job_opt[1], Job_Soul_Linker; break; } mes .npc$; mes "Welcome, please select the job you wish to change into"; set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; } mes .npc$; mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; } if(checkfalcon() || checkcart() || checkriding()) goto L_remove; if((Class >=Job_Knight) && (Class <=Job_Crusader2)){ mes .npc$; mes "Do you want to reborn?"; if(select("Yes","No")==1){ if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; set lastJob, Class; if(Class == Job_Knight2){ set lastJob, Job_Knight; } else { if(Class == Job_Crusader2){ set lastJob, Job_Crusader; } } jobchange Job_Novice_High; resetlvl(1); skill 142,1,0; skill 143,1,0; } close; } } mes .npc$; mes "I'm sorry, there are no further classes for your job."; close; L_GivePlat: if (BaseClass==Job_SuperNovice) goto L_sSuperN; if (BaseClass==Job_Swordman) goto L_sSword; if (BaseClass==Job_Mage) goto L_sMage; if (BaseClass==Job_Archer) goto L_sArcher; if (BaseClass==Job_Acolyte) goto L_sAcolyte; if (BaseClass==Job_Merchant) goto L_sMerchant; if (BaseClass==Job_Thief) goto L_sThief; close; L_sSuperN: skill 142,1,0; close; L_sSword: skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; close; L_sMage: skill 142,1,0; skill 157,1,0; close; L_sArcher: skill 142,1,0; skill 147,1,0; skill 148,1,0; close; L_sAcolyte: skill 142,1,0; skill 156,1,0; close; L_sMerchant: skill 142,1,0; skill 153,1,0; skill 154,1,0; skill 155,1,0; close; L_sThief: skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; close; L_cantCh: mes .npc$; mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_LvError: mes .npc$; mes "I'm sorry, you do not seem to have enough Job Levels"; mes "Please come again soon!"; close; L_BvError: mes .npc$; mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; L_noReq: mes .npc$; mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_remove: mes .npc$; mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; close; OnInit: // Variable Setup set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40) set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) end; }
  12. Zac

    Creating a ladder

    Thanks again Arcenciel. By the way, how about the OnPCKillEvent?
  13. Zac

    Martin?

    1. Show previous comments  5 more
    2. Zac

      Zac

      Yea finally you remember a thing hoho, I was starting to script things and found eA moved here, by the way can I have your MSN?

    3. Sneaky

      Sneaky

      Sure, [email protected], we're actually working in a RO project right now, it would be nice if I could see some of your skills so we can work something out, if not, well...it's alright, feel free to ask for anything.

    4. Zac

      Zac

      Yo, I already have a char in Holywood, party pls :<

  14. Hello, I need to create a ladder of my own community-ish gameplay. The game is where peoples will earn Kill Points each time he/she killed another players inside an arena. What I want to ask for help is, how to create a ladder of Kill Points? do it needs an SQL related script? and for OnPCKillEvent, can I make it just active in a map? Whoever who would love to help, you're free to make an example of script part. Regards ~ ♥
  15. Spreading the milk~ I wonder, is there anyone writed scripts of the new episodes 14.2? e_e I've been looking for it like 3 days.
  16. Can you "CodeBox" the script? Maybe I could help.
  17. Still wont work I modified the script. mid_camp,202,293,3 script Zei 81,{ set .npcname$,"[^FF0000 Zei ^000000]"; set .@party_id,getcharid(1); if (undunquest==0){ mes .npcname$; mes "This light... leads your destiny into a darkness place.."; next; mes .npcname$; mes "None tried to go inside, even they said there's a dungeon there.."; close; } mes .npcname$; mes "This light... leads your destiny into a darkness place.."; next; mes .npcname$; mes "None tried to go inside, even they said there's a dungeon there.."; next; switch (select("Stare The Light:Walk Away")){ case 1: if (un_dun_quest==0){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "It would be better to go back to camp and inform the others and ask for help."; set un_dun_quest,1; close; } if (un_dun_quest==1){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "A Strange feeling come from deep inside the heart, a dark sense filling arround the camp."; set un_dun_quest,2; close; } if (un_dun_quest==2){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "Your heart starting to tell, you should go inside."; set un_dun_quest,3; close; } if (un_dun_quest==3){ getpartymember(.@party_id); set .@leader,getpartyleader(.@party,2); set .@partymembercount,$@partymembercount; copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount; mes .npcname$; mes "I can hear... that guardians is calling you, the hunters..."; next; mes .npcname$; mes "Do you want to go inside?"; switch (select("Go Inside:Walk Away")){ case 1: if ((.@party > 0) && ((.@partymembercount > 7))){ mes .npcname$; mes "I don't think to allow you go alone, you need at least 7 members to go."; close; } if (getmapusers("job_thief1")>7){ mes .npcname$; mes "There's another chosen humans inside, I won't allow you to go."; close; } if (.@leader==0){ mes .npcname$; mes "I just need to talk to the leader."; close; } else { mes .npcname$; mes "I've recorded your request, are you ready to go inside?"; next; mes .npcname$; mes "Tell me when you're ready"; set un_dun_quest,4; close; } case 2: close; } } if (un_dun_quest==4){ mes .npcname$; mes "Are you ready to go Inside?"; next; switch (select("Ready:Not Yet")){ case 1: donpcevent "mobspawn::OnStart"; donpcevent "mobspawn2::OnStart"; donpcevent "mob_spawn_boss::OnStart"; donpcevent "unhallowed_stone::OnStart"; donpcevent "unhallowed_done::OnStart"; mes .npcname$; mes "Please take your time, don't be rush... they're strong"; next; warpparty "job_thief1",180,19,.@party_id; close; end; } } case 2: close; } } job_thief1,0,0,0 script mobspawn -1,{ OnStart: donpcevent "mobspawn::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: //= Mob Spawns monster "job_thief1",0,0,"Cornus",1992,200,"mobspawn::OnMobDead1"; monster "job_thief1",0,0,"Naga",1993,550,"mobspawn::OnMobDead1"; monster "job_thief1",0,0,"Luciola",1993,550,"mobspawn::OnMobDead1"; announce "Unhallowed Deceivers: Protect the Unhallowed Stone. Get rid of the intruders.",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mobspawn::OnMobDead1"; disablenpc "mobspawn"; end; OnMobDead1: set .@mob_dead_num,mobcount ("job_thief1","mobspawn::OnMobDead1"); if (.@mob_dead_num < 800) { announce "All of Unhallowed Deceivers has surrender!",bc_map,"0x00ff99"; donpcevent "mobspawn2::OnEnable"; donpcevent "mobspawn1::OnDisable"; } end; } job_thief1,0,0,0 script mobspawn2 -1,{ OnStart: donpcevent "mobspawn2::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: //= Mob Spawns monster "job_thief1",0,0,"Deceiver I",1918,30,"mobspawn2::OnMobDead2"; monster "job_thief1",0,0,"Deceiver II",1919,30,"mobspawn2::OnMobDead2"; monster "job_thief1",0,0,"Deceiver III",1920,30,"mobspawn2::OnMobDead2"; announce "Unhallowed Deceivers : Protect the Unhallowed Stone. Get rid of the intruders.",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mobspawn2::OnMobDead2"; disablenpc "mobspawn2"; end; OnMobDead2: set .@mob_dead_num,mobcount ("job_thief1","mobspawn2::OnMobDead2"); if (.@mob_dead_num < 40) { announce "All of Unhallowed Deceivers has surrender!",bc_map,"0x00ff99"; donpcevent "mob_spawn_boss::OnEnable"; donpcevent "mobspawn2::OnDisable"; warpparty "job_thief1",182,233,.@party_id; } end; } job_thief1,0,0,0 script mob_spawn_boss -1,{ OnStart: donpcevent "mob_spawn_boss::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: announce "????: How dare you....",bc_map,"0x00ff99"; sleep 1000; announce "????: I won't let humans... Touch... My Lord....",bc_map,"0x00ff99"; sleep 2000; //= Mob Spawns monster "job_thief1",182,242,"Lost Dragon",2131,1,"mob_spawn_boss::OnMobBossDead"; announce "Lost Dragon: You fool! you can't take me down!",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mob_spawn_boss::OnMobBossDead"; disablenpc "mob_spawn_boss"; end; OnMobBossDead: set .@mob_dead_num,mobcount ("job_thief1","mob_spawn_boss::OnMobBossDead"); if (.@mob_dead_num < 1) { announce "Lost Dragon: What a power.... You will regret, facing my lord....",bc_map,"0x00ff99"; sleep 2000; announce "The Lost Dragon has been defeated!",bc_map,"0x00ff99"; sleep 2000; announce "Walk straight to north! and you will find a huge stone! Touch it!",bc_map,"0x00ff99"; donpcevent "unhallowed_stone::OnEnable"; donpcevent "mob_spawn_boss::OnDisable"; } end; } job_thief1,180,288,0 script unhallowed_stone -1,{ OnStart: donpcevent "unhallowed_stone::OnTouch"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnTouch: announce "????:............ What are you humans....",bc_map|bc_blue; sleep 2000; announce "????:... Let's make it quick... Taste the pains...",bc_map|bc_blue; sleep 1000; enablenpc "unhallowed_stone::OnEnable"; end; OnEnable: monster "job_thief1",180,288,"Nidhoggr's Shadow",2022,1,"unhallowed_stone::OnBossDead"; announce "Nidhoggr's Shadow: Die you humans! How dare you to come here!",bc_map|bc_blue; sleep 50000; announce "Nidhoggr's Shadow: You Cant kill me! you low race!",bc_map|bc_blue; sleep 50000; announce "Nidhoggr's Shadow: Give me all you've got!",bc_map|bc_blue; OnDisable: killmonster "job_thief1","unhallowed_stone::OnBossDead"; disablenpc "unhallowed_stone"; end; OnBossDead: set .@mob_dead_num,mobcount ("job_thief1","unhallowed_stone::OnBossDead"); if (.@mob_dead_num < 1) { announce "Nidhoggr's Shadow: YOU WILL TASTE REVENGE!",bc_map,"0x00ff99"; sleep 2000; announce "Nidhoggr's Shadow has been defeated!",bc_map,"0x00ff99"; sleep 2000; announce "You has finished Unhallowed Dungeon Quest!",bc_map,"0x00ff99"; sleep 2000; donpcevent "unhallowed_done::OnEnable"; donpcevent "unhallowed_stone::OnDisable"; } end; } job_thief1,0,0,0 script unhallowed_done -1,{ OnEnable: warpparty job_star,99,27,.@party_id; end; }
  18. Still nothing changed, the mob won't spawn, the OnEnable won't run exactly the whole scripts on job_thief1 won't run. '-' mid_camp,202,293,3 script Zei 81,{ set .npcname$,"[^FF0000 Zei ^000000]"; set .@party_id,getcharid(1); if (undunquest==0){ mes .npcname$; mes "This light... leads your destiny into a darkness place.."; next; mes .npcname$; mes "None tried to go inside, even they said there's a dungeon there.."; close; } mes .npcname$; mes "This light... leads your destiny into a darkness place.."; next; mes .npcname$; mes "None tried to go inside, even they said there's a dungeon there.."; next; switch (select("Stare The Light:Walk Away")){ case 1: if (un_dun_quest==0){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "It would be better to go back to camp and inform the others and ask for help."; set un_dun_quest,1; close; } if (un_dun_quest==1){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "A Strange feeling come from deep inside the heart, a dark sense filling arround the camp."; set un_dun_quest,2; close; } if (un_dun_quest==2){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "Your heart starting to tell, you should go inside."; set un_dun_quest,3; close; } if (un_dun_quest==3){ getpartymember(.@party_id); set .@leader,getpartyleader(.@party,2); set .@partymembercount,$@partymembercount; copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount; mes .npcname$; mes "I can hear... that guardians is calling you, the hunters..."; next; mes .npcname$; mes "Do you want to go inside?"; switch (select("Go Inside:Walk Away")){ case 1: if ((.@party > 0) && ((.@partymembercount > 7))){ mes .npcname$; mes "I don't think to allow you go alone, you need at least 7 members to go."; close; } if (getmapusers("job_thief1")>7){ mes .npcname$; mes "There's another chosen humans inside, I won't allow you to go."; close; } if (.@leader==0){ mes .npcname$; mes "I just need to talk to the leader."; close; } else { mes .npcname$; mes "I've recorded your request, are you ready to go inside?"; next; mes .npcname$; mes "Tell me when you're ready"; set un_dun_quest,4; close; } case 2: close; } } if (un_dun_quest==4){ mes .npcname$; mes "Are you ready to go Inside?"; next; switch (select("Ready:Not Yet")){ case 1: donpcevent "mobspawn::OnStart"; donpcevent "mobspawn2::OnStart"; donpcevent "mob_spawn_boss::OnStart"; donpcevent "unhallowed_stone::OnStart"; donpcevent "unhallowed_done::OnStart"; mes .npcname$; mes "Please take your time, don't be rush... they're strong"; next; warpparty "job_thief1",180,19,.@party_id; close; end; } } case 2: close; } } job_thief1,0,0,0 script mobspawn -1,{ OnStart: enablenpc "mobspawn::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end;OnEnable: //= Mob Spawns monster "job_thief1",0,0,"Cornus",1992,200,"mobspawn::OnMobDead1"; monster "job_thief1",0,0,"Naga",1993,550,"mobspawn::OnMobDead1"; monster "job_thief1",0,0,"Luciola",1993,550,"mobspawn::OnMobDead1"; announce "Unhallowed Deceivers: Protect the Unhallowed Stone. Get rid of the intruders.",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mobspawn::OnMobDead1"; disablenpc "mobspawn"; end; OnMobDead1: set .@mob_dead_num,mobcount ("job_thief1","mobspawn::OnMobDead1"); if (.@mob_dead_num < 800) { announce "All of Unhallowed Deceivers has surrender!",bc_map,"0x00ff99"; donpcevent "mobspawn2::OnEnable"; donpcevent "mobspawn1::OnDisable"; } end; } job_thief1,0,0,0 script mobspawn2 -1,{ OnStart: enablenpc "mobspawn2::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: //= Mob Spawns monster "job_thief1",0,0,"Deceiver I",1918,30,"mobspawn2::OnMobDead2"; monster "job_thief1",0,0,"Deceiver II",1919,30,"mobspawn2::OnMobDead2"; monster "job_thief1",0,0,"Deceiver III",1920,30,"mobspawn2::OnMobDead2"; announce "Unhallowed Deceivers : Protect the Unhallowed Stone. Get rid of the intruders.",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mobspawn2::OnMobDead2"; disablenpc "mobspawn2"; end; OnMobDead2: set .@mob_dead_num,mobcount ("job_thief1","mobspawn2::OnMobDead2"); if (.@mob_dead_num < 40) { announce "All of Unhallowed Deceivers has surrender!",bc_map,"0x00ff99"; donpcevent "mob_spawn_boss::OnEnable"; donpcevent "mobspawn2::OnDisable"; warpparty "job_thief1",182,233,.@party_id; } end; } job_thief1,0,0,0 script mob_spawn_boss -1,{ OnStart: enablenpc "mob_spawn_boss::OnEnable"; end;OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: announce "????: How dare you....",bc_map,"0x00ff99"; sleep 1000; announce "????: I won't let humans... Touch... My Lord....",bc_map,"0x00ff99"; sleep 2000; //= Mob Spawns monster "job_thief1",182,242,"Lost Dragon",2131,1,"mob_spawn_boss::OnMobBossDead"; announce "Lost Dragon: You fool! you can't take me down!",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mob_spawn_boss::OnMobBossDead"; disablenpc "mob_spawn_boss"; end; OnMobBossDead: set .@mob_dead_num,mobcount ("job_thief1","mob_spawn_boss::OnMobBossDead"); if (.@mob_dead_num < 1) { announce "Lost Dragon: What a power.... You will regret, facing my lord....",bc_map,"0x00ff99"; sleep 2000; announce "The Lost Dragon has been defeated!",bc_map,"0x00ff99"; sleep 2000; announce "Walk straight to north! and you will find a huge stone! Touch it!",bc_map,"0x00ff99"; donpcevent "unhallowed_stone::OnEnable"; donpcevent "mob_spawn_boss::OnDisable"; } end; } job_thief1,180,288,0 script unhallowed_stone -1,{ OnStart: enablenpc "unhallowed_stone::OnTouch"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end;OnTouch: announce "????:............ What are you humans....",bc_map|bc_blue; sleep 2000; announce "????:... Let's make it quick... Taste the pains...",bc_map|bc_blue; sleep 1000; enablenpc "unhallowed_stone::OnEnable"; OnEnable: monster "job_thief1",180,288,"Nidhoggr's Shadow",2022,1,"unhallowed_stone::OnBossDead"; announce "Nidhoggr's Shadow: Die you humans! How dare you to come here!",bc_map|bc_blue; sleep 50000; announce "Nidhoggr's Shadow: You Cant kill me! you low race!",bc_map|bc_blue; sleep 50000; announce "Nidhoggr's Shadow: Give me all you've got!",bc_map|bc_blue; OnDisable: killmonster "job_thief1","unhallowed_stone::OnBossDead"; disablenpc "unhallowed_stone"; end; OnBossDead: set .@mob_dead_num,mobcount ("job_thief1","unhallowed_stone::OnBossDead"); if (.@mob_dead_num < 1) { announce "Nidhoggr's Shadow: YOU WILL TASTE REVENGE!",bc_map,"0x00ff99"; sleep 2000; announce "Nidhoggr's Shadow has been defeated!",bc_map,"0x00ff99"; sleep 2000; announce "You has finished Unhallowed Dungeon Quest!",bc_map,"0x00ff99"; sleep 2000; donpcevent "unhallowed_done::OnEnable"; donpcevent "unhallowed_stone::OnDisable"; } end; } job_thief1,0,0,0 script unhallowed_done -1,{ warpparty job_star,99,27,.@party_id; end; }
  19. Yea I found the configuration.txt and it works, I'm using the latest kRO Episode 14.2 ._. but the executable is an old hexed client.
  20. e_e epic fail

  21. I'm making a script where the players finished the chat with "Zei" the NPC it will warp the party into job_thief1, and I'm using "donpcevent" to activate "OnInit" but seems like it wont work. any help? thanks mid_camp,202,293,3 script Zei 81,{ set .npcname$,"[^FF0000 Zei ^000000]"; set .@party_id,getcharid(1); if (undunquest==0){ mes .npcname$; mes "This light... leads your destiny into a darkness place.."; next; mes .npcname$; mes "None tried to go inside, even they said there's a dungeon there.."; close; } mes .npcname$; mes "This light... leads your destiny into a darkness place.."; next; mes .npcname$; mes "None tried to go inside, even they said there's a dungeon there.."; next; switch (select("Stare The Light:Walk Away")){ case 1: if (un_dun_quest==0){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "It would be better to go back to camp and inform the others and ask for help."; set un_dun_quest,1; close; } if (un_dun_quest==1){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "A Strange feeling come from deep inside the heart, a dark sense filling arround the camp."; set un_dun_quest,2; close; } if (un_dun_quest==2){ specialeffect2 EF_HOLYHIT; PushPC 3,3; mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the portal..."; next; mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation."; next; mes "Your heart starting to tell, you should go inside."; set un_dun_quest,3; close; } if (un_dun_quest==3){ getpartymember(.@party_id); set .@leader,getpartyleader(.@party,2); set .@partymembercount,$@partymembercount; copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount; mes .npcname$; mes "I can hear... that guardians is calling you, the hunters..."; next; mes .npcname$; mes "Do you want to go inside?"; switch (select("Go Inside:Walk Away")){ case 1: if ((.@party > 0) && ((.@partymembercount > 7))){ mes .npcname$; mes "I don't think to allow you go alone, you need at least 7 members to go."; close; } if (getmapusers("job_thief1")>7){ mes .npcname$; mes "There's another chosen humans inside, I won't allow you to go."; close; } if (.@leader==0){ mes .npcname$; mes "I just need to talk to the leader."; close; } else { mes .npcname$; mes "I've recorded your request, are you ready to go inside?"; next; mes .npcname$; mes "Tell me when you're ready"; set un_dun_quest,4; close; } case 2: close; } } if (un_dun_quest==4){ mes .npcname$; mes "Are you ready to go Inside?"; next; switch (select("Ready:Not Yet")){ case 1: donpcevent "mobspawn::OnInit"; donpcevent "mobspawn2::OnInit"; donpcevent "mob_spawn_boss::OnInit"; donpcevent "unhallowed_stone::OnInit"; donpcevent "unhallowed_done::OnInit"; mes .npcname$; mes "Please take your time, don't be rush... they're strong"; next; warpparty "job_thief1",180,19,.@party_id; close; end; } } case 2: close; } } job_thief1,0,0,0 script mobspawn -1,{ OnInit: enablenpc "mobspawn::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end;OnEnable: //= Mob Spawns monster "job_thief1",0,0,"Cornus",1992,200,"mobspawn::OnMobDead1"; monster "job_thief1",0,0,"Naga",1993,550,"mobspawn::OnMobDead1"; monster "job_thief1",0,0,"Luciola",1993,550,"mobspawn::OnMobDead1"; announce "Unhallowed Deceivers: Protect the Unhallowed Stone. Get rid of the intruders.",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mobspawn::OnMobDead1"; disablenpc "mobspawn"; end; OnMobDead1: set .@mob_dead_num,mobcount ("job_thief1","mobspawn::OnMobDead1"); if (.@mob_dead_num < 800) { announce "All of Unhallowed Deceivers has surrender!",bc_map,"0x00ff99"; donpcevent "mobspawn2::OnEnable"; donpcevent "mobspawn1::OnDisable"; } end; } job_thief1,0,0,0 script mobspawn2 -1,{ OnInit: enablenpc "mobspawn2::OnEnable"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: //= Mob Spawns monster "job_thief1",0,0,"Deceiver I",1918,30,"mobspawn2::OnMobDead2"; monster "job_thief1",0,0,"Deceiver II",1919,30,"mobspawn2::OnMobDead2"; monster "job_thief1",0,0,"Deceiver III",1920,30,"mobspawn2::OnMobDead2"; announce "Unhallowed Deceivers : Protect the Unhallowed Stone. Get rid of the intruders.",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mobspawn2::OnMobDead2"; disablenpc "mobspawn2"; end; OnMobDead2: set .@mob_dead_num,mobcount ("job_thief1","mobspawn2::OnMobDead2"); if (.@mob_dead_num < 40) { announce "All of Unhallowed Deceivers has surrender!",bc_map,"0x00ff99"; donpcevent "mob_spawn_boss::OnEnable"; donpcevent "mobspawn2::OnDisable"; warpparty "job_thief1",182,233,.@party_id; } end; } job_thief1,0,0,0 script mob_spawn_boss -1,{ OnInit: enablenpc "mob_spawn_boss::OnEnable"; end;OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end; OnEnable: announce "????: How dare you....",bc_map,"0x00ff99"; sleep 1000; announce "????: I won't let humans... Touch... My Lord....",bc_map,"0x00ff99"; sleep 2000; //= Mob Spawns monster "job_thief1",182,242,"Lost Dragon",2131,1,"mob_spawn_boss::OnMobBossDead"; announce "Lost Dragon: You fool! you can't take me down!",bc_map,"0x00ff99"; OnDisable: killmonster "job_thief1","mob_spawn_boss::OnMobBossDead"; disablenpc "mob_spawn_boss"; end; OnMobBossDead: set .@mob_dead_num,mobcount ("job_thief1","mob_spawn_boss::OnMobBossDead"); if (.@mob_dead_num < 1) { announce "Lost Dragon: What a power.... You will regret, facing my lord....",bc_map,"0x00ff99"; sleep 2000; announce "The Lost Dragon has been defeated!",bc_map,"0x00ff99"; sleep 2000; announce "Walk straight to north! and you will find a huge stone! Touch it!",bc_map,"0x00ff99"; donpcevent "unhallowed_stone::OnEnable"; donpcevent "mob_spawn_boss::OnDisable"; } end; } job_thief1,180,288,0 script unhallowed_stone -1,{ OnInit: enablenpc "unhallowed_stone::OnTouch"; end; OnPCDieEvent: if (getpartymember($@ptid)==0){ set #undunlife,#undunlife-1; } dispbottom "Your party have "+#undunlife+" life left."; end;OnTouch: announce "????:............ What are you humans....",bc_map|bc_blue; sleep 2000; announce "????:... Let's make it quick... Taste the pains...",bc_map|bc_blue; sleep 1000; enablenpc "unhallowed_stone::OnEnable"; OnEnable: monster "job_thief1",180,288,"Nidhoggr's Shadow",2022,1,"unhallowed_stone::OnBossDead"; announce "Nidhoggr's Shadow: Die you humans! How dare you to come here!",bc_map|bc_blue; sleep 50000; announce "Nidhoggr's Shadow: You Cant kill me! you low race!",bc_map|bc_blue; sleep 50000; announce "Nidhoggr's Shadow: Give me all you've got!",bc_map|bc_blue; OnDisable: killmonster "job_thief1","unhallowed_stone::OnBossDead"; disablenpc "unhallowed_stone"; end; OnBossDead: set .@mob_dead_num,mobcount ("job_thief1","unhallowed_stone::OnBossDead"); if (.@mob_dead_num < 1) { announce "Nidhoggr's Shadow: YOU WILL TASTE REVENGE!",bc_map,"0x00ff99"; sleep 2000; announce "Nidhoggr's Shadow has been defeated!",bc_map,"0x00ff99"; sleep 2000; announce "You has finished Unhallowed Dungeon Quest!",bc_map,"0x00ff99"; sleep 2000; donpcevent "unhallowed_done::OnEnable"; donpcevent "unhallowed_stone::OnDisable"; } end; } job_thief1,0,0,0 script unhallowed_done -1,{ warpparty job_star,99,27,.@party_id; end; }
  22. Allright, thanks Arcenciel.
  23. Copy paste would help e_e //===== eAthena Script ======================================= //= Bot Checker v2 //===== Made By: ============================================ //= Mystogan //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= Simple Bot Checker with a code and 3 attempts. //======================================================== - script AntiBotCheckerData -1,{ OnPCLoginEvent: if (refresh == 1) { sc_start SC_BERSERK,-1,1; set @bot1, rand (10,99); set @bot2, rand (2,7); set @bot3, rand (1,9); set @bot4, rand (5,9); set @bot5, rand (0,8); set @bot6, rand (10,99); mes "[^00ccffBot Checker^000000]"; mes "You will have 3 Attempts."; next; mes "[^00ccffBot Checker^000000]"; mes "Well, this would be your first attempt."; next; mes "[^00ccffBot Checker^000000]"; mes "If you failed to enter the code within 3 attempts, you will be immidiately jailed."; next; mes "[^00ccffBot Checker^000000]"; mes "Please enter this code."; mes ""; mes "Code: ^0000FF"+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"^000000"; input @codes2$; if (@codes2$ == ""+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"") { next; mes "[^00ccffBot Checker^000000]"; mes "We have confirmed that you're not a bot."; sc_end SC_BERSERK; set refresh,1; close; } next; mes "[^00ccffBot Checker^000000]"; mes "The code you have entered is incorrect."; mes "Please try again."; next; set @bot1, rand (10,99); set @bot2, rand (2,7); set @bot3, rand (1,9); set @bot4, rand (5,9); set @bot5, rand (0,8); set @bot6, rand (10,99); mes "[^00ccffBot Checker^000000]"; mes "^ff0000SECOND ATTEMPT!^000000"; next; mes "[^00ccffBot Checker^000000]"; mes "Please enter this code."; mes ""; mes "Code: ^0000FF"+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"^000000"; input @codes2$; if (@codes2$ == ""+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"") { next; mes "[^00ccffBot Checker^000000]"; mes "We have confirmed that you're not a bot."; sc_end SC_BERSERK; set refresh,1; close; } next; mes "[^00ccffBot Checker^000000]"; mes "The code you have entered is incorrect."; mes "Please try again."; next; set @bot1, rand (10,99); set @bot2, rand (2,7); set @bot3, rand (1,9); set @bot4, rand (5,9); set @bot5, rand (0,8); set @bot6, rand (10,99); mes "[^00ccffBot Checker^000000]"; mes "^ff0000THIRD ATTEMPT!^000000"; next; mes "[^00ccffBot Checker^000000]"; mes "Please enter this code."; mes ""; mes "Code: ^0000FF"+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"^000000"; input @codes2$; if (@codes2$ == ""+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"") { next; mes "[^00ccffBot Checker^000000]"; mes "We have confirmed that you're not a bot."; sc_end SC_BERSERK; set refresh,1; close; } next; mes "[^00ccffBot Checker^000000]"; mes "The code you have entered is incorrect."; mes "We will jail you."; sc_end SC_BERSERK; set refresh,1; atcommand strcharinfo(0)+ "@jail "+strcharinfo(0)+""; close; } set @bot1, rand (10,99); set @bot2, rand (2,7); set @bot3, rand (1,9); set @bot4, rand (5,9); set @bot5, rand (0,8); set @bot6, rand (10,99); mes "[^00ccffBot Checker^000000]"; mes "You will have 3 Attempts."; next; mes "[^00ccffBot Checker^000000]"; mes "Well, this would be your first attempt."; next; mes "[^00ccffBot Checker^000000]"; mes "If you failed to enter the code within 3 attempts, you will be immidiately jailed."; next; mes "[^00ccffBot Checker^000000]"; mes "Please enter this code."; mes ""; mes "Code: ^0000FF"+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"^000000"; input @codes2$; if (@codes2$ == ""+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"") { next; mes "[^00ccffBot Checker^000000]"; mes "We have confirmed that you're not a bot."; sc_end SC_BERSERK; set refresh,1; close; } next; mes "[^00ccffBot Checker^000000]"; mes "The code you have entered is incorrect."; mes "Please try again."; next; set @bot1, rand (10,99); set @bot2, rand (2,7); set @bot3, rand (1,9); set @bot4, rand (5,9); set @bot5, rand (0,8); set @bot6, rand (10,99); mes "[^00ccffBot Checker^000000]"; mes "^ff0000SECOND ATTEMPT!^000000"; next; mes "[^00ccffBot Checker^000000]"; mes "Please enter this code."; mes ""; mes "Code: ^0000FF"+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"^000000"; input @codes2$; if (@codes2$ == ""+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"") { next; mes "[^00ccffBot Checker^000000]"; mes "We have confirmed that you're not a bot."; sc_end SC_BERSERK; set refresh,1; close; } next; mes "[^00ccffBot Checker^000000]"; mes "The code you have entered is incorrect."; mes "Please try again."; next; set @bot1, rand (10,99); set @bot2, rand (2,7); set @bot3, rand (1,9); set @bot4, rand (5,9); set @bot5, rand (0,8); set @bot6, rand (10,99); mes "[^00ccffBot Checker^000000]"; mes "^ff0000Warning: THIRD ATTEMPT!^000000"; next; mes "[^00ccffBot Checker^000000]"; mes "Please enter this code."; mes ""; mes "Code: ^0000FF"+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"^000000"; input @codes2$; if (@codes2$ == ""+@bot1+""+@bot2+""+@bot3+""+@bot4+""+@bot5+""+@bot6+"") { next; mes "[^00ccffBot Checker^000000]"; mes "We have confirmed that you're not a bot."; sc_end SC_BERSERK; set refresh,1; close; } next; mes "[^00ccffBot Checker^000000]"; mes "The code you have entered is incorrect."; mes "We will jail you."; set refresh,1; atcommand strcharinfo(0)+ "@jail "+strcharinfo(0)+""; sc_end SC_BERSERK; close; }
  24. Is there any way to use official non-instance map as an instance map? like editing the name of (ex: dic_dun02) into 2@dic or else.
×
×
  • Create New...