Jump to content

tathanngudong

Members
  • Posts

    64
  • Joined

  • Last visited

Everything posted by tathanngudong

  1. it's only work with hercules sever,i don't know how make it work with rathena
  2. Hope you can make it work with langtype 15... It would be very meaningful to me!! http://
  3. Fix this script run with Rathena: - script Wheel_of_Fortune FAKE_NPC ,{ OnInit: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); .EventName$ = "[Wheel Of Fortune]"; end; OnClock0800: OnClock1200: OnClock1800: OnClock2000: OnClock2200: OnStart: .Start = true; announce(sprintf("%s : The event will begin in 1 minute, near the center of Prontera.", .EventName$), bc_blue | bc_all); initnpctimer(); end; OnTimer60000: // 1 min enablenpc("Wheel of Fortune#Main"); enablenpc("Hussein#WOF"); announce(sprintf("%s : Come to Prontera and test your luck", .EventName$), bc_blue | bc_all); end; OnTimer1800000: // 30 mins announce(sprintf("%s : One more minute, do your last spin!", .EventName$), bc_blue | bc_all); end; OnTimer1860000: // 31 mins OnStop: .Start = false; stopnpctimer(); disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); end; OnCommand: if (.@atcmd_numparameters != 1) { dispbottom(sprintf("Usage: %s <start/end>", .@atcmd_command$), 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); end; } if (.@atcmd_parameters$[0] == "start") { if (!.Start) donpcevent(sprintf("%s::OnStart", strnpcinfo(NPC_NAME))); else { dispbottom("The Wheel of Fortune has already started.", 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); } } else if (.@atcmd_parameters$[0] == "end") { if (.Start) donpcevent(sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); else { dispbottom("The Wheel of Fortune is not active.", 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); } } else { dispbottom(sprintf("Usage: %s <start/end>", .@atcmd_command$), 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); } end; } prontera,155,176,3 script Wheel of Fortune#Main 2_SLOT_MACHINE,{ OnTalk: if (Zeny < .Zeny_Cost && #freewheelfortunespin < 0) { mesf("[^0055FF%s^000000]", .EventName$); mes("You are out of Zeny"); mes("and have no more"); mes("free spins. Come back"); mes("next time for more!"); close(); } .@mes$ = (#freewheelfortunespin > 0) ? sprintf(", but you, my friend, have %d free spin%s!", #freewheelfortunespin, (#freewheelfortunespin == 1) ? "" : "s") : "."; cutin("aca_salim02", 2); addtimer(1, sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); mesf("[^0055FF%s^000000]", .EventName$); mes("Do you want to spin the wheel?"); mesf("It costs ^FF0000%d Zeny^000000 to play%s", .Zeny_Cost, .@mes$); next(); while (true) { if (Zeny < .Zeny_Cost && #freewheelfortunespin < 0) callsub(S_End); switch (select( (#freewheelfortunespin > 0) ? sprintf("Yes! Use free spin! (%d left)", #freewheelfortunespin) : "", (Zeny >= .Zeny_Cost ) ? sprintf("Yes! Use Zeny. (costs %dz)", .Zeny_Cost) : "", "No (Leave)" )) { // pay with free spin case 1: if (#freewheelfortunespin > 0) { if ((#freewheelfortunespin -= 1) < 0) #freewheelfortunespin = 0; callsub(S_Spin); } else callsub(S_End); break; // Pay with zeny case 2: if (Zeny >= .Zeny_Cost) { Zeny -= .Zeny_Cost; callsub(S_Spin); } else { cutin("aca_salim02", 2); mesf("[^0055FF%s^000000]", .EventName$); mes("Awww, you don't have enough to gamble..."); mes(" "); mes("Have you ever heard?"); mes("'Money isn't all that matters' Got it?"); mes("Byeeeeeeeeeeeeee ;)"); callsub(S_End); } break; default: callsub(S_End); } } // Wheel spin animation S_Spin: .@Sector = rand(.Sector_Range[0], .Sector_Range[1]); .@Display = .@Sector * 2 - 1; .@Speed = .Spin_Speed; for (.@i = 0; .@i < .nbTurns; .@i++) { .@b = .Cutin_Range[0]; while (.@b <= .Cutin_Range[1]) { cutin(sprintf("%s%d", .Cutin$, .@b), 4); sleep2(.@Speed); .@b++; .@Speed += 1; // not ++, because you may want to adjust the stopping +1 +2 +3 } } .@b = .Cutin_Range[0]; while (.@b < .@Display) { cutin(sprintf("%s%d", .Cutin$, .@b), 4); sleep2(.@Speed); .@b++; } cutin(sprintf("%s%d", .Cutin$, .@b), 4); if (.Prize_ID[.@Sector] == -1) { // Free spin if (.Sound_Effects) soundeffect("wheel_jackpot.wav", 0); announce(sprintf("[%s] : Wow, %dx more Free spins!!!", .EventName$, .Prize_Qty[.@Sector]), bc_blue | bc_self); #freewheelfortunespin = #freewheelfortunespin == 0 ? .Prize_Qty[.@Sector] : #freewheelfortunespin + .Prize_Qty[.@Sector]; } else if (.Prize_ID[.@Sector] == 0) { // Nothing if (.Sound_Effects) soundeffect("wheel_lost.wav", 0); announce(sprintf("[%s] : Awwww, no luck in your gamble, more luck in love...", .EventName$), bc_blue | bc_self); } else { // Item if (.Sound_Effects) soundeffect("wheel_won.wav", 0); announce(sprintf("[%s] : %dx %s - enjoy your prize!", .EventName$, .Prize_Qty[.@Sector], getitemname(.Prize_ID[.@Sector])), bc_blue | bc_self); getitem(.Prize_ID[.@Sector], .Prize_Qty[.@Sector]); } sleep2(1000); if (Zeny < .Zeny_Cost && #freewheelfortunespin < 0) { mesf("[^0055FF%s^000000]", .EventName$); mes("You are out of Zeny"); mes("and have no more"); mes("free spins. Come back"); mes("next time for more!"); close(); } return; S_End: close2(); OnEnd: cutin("", 255); end; OnInit: .EventName$ = "Wheel Of Fortune"; bindatcmd("wheel_of_fortune", "Wheel_of_Fortune::OnCommand", 98, 98, false); .Spin_Speed = 50; // What is the base spin speed? (ms) .nbTurns = 2; // How many times the arrow makes a complete turn, before entering the stopping routine .Zeny_Cost = 10000; // How much zeny does it cost for a spin? .Sound_Effects = true; // Enable sound effects? (true/false) // You must have a total of 10 prizes. DO NOT remove 0 or -1 from the array and do not // change their order. setarray(.Prize_ID[1], -1, 12103, 13277, 12187, 617, 607, 12186, 604, 0, 7040); setarray(.Prize_Qty[1], 2, 1, 1, 1, 3, 3, 1, 3, 0, 3); // Don't touch below .Cutin$ = "WheelOfFortune_"; setarray(.Sector_Range, 1, 10); // Sector range setarray(.Cutin_Range, 0, 19); // Cutin range end; } prontera,159,178,3 script Hussein#WOF 1_M_MERCHANT,{ .@name$ = "[Hussein]"; cutin("aca_salim02", 2); mes(.@name$); mes("I command you to spin"); mes("the Wheel of Fortune!"); next(); getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC, "Wheel of Fortune#Main"); warp(.@map$, .@x - 1, .@y - 2, 0); doevent("Wheel of Fortune#Main::OnTalk"); end; } How?
  4. I hope can change some house in custom map...It is better to change the path to the directory...but I do not know where to start!??
  5. I want used langtype vietnam but it's problem, http:// i don't know how to fix it...please help... My SclientInfo.xml: <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <servicetype>vietnam</servicetype> <servertype>primary</servertype> <connection> <display>UltraBeastRO</display> <address>192.168.1.5</address> <port>6900</port> <langtype>15</langtype> <loading> <image>loading00.jpg</image> <image>loading01.jpg</image> <image>loading02.jpg</image> <image>loading03.jpg</image> <image>loading05.jpg</image> <image>loading06.jpg</image> <image>loading07.jpg</image> <image>loading08.jpg</image> <image>loading09.jpg</image> <image>loading10.jpg</image> <image>loading11.jpg</image> <image>loading12.jpg</image> <image>loading13.jpg</image> <image>loading14.jpg</image> <image>loading15.jpg</image> <image>loading16.jpg</image> <image>loading17.jpg</image> <image>loading18.jpg</image> <image>loading19.jpg</image> <image>loading20.jpg</image> <image>loading21.jpg</image> <image>loading21.jpg</image> </loading> </connection> </clientinfo> My lua file:
  6. 01.http:// 02.http:// As above. . . i very like it,but i don't where to get it?
  7. that's for add scripts NPC,right? that's not i mean... i want to add new Custom NPC for Rathena Sever I worked with jobname.lub and npcidentity.lub, i need to know next step what should i do?
  8. As above... What do I need to do to achieve that?
  9. I very like your Translation,but it not work with new ragexe...
  10. i very like this system,but i don't know how to make this script work with Rathena sever //== Function F_CoolDown ==================================== // Cooldown check //callfunc("F_CoolDown", 5); = 5 seconds cooldown function script F_CoolDown { if (.@cd + getarg(0) > gettimetick(2)) end; @cd = gettimetick(2); return; } //== Spawn - Char creation ========================================== new_reborn,203,195,0 script startpoint#new_reborn HIDDEN_WARP_NPC,1,1,{ OnTouch: if (!newrebornchar && Class != Job_Summoner) { // spawn for non summoner classes specialeffect2(EF_ANGEL3); newrebornchar = 1; } callfunc("F_CoolDown", 60); sc_start SC_INCREASEAGI, 60000, 10; // apply increase agi +10 with 60 sec cooldown, buff lasts 60 secs end; } //== Job Master ========================================== //== Main new_reborn,1,2,0 script Ascension#Main FAKE_NPC,{ OnTalk: function Job_Menu; function A_An; if (Class > Job_Soul_Linker) { message strcharinfo(PC_NAME), "No more jobs are available."; end; } if (checkhomcall() == 0|| checkfalcon() || checkcart() || checkmount() || hascashmount()) { message strcharinfo(PC_NAME), "Please remove your "+((checkhomcall() == 0)?"homunculus ":"")+((checkfalcon())?"falcon ":"")+((checkcart())?"cart ":"")+((checkmount() || hascashmount())?"mount ":"") +"before proceeding."; end; } if (.skill_point_check && SkillPoint > 0) { message strcharinfo(PC_NAME), "Please use all your skill points before proceeding."; end; } .@eac = eaclass(); .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class; if (.@base >= Job_Knight && .@base <= Job_Crusader2) { if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) { .@blvl = .rebirth_blevel - BaseLevel; .@jlvl = .rebirth_jlevel - JobLevel; message strcharinfo(PC_NAME), "You need " + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .rebirth_jlevel ? "and " : "")) : "") + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" more job levels " : "") + "to continue."; end; } if (Class > Job_Crusader2) { mes "[Ascension Dimension]"; mes "Switch to third class?"; next; mes "[Ascension Dimension]"; mes "^FF0000Reminder: Opting for the Official Job Change quest will allow you to get class specific headgears.^000000"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while (true) { mes "[Ascension Dimension]"; mes "Select an option."; next; .@choice = select(" ~ ^0055FFRebirth^000000:"+": ~ ^777777Cancel^000000"); if (.@choice == 3) close; mes "[Ascension Dimension]"; mes "Are you sure?"; next; if (.@choice == 1) Job_Menu(Job_Novice_High); } } .@job1 = roclass(.@eac|EAJL_2_1); .@job2 = roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) { .@newclass = roclass(.@eac|EAJL_THIRD); .@required_jlevel = 99; } else if (Class == Job_Ninja) { .@newclass = .@job1; .@required_jlevel = 70; } else if (Class == Job_Gunslinger) { .@newclass = .@job1; .@required_jlevel = 70; } if (.@newclass && .third_classes) { if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) { message strcharinfo(PC_NAME), "You need " + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .@required_jlevel ? "and " : "")) : "") + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" more job levels " : "") + "to continue."; end; } mes "[Ascension Dimension]"; mes "Switch to "+jobname(.@newclass)+"?"; next; Job_Menu(.@newclass); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { message strcharinfo(PC_NAME), "No more jobs are available."; end; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .jobchange_first) { message strcharinfo(PC_NAME), "A job level of "+.jobchange_first+" is required to change into the 1st Class."; end; } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) { mes "[Ascension Dimension]"; mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else if (Class == Job_Novice) { switch(@newborn) { case 1: Job_Menu(Job_Swordman); break; case 2: Job_Menu(Job_Mage); break; case 3: Job_Menu(Job_Archer); break; case 4: Job_Menu(Job_Acolyte); break; case 5: Job_Menu(Job_Merchant); break; case 6: Job_Menu(Job_Thief); break; case 7: Job_Menu(Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby); break; } } else if (Class == Job_Novice_High) { switch(@newborn) { case 1: Job_Menu(Job_Swordman_High); break; case 2: Job_Menu(Job_Mage_High); break; case 3: Job_Menu(Job_Archer_High); break; case 4: Job_Menu(Job_Acolyte_High); break; case 5: Job_Menu(Job_Merchant_High); break; case 6: Job_Menu(Job_Thief_High); break; } } else if (Class == Job_Baby) { if (@newborn != 7) { message strcharinfo(PC_NAME), "You are not supposed to be here, young adventurer.."; warp "new_reborn", 207, 202; end; } Job_Menu(Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby); } else { message strcharinfo(PC_NAME), "An error has occurred."; end; } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) { message strcharinfo(PC_NAME), "No more jobs are available."; end; } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) { message strcharinfo(PC_NAME), "A job level of "+.jobchange_second+" is required to change into the 2nd Class."; end; } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) { mes "[Ascension Dimension]"; mes "Switch classes now?"; next; Job_Menu(lastJob+Job_Novice_High); } else { Job_Menu(.@job1, .@job2); } close; function Job_Menu { while (true) { if (getargcount() > 1) { mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < getargcount(); ++.@i) .@menu$ += " ~ "+jobname(getarg(.@i))+":"; .@menu$ += " ~ ^777777Cancel^000000"; next; .@newjob = getarg(select(.@menu$)-1, 0); if (!.@newjob) close; if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) { mes "[Extended Master]"; mes "A base level of "+.supernovice_level+" is required to turn into a "+jobname(.@newjob)+"."; close; } mes "[Ascension Dimension]"; mes "Are you sure?"; next; } else { .@newjob = getarg(0); } if (select(" ~ Change into ^0055FF"+jobname(.@newjob)+"^000000 class: ~ ^777777"+(getargcount() > 1 ? "Go back" : "Cancel")+"^000000") == 1) { mes "[Ascension Dimension]"; mes "You now become "+A_An(jobname(.@newjob))+"!"; close2; specialeffect2 EF_MAPPILLAR; progressbar "FFFF00",7; specialeffect2 EF_LORD; sc_start SC_INC_AGI, 60000, 10; if (.@newjob == Job_Novice_High && .linear_jobchange) lastJob = Class; // Note: This is incompatible with the Valkyrie rebirth script. jobchange .@newjob; mapannounce "new_reborn","Ascension Dimension: "+strcharinfo(PC_NAME)+" has become "+A_An(jobname(.@newjob))+"!",bc_map; if (.@newjob == Job_Novice_High) resetlvl(1); if (.@newjob == Job_Baby) { resetlvl(4); SkillPoint = 0; } callsub Get_Novice_Equip; if (.platinum) callsub Get_Platinum; end; } if (getargcount() == 1) return; mes "[Ascension Dimension]"; } end; } function A_An { setarray .@vowels$, "a", "e", "i", "o", "u"; .@firstletter$ = strtolower(charat(getarg(0), 0)); for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) { if (.@vowels$[.@i] == .@firstletter$) return "an "+getarg(0); } return "a "+getarg(0); } Get_Platinum: skill NV_FIRSTAID, 1, 0; if (BaseClass == Job_Novice) { if (Class != Job_SuperNovice) skill NV_TRICKDEAD, 1, 0; } else if (BaseClass == Job_Swordman) { skill SM_MOVINGRECOVERY, 1, 0; skill SM_FATALBLOW, 1, 0; skill SM_AUTOBERSERK, 1, 0; } else if (BaseClass == Job_Mage) { skill MG_ENERGYCOAT, 1, 0; } else if (BaseClass == Job_Archer) { skill AC_MAKINGARROW, 1, 0; skill AC_CHARGEARROW, 1, 0; } else if (BaseClass == Job_Acolyte) { skill AL_HOLYLIGHT, 1, 0; } else if (BaseClass == Job_Merchant) { skill MC_CARTREVOLUTION, 1, 0; skill MC_CHANGECART, 1, 0; skill MC_LOUD, 1, 0; skill MC_CARTDECORATE, 1, 0; } else if (BaseClass == Job_Thief) { skill TF_SPRINKLESAND, 1, 0; skill TF_BACKSLIDING, 1, 0; skill TF_PICKSTONE, 1, 0; skill TF_THROWSTONE, 1, 0; } if (BaseJob == Job_Knight) { skill KN_CHARGEATK, 1, 0; } else if (BaseJob == Job_Priest) { skill PR_REDEMPTIO, 1, 0; } else if (BaseJob == Job_Wizard) { skill WZ_SIGHTBLASTER, 1, 0; } else if (BaseJob == Job_Blacksmith) { skill BS_UNFAIRLYTRICK, 1, 0; skill BS_GREED, 1, 0; } else if (BaseJob == Job_Hunter) { skill HT_PHANTASMIC, 1, 0; } else if (BaseJob == Job_Assassin) { skill AS_SONICACCEL, 1, 0; skill AS_VENOMKNIFE, 1, 0; } else if (BaseJob == Job_Crusader) { skill CR_SHRINK, 1, 0; } else if (BaseJob == Job_Monk) { skill MO_KITRANSLATION, 1, 0; skill MO_BALKYOUNG, 1, 0; } else if (BaseJob == Job_Sage) { skill SA_CREATECON, 1, 0; skill SA_ELEMENTWATER, 1, 0; skill SA_ELEMENTGROUND, 1, 0; skill SA_ELEMENTFIRE, 1, 0; skill SA_ELEMENTWIND, 1, 0; } else if (BaseJob == Job_Rogue) { skill RG_CLOSECONFINE, 1, 0; } else if (BaseJob == Job_Alchemist) { skill AM_BIOETHICS, 1, 0; } else if (BaseJob == Job_Bard) { skill BA_PANGVOICE, 1, 0; } else if (BaseJob == Job_Dancer) { skill DC_WINKCHARM, 1, 0; } return; Get_Novice_Equip: if (Class <= Job_Thief || Class == Job_Ninja || Class == Job_Gunslinger || Class == Job_Taekwon) { // for all standard jobs **I set it here to give +7 novi equips getitem2(N_Adventurers_Suit, 1, 1, 7, 0, 0, 0 ,0, 0); // +7 novi equips and 2 battle manual 25 getitem2(Shoes, 1, 1, 7, 0, 0, 0 ,0, 0); getitem2(Muffler, 1, 1, 7, 0, 0, 0 ,0, 0); getitem(Battle_Manual25, 2); if (Class != Job_Archer) { getitem2(Guard_, 1, 1, 7, 0, 0, 0 ,0, 0); } } if (Class == Job_Swordman || Class == Job_Baby_Swordman) { getitem2(N_Falchion, 1, 1, 7, 0, 0, 0 ,0, 0); // +7 novi falchion } if (Class == Job_Mage || Class == Job_Baby_Mage) { getitem2(N_Rod, 1, 1, 7, 0, 0, 0 ,0, 0); // +7 novi rod } if (Class == Job_Archer || Class == Job_Baby_Archer) { getitem2(N_Composite_Bow, 1, 1, 7, 0, 0, 0 ,0, 0); // and so on getitem Arrow_Container, 1; getitem Fire_Arrow_Container, 1; getitem Silver_Arrow_Container, 1; } if (Class == Job_Acolyte || Class == Job_Baby_Acolyte) { getitem2(N_Mace, 1, 1, 7, 0, 0, 0 ,0, 0); } if (Class == Job_Merchant || Class == Job_Baby_Merchant) { getitem2(N_Battle_Axe, 1, 1, 7, 0, 0, 0 ,0, 0); } if (Class == Job_Thief || Class == Job_Baby_Thief || Class == Job_Ninja) { getitem2(N_Main_Gauche, 1, 1, 7, 0, 0, 0 ,0, 0); } if (Class == Job_Gunslinger) { getitem2(Novice_Revolver, 1, 1, 7, 0, 0, 0 ,0, 0); getitem Bullet_Case, 1; getitem Bullet_Case_Silver, 1; } return; end; OnInit: .rebirth_blevel = 99; // Minimum base level to reborn OR change to third class .rebirth_jlevel = 50; // Minimum base job level to reborn OR change to third class .jobchange_first = 10; // Minimum job level to turn into 1st class .jobchange_second = 40; // Minimum job level to turn into 2nd class .third_classes = 1; // Enable third classes? (1: yes / 0: no) .supernovice_level = 45; // Minimum base level to turn into Super Novice .linear_jobchange = 1; // Enforce linear class changes? (1: yes / 0: no) .skill_point_check = 1; // Force player to use up all skill points? (1: yes / 0: no) .platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) end; } //== Swordsman (South-West) 137 158 new_reborn,137,158,0 script Ascension#1 HIDDEN_WARP_NPC,2,2,{ if (atoi(strnpcinfo(NPC_NAME_HIDDEN)) == 7) { if (BaseClass == Job_Novice || BaseClass == Job_Baby || BaseClass == Job_Ninja || BaseClass == Job_Gunslinger || BaseClass == Job_Taekwon) { @newborn = atoi(strnpcinfo(NPC_NAME_HIDDEN)); doevent "Ascension#Main::OnTalk"; end; } } callfunc("F_CoolDown", 4); // 4 sec cooldown npctalk "Only Novices, Ninjas, Gunslinger and Babies can use my services."; end; OnTouch: callfunc("F_CoolDown", 5); // 5 sec cooldown @newborn = atoi(strnpcinfo(NPC_NAME_HIDDEN)); if (atoi(strnpcinfo(NPC_NAME_HIDDEN)) != BaseClass && BaseClass != Job_Novice) { message strcharinfo(PC_NAME), "You are not supposed to be here, young adventurer.."; switch(BaseClass) { // warp players depending on their job case 0: break; case 1: warp "new_reborn", 187, 186; end; case 2: warp "new_reborn", 218, 205; end; case 3: warp "new_reborn", 220, 185; end; case 4: warp "new_reborn", 203, 215; end; case 5: warp "new_reborn", 187, 204; end; case 6: warp "new_reborn", 203, 175; end; case 23: case 24: case 25: case 4023: case 4024: case 4025: case 4026: case 4027: case 4028: case 4029: case 4045: case 4046: warp "new_reborn", 207, 202; end; } } doevent "Ascension#Main::OnTalk"; end; } //== Magician (North-East) 268 234 new_reborn,268,234,0 duplicate(Ascension#1) Ascension#2 HIDDEN_WARP_NPC,2,2 //== Archer (South-East) 268 157 new_reborn,268,157,0 duplicate(Ascension#1) Ascension#3 HIDDEN_WARP_NPC,2,2 //== Acolyte (North) 202 271 new_reborn,202,271,3 duplicate(Ascension#1) Ascension#4 HIDDEN_WARP_NPC,2,2 //== Merchant (Notrh-West) 137 232 new_reborn,137,232,0 duplicate(Ascension#1) Ascension#5 HIDDEN_WARP_NPC,2,2 //==Thief (South) 202 119 new_reborn,202,119,0 duplicate(Ascension#1) Ascension#6 HIDDEN_WARP_NPC,2,2 //== Expanded Classes + Baby new_reborn,209,206,3 duplicate(Ascension#1) Expanded Master#7 4_F_KHALITZBURG //== Waitingrooms ======================================== new_reborn,203,209,4 script #Acolyte 4_F_ACOLYTE,{ mes("Follow this path for all "+strnpcinfo(NPC_NAME_HIDDEN)+" related class changes."); close(); OnInit: waitingroom strnpcinfo(NPC_NAME_HIDDEN), 0; end; } new_reborn,215,202,3 duplicate(#Acolyte) #Magician 4_M_ARUNA_NFM1 new_reborn,215,188,3 duplicate(#Acolyte) #Archer 4_M_ARCHER new_reborn,203,183,0 duplicate(#Acolyte) #Thief 2_M_THIEFMASTER new_reborn,191,189,5 duplicate(#Acolyte) #Swordsman 2_M_SWORDMASTER new_reborn,191,201,5 duplicate(#Acolyte) #Merchant 1_F_MERCHANT_01 //== Warps =============================================== //== To Pront new_reborn,196,206,4 script Exit#nr1 1_SHADOW_NPC,1,1,{ end; OnInit: .rotate = 1; // rotate? 1 = yes, 0 = no **Attention, this is an infinite loop .message$ = "Exit"; // text for rotating waitingroom if (.rotate) { while (true) { .message$ = delchar(.message$ + charat(.message$, 0), 0); delwaitingroom; waitingroom .message$, 0; sleep 500; // reduce or increase for rotation speed. The lower the faster the more ressource eating. } } else { waitingroom "Exit", 0; // else name for chatroom, } end; OnTouch: specialeffect2 EF_AGIUP2; specialeffect2 EF_JUMPBODY; sleep2 1000; warp "prontera", 156, 176; end; } //== To Ascending Dimension prontera,149,175,0 script Novi Area#novi2 1_SHADOW_NPC,1,1,{ end; OnInit: .rotate = 1; // rotate? 1 = yes, 0 = no **Attention, this is an infinite loop .message$ = "Ascending Dimension - Job Master "; // text for rotating waitingroom if (.rotate) { while (true) { .message$ = delchar(.message$ + charat(.message$, 0), 0); delwaitingroom; waitingroom .message$, 0; sleep 500; // reduce or increase for rotation speed. The lower the faster the more ressource eating. } } else { waitingroom "Job Master", 0; // else name for chatroom, } end; OnTouch: specialeffect2 EF_AGIUP2; specialeffect2 EF_JUMPBODY; sleep2 1000; warp "new_reborn", 203, 195; end; } //== Mobs ================================================ new_reborn,203,195,8,8 monster Failed Ascendant 1002,2,5000,0,0 // spawn some mobs in the center new_reborn,203,195,8,8 monster Failed Ascendant 1007,2,5000,0,0 new_reborn,203,195,8,8 monster Failed Ascendant 1063,2,5000,0,0 //== Mapflags ============================================ new_reborn mapflag noskill new_reborn mapflag nomemo new_reborn mapflag noteleport new_reborn mapflag novending new_reborn mapflag nowarpto new_reborn mapflag nobranch new_reborn mapflag town //new_reborn mapflag noafk i want rebirth when job 2nd class max base/job... and change job when high novice and high 1st class max lv base/job...
  11. thanks you about npc... but that not i means... i mean... Max level of that skill is 10... Although my skill points are redundant...i can't increase max skill point for that skill... i don't know how to do that! please...show me what i should to do...
  12. Yes.. that's it!! please show me how "add skill points" ?
×
×
  • Create New...