-
Posts
64 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by tathanngudong
-
-
8 minutes ago, hendra814 said:
i'm not sure, but i will test it.
Hope you can make it work with langtype 15...
It would be very meaningful to me!!
-
excuse me sir...Will it work with langtype 15 and up?
-
it's cute ...thanks...
-
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?
- 1
-
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!??
-
45 minutes ago, Balfear said:
Hi!
By default new client support only next language:- LuaFiles514\Lua Files\service_korea\zero_server\ExternalSettings_kr
- LuaFiles514\Lua Files\service_usa\ExternalSettings_usa
- LuaFiles514\Lua Files\service_japan\ExternalSettings_jp
- LuaFiles514\Lua Files\service_china\ExternalSettings_ch
- LuaFiles514\Lua Files\service_taiwan\ExternalSettings_tw
- LuaFiles514\Lua Files\service_thailand\ExternalSettings_th
- LuaFiles514\Lua Files\service_indonesia\ExternalSettings_id
- LuaFiles514\Lua Files\service_philippine\ExternalSettings_ph
- LuaFiles514\Lua Files\service_brazil\ExternalSettings_br
- LuaFiles514\Lua Files\service_france\ExternalSettings_fr
Try use this Nemo: https://gitlab.com/4144/Nemo
and use patch "AlwaysReadKrExtSettings"Uhm...it's not work!! But thanks...
-
I want used langtype vietnam but it's problem,
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:
QuoteG:\...\Ultra BeastRO\A.UBRO\luafiles514\lua files\service_vietnam\ExternalSettings_vn.lub
G:\...\Ultra BeastRO\A.UBRO\luafiles514\lua files\service_vietnam\externalsettings_vn_sak.lub
-
3 hours ago, Poring King said:
Use latest client version most of it are not stable
where i can get latest client like this?
-
-
5 hours ago, calaluis said:
it's work!! thanks
-
9 minutes ago, hendra814 said:
if you have script file, put on npc\custom folder
and then go to script_custom.conf
put the npc path inside and then start the server.
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?
-
As above...
What do I need to do to achieve that?
-
it's amazing
-
On 9/8/2017 at 2:18 PM, GodKnows Jhomz said:
Just add another line in both quest_db and questid2display then add additional mob and item id then add the setquest and erasequest.
Sample:
add in db/import/quest_db.txt100008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monster Hunter Mission"
add in data/questid2display.txt
100008#Monster Hunter Mission#SG_FEEL#QUE_NOIMAGE# Kill Poring and bring Jellopy 50 EA together with 50,000 Zeny# #
In Line 39 edit : //Change the total number (7)
.@mob = rand(1,8);
In Line 45 replace from:
else {.@mob$ = "Anolian"; mhmid = 7003; setquest 100007;} //Anolian Skin
to :
else if(.@mob == 7){.@mob$ = "Anolian"; mhmid = 7003; setquest 100007;} //Anolian Skin
then add after :
else if(.@mob == 8){.@mob$ = "Poring"; mhmid = 909; setquest 100008;} //Jellopy
After that, if you want to add more rewards, go to the rewards section. //Change the total number (11)
find :.@r = rand(1,12);
after :
if(.@r == 11){.@reward = 5579; .@rewardamt = 1;} //Wanderer's Sakkat
add :
if(.@r == 12){.@reward = 5035; .@rewardamt = 1;} //Poring Hat
Then erase the quest after getting rewards.
after:if(checkquest(100007) == 1){ erasequest 100007; }
add :
if(checkquest(100008) == 1){ erasequest 100008; }
And its done. ( Sorry if the code is so messy XD )
Sorry...The quest not unlimited levels?
-
I very like your Translation,but it not work with new ragexe...
-
It's nice thanks
-
-
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...
-
i love it
-
it's amazing...
-
Just now, pajodex said:
I see, I think you have to edit the client side for this to work.
Find these:data/luafiles514/luafiles/skillonfoz/skillinfolist.lub data/luafiles514/luafiles/skillonfoz/skilldescript.lub
and look for this:
[SKID.NJ_KUNAI] = {
Then edit the max level
Oh my... that's it!! Thanks you so much
-
1 hour ago, pajodex said:
Hi,
Here you go, feel free to edit this at your needs.
//============= by pajodex ======================// prontera,150,180,4 script Skill Points giver 100,{ If(SkillPoint_r == 1) { mes "You have received your extra skill points"; close2; end; } mes "Hi, I can give you extra skill points"; If(select("Yes:No") == 1 ) { next; mes "Here you go!"; set SkillPoint,SkillPoint+100; // gives 100 extra skill points SkillPoint_r = 1; close; } else { mes "Come back at any time"; close; } }
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...
-
Just now, pajodex said:
If you can wait, I will do it tomorrow. I'm about to sleep now. Or wait for someone to code.
thank you
-
26 minutes ago, pajodex said:
Do you mean you want to add more skill points?
Yes.. that's it!! please show me how "add skill points" ?
How to script of [event]Wheel_Of_Fortune work with Rathena Sever?
in Script Requests
Posted
it's only work with hercules sever,i don't know how make it work with rathena