-
Posts
56 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by backtea
-
i want to request script arhon, the system like this,, i have a pvp ladder..i want the top pvp ladder will be as archon(god) n then he/she get effect spesial for his/her char like aura,etc...i will make every 2 weeks the ladder will be reset by gm and the effect change to the next archon can u make me this scripts? sorry for bad english
-
not running? but i use it in my server n work fine can u give me your server log? the script running every 3 hours..see the script time at "OnClock"
-
i'am sorry i make a mistake..try this one prontera,147,178,6 script Job Change 733,{ menu "Job change",J_changer, "Baby Job change",J_bchanger, "leave",L_partir; J_changer: mes "^ff0000[Job Master]^000000"; if(Class >= 4054 && Class <= 4085) goto L_max; if(SkillPoint != 0) goto L_stats; if(Upper == 1 && Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_Third; 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 "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 "Are you sure you want to change to " + JobName(@target_job) + "?"; // if(countitem(909)<50) goto nojob1; // item yang dibutuhkan untuk job 1 if(select("No","Yes") == 2){ callfunc "Job_Change", @target_job; // delitem 909,50; 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 "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 "Are you sure you want to change to " + JobName(@target_job) + "?"; // if(countitem(914)<70) goto nojob2; // item yang dibutuhkan untuk job 2 if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; // delitem 914,70; 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 "Choose your next step"; // if(countitem(7825)<1) goto norebornitem; // item yang dibutuhkan untuk reborn if(select("Reborn","Become a 3rd Class")==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; } } // delitem 7825,1; jobchange Job_Novice_High; resetlvl(1); skill 142,1,0; skill 143,1,0; close; } switch(Class){ case Job_Knight: set @target_job, 4054; delitem 7825,2; break; case Job_Crusader: set @target_job, 4066; delitem 7825,2; break; case Job_Monk: set @target_job, 4070; delitem 7825,2; break; case Job_Priest: set @target_job, 4057; delitem 7825,2; break; case Job_Alchemist: set @target_job, 4071; delitem 7825,2; break; case Job_Blacksmith: set @target_job, 4058; delitem 7825,2; break; case Job_Rogue: set @target_job, 4072; delitem 7825,2; break; case Job_Assassin: set @target_job, 4059; delitem 7825,2; break; case Job_Wizard: set @target_job, 4055; delitem 7825,2; break; case Job_Sage: set @target_job, 4067; delitem 7825,2; break; case Job_Hunter: set @target_job, 4056; delitem 7825,2; break; case Job_Bard: set @target_job, 4068; delitem 7825,2; break; case Job_Dancer: set @target_job, 4069; delitem 7825,2; break; } mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes")==2){ // if(countitem(925)<50) goto nojob2ad; // item yang dibutuhkan untuk job 2 advance if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; // delitem 925,50; callfunc "Job_Change", @target_job; specialeffect2 514; specialeffect2 381; setlook 7,0; } close; } mes "I'm sorry, there are no further classes for your job."; close; } L_Third: if(checkfalcon() || checkcart() || checkriding()) goto L_remove; mes "Are you sure you want to change to 3rd Class?"; // if(countitem(7825)<2) goto nojob3; // item yang dibutuhkan untuk job 3 if(select("Yes","No")==1){ if(BaseLevel < 99 || JobLevel < 70) goto L_cantCht; switch(Class){ case Job_Lord_Knight: set @target_job, 4060; getitem 5746,1; getitem 15002,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Winning"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Paladin: set @target_job, 4073; getitem 5757,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Champion: set @target_job, 4077; getitem 5754,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_High_Priest: set @target_job, 4063; getitem 5747,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Creator: set @target_job, 4078; getitem 5752,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Whitesmith: set @target_job, 4064; getitem 5749,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Stalker: set @target_job, 4079; getitem 5750,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Assassin_Cross: set @target_job, 4065; getitem 5755,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_High_Wizard: set @target_job, 4061; getitem 5753,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Professor: set @target_job, 4074; getitem 5756,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Sniper: set @target_job, 4062; getitem 5748,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Clown: set @target_job, 4075; getitem 5751,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Gypsy: set @target_job, 4076; getitem 5758,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; 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; if (BaseClass==Job_Knight) goto L_sKnigh; if (BaseClass==Job_Crusader) goto L_sCrusader; if (BaseClass==Job_Assassin) goto L_sAssassin; if (BaseClass==Job_Rogue) goto L_sRogue; if (BaseClass==Job_Wizard) goto L_sWizard; if (BaseClass==Job_Sage) goto L_sSage; if (BaseClass==Job_Hunter) goto L_sHunter; if (BaseClass==Job_Bard) goto L_sBard; if (BaseClass==Job_Dancer) goto L_sDancer; if (BaseClass==Job_BlackSmith) goto L_sBlackSmith; if (BaseClass==Job_Priest) goto L_sPriest; if (BaseClass==Job_Monk) goto L_sMonk; 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_sKnight: skill 1001,1,0; close; L_sCrusader: skill 1002,1,0; close; L_sAssassin: skill 1003,1,0; skill 1004,1,0; close; L_sRogue: skill 1005,1,0; close; L_sWizard: skill 1006,1,0; close; L_sSage: skill 1007,1,0; close; L_sHunter: skill 1009,1,0; close; L_sBard: skill 1010,1,0; close; L_sDancer: skill 1011,1,0; close; L_sBlackSmith: skill 1012,1,0; skill 1013,1,0; close; L_sPriest: skill 1014,1,0; close; L_sMonk: skill 1015,1,0; skill 1016,1,0; close; L_cantCh: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_cantCht: mes "I'm sorry, you do not meet the requirements to change"; mes "Base level 150 | and Job level 70"; mes "Please come again soon!"; close; L_LvError: mes "Sorry ya~~!! Job Levels kamu tidak memenuhi syarat"; mes "Please come again soon!"; close; L_BvError: mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; L_noReq: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_max: mes "I'm sorry, there are no further classes for your job."; close; L_stats: mes "I'm sorry, please use up all your skill points before changing jobs"; mes "Please come again soon!"; close; L_remove: mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; close; nojob1: mes "[sYARAT]"; mes "Membutuhkan 50x Jellopy"; mes "Please come again soon!"; close; nojob2: mes "[sYARAT]"; mes "Membutuhkan 70x Fluff"; mes "Please come again soon!"; close; nojob2ad: mes "[sYARAT]"; mes "Membutuhkan 50x Bill Of Bird"; mes "Please come again soon!"; close; nojob3: mes "[sYARAT]"; mes "Membutuhkan 2x Heroic Stone"; mes "Please come again soon!"; close; norebornitem: mes "[sYARAT]"; mes "Membutuhkan 1x Heroic Stone"; 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; //====================================// J_bchanger: set nome$, "[baby JobChanger]"; if((Class == 0) && (JobLevel >9)) { mes "JobLevel: "+ JobLevel; mes "Class: "+Class; switch(select("Baby Novice","Nothing")) { case 1: jobchange 4023; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4023) && (JobLevel >9)) { switch(select("Baby Swordsman","Baby Magician","Baby Archer","Baby Acolyte","Baby Merchant","Baby Thief","Baby Super Novice","Nothing")) { case 1: jobchange 4024; break; case 2: jobchange 4025; break; case 3: jobchange 4026; break; case 4: jobchange 4027; break; case 5: jobchange 4028; break; case 6: jobchange 4029; break; case 7: jobchange 4045; break; case 8: mes "Back when I can help you!"; break; } } else if((Class == 4024) && (JobLevel >39)) { switch(select("Baby Knight","Baby Crusader","Nothing")) { case 1: jobchange 4030; break; case 2: jobchange 4037; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4025) && (JobLevel >39)) { switch(select("Baby Wizard","Baby Sage","Nothing")) { case 1: jobchange 4032; break; case 2: jobchange 4039; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4026) && (JobLevel >39)) { switch(select("Baby Hunter","Baby Bard or Dancer","Nothing")) { case 1: jobchange 4034; break; case 2: if(Sex == 0) jobchange 4043; else jobchange 4042; break; case 4: mes "Back when I can help you!"; break; } } else if((Class == 4027) && (JobLevel >39)) { switch(select("Baby Priest","Baby Monk","Nothing")) { case 1: jobchange 4031; break; case 2: jobchange 4038; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4028) & (JobLevel > 39)) { switch(select("Baby Blacksmith","Baby Alchemist","Nothing")) { case 1: jobchange 4033; break; case 2: jobchange 4041; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4029) && (JobLevel > 39)) { switch(select("Baby Assassin","Baby Rogue","Nothing")) { case 1: jobchange 4035; break; case 2: jobchange 4040; break; case 3: mes "Back when I can help you!"; break; } } //========================================== //========================================== else if((Class == 4030) && (JobLevel >49)) { switch(select("Baby Rune Knight","Nothing")) { case 1: jobchange 4096; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4037) && (JobLevel >49)) { switch(select("Baby royal guard","Nothing")) { case 1: jobchange 4102; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4032) && (JobLevel >49)) { switch(select("Baby Warlock","Nothing")) { case 1: jobchange 4097; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4039) && (JobLevel >49)) { switch(select("Baby Sorcerer","Nothing")) { case 1: jobchange 4103; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4042 || Class == 4043) && (JobLevel >49)) { switch(select("Baby Minstrel","Baby Wanderer","Nothing")) { case 1: if(Class == 4042) jobchange 4104; case 2: if(Class == 4043) jobchange 4105; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4034) && (JobLevel >49)) { switch(select("Baby Ranger","Nothing")) { case 1: jobchange 4098; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4031 || Class == 4038) && (JobLevel >49)) { switch(select("Baby Arch Bishop","Baby Sura","Nothing")) { case 1: if(Class == 4031) jobchange 4099; break; case 2: if(Class == 4038) jobchange 4106; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4033 || Class == 4041) & (JobLevel > 49)) { switch(select("Baby Mechanic","Baby Genetic","Nothing")) { case 1: if(Class == 4033) jobchange 4100; break; case 2: if(Class == 4041) jobchange 4107; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4035 || Class == 4040) && (JobLevel > 49)) { switch(select("Baby Guilttine Cross","Baby Shadow Chaser","Nothing")) { case 1: if(Class == 4035) jobchange 4101; break; case 2: if(Class == 4040) jobchange 4108; break; case 3: mes "Back when I can help you!"; break; } } else mes "I cant help you! Sorry!"; close; L_partir: mes "[^FF0000bonus^000000]"; mes "Have a nice day."; close; } if something wrong just tell me...hope this help
-
try this one - script LMS#disable -1,{ OnInit: disablenpc "Mr. Banker"; disablenpc "All Job Manager"; end; } - script LMS -1,{ OnClock000: OnClock0300: OnClock0600: OnClock0900: OnClock1200: OnClock1500: OnClock1800: OnClock2100:// Edit this to what ever you want. note : OnClock0000 is 12 midnight and OnClock1200 is 12 Noon goto startlmsevent; startlmsevent: announce "Mr. Manager: The Last Man Standing event will be starting shortly.",0; sleep2 10000; announce "Mr. Manager: Those who want to play, please proceed to Prontera and Register.",0; sleep2 10000; announce "Mr. Manager: After 1 Minute the Registration will close.",0; sleep2 10000; announce "Mr. Manager: Please go to Prontera and Register now if you want to join.",0; enablenpc "All Job Manager"; initnpctimer; end; OnTimer30000: announce "Mr. Manager: Last 30 seconds.",0; sleep2 5000; announce "Mr. Manager: If you want to join please Register in Prontera.",0; end; OnTimer50000: announce "Mr. Manager: Last 10 seconds.",0; end; OnTimer55000: announce "Mr. Manager: 5.",0; end; OnTimer56000: announce "Mr. Manager: 4.",0; end; OnTimer57000: announce "Mr. Manager: 3.",0; end; OnTimer58000: announce "Mr. Manager: 2.",0; end; OnTimer59000: announce "Mr. Manager: 1.",0; end; OnTimer60000: announce "Mr. Manager: Time's up.",0; end; OnTimer61000: disablenpc "All Job Manager"; donpcevent "Mr. Banker::OnEnable"; stopnpctimer; end; } //---------All Job Registration--------------- prontera,153,193,5 script All Job Manager 106,{ mes "[Mr. Manager]"; mes "Hello What can I do for you?"; next; menu "Register",-,"What is LMS?",what,"Leave",leave; next; mes "[Mr. Manager]"; mes "Thankyou for registering Mr. " + strcharinfo(0) + ", Have fun!"; warp "force_1-3",100,180; end; what: mes "[Mr. Manager]"; mes "LMS is also known as Last Man Standing Event"; next; mes "[Mr. Manager]"; mes "LMS is also like a PvP."; mes "The only difference is at LMS you will get 10 PC Point if you are the Last Man Standing at the arena."; next; mes "[Mr. Manager]"; mes "That's all"; close; leave: mes "[Mr. Manager]"; mes "I hope you will register next time"; close; } //-------------------------- //-------------------------- force_1-3,100,180,6 script Mr. Banker 56,{ mes "[banker]"; mes "Congrats. You've won."; next; announce "Mr. Manager: We have a winner! well done "+strcharinfo(0)+".",0; getitem 7227,1; // Change This item id to what ever you want . item id,amount dispbottom "+1 TCG"; mes "You will return now"; warp "prontera",155,182; disablenpc "Mr. Banker"; close; end; OnEnable: pvpoff "force_1-3"; mapannounce "force_1-3","Mr. Manager:The Last Man Standing Event will start shortly",0; sleep2 10000; mapannounce "force_1-3","Mr. Manager:But before we start this is just a few reminders..",0; sleep2 10000; mapannounce "force_1-3","Mr. Manager:Using Cloaking , Hiding is strictly not allowed..",0; sleep2 10000; mapannounce "force_1-3","Mr. Manager: Only the Last Man Standing will win this event!!",0; sleep2 10000; mapannounce "force_1-3","Mr. Manager: What are we waiting for?..Let's Get Ready to Rumble!!...",0; sleep2 10000; goto L_Start; end; L_Start: if(getmapusers("force_1-3") == 1) goto L_Champ; if(getmapusers("force_1-3") == 0) goto L_None; if(getmapusers("force_1-3") > 1) { mapannounce "force_1-3","Mr. Manager: Get ready at the count of 5 we will start!....",0; sleep2 10000; mapannounce "force_1-3","Mr. Manager: 5",0; sleep2 5000; mapannounce "force_1-3","Mr. Manager: 4",0; sleep2 4000; mapannounce "force_1-3","Mr. Manager: 3",0; sleep2 3000; mapannounce "force_1-3","Mr. Manager: 2",0; sleep2 2000; mapannounce "force_1-3","Mr. Manager: 1",0; sleep2 1000; pvpon "force_1-3"; goto timer; end; } timer: initnpctimer; end; OnTimer1000: end; OnTimer1100: if(getmapusers("force_1-3") == 1) goto L_Champ; if(getmapusers("force_1-3") > 2) goto timer; if(getmapusers("force_1-3") == 2) goto champ; stopnpctimer; end; champ: announce "Mr. Manager: Last 2 Brave warriors are still alive!",0; sleep2 10000; if(getmapusers("force_1-3") == 1) goto L_Champ; if(getmapusers("force_1-3") > 1) goto timer; end; L_Champ: mapannounce "force_1-3","Mr. Banker: Please talk to me to get your prize..",0; pvpoff "force_1-3"; enablenpc "Mr. Banker"; end; L_None: disablenpc "Banker"; pvpoff "force_1-3"; end; } //----- Die = warp prt ----- - script Killa_warp -1,{ OnPCDieEvent: getmapxy(.@map$,.@x,.@y,0); if(.@map$=="force_1-3") { set #kill_point, 0; announce ""+strcharinfo(0)+" died, and out of the game!.",bc_all; warp "prontera",0,0; end; } OnPCKillEvent: getmapxy(.@map$,.@x,.@y,0); if(.@map$=="pvp_n_1-5") { set #kill_point,#kill_point+1; if ( #kill_point % 4 == 0) { announce ""+strcharinfo(0)+" have made 4 Consecutive Kills!!He will be granted an item",bc_all; //getitem 7539, 20; end; } } } // == Mapflags force_1-3 mapflag nowarp force_1-3 mapflag nowarpto force_1-3 mapflag noteleport force_1-3 mapflag nosave force_1-3 mapflag nomemo force_1-3 mapflag nobranch force_1-3 mapflag pvp_noparty force_1-3 mapflag restricted 1 if you want to disable some skill go to server>db>skill_nocast_db.txt and add some text 150,1 //TF_BACKSLIDING 87,1 //WZ_ICEWALL hope this help
-
maybe this will help ////////////////////////////////////////////////////////////////////////////////// // Jobchanger eA-Jobsystem + 3rd Classes // ///////////////////////////////////////////////////////////////////////////////// //1.0 - Creators Job Master eAthena [Ori:LunatikBunnie] [Cur:Lance]) //1.1 - Added 3rd Classes [Viktus] //1.2 - Added 2nd Platinum Skills [Viktus] /////////////////////////////////////////////////////////////////////////////// prontera,143,178,6 script Job Changer 733,{ menu "reset",J_reset, "Job change",J_changer, "Baby Job change",J_bchanger, "Platinum Skill",J_platinum, "leave",L_partir; J_reset: mes "[Reset Girl]"; mes "Reset Stats: 5,000z"; mes "Reset Skills: 5,000z"; mes "Reset Both: 9,000z"; mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) { case 1: mes "[Reset Girl]"; if (Zeny < 5000) { mes "Sorry, you don't have enough Zeny."; close; } mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-5000; ResetSkill; close; case 2: mes "[Reset Girl]"; if (Zeny < 5000) { mes "Sorry, you don't have enough Zeny."; close; } mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-5000; ResetStatus; close; case 3: mes "[Reset Girl]"; if (Zeny < 9000) { mes "Sorry, you don't have enough Zeny."; close; } mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; set Zeny,zeny-9000; ResetSkill; ResetStatus; close; case 4: close; } J_changer: mes "^ff0000[Job Master]^000000"; if(Class >= 4054 && Class <= 4085) goto L_max; if(SkillPoint != 0) goto L_stats; if(Upper == 1 && Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_Third; 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 "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 "Are you sure you want to change to " + JobName(@target_job) + "?"; // if(countitem(909)<50) goto nojob1; // item yang dibutuhkan untuk job 1 if(select("No","Yes") == 2){ callfunc "Job_Change", @target_job; // delitem 909,50; 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 "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 "Are you sure you want to change to " + JobName(@target_job) + "?"; // if(countitem(914)<70) goto nojob2; // item yang dibutuhkan untuk job 2 if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; // delitem 914,70; 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 "Choose your next step"; // if(countitem(7825)<1) goto norebornitem; // item yang dibutuhkan untuk reborn if(select("Reborn","Become a 3rd Class")==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; } } // delitem 7825,1; jobchange Job_Novice_High; resetlvl(1); skill 142,1,0; skill 143,1,0; close; } switch(Class){ case Job_Knight: set @target_job, 4054; delitem 7825,2; break; case Job_Crusader: set @target_job, 4066; delitem 7825,2; break; case Job_Monk: set @target_job, 4070; delitem 7825,2; break; case Job_Priest: set @target_job, 4057; delitem 7825,2; break; case Job_Alchemist: set @target_job, 4071; delitem 7825,2; break; case Job_Blacksmith: set @target_job, 4058; delitem 7825,2; break; case Job_Rogue: set @target_job, 4072; delitem 7825,2; break; case Job_Assassin: set @target_job, 4059; delitem 7825,2; break; case Job_Wizard: set @target_job, 4055; delitem 7825,2; break; case Job_Sage: set @target_job, 4067; delitem 7825,2; break; case Job_Hunter: set @target_job, 4056; delitem 7825,2; break; case Job_Bard: set @target_job, 4068; delitem 7825,2; break; case Job_Dancer: set @target_job, 4069; delitem 7825,2; break; } mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes")==2){ // if(countitem(925)<50) goto nojob2ad; // item yang dibutuhkan untuk job 2 advance if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; // delitem 925,50; callfunc "Job_Change", @target_job; specialeffect2 514; specialeffect2 381; setlook 7,0; } close; } mes "I'm sorry, there are no further classes for your job."; close; } L_Third: if(checkfalcon() || checkcart() || checkriding()) goto L_remove; mes "Are you sure you want to change to 3rd Class?"; // if(countitem(7825)<2) goto nojob3; // item yang dibutuhkan untuk job 3 if(select("Yes","No")==1){ if(BaseLevel < 99 || JobLevel < 70) goto L_cantCht; switch(Class){ case Job_Lord_Knight: set @target_job, 4060; getitem 5746,1; getitem 15002,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Winning"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Paladin: set @target_job, 4073; getitem 5757,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Champion: set @target_job, 4077; getitem 5754,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_High_Priest: set @target_job, 4063; getitem 5747,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Creator: set @target_job, 4078; getitem 5752,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Whitesmith: set @target_job, 4064; getitem 5749,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Stalker: set @target_job, 4079; getitem 5750,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Assassin_Cross: set @target_job, 4065; getitem 5755,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_High_Wizard: set @target_job, 4061; getitem 5753,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Professor: set @target_job, 4074; getitem 5756,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Sniper: set @target_job, 4062; getitem 5748,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Clown: set @target_job, 4075; getitem 5751,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; close; case Job_Gypsy: set @target_job, 4076; getitem 5758,1; callfunc "Job_Change", @target_job; //delitem 7825,2; specialeffect2 514; specialeffect2 381; setlook 7,0; mes "Selamat Datang Pasukan Dewa Athena"; announce strcharinfo(0) + " Telah diangkat sebagai pasukan resmi Dewa Athena di profesi yang diambil " + @megaphone$,bc_all,0xC0C0C0; getitem 607,10; 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; if (BaseClass==Job_Knight) goto L_sKnigh; if (BaseClass==Job_Crusader) goto L_sCrusader; if (BaseClass==Job_Assassin) goto L_sAssassin; if (BaseClass==Job_Rogue) goto L_sRogue; if (BaseClass==Job_Wizard) goto L_sWizard; if (BaseClass==Job_Sage) goto L_sSage; if (BaseClass==Job_Hunter) goto L_sHunter; if (BaseClass==Job_Bard) goto L_sBard; if (BaseClass==Job_Dancer) goto L_sDancer; if (BaseClass==Job_BlackSmith) goto L_sBlackSmith; if (BaseClass==Job_Priest) goto L_sPriest; if (BaseClass==Job_Monk) goto L_sMonk; 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_sKnight: skill 1001,1,0; close; L_sCrusader: skill 1002,1,0; close; L_sAssassin: skill 1003,1,0; skill 1004,1,0; close; L_sRogue: skill 1005,1,0; close; L_sWizard: skill 1006,1,0; close; L_sSage: skill 1007,1,0; close; L_sHunter: skill 1009,1,0; close; L_sBard: skill 1010,1,0; close; L_sDancer: skill 1011,1,0; close; L_sBlackSmith: skill 1012,1,0; skill 1013,1,0; close; L_sPriest: skill 1014,1,0; close; L_sMonk: skill 1015,1,0; skill 1016,1,0; close; L_cantCh: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_cantCht: mes "I'm sorry, you do not meet the requirements to change"; mes "Base level 150 | and Job level 70"; mes "Please come again soon!"; close; L_LvError: mes "Sorry ya~~!! Job Levels kamu tidak memenuhi syarat"; mes "Please come again soon!"; close; L_BvError: mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; L_noReq: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_max: mes "I'm sorry, there are no further classes for your job."; close; L_stats: mes "I'm sorry, please use up all your skill points before changing jobs"; mes "Please come again soon!"; close; L_remove: mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; close; nojob1: mes "[sYARAT]"; mes "Membutuhkan 50x Jellopy"; mes "Please come again soon!"; close; nojob2: mes "[sYARAT]"; mes "Membutuhkan 70x Fluff"; mes "Please come again soon!"; close; nojob2ad: mes "[sYARAT]"; mes "Membutuhkan 50x Bill Of Bird"; mes "Please come again soon!"; close; nojob3: mes "[sYARAT]"; mes "Membutuhkan 2x Heroic Stone"; mes "Please come again soon!"; close; norebornitem: mes "[sYARAT]"; mes "Membutuhkan 1x Heroic Stone"; 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; //====================================// J_bchanger: set nome$, "[baby JobChanger]"; if((Class == 0) && (JobLevel >9)) { mes "JobLevel: "+ JobLevel; mes "Class: "+Class; switch(select("Baby Novice","Nothing")) { case 1: jobchange 4023; break; case 2: mes "Back when I can help you!"; break; } } else if((Class == 4023) && (JobLevel >9)) { switch(select("Baby Swordsman","Baby Magician","Baby Archer","Baby Acolyte","Baby Merchant","Baby Thief","Baby Super Novice","Nothing")) { case 1: jobchange 4024; break; case 2: jobchange 4025; break; case 3: jobchange 4026; break; case 4: jobchange 4027; break; case 5: jobchange 4028; break; case 6: jobchange 4029; break; case 7: jobchange 4045; break; case 8: mes "Back when I can help you!"; break; } } else if((Class == 4024) && (JobLevel >39)) { switch(select("Baby Knight","Baby Crusader","Nothing")) { case 1: jobchange 4030; break; case 2: jobchange 4037; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4025) && (JobLevel >39)) { switch(select("Baby Wizard","Baby Sage","Nothing")) { case 1: jobchange 4032; break; case 2: jobchange 4039; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4026) && (JobLevel >39)) { switch(select("Baby Hunter","Baby Bard or Dancer","Nothing")) { case 1: jobchange 4034; break; case 2: if(Sex == 0) jobchange 4043; else jobchange 4042; break; case 4: mes "Back when I can help you!"; break; } } else if((Class == 4027) && (JobLevel >39)) { switch(select("Baby Priest","Baby Monk","Nothing")) { case 1: jobchange 4031; break; case 2: jobchange 4038; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4028) & (JobLevel > 39)) { switch(select("Baby Blacksmith","Baby Alchemist","Nothing")) { case 1: jobchange 4033; break; case 2: jobchange 4041; break; case 3: mes "Back when I can help you!"; break; } } else if((Class == 4029) && (JobLevel > 39)) { switch(select("Baby Assassin","Baby Rogue","Nothing")) { case 1: jobchange 4035; break; case 2: jobchange 4040; break; case 3: mes "Back when I can help you!"; break; } } else mes "I cant help you! Sorry!"; close; //====================================// J_platinum: mes "[Platinum Skill NPC]"; mes "I can give you the special skills available to your job."; mes "Would you like these skills now?"; next; if (select("Yes Please:No") == 2) { mes "[Platinum Skill NPC]"; mes "Have a nice day... >.>"; close; } skill 142,1,0; // First Aid if (BaseClass == Job_Novice) { skill 143,1,0; // Play Dead } else if (BaseClass == Job_Swordman) { skill 144,1,0; // Moving HP-Recovery skill 145,1,0; // Fatal Blow skill 146,1,0; // Auto Berserk } else if (BaseClass == Job_Mage) { skill 157,1,0; // Energy Coat } else if (BaseClass == Job_Archer) { skill 147,1,0; // Arrow Crafting skill 148,1,0; // Arrow Repel } else if (BaseClass == Job_Merchant) { skill 153,1,0; // Cart Revolution skill 154,1,0; // Change Cart skill 155,1,0; // Crazy Uproar } else if (BaseClass == Job_Thief) { skill 149,1,0; // Sand Attack skill 150,1,0; // Back Slide skill 151,1,0; // Find Stone skill 152,1,0; // Stone Fling } else if (BaseClass == Job_Acolyte) { skill 156,1,0; // Holy Light } if (Class == Job_Knight || Class == Job_Lord_Knight) { skill 1001,1,0; // Charge Attack } else if (Class == Job_Crusader || Class == Job_Paladin) { skill 1002,1,0; // Shrink } else if (Class == Job_Wizard || Class == Job_High_Wizard) { skill 1006,1,0; // Sight Blaster } else if (Class == Job_Sage || Class == Job_Professor) { skill 1007,1,0; // Create Elemental Converter skill 1008,1,0; // Elemental Change Water skill 1017,1,0; // Elemental Change Earth skill 1018,1,0; // Elemental Change Fire skill 1019,1,0; // Elemental Change Wind } else if (Class == Job_Hunter || Class == Job_Sniper) { skill 1009,1,0; // Phantasmic Arrow } else if (Class == Job_Bard || Class == Job_Clown) { skill 1010,1,0; // Pang Voice } else if (Class == Job_Dancer || Class == Job_Gypsy) { skill 1011,1,0; // Wink of Charm } else if (Class == Job_Blacksmith || Class == Job_Whitesmith) { skill 1012,1,0; // Unfair Trick skill 1013,1,0; // Greed } else if (Class == Job_Alchemist || Class == Job_Creator) { skill 238,1,0; // Bioethics } else if (Class == Job_Assassin || Class == Job_Assassin_Cross) { skill 1003,1,0; // Sonic Acceleration skill 1004,1,0; // Throw Venom Knife } else if (Class == Job_Rogue || Class == Job_Stalker) { skill 1005,1,0; // Close Confine } else if (Class == Job_Priest || Class == Job_High_Priest) { skill 1014,1,0; // Redemptio } else if (Class == Job_Monk || Class == Job_Champion) { skill 1015,1,0; // Ki Translation skill 1016,1,0; // Ki Explosion } mes "[Platinum Skill NPC]"; mes "There you go!"; close; L_partir: mes "[^FF0000bonus^000000]"; mes "Have a nice day."; close; }
-
tolong saya hendak membenarkan script ini...jika ada sesuatu versi english tolong kasih saya // [========================================================] // [============ AntiBot ============] // [========================================================] // [ Versión 13 ] // [========================================================] // [ Script original: Ivion ] // [========================================================] // [ Descripción: ] // [ ] // [ - Script antibot basado en NPCKillEvent. ] // [ - Sistema de preguntas aleatorias. ] // [ - Los gms pueden añadir sus propias frases desde el npc] // [ AntiBot. Es recomendable añadir alrededor de 20 ] // [ frases nuevas cada semana, para evitar que los bots ] // [ las memoricen. El script irá sustituyendo las frases ] // [ más antiguas. ] // [========================================================] // [ 5 últimas actualizaciones: ] // [ ] // [ v9: [ivion] ] // [ - Números en casteo de skill. ] // [ - Bugfix para evitar varios antibots simultaneos. ] // [ - Configuración de oportunidades. ] // [ ] // [ v10: [ivion] ] // [ - Reparado bug de variables de la v9. ] // [ ] // [ v11: [ivion] ] // [ - Añadido npc y lista de sancionados. ] // [ ] // [ v12: [ivion] ] // [ - BugFix: Para evitar mal uso de perfect hide. ] // [ - BugFix: deltimer en jail. ] // [ - Añadido save en jail. ] // [ ] // [ v13: [ivion] ] // [ - Reconstruido practicamente todo el script. ] // [ - Nuevo sistema de preguntas aleatorias. Los GMs pueden] // [ añadir sus propias frases a través del npc AntiBot. ] // [ - Los GMs pueden reportar bots mediante el npc AntiBot.] // [ - El antibot avisará a los jugadores un minuto antes de] // [ aparecer para que estén preparados. ] // [ - Uso de variables $@ para evitar encarcelamientos al ] // [ hacer @reloadscript o al apagar el servidor. ] // [ - Bugfix: Añadidos timers con sleep2. El comando ] // [ addtimer parece estar un poco bugeado. ] // [ - Bugfix: Arreglado el trigger en las partys. ] // [========================================================] // [ http://www.eathena.ws/board/index.php?showtopic=233981 ] // [========================================================] - script antibot_main -1,{ OnInit: // [--------------------------------------------------------] // [ Configuración: ] // [========================================================] set $@AB$,"AntiBot"; // Nombre del npc. set $@ABr,5; // Probabilidad de que aparezca el AntiBot al matar un monstruo. (x/10000) set .t1,60; // Tiempo disponible antes de que el antibot se active automáticamente. (segundos) set $@ABt2,300; // Tiempo disponible para responder. (segundos) set $@ABc,3; // Número de oportunidades para responder. set .gm1,50; // Nivel de gm necesario para evitar el AntiBot. set $@ABgm2,50; // Nivel de gm necesario para acceder a las opciones de control del AntiBot. set .b$,"@ban +1m"; // Comando de penalización por uso de bot. También podeis usar @jail o @block. set .bl,20; // Número máximo de datos almacenados en la lista de sancionados. // Lista de mapas donde AntiBot permanecerá desactivado: setarray .m$,"bat_","g_cas","guild_vs","nguild","poring","pvp","rwc"; // [--------------------------------------------------------] // [ Final de la configuración. ] // [========================================================] if(!getarraysize($AB$)) setarray $AB$[0],"Blancanieves y los 7 enanitos","Caperucita Roja","La Bella Durmiente","Los tres cerditos","Alicia en le país de las maravillas"; // NPC names: set .@a,1; while(!setnpcdisplay("AB#"+.@a,$@AB$+"#"+.@a)) set .@a,.@a + 1; end; OnNPCKillEvent: if(!rand(10000 / $@ABr)) { set .@m$,strcharinfo(3); set .@a,getarraysize(.m$); while(.@a) { set .@a,.@a - 1; if(compare(.@m$,.m$[.@a])) { set .@b,1; break; } } if(!.@ { if(getcharid(1)) { getpartymember getcharid(1),2; set .@a,$@partymembercount; if(.@a > 1) { copyarray .@b[0],$@partymemberaid[0],.@a; while(.@a) { set .@a,.@a - 1; if(attachrid(.@b[.@a])) if(.@m$ == strcharinfo(3)) continue; deletearray .@b[.@a],1; } set .@a,rand(getarraysize(.@); attachrid .@b[.@a]; } cleararray $@partymemberaid[0],0,.@a; set $@partymembercount,0; } On0: set .@i,getcharid(0) - 149999; if(!getd("$@AB"+.@i) && (getgmlevel() < .gm1)) { setd "$@AB"+.@i,1; set .@t,.t1; while((getd("$@AB"+.@i) == 1) && .@t) { if(!((.t1 - .@t) % 3)) { if(!((.t1 - .@t) % 2)) announce "["+$@AB$+"]: No te desconectes!!",bc_self,"0xff"+rand(5)+"0"+rand(5)+"0"; else announce "["+$@AB$+"]: Whispea a NPC:antibot para comenzar el test Antibot.",bc_self,"0xff"+rand(5)+"0"+rand(5)+"0"; emotion 0,1; } set .@t,.@t - 1; specialeffect2 548; sleep2 1000; } if(getd("$@AB"+.@i) == 1) { setd "$@AB"+.@i,2; addtimer 1,"antibot::On0"; } set .@t,$@ABt2; while((getd("$@AB"+.@i) == 2) && .@t) { itemskill 674,.@t; announce "["+$@AB$+"]: Te quedan "+.@t+" segundos para responder.",bc_self,"0xff"+rand(5)+"0"+rand(5)+"0"; set .@t,.@t - 1; sleep2 1000; } itemskill 674,0; if(getd("$@AB"+.@i)) callsub OnBan; } } } end; OnPCLoginEvent: OnPCLogoutEvent: if(getd("$@AB"+(getcharid(0) - 149999))) callsub OnBan; end; OnBan: setd "$@AB"+(getcharid(0) - 149999),0; set .@a$,strcharinfo(0); sleep 1000; atcommand .b$+" "+.@a$; announce .@a$+" ha sido sancionado por uso de bot.",bc_all,0xdd8833; set .@a,getarraysize($AB1$); if(.@a >= .bl) { deletearray $AB1$[0],1; deletearray $AB2$[0],1; set .@a,.bl - 1; } set $AB1$[.@a],.@a$; setarray .@b[0],gettime(5),gettime(6),gettime(3),gettime(2),gettime(1); set .@c,5; while(.@c) { set .@c,.@c - 1; set .@b$[.@c],.@b[.@c]; if(.@b[.@c] < 10) set .@b$[.@c],"0"+.@b$[.@c]; } set $AB2$[.@a],.@b$[0]+"/"+.@b$[1]+"/"+gettime(7)+" - "+.@b$[2]+":"+.@b$[3]+":"+.@b$[4]; end; } - script antibot -1,{ OnWhisperGlobal: if(getd("$@AB"+(getcharid(0) - 149999)) == 1) { On0: set .@i,getcharid(0) - 149999; setd "$@AB"+.@i,2; setoption 0x40,1; pcblockmove getcharid(3),1; specialeffect2 159; specialeffect2 160; set .@n$,"^008888"+$@AB$+"^000000"; mes .@n$; mes "Hola, "+strcharinfo(0); mes "No te asustes al leer este mensaje."; mes "Este es el Sistema AntiBot del servidor. Sigue mis instrucciones y no te pasará nada."; next; mes .@n$; mes "Para comprobar que no eres un bot, deberás completar un sencillo test."; mes "Si no consigues responder a tiempo, o si te desconectas antes de contestar, serás inmediatamente enviado a la cárcel."; set .@a,$@ABc; do { next; set .@a,.@a - 1; set .@b,rand(getarraysize($AB$)); set .@c,getstrlen($AB$[.@b]); cleararray .@d[0],0,getarraysize(.@d); set .@e,0; while(.@c) { set .@c,.@c - 1; if(compare("0123456789abcdefghijklmnñopqrstuvwxyz",charat($AB$[.@b],.@c))) { set .@d[.@e],.@c; set .@e,.@e + 1; } } set .@e,.@d[rand(.@e)]; set .@c$,charat($AB$[.@b],.@e); set .@a$,""; while(.@c < getstrlen($AB$[.@b])) { if(.@c == .@e) set .@a$,.@a$+"#"; else set .@a$,.@a$+""+charat($AB$[.@b],.@c); set .@c,.@c + 1; } mes .@n$; mes "Lee atentamente la frase que se muestra a continuación:"; mes " "; mes "^"+rand(3,9)+"0"+rand(3,9)+"0ff"+.@a$+"^000000"; mes " "; mes "Seguro que te has dado cuenta de que falta una letra marcada con un símbolo #."; mes "¿Cual es esa letra?"; next; input .@b$; if(compare(.@c$,.@b$)) setd "$@AB"+.@i,0; else if(.@a) { specialeffect2 611; mes .@n$; mes "Lo siento, esa no es la respuesta correcta."; mes "No te preocupes, un fallo lo puede tener cualquiera."; mes "Te daré un nuevo intento."; } else setd "$@AB"+.@i,3; } while(.@a && getd("$@AB"+.@i)); if(!getd("$@AB"+.@i)) { deltimer "antibot::On3"; emotion 21,1; mes .@n$; mes "Bien, puedes continuar jugando."; if(Hp) { getmapxy .@m$,.@x,.@y,0; setarray .@a$,"Aquí mismo.","En un punto aleatorio del mapa.","Volver al Punto de Inicio"; set .@b,0; set .@c,0; while(.@b < 3) { if( ((.@b == 1) && getmapflag(.@m$,mf_noteleport)) || ((.@b == 2) && getmapflag(.@m$,mf_noreturn)) ) deletearray .@a$[.@b],1; else { set .@a[.@c],.@b + 1; set .@c,.@c + 1; } set .@b,.@b + 1; } if(.@c > 1) { mes "¿Donde quieres que te deje?"; next; set .@c,prompt(.@a$[0],.@a$[1],.@a$[2]); } if(.@c < 255) { set .@c,.@a[.@c - 1]; close2; if(.@c == 2) set .@m$,"Random"; if(.@c == 3) set .@m$,"SavePoint"; } warp .@m$,.@x,.@y; skilleffect 350,0; skilleffect 8,0; skilleffect 73,0; sc_start 60,20000,0; sc_start 21,20000,10; sc_start 39,20000,10; } else close2; } setoption 0x40,0; pcblockmove getcharid(3),0; } end; } - script AB#0::AB -1,{ set .@n$,"^008888"+$@AB$+"^000000"; mes .@n$; mes "Bienvenido al Panel de Control del Antibot."; mes "¿En qué te puedo ayudar?"; next; if(getgmlevel() >= $@ABgm2) setarray .@a$[0],"Investigar posible bot","Ver lista de frases.","Añadir nueva frase.","Eliminar frase."; set .@a,select("^aa0000Salir^000000","Información sobre el AntiBot.","Ver lista de sancionados.",.@a$[0],.@a$[1],.@a$[2],.@a$[3]); mes .@n$; switch(.@a) { case 2: mes "^888888¿Qué es un bot?^000000"; mes "Un bot es un programa informático creado para imitar el comportamiento de un humano."; next; mes .@n$; mes "^888888¿Qué es un bot?^000000"; mes "Estos bots son utilizados de forma indeseada por algunos jugadores de Ragnarok Online para mantener a su personaje entrenando y buscando items sin necesidad de estar controlándolo."; next; mes .@n$; mes "^888888¿Qué es un bot?^000000"; mes "Logicamente esto está totalmente prohibido en este servidor, pues desequilibra el juego respecto a los jugadores sensatos que quieren disfrutar de sus personajes por sí mismos."; next; mes .@n$; mes "^888888¿Qué es un sistema AntiBot?^000000"; mes "Un sistema AntiBot es un script cuyo objetivo es mantener el servidor limpio de bots."; next; mes .@n$; mes "^888888¿Qué es un sistema AntiBot?^000000"; mes "Estos sistemas principalmente buscan diferenciar el comportamiento de un bot del de un jugador real, y en el caso de detectar la presencia de un bot, le expulsan del juego y banean la cuenta de su propietario."; next; mes .@n$; mes "^888888¿Cómo funciona éste sistema AntiBot?^000000"; mes "Este script AntiBot está basado el el método NPCKillEvent."; mes "Cada vez que un jugador mate un monstruo en el juego, existirá una muy pequeña probabilidad de activar el sistema AntiBot."; next; mes .@n$; mes "^888888¿Cómo funciona éste sistema AntiBot?^000000"; mes "Entonces el AntiBot formulará una sencilla pregunta que el jugador deberá responder correctamente en un tiempo máximo de "+$@ABt2+" segundos."; next; mes .@n$; mes "^888888¿Cómo funciona éste sistema AntiBot?^000000"; mes "Si el jugador falla tras "+$@ABc+" intentos, abandona el juego o simplemente no contesta a la pregunta en el tiempo estimado, será considerado un bot y será consecuentemente sancionado."; next; mes .@n$; mes "^888888¿Y los bots no pueden responder a esas preguntas?^000000"; mes "A diferencia de otros scripts AntiBot, las preguntas formuladas por este AntiBot no son generadas por ningún algoritmo aleatorio, que podría ser detectado por un bot adecuadamente programado."; next; mes .@n$; mes "^888888¿Y los bots no pueden responder a esas preguntas?^000000"; mes "En cambio, son los propios GMs del servidor los encargados de crear estas preguntas."; mes "éstos deberán asegurarse de actualizar con frecuencia las preguntas para que los bots no puedan memorizarlas."; next; mes .@n$; mes "Para familiarizarte un poco con el funcionamiento del AntiBot, a continuación puedes realizar una sencilla demostración."; next; set .@a,select("^aa0000Salir^000000","Realizar demostración") - 1; if(.@a) { set .@t$,"Blancanieves y los 7 enanitos"; set .@b,getstrlen(.@t$); set .@c,0; while(.@ { set .@b,.@b - 1; if(compare("0123456789abcdefghijklmnñopqrstuvwxyz",charat(.@t$,.@)) { set .@d[.@c],.@b; set .@c,.@c + 1; } } while(.@a) { set .@e,.@d[rand(.@c)]; set .@c$,charat(.@t$,.@e); set .@a$,""; set .@b,0; while(.@b < getstrlen(.@t$)) { if(.@b == .@e) set .@a$,.@a$+"#"; else set .@a$,.@a$+""+charat(.@t$,.@; set .@b,.@b + 1; } mes .@n$; mes "Lee atentamente la frase que se muestra a continuación:"; mes " "; mes "^"+rand(3,9)+"0"+rand(3,9)+"0ff"+.@a$+"^000000"; mes " "; mes "Seguro que te has dado cuenta de que falta una letra marcada con un símbolo #."; mes "¿Cual es esa letra?"; next; input .@b$; if(compare(.@c$,.@b$)) set .@a,0; else { specialeffect2 611; mes .@n$; mes "Lo siento, esa no es la respuesta correcta."; mes "No te preocupes, un fallo lo puede tener cualquiera."; mes "Te daré un nuevo intento."; next; } } emotion 21; mes .@n$; mes "¡Muy bien!"; mes "¿A que no es tan difícil?"; next; } mes .@n$; break; case 3: mes "Esta lista muestra las últimas 20 penalizaciones por uso de bot realizadas por el AntiBot."; mes "Espera unos segundos mientras envío la lista de sancionados a tu ventana de chat."; close2; emotion 5; announce "[ Fecha - Hora ] - Nombre",bc_self,0xff7700; set .@a,getarraysize($AB1$); if(!.@a) announce "No se han encontrado resultados.",bc_self,"0x"+rand(7,9)+"0"+rand(7,9)+"0"+rand(7,9)+"0"; while(.@a) { set .@a,.@a - 1; announce "[ "+$AB2$[.@a]+" ] - "+$AB1$[.@a],bc_self,"0x"+rand(7,9)+"0"+rand(7,9)+"0"+rand(7,9)+"0"; } announce "----------",bc_self,0xff7700; end; case 4: mes "Escribe el nombre del personaje que deseas investigar."; next; input .@a$; mes .@n$; set .@a,getcharid(3,.@a$); if(.@a) { set .@b,getcharid(3); attachrid .@a; doevent "antibot_main::On0"; attachrid .@b; mes "Muy bien."; mes "Se ha iniciado un test AntiBot para comprobar si el jugador "+.@a$+" es realmente un bot."; mes "Gracias por la colaboración."; emotion 21; } else { mes "No se ha encontrado ningún personaje actualmente conectado con ese nombre."; mes "Comprueba que lo has escrito bien e intentalo más tarde."; emotion 40; } next; mes .@n$; break; case 5: mes "Esta lista contiene todas las posibles frases de los tests del AntiBot."; mes "Espera unos segundos mientras envío la lista de frases a tu ventana de chat."; close2; emotion 5; announce "[ nº ] - Frase",bc_self,0xff7700; set .@a,getarraysize($AB$); if(!.@a) announce "No se han encontrado resultados.",bc_self,"0x"+rand(7,9)+"0"+rand(7,9)+"0"+rand(7,9)+"0"; while(.@b < .@a) { set .@b,.@b + 1; announce "[ "+.@b+" ] - "+$AB$[.@b - 1],bc_self,"0x"+rand(7,9)+"0"+rand(7,9)+"0"+rand(7,9)+"0"; } announce "----------",bc_self,0xff7700; end; case 6: mes "Escribe la frase que deseas añadir a la lista del AntiBot."; next; input .@a$; set .@a,getstrlen(.@a$); while(.@a) { set .@a,.@a - 1; if(compare("0123456789abcdefghijklmnñopqrstuvwxyz",charat(.@a$,.@a))) set .@b,.@b + 1; } mes .@n$; if(.@b >= 5) { set .@a,getarraysize($AB$); if(.@a == 128) { deletearray $AB$[0],1; set .@a,127; } set $AB$[.@a],.@a$; mes "Tu frase ha sido añadida a la lista del AntiBot:"; mes "[ "+(.@a + 1)+" ] - ^"+rand(3,9)+"0"+rand(3,9)+"0ff"+.@a$+"^000000"; emotion 21; } else { mes "Lo siento, tu frase no contiene suficientes carácteres simples."; emotion 40; } next; mes .@n$; break; case 7: mes "Selecciona el número de frase que quieres eliminar:"; next; input .@a; mes .@n$; if((.@a > 0) && (.@a < getarraysize($AB$))) { deletearray $AB$[.@a - 1],1; mes "Muy bien."; mes "La frase nº "+.@a+" ha sido eliminada."; emotion 21; } else { mes "Lo siento, el número seleccionado no se corresponde con ninguna frase de la lista."; emotion 40; } next; mes .@n$; break; } mes "Recuerda:"; mes "El juego limpio siempre es más divertido."; close2; emotion 12; end; } alberta,195,134,4 duplicate(AB) AB#1 852 alberta,55,250,5 duplicate(AB) AB#2 852 aldebaran,133,112,6 duplicate(AB) AB#3 852 aldebaran,133,232,6 duplicate(AB) AB#4 852 alde_gld,234,146,4 duplicate(AB) AB#5 852 amatsu,240,275,6 duplicate(AB) AB#6 852 amatsu,95,262,4 duplicate(AB) AB#7 852 amatsu,207,96,4 duplicate(AB) AB#8 852 ayothaya,212,200,4 duplicate(AB) AB#9 852 ayothaya,157,74,4 duplicate(AB) AB#10 852 comodo,180,325,4 duplicate(AB) AB#11 852 comodo,205,108,4 duplicate(AB) AB#12 852 comodo,312,183,4 duplicate(AB) AB#13 852 comodo,40,223,6 duplicate(AB) AB#14 852 einbech,66,88,6 duplicate(AB) AB#15 852 einbech,131,241,6 duplicate(AB) AB#16 852 einbech,46,201,8 duplicate(AB) AB#17 852 einbroch,70,187,2 duplicate(AB) AB#18 852 einbroch,145,313,6 duplicate(AB) AB#19 852 einbroch,152,45,4 duplicate(AB) AB#20 852 einbroch,253,239,2 duplicate(AB) AB#21 852 geffen,123,65,4 duplicate(AB) AB#22 852 geffen,41,103,6 duplicate(AB) AB#23 852 geffen,124,173,4 duplicate(AB) AB#24 852 geffen,175,123,6 duplicate(AB) AB#25 852 gef_fild13,195,240,4 duplicate(AB) AB#26 852 gonryun,152,106,6 duplicate(AB) AB#27 852 gonryun,164,178,2 duplicate(AB) AB#28 852 gonryun,149,14,6 duplicate(AB) AB#29 852 hugel,101,126,4 duplicate(AB) AB#30 852 hugel,180,166,4 duplicate(AB) AB#31 852 izlude,121,90,6 duplicate(AB) AB#32 852 jawaii,137,251,4 duplicate(AB) AB#33 852 yuno,175,85,4 duplicate(AB) AB#34 852 yuno,72,199,4 duplicate(AB) AB#35 852 sch_gld,291,119,4 duplicate(AB) AB#36 852 lighthalzen,209,91,6 duplicate(AB) AB#37 852 lighthalzen,218,318,4 duplicate(AB) AB#38 852 lighthalzen,311,295,4 duplicate(AB) AB#39 852 louyang,199,104,6 duplicate(AB) AB#40 852 louyang,57,242,4 duplicate(AB) AB#41 852 xmas,139,302,6 duplicate(AB) AB#42 852 xmas,165,106,4 duplicate(AB) AB#43 852 morocc,166,72,4 duplicate(AB) AB#44 852 morocc,51,174,4 duplicate(AB) AB#45 852 morocc,166,285,4 duplicate(AB) AB#46 852 morocc,283,197,8 duplicate(AB) AB#47 852 morocc,37,286,4 duplicate(AB) AB#48 852 moscovia,238,202,4 duplicate(AB) AB#49 852 moscovia,161,60,4 duplicate(AB) AB#50 852 niflheim,33,160,6 duplicate(AB) AB#51 852 niflheim,197,192,4 duplicate(AB) AB#52 852 payon,213,68,6 duplicate(AB) AB#53 852 payon,156,49,2 duplicate(AB) AB#54 852 payon,232,312,4 duplicate(AB) AB#55 852 payon,63,116,6 duplicate(AB) AB#56 852 pay_gld,201,153,4 duplicate(AB) AB#57 852 prontera,165,67,4 duplicate(AB) AB#58 852 prontera,44,212,6 duplicate(AB) AB#59 852 prontera,164,166,4 duplicate(AB) AB#60 852 prontera,255,213,4 duplicate(AB) AB#61 852 prontera,161,308,4 duplicate(AB) AB#62 852 prt_gld,166,71,4 duplicate(AB) AB#63 852 rachel,268,136,4 duplicate(AB) AB#64 852 rachel,150,148,4 duplicate(AB) AB#65 852 rachel,135,41,4 duplicate(AB) AB#66 852 rachel,43,131,6 duplicate(AB) AB#67 852 aru_gld,179,322,6 duplicate(AB) AB#68 852 umbala,125,126,8 duplicate(AB) AB#69 852 umbala,163,245,4 duplicate(AB) AB#70 852 veins,213,232,4 duplicate(AB) AB#71 852 veins,222,348,4 duplicate(AB) AB#72 852 veins,161,62,6 duplicate(AB) AB#73 852 mid_camp,223,287,4 duplicate(AB) AB#74 852 mid_camp,142,237,6 duplicate(AB) AB#75 852 mid_camp,248,234,8 duplicate(AB) AB#76 852 manuk,277,124,2 duplicate(AB) AB#77 852 manuk,179,173,6 duplicate(AB) AB#78 852 splendide,181,133,6 duplicate(AB) AB#79 852 atau adakah yang punya anti bot agar ID tertentu tidak terkena anti bot?
-
can someone help me with this anti bot? i want to make this anti bot will check the player when player enter the MVP map like abbey02,prt_sewb04,etc - script Anti Bot::ABChecker -1,{ //OnNPCKillEvent: set @killmonster,@killmonster+1; if (@killmonster>=@killcekmin) { set @killmonster,0; goto OnCekBot; } end; OnPCLoadMapEvent: if(getmapflag("abbey02","anthell01","anthell02","prt_sewb4","tur_dun04" ) ){ getmapxy .@map$, .@x, .@y, 0; if (.@map$=="prontera" || .@map$=="morocc" || .@map$=="payon" || .@map$=="geffen" || .@map$=="izlude" || .@map$=="alberta" || .@map$=="aldebaran" || .@map$=="lutie" || .@map$=="comodo" || .@map$=="yuno" || .@map$=="amatsu" || .@map$=="gonryun" || .@map$=="umbala" || .@map$=="niflheim" || .@map$=="louyang" || .@map$=="jawaii" || .@map$=="ayothaya" || .@map$=="einbroch" || .@map$=="lighthalzen" || .@map$=="einbech" || .@map$=="hugel" || .@map$=="rachel" || .@map$=="veins" || .@map$=="moscovia") end; sleep2 1; set @killcekmin,rand(50,110); //Tiap membunuh 50~110 monster, akan Cek Bot set @killmonster,0; set @checking,0; set @sukses,0; set @isGM,0; if(getgmlevel() > 10) set @isGM,1; //Untuk Player biasa + GM dibawah level 10 OnCekBot: if (@isGM) end; if (@checking==1) end; set @checking,1; sleep2 1; getmapxy .@map$, .@x, .@y, 0; if(checkcart() == 1) set .@cart,1; if(checkfalcon() == 1) set .@falcon,1; if(checkriding() == 1) set .@riding,1; if(checkwarg() == 1) set .@warg,1; atcommand "@option 2 0 0"; atcommand "@battleignore"; setoption 0x2,1; sc_start sc_berserk, 1000000000, 1; mes "[^FF0000Petugas Bot^000000]"; mes "Pemeriksaan bot!!"; mes "Saya perlu tau apakah anda bermain BOT!! ^FF0000Don't Cheat Me!!!^000000"; next; set .@kodeacak$,""; set .@kode,0; set .@pangkat,10000; set .@hex$[1],"^FF0FF0"; //Pink(?) set .@hex$[2],"^FF0000"; //Merah set .@hex$[3],"^00FF00"; //Hijau set .@hex$[4],"^00FFFF"; //Kuning set .@hex$[5],"^0000FF"; //Biru set .@sekarang,0; set .@baris$[1],"^F0F0F0####"; set .@baris$[2],"^F0F0F0####"; set .@baris$[3],"^F0F0F0####"; set .@baris$[4],"^F0F0F0####"; set .@baris$[5],"^F0F0F0####"; ULANG: set .@sekarang,.@sekarang+1; switch( rand(1,9) ) { case 1: set .@kode,.@kode+(1*.@pangkat); set .@kodeacak$,"1"; break; case 2: set .@kode,.@kode+(2*.@pangkat); set .@kodeacak$,"2"; break; case 3: set .@kode,.@kode+(3*.@pangkat); set .@kodeacak$,"3"; break; case 4: set .@kode,.@kode+(4*.@pangkat); set .@kodeacak$,"4"; break; case 5: set .@kode,.@kode+(5*.@pangkat); set .@kodeacak$,"5"; break; case 6: set .@kode,.@kode+(6*.@pangkat); set .@kodeacak$,"6"; break; case 7: set .@kode,.@kode+(7*.@pangkat); set .@kodeacak$,"7"; break; case 8: set .@kode,.@kode+(8*.@pangkat); set .@kodeacak$,"8"; break; case 9: set .@kode,.@kode+(9*.@pangkat); set .@kodeacak$,"9"; break; } set .@baris$[1],.@baris$[1]+.@hex$[.@sekarang]+.@kodeacak$+"^F0F0F0###"; set .@baris$[2],.@baris$[2]+rand(1,9)+"###"; set .@baris$[3],.@baris$[3]+rand(1,9)+"###"; set .@baris$[4],.@baris$[4]+rand(1,9)+"###"; set .@baris$[5],.@baris$[5]+rand(1,9)+"###"; set .@pangkat,.@pangkat/10; if (.@sekarang<5) goto ULANG; mes ""; switch( rand(1,4) ) { case 1: mes .@baris$[1]; //BOOM mes .@baris$[2]; mes .@baris$[3]; mes .@baris$[4]; mes .@baris$[5]; break; case 2: mes .@baris$[3]; mes .@baris$[1]; //BOOM mes .@baris$[2]; mes .@baris$[4]; mes .@baris$[5]; break; case 3: mes .@baris$[3]; mes .@baris$[4]; mes .@baris$[1]; //BOOM mes .@baris$[2]; mes .@baris$[5]; break; case 4: mes .@baris$[3]; mes .@baris$[4]; mes .@baris$[5]; mes .@baris$[1]; //BOOM mes .@baris$[2]; break; case 5: mes @baris$[3]; mes @baris$[4]; mes @baris$[5]; mes @baris$[2]; mes @baris$[1]; //BOOM break; } next; input .@num; if(.@num==.@kode) goto LJawab; if(.@cart == 1) { setcart; } if(.@falcon == 1) { setfalcon; } if(.@riding == 1) { setriding; } if(.@warg == 1) { setwarg; } atcommand "@kick " + strcharinfo(0); atcommand "@kamib "+ strcharinfo(0) +" telah di Kick Karena Bermain BOT!!"; end; LJawab: mes "[^FF8000Petugas Bot^000000]"; mes "Terima kasih atas perhatiannya... Selamat bermain~"; L_All: atcommand "@option 0 0 0"; atcommand "@battleignore"; setoption 0x2,0; sc_end sc_berserk; percentheal 100,100; message strcharinfo(0),"Antibot terjawab"; doevent "ABTimer::OnSukses"; set @checking,0; if(.@cart == 1) { setcart; } if(.@falcon == 1) { setfalcon; } if(.@riding == 1) { setriding; } if(.@warg == 1) { setwarg; } close; } } - script Anti Bot::ABTimer -1,{ //20 detik gak dijawab, akan dikick dari server OnPCLoadMapEvent: if(getmapflag("abbey02","anthell01","anthell02","prt_sewb4","tur_dun04" ) ){ getmapxy .@map$, .@x, .@y, 0; if (.@map$=="prontera" || .@map$=="morocc" || .@map$=="payon" || .@map$=="geffen" || .@map$=="izlude" || .@map$=="alberta" || .@map$=="aldebaran" || .@map$=="lutie" || .@map$=="comodo" || .@map$=="yuno" || .@map$=="amatsu" || .@map$=="gonryun" || .@map$=="umbala" || .@map$=="niflheim" || .@map$=="louyang" || .@map$=="jawaii" || .@map$=="ayothaya" || .@map$=="einbroch" || .@map$=="lighthalzen" || .@map$=="einbech" || .@map$=="hugel" || .@map$=="rachel" || .@map$=="veins" || .@map$=="moscovia") end; sleep2 20; if (@isGM) end; attachnpctimer; setnpctimer 0; initnpctimer; message strcharinfo(0),"20 detik waktu tersisa untuk menjawab Antibot."; close; end; OnTimer10000: if(@sukses == 0) { message strcharinfo(0),"10 detik lagi."; end; } OnTimer15000: if(@sukses == 0) { message strcharinfo(0),"5..."; end; } OnTimer16000: if(@sukses == 0) { message strcharinfo(0),"4..."; end; } OnTimer17000: if(@sukses == 0) { message strcharinfo(0),"3..."; end; } OnTimer18000: if(@sukses == 0) { message strcharinfo(0),"2..."; end; } OnTimer19000: if(@sukses == 0) { message strcharinfo(0),"1..."; end; } OnTimer20000: if(@sukses == 0) { dispbottom "0..."; atcommand "@kick "+strcharinfo(0); stopnpctimer; setnpctimer 0; end; } OnSukses: set @sukses,1; end; } } abbey02 anthell01 mapflag loadevent anthell02 mapflag loadevent prt_sewb4 mapflag loadevent tur_dun04 mapflag loadevent
-
is there anyone got custom theme of this CP? can u share to me?
-
as you can see 28 : "^008000- ^000000 Monday ^FF0000["+ (getmapusers("sch_gld.gat"))+ "]^000000",PRT, 29 : "^008000- ^000000 Tuesday ^FF0000["+ (getmapusers("gef_fild13.gat"))+ "]^000000",PAY, 30 : "^008000- ^000000 Wednesday ^FF0000["+ (getmapusers("prt_gld.gat"))+ "]^000000",GEF, 31 : "^008000- ^000000 Thursday ^FF0000["+ (getmapusers("aru_gld.gat"))+ "]^000000",ALDE; * 32 : '"'^008000- ^000000 Friday ^FF0000["+ (getmapusers("aru_gld.gat"))+ "]^000000",AL1; 33 : "^008000- ^000000 Saturday ^FF0000["+ (getmapusers("prt_gld.gat"))+ "]^000000",ALE2; 34 : "^008000- ^000000 Sunday ^FF0000["+ (getmapusers("sch_gld.gat"))+ "]^000000",ADE3; change the ";" to "," in line 31,32,33 so it's like this 28 : "^008000- ^000000 Monday ^FF0000["+ (getmapusers("sch_gld.gat"))+ "]^000000",PRT, 29 : "^008000- ^000000 Tuesday ^FF0000["+ (getmapusers("gef_fild13.gat"))+ "]^000000",PAY, 30 : "^008000- ^000000 Wednesday ^FF0000["+ (getmapusers("prt_gld.gat"))+ "]^000000",GEF, 31 : "^008000- ^000000 Thursday ^FF0000["+ (getmapusers("aru_gld.gat"))+ "]^000000",ALDE, * 32 : '"'^008000- ^000000 Friday ^FF0000["+ (getmapusers("aru_gld.gat"))+ "]^000000",AL1, 33 : "^008000- ^000000 Saturday ^FF0000["+ (getmapusers("prt_gld.gat"))+ "]^000000",ALE2, 34 : "^008000- ^000000 Sunday ^FF0000["+ (getmapusers("sch_gld.gat"))+ "]^000000",ADE3; hope this can help
-
cek in conf/battle/client // NOTE: If you don't know what this does, don't change it!!! max_lv: 99 also open src/map/map.h #define MAX_LEVEL 1000 <<make like this and don't forget your exp.txt hope this help
-
Command to see player stats, item and equipment details
backtea replied to pojiejapan's question in General Support
is your as admin or gm... for stats use #stats (player name), for item n equipment use #itemlist (player name).. hope this help -
hey can i ask?? why in my server storm gust just one hit?? the fact is storm gust will hit until the magic gone.. where i can change it to normal?
-
i want to know how to increase cart weight?? thx for help
-
i want to ask... how to make 100% resistance in case vit 170?? so i don't need luck to be 100 resist from all status like freeze,stun,etc...
-
can i request for npc refiner that reduce my item refine?? example my valk +6 i want to make it to +5 ?? is that exist??
-
do you already recompile your server??
-
Where's location bonus bAtkEle decription?
backtea replied to Amellia sizilia sembiring's question in Database Support
try this one skill i,n; Gives skill #i at level n (supports skill names) bonus bStr,n; STR + n bonus bAgi,n; AGI + n bonus bVit,n; VIT + n bonus bInt,n; INT + n bonus bDex,n; DEX + n bonus bLuk,n; LUK + n bonus bAllStats,n; STR + n, AGI + n, VIT + n, INT + n, DEX + n, LUK + n bonus bAgiVit,n; AGI + n, VIT + n bonus bAgiDexStr,n; STR + n, AGI + n, DEX + n bonus bMaxHP,n; MaxHP + n bonus bMaxSP,n; MaxSP + n bonus bMaxHPrate,n; MaxHP + n% bonus bMaxSPrate,n; MaxSP + n% bonus bAtk,n; ATK + n bonus bAtk2,n; ATK2 + n bonus bAtkRate,n; Attack power + n% bonus bBaseAtk,n; Basic attack power + n bonus bMatkRate,n; Magical attack power + n% bonus bDef,n; Equipment DEF + n bonus bDef2,n; VIT based DEF + n bonus bDefRate,n; Equipment DEF + n% bonus bDef2Rate,n; VIT based DEF + n% bonus bMdef,n; Equipment MDEF + n bonus bMdef2,n; INT based MDEF + n bonus bMdefRate,n; Equipment MDEF + n% bonus bMdef2Rate,n; INT based MDEF + n% bonus bHit,n; Hit + n bonus bHitRate,n; Hit + n% bonus bCritical,n; Critical + n bonus bCriticalRate,n; Critical + n% bonus bFlee,n; Flee + n bonus bFleeRate,n; Flee + n% bonus bFlee2,n; Perfect Dodge + n bonus bFlee2Rate,n; Perfect Dodge + n% bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied) bonus bSpeedAddRate,n; Moving speed + n% bonus bAspd,n; Attack speed + n bonus bAspdRate,n; Attack speed + n% bonus bAtkRange,n; Attack range + n bonus bCastrate,n; Skill casting time rate + n% bonus bUseSPrate,n; SP consumption + n% bonus bHPrecovRate,n; Natural HP recovery ratio + n% bonus bSPrecovRate,n; Natural SP recovery ratio + n% bonus bDoubleRate,n; Double Attack probability n% (works with all weapons | only the highest among all is applied) bonus bDoubleAddRate,n; Double Attack probability + n% (works with all weapons) bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied) bonus bPerfectHitAddRate,n; On-target impact attack probability + n% bonus bCriticalDef,n; Critical ? and others the trap it is, probability + n% bonus bNearAtkDef,n; Adds n% damage reduction against melee physical attacks bonus bLongAtkDef,n; Adds n% damage reduction against ranged physical attacks bonus bMagicAtkDef,n; Adds n% damage reduction against magical attacks bonus bMiscAtkDef,n; Adds n% damage reduction against MISC attacks (traps, falcon, ...) bonus bIgnoreDefRace,n; Disregard DEF against enemies of race n n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus bIgnoreDefEle,n; Disregard DEF against enemies of element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus bIgnoreMDefRace; Disregard MDEF against enemies of race n n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus bIgnoreMDefEle; Disregard MDEF against enemies of element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus bIgnoreMdefRate,n; Disregard n% of the target's MDEF bonus bDefRatioAtkRace,n; Does more damage depending on monster Defense against race n (defense disregard) : n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus bDefRatioAtkEle,n; n attribute if defensive power is high the high extent big damage is given, (defense disregard) : n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus bAtkEle,n; Gives the player's attacks element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus bDefEle,n; Gives the player's defense element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus bSplashRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc) Only the highest among all is applied bonus bSplashAddRange n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc) bonus bRestartFullRecover,n; When reviving, HP and SP are fully healed (n is meaningless) bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless) bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless) bonus bNoSizeFix,n; The attack revision with the size of the monster is not received (n is meaningless) bonus bNoWeaponDamage,n; Prevents from receiving any physical damage (n is meaningless) bonus bNoMagicDamage,n; Prevents from receiving any magical effect (Attack, Healing, Support spells are all blocked | n is meaningless) bonus bNoGemStone,n; Skills requiring Gemstones do no require them (Hocus Pocus will still require 1 Yellow Gemstone | n is meaningless) bonus bIntravision,n; Always see Hiding and Cloaking players/mobs (n is meaningless) bonus bHealPower,n; Increase heal amount of all heal skills by n% bonus bHealPower2,n; Increase heal amount if you are healed by any skills by n% bonus2 bAddEff,e,x; Adds a x/10000 chance to cause effect e to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc) e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stun, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding bonus2 bResEff,e,x; Adds a x/10000 tolerance to effect e (e.g. x=100 makes 1% tolerance, x=10000 makes 100% tolerance, etc) e: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stun, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding bonus2 bCastrate,n,x; Adjust casting time of skill n by x% (supports skill names) bonus2 bAddSize,n,x; +x% physical damage against size n. n: 0=Small 1=Medium 2=Large bonus2 bMagicAddSize,n,x; +x% magical damage against size n. n: 0=Small 1=Medium 2=Large bonus2 bSubSize,n,x; x% Damage reduction against size n. n: 0=Small 1=Medium 2=Large bonus2 bAddRace,n,x; +x% physical damage against race n n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus2 bMagicAddRace,n,x; +x% magical damage against race n n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus2 bSubRace,n,x; +x% damage reduction against race n n: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus2 bAddEle,n,x; +x% physical damage against element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus2 bMagicAddEle,n,x +x% magical damage against element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus2 bSubEle,n,x; x% Damage reduction against element n. n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus2 bAddDamageClass,n,x; +x% extra physical damage against monsters of class n Against players, n is their job id bonus2 bAddMagicDamageClass,n,x; +x% extra magical damage against monsters of class n Against players, n is their job id. bonus2 bAddDefClass,n,x; x% physical damage reduction against monsters of class n Against players, n is their job id. bonus2 bAddMDefClass,n,x; x% magical damage reduction against monsters of class n Against players, n is their job id. bonus2 bIgnoreMdefRate,n,x; Disregard x% of the target's MDEF if the target belongs to race n; bonus2 bHPDrainRate,n,x; n/10 % probability to drain x% HP when attacking bonus2 bSPDrainRate,n,x; n/10 % probability to drain x% SP when attacking bonus2 bSPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy's SP (player) amount by x% when attacking bonus2 bAddMonsterDropItem,n,x; Adds a x/100% chance for item n to be dropped, when killing any monster. if 'x' is negative value, then it's a part of formula chance = -x*(killed_mob_level/10)+1 bonus2 bGetZenyNum,n,x; When killing a monster, there is a x% chance of gaining 1~n zeny (only the highest among all is applied). If n < 0, the max zeny to gain is -n*monster level. bonus2 bAddGetZenyNum,n,x; Same as bGetZenyNum, but the rates and zeny to gain stack. bonus3 bAddMonsterDropItem,n,x,y; Adds a y/100% chance for item n to be dropped, when killing any monster of race x. 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster if 'y' is negative value, then it's a part of formula chance = -y*(killed_mob_level/10)+1 bonus3 bAutoSpell,n,x,y; Auto Spell casting on attack of spell n at level x with y/10% chance. (supports skill names) Skill is casted on target unless it is a self or support (inf = 4/16) skill. // bAddDamageClass, bAddMagicDamageClass and bAddMonsterDropItem it is setting possible up to 10. Those which exceed 10 are ignored. // those which can be used with the arrow are only bCritical, bAtkEle, bHit, bAddEle, bAddRace, bAddSize and bAddEff. The other things are ignored. //---- 2/15 new card effects ---- bonus bCritAtkRate,n; Increase critical damage by +n% bonus bNoRegen,n; Stops regeneration for n n: 1=HP, 2=SP bonus bUnstripableWeapon,n; Weapon cannot be taken off via Strip skills (n is meaningless) bonus bUnstripableArmor,n; Armor cannot be taken off via Strip skills (n is meaningless) bonus bUnstripableHelm,n; Helm cannot be taken off via Strip skills (n is meaningless) bonus bUnstripableShield,n; Shield cannot be taken off via Strip skills (n is meaningless) bonus bSPGainValue,n; When killing a monster by physical attack, you gain n SP bonus bHPGainValue,n; When killing a monster by physical attack, you gain n HP bonus bIgnoreDefMob,n; Ignore monster's DEF when attacking. n: 0=All normal monster except Bosses, 1=All monsters bonus2 bCriticalAddRace,r,n; Critical + n vs. enemies of race r r: 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bonus2 bHPRegenRate,n,x; Gain n HP every x milliseconds bonus2 bHPLossRate,n,x; Lose n HP every x milliseconds bonus2 bAddEffWhenHit,n,x; x/100% chance to cause n state to the enemy when being hit by physical damage bonus2 bSkillAtk,n,x; Increase damage of skill n by x% (supports skill names) bonus2 bSkillHeal,n,x; Increase heal amount of skill n by x% (supports skill names) bonus2 bSkillHeal2,n,x; Increase heal amount if you are healed by skill n by x% (supports skill names) bonus2 bAddDamageByClass,n,x; When being hit by monster of class n increase damage by x% bonus2 bAddRace2,n,x; Increase damage by x% vs. enemies of race n (Check db/mob_race2_db.txt) y: 0=Don't show damage 1=Show damage bonus3 bAutoSpellWhenHit,x,y,n; n/10% chance to cast skill x of level y on attacker (unless it is a self or support skill) when being hit by a direct attack. (supports skill names) Target must be within spell's range to go off. bonus3 bSPDrainRate,n,x,y; When attacking there is a n% chance to either gain SP equivalent to x% of damage dealt, OR drain the amount of sp from the enemy. y: 0=gain sp 1:drain enemy sp bonus4 bAutoSpell,x,y,n,i; n/10% chance to cast skill x of level y when attacking (supports skill names) i: 0=cast on self 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) bonus4 bAutoSpellWhenHit,x,y,n,i; n/10% chance to cast skill x of level y when being hit by a direct attack. (supports skill names) Target must be within spell's range to go off. i: 0=cast on self 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) bonus5 bAutoSpell,x,y,n,t,i; n/10% chance to cast skill x of level y when attacking (supports skill names) t: Trigger criteria: BF_SHORT: Trigger on melee attack BF_LONG: Trigger on ranged attack ( Default: BF_SHORT+BF_LONG ) BF_WEAPON: Trigger on weapon skills BF_MAGIC: Trigger on magic skills BF_MISC: Trigger on misc skills ( Default: BF_WEAPON ) BF_NORMAL: Trigger on normal attacks. BF_SKILL: Trigger on skills (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) i: 0=cast on self 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) bonus5 bAutoSpellWhenHit,x,y,n,t,i; n/10% chance to cast skill x of level y when being hit by a direct attack. (supports skill names) Target must be within spell's range to go off. t: Trigger criteria: BF_SHORT: Trigger on melee attack BF_LONG: Trigger on ranged attack ( Default: BF_SHORT+BF_LONG ) BF_WEAPON: Trigger on weapon skills BF_MAGIC: Trigger on magic skills BF_MISC: Trigger on misc skills ( Default: BF_WEAPON ) BF_NORMAL: Trigger on normal attacks. BF_SKILL: Trigger on skills (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) i: 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) //---- 2/22 new card effects ---- bonus2 bAddItemHealRate,n,x; Increases HP recovered by n type items by x%, you can also use direct item IDs instead of group values. (Check db/item_group_db.txt) //---- 3/15 new card effects ---- bonus2 bSPRegenRate,n,x; Gain n SP every x milliseconds bonus2 bSPLossRate,n,x; Lose n SP every x milliseconds bonus2 bExpAddRace,n,x; Increase exp gained by x% vs. enemies of race n bonus2 bSPGainRace,n,x; When killing a monster of race n by physical attack gain x amount of sp bonus2 bSubRace2,n,x; Damage x% reduction from enemies of race n (Check db/mob_race2_db.txt) bonus2 bAddMonsterDropItemGroup,n,x; Adds a x/100% chance to get an item of group type n when you kill a monster (Check db/item_group_db.txt) if 'x' is negative value, then it's a part of formula chance = -x*(killed_mob_level/10)+1 bonus3 bAddEff,n,x,y; Adds a x/10000 chance to cause effect n to the target when attacking (e.g. x=100 makes 1% chance, x=10000 makes 100% chance, etc). y is the trigger criteria: ATF_SELF: Trigger effect on self. ATF_TARGET: Trigger effect on target (default) ATF_SHORT: Trigger on melee attacks ATF_LONG: Trigger in ranged attacks (default: trigger on all attacks) bonus3 bAddEffWhenHit,n,x,y; x/10000 chance to cause n state to the enemy when being hit by physical damage. y is the trigger criteria: ATF_SELF: Trigger effect on self. ATF_TARGET: Trigger effect on target (default) ATF_SHORT: Trigger on melee attacks ATF_LONG: Trigger in ranged attacks (default: trigger on all attacks) bonus3 bAddMonsterDropItemGroup,n,x,y; Adds a y/100% chance to get an item of group type n when you kill a monster of race x (Check db/item_group_db.txt) 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster if 'y' is negative value, then it's a part of formula chance = -y*(killed_mob_level/10)+1 bonus2 bWeaponComaRace,x,y; y/100% chance to cause Coma when attacking a monster of race x with a normal attack 0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect, 5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 10=Boss monster, 11=Other than (normal monster) boss monster bAddStealRate,n; n/100% increase to Steal skill success chance bonus2 bAddSkillBlow,x,y; Pushback the target by y cells when using skill x (supports skill names) bonus bSPDrainValue,n; When hitting a monster by physical attack, you gain n SP (use negative numbers so the user loses SP) bonus2 bSPDrainValue,n,x; When hitting a monster by physical attack, ... x: 0=you gain n SP 1=you drain n SP from target bonus2 bIgnoreDefRate,n,x; Disregard x% of the target's DEF if the target belongs to race n; bonus3 bAddEle,n,x,t; +x% physical damage against element n n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead t: Trigger criteria: BF_SHORT: Trigger on melee attack BF_LONG: Trigger on ranged attack ( Default: BF_SHORT+BF_LONG ) BF_WEAPON: Trigger on weapon skills BF_MAGIC: Trigger on magic skills BF_MISC: Trigger on misc skills ( Default: BF_WEAPON ) BF_NORMAL: Trigger on normal attacks. BF_SKILL: Trigger on skills (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) i: 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) bonus3 bSubEle,n,x,t; x% Damage reduction against element n. n: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead t: Trigger criteria: BF_SHORT: Trigger on melee attack BF_LONG: Trigger on ranged attack ( Default: BF_SHORT+BF_LONG ) BF_WEAPON: Trigger on weapon skills BF_MAGIC: Trigger on magic skills BF_MISC: Trigger on misc skills ( Default: BF_WEAPON ) BF_NORMAL: Trigger on normal attacks. BF_SKILL: Trigger on skills (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) i: 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) bonus4 bAutoSpellOnSkill,s,x,l,n Adds a n/10% chance to autospell skill x at level l when using skill s. (supports skill names) Supportive spells are casted on self, others on target of skill s. bonus5 bAutoSpellOnSkill,s,x,l,n,i Adds a n/10% chance to autospell skill x at level l when using skill s. (supports skill names) i: Flags (bitfield) &1: Forces the skill to be casted on self, rather than on the target of skill s. &2: Random skill level between 1 and l is chosen. bonus bAddItemHealRate,x; Increases HP recovered by x% for healing items. bonus bUnbreakableGarment,n; Garment cannot be damaged/broken by any means (n is meaningless) bonus bUnbreakableWeapon,n; Weapon cannot be damaged/broken by any means (n is meaningless) bonus bUnbreakableArmor,n; Armor cannot be damaged/broken by any means (n is meaningless) bonus bUnbreakableHelm,n; Helm cannot be damaged/broken by any means (n is meaningless) bonus bUnbreakableShield,n; Shield cannot be damaged/broken by any means (n is meaningless) bonus bUnbreakableShoes,n; Shoes cannot be damaged/broken by any means (n is meaningless) bonus bBreakWeaponRate,n; Adds a n/100% chance to break enemy's weapon while attacking (stacks with other break chances). bonus bBreakArmorRate,n; Adds a n/100% chance to break enemy's armor while attacking (stacks with other break chances). bonus bUnbreakable,n; Reduces the break chance of all equipped equipment by n%. bonus bShortWeaponDamageReturn,n; Reflects n% of received melee damage back to the enemy that caused it. bonus bLongWeaponDamageReturn,n; Reflects n% of received ranged damage back to the enemy that caused it. bonus2 bWeaponComaEle,x,n; Adds a n/100% chance to cause Coma when attacking a monster of element x with normal attack. x: 0=Neutral, 1=Water, 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead bonus2 bAddEff2,x,n; Adds a n/100% chance to cause status change x on self when attacking. x: Eff_Blind, Eff_Sleep, Eff_Poison, Eff_Freeze, Eff_Silence, Eff_Stun, Eff_Curse, Eff_Confusion, Eff_Stone, Eff_Bleeding bonus bMagicDamageReturn,n; Adds a n% chance to reflect targetted magic spells back to the enemy that caused it. bonus2 bRandomAttackIncrease,x,n; Adds a n% chance to inflict x% additional damage to the enemy with normal attack. bonus bPerfectHide,n; Hidden/cloaked character is no longer detected by monsters with 'detector' mode (n is meaningless). bonus bNoKnockback,n; Character is no longer knocked back by enemy skills with such effect (n is meaningless). bonus bClassChange,n; Gives a n/100% chance to change the attacked monster's class with normal attack. bonus bHPDrainValue,n; Heals +n HP with normal attack. bonus2 bHPDrainValue,n,x; Heals +n HP with normal attack. When x is non-zero, the HP is drained instead. bonus2 bWeaponAtk,x,n; Adds n ATK when weapon of type x is equipped. x: see doc/item_db.txt -> view -> weapons for possible values bonus2 bWeaponAtkRate,x,n; Adds n% damage to normal attacks when weapon of type x is equipped. x: see doc/item_db.txt -> view -> weapons for possible values bonus bDelayrate,n; Increases skill delay by n%. bonus3 bHPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of dealed damage as HP from a monster of race r with normal attack. bonus3 bSPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of dealed damage as SP from a monster of race r with normal attack. bonus3 bAddEffOnSkill,s,x,n; Adds a n/100% chance to cause status change x on enemy when using skill s (supports skill names) bonus4 bAddEffOnSkill,s,x,n,t; Adds a n/100% chance to cause status change x when using skill s (supports skill names) t: ATF_SELF = causes status change to oneself ATF_TARGET = causes status change to the enemy bonus bNoMiscDamage,n; Adds n% reduction to received misc damage. bonus bLongAtkRate,n; Increases damage of ranged attacks by n%. bonus bUnstripable,n; Armor cannot be taken off via strip skills (n is meaningless) bonus2 bHPDrainValueRace,r,n; Heals +n HP when attacking a monster of race r with normal attack. bonus bMagicSPGainValue,n; Heals +n SP when killing an enemy with magic attack. bonus bMagicHPGainValue,n; Heals +n HP when killing an enemy with magic attack. bonus3 bAddClassDropItem,s,x,n; Adds an n/100% chance of dropping item s when killing monster class x. -
ok thx lilith..it's work fine
-
in this script i can buy item with 250 poring coin , but i want to make it more..so it's like i can make the item but it's need 250 poring coin and 50 TCG also 5000000 zeny... can someone help? - shop quest_shop12 -1,501:50 prontera,138,166,5, script Dynamic Quest NPC 2 450,{ set @i,0; mes "[shop Quest NPC]"; mes "Which item do you wish to obtain?"; mes "Select only one."; callshop "quest_shop12",1; npcshopattach "quest_shop12"; end; OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {} npcshopadditem "quest_shop12",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny"); setarray .Shop[.i],getarg(.e+2); set .i,.i+1; goto Quest_Setup; } if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; } for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; } mes "[shop Quest NPC]"; mes "I require the following:"; for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]"; if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny"; mes "^000000In exchange, I will give you:^0000FF"; for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i)); switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) { case 1: for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) { next; mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + "."; mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000."; close; } if(Zeny < getarg(@i)) { next; mes "You do not have enough Zeny."; mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000."; close; } for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1); set Zeny,Zeny-getarg(@i); for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1); if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all; close; case 2: set @bottomview, getlook(3); set @topview, getlook(4); set @midview, getlook(5); addtimer 1000, strnpcinfo(3)+"::On_Leave"; set @equip,getiteminfo(@bought_nameid, 5); set @view, getiteminfo(@bought_nameid, 11); if(@equip != -1 && @view > 0) { if(@equip & 1) atcommand "@changelook 3 " + @view; if(@equip & 256) atcommand "@changelook 1 " + @view; if(@equip & 512) atcommand "@changelook 2 " + @view; } next; goto OnBuyItem; case 3: close; } On_Leave: atcommand "@changelook 1 " + @topview; atcommand "@changelook 2 " + @midview; atcommand "@changelook 3 " + @bottomview; set @equip,0; set @view,0; set @topview,0; set @midview,0; set @bottomview,0; end; OnInit: npcshopitem "quest_shop12",0,0; set .BuildQuest,1; set .i,1; Quest_Setup: switch(.i) { default: set .BuildQuest,0; set .e,0; set .i,0; end; case 1: callsub OnBuyItem,7539,250,0,"Zeny",30265,1,0; case 2: callsub OnBuyItem,7539,250,0,"Zeny",30246,1,0; } }
-
can u send your mob_skill_db2.txt ??
-
Try this..i have fix this for you..hope it work.. change "prontera" with your map.. prontera,163,176,4[TAB]script[TAB]Novice Shop/Quest[TAB]729,{ mes "[John]"; mes "Hello there Newbie!"; mes "How are you this fine day?"; next; mes "[John]"; mes "I'm very well! Happy, entertained and so much more!"; next; mes "[John]"; mes "Do you want to access the Newbie Shop or do you want to quest the Newbie Items?!"; next; switch(select("Shop:Quest")) { case 1: warp "prontera" ,114,49; close; case 2: mes "[John]"; mes "Well then, please choose which side you will be on!"; mes "Evil"; mes "or"; mes "Good"; mes "You Choose!"; next; switch(select("Evil:Good")) { case 2: mes "[John, the Evil]"; mes "If you wish to get the blades, you must first bring me the items!"; close; case 1: mes "[John]"; mes "For the Evil side, you, "+strcharinfo(0)+" accept to join the Evil in hands of the great Satan Morocc."; next; mes "Do you accept or do you deny?"; next; switch(select("I Accept:I Deny")) { case 2: mes "[John, the Evil]"; mes "If you deny, then you can join the Good Forces."; mes "Do not make yourself a fool."; close; case 1: mes "[John, the Evil]"; mes "Okay. Since you decided to join the evil side, you will be given at the end of the quest, two very powerful blades."; next; mes "[John, the Evil]"; mes "They were once used by the great and dark Naght Sieger."; mes "They are the Naght Sieger Blades"; next; mes "[John, the Evil]"; mes "To get these evil blades, you must bring me the following items:"; next; mes "[John, the Evil]"; mes "10 Feather of Birds"; mes "20 Cyfar"; next; mes "[John, the Evil]"; mes "You must go get these items."; mes "Do you have them with you in this moment?"; next; switch(select("Yes, I do:No, I don't")) { case 1: mes "[John, the Evil]"; mes "Okay then, give me those items!"; next; if(countitem(7053) > 20 || countitem(916) > 10) goto L_ItemYes; mes "[John, the Evil]"; mes "You don't have my items, please go get them."; close; L_ItemYes: mes "[John, the Evil]"; delitem 7053,20; delitem 916,10; getitem 13412,1; getitem 13413,1; mes "There you have your items. You have joined the Evil Force."; next; mes "Until your next visit, Evil Citizen."; close; case 2: mes "[John, the Good]"; mes "Do you, "+strcharinfo(0)+" accept to join the Good in force?"; next; switch(select("I Accept:I Deny")) { case 2: mes "[John, the Good]"; mes "You deny to join the good forces?!"; next; mes "[John, the Good]"; mes "Oh, that's such a pitty..."; close; case 1: mes "[John, the Good]"; mes "Ahhhhh, you have wished to join the Good Forces!"; next; mes "[John, the Good]"; mes "Congratulations! Well...let's get to the point of our whole conversation please!"; next; mes "[John, the Good]"; mes "To get the items of the good, you must first bring me the items necessary."; next; mes "[John, the Good]"; mes "The items I will give you are two different kinds. One is a dagger named Star Dust Blade and another is a whip named Blade Whip, it will be better since you have more chances and more jobs!"; next; mes "[John, the Good]"; mes "For these very special items, you will need to bring me the following items:"; mes "40 Decayed Nails"; mes "50 Sticky Mucus"; next; mes "That's all!"; next; mes "[John, the Good]"; mes "Have you got my items?"; next; switch(select("I Do!:I Don't")) { case 2: mes "[John, the Good]"; mes "Aww. Well, can you please go get them?"; close; case 1: mes "[John, the Good]"; mes "Well then! May I have them?"; next; if(countitem(957) > 50 || countitem(938) > 40) goto L_ItemsCheck; mes "[John, the Good]"; mes "You do not have my required items! You lied!"; next; mes "[John, the Good]"; mes "Such behaviour is not accepted here. I will give you a second chance."; close; L_ItemsCheck: mes "[John, the Good]"; mes "Oh! You have my items!"; delitem 957,50; delitem 938,40; getitem 1969,1; getitem 1148,1; next; mes "[John, the Good]"; mes "Well Done!"; mes "Thank you for using my services!"; next; mes "[John, the Good]"; mes "Goodbye!"; close; } } } } } } }
-
hey guys is that right if mechanic use a robot/mado can't use skill job 2?? i try to use robot/mado on mechanic but it's only can use job 3 skill...skill like cart termination and etc can't be used??
-
thx it works..
-
Can't use atcommands when normal player is used
backtea replied to Lordamax's question in Source Support
can u upload ur atcommand.txt