-
Posts
611 -
Joined
-
Last visited
-
Days Won
8
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Kakaroto
-
I finished: Maps (dungeons, filds) Database of monsters and items. Portals. Now working: Npc's (common). Npc's (quests). Npc's (shops).
-
help how add Change cart 2 in my job master
Kakaroto replied to Erio-chan's question in Scripting Support
//===== rAthena Script ======================================= //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Fixed reset on Baby job change. //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. //= 1.3 Kagerou/Oboro added. //= 1.4 Rebellion added. //============================================================ iz_ac02,103,210,4 script Principal Rain 620,{ function Job_Menu; mes "[Job Master]"; if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your " + ((checkfalcon()) ? "falcon" : "") + ((checkcart()) ? "cart" : "") + ((checkriding()) ? "Peco" : "") + ((ismounting()) ? "mount" : "") + " before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } [email protected] = eaclass(); [email protected] = ((.ThirdClass) ? roclass([email protected]&EAJ_UPPERMASK) : Class); if ([email protected] >= Job_Knight && [email protected] <= Job_Crusader2) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { [email protected] = .Rebirth[0] - BaseLevel; [email protected] = .Rebirth[1] - JobLevel; mes "You need " + (([email protected] > 0) ? [email protected] + " more base levels " + (([email protected] > 0) ? "/ " : "") : "") + (([email protected] > 0) ? [email protected] + " more job levels " : "") + "to continue."; close; } if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass([email protected]|EAJL_THIRD)); close; } while(1) { mes "Select an option."; next; [email protected] = select(" ~ ^0055FFRebirth^000000:" + ((.ThirdClass) ? " ~ ^FF0000Third Class^000000" : "") + ": ~ ^777777Cancel^000000"); if ([email protected] == 3) close; mes "[Job Master]"; mes "Are you sure?"; next; Job_Menu((([email protected] == 1) ? Job_Novice_High : roclass([email protected]|EAJL_THIRD))); mes "[Job Master]"; } } [email protected] = roclass([email protected]|EAJL_2_1); [email protected] = roclass([email protected]|EAJL_2_2); if (([email protected]&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray [email protected][0], roclass([email protected]|EAJL_THIRD), 99; if (Class == Job_Ninja || Class == Job_Gunslinger) setarray [email protected][0], [email protected], 70; if ([email protected][0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < [email protected][1]) { [email protected] = .Rebirth[0] - BaseLevel; [email protected] = [email protected][1] - JobLevel; mes "You need " + (([email protected] > 0) ? [email protected] + " more base levels " + (([email protected] > 0) ? "/ " : "") : "") + (([email protected] > 0) ? [email protected] + " more job levels " : "") + "to continue."; close; } mes "Switch to " + jobname([email protected][0]) + "?"; next; Job_Menu([email protected][0]); close; } if ([email protected]&EAJL_2) if ([email protected]&(EAJL_UPPER|EAJL_BABY) || roclass([email protected]|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if (([email protected]&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) mes "A job level of " + .JobReq[0] + " is required to change into the 1st Class."; else if (Class == Job_Novice_High && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else { switch(Class) { case Job_Novice: Job_Menu( Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_Super_Novice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby ); break; case Job_Novice_High: Job_Menu( Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High ); break; case Job_Baby: Job_Menu( Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby ); break; default: mes "An error has occurred."; break; } } close; } if (roclass([email protected]|EAJL_2_1) == -1 || roclass([email protected]|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!([email protected]&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of " + .JobReq[1] + " is required to change into the 2nd Class."; else if (.LastJob && lastJob && ([email protected]&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob + Job_Novice_High); } else Job_Menu([email protected], [email protected]); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; [email protected]$ = ""; for ([email protected] = 0; [email protected] < getargcount(); [email protected]++) [email protected]$ = [email protected]$ + " ~ " + jobname(getarg([email protected])) + ":"; [email protected]$ = [email protected]$+" ~ ^777777Cancel^000000"; next; [email protected] = getarg(select([email protected]$) - 1, 0); if ([email protected]) close; if (([email protected] == Job_Super_Novice || [email protected] == Job_Super_Baby) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of " + .SNovice + " is required to turn into a " + jobname([email protected]) + "."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else [email protected] = getarg(0); if (select(" ~ Change into ^0055FF" + jobname([email protected]) + "^000000 class: ~ ^777777" + ((getargcount() > 1) ? "Go back" : "Cancel") + "^000000") == 1) { mes "[Job Master]"; mes "You are now " + callfunc("F_InsertArticle", jobname([email protected])) + "!"; if ([email protected] == Job_Novice_High && .LastJob) lastJob = Class; jobchange [email protected]; if ([email protected] == Job_Novice_High) resetlvl(1); else if ([email protected] == Job_Baby) { resetstatus; resetskill; set SkillPoint,0; } specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.Platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } Get_Platinum: skill "NV_FIRSTAID",1,SKILL_PERM; switch (BaseClass) { case Job_Novice: if (Class != Job_Super_Novice) skill "NV_TRICKDEAD",1,SKILL_PERM; break; case Job_Swordman: skill "SM_MOVINGRECOVERY",1,SKILL_PERM; skill "SM_FATALBLOW",1,SKILL_PERM; skill "SM_AUTOBERSERK",1,SKILL_PERM; break; case Job_Mage: skill "MG_ENERGYCOAT",1,SKILL_PERM; break; case Job_Archer: skill "AC_MAKINGARROW",1,SKILL_PERM; skill "AC_CHARGEARROW",1,SKILL_PERM; break; case Job_Acolyte: skill "AL_HOLYLIGHT",1,SKILL_PERM; break; case Job_Merchant: skill "MC_CARTDECORATE",1,SKILL_PERM; skill "MC_CARTREVOLUTION",1,SKILL_PERM; skill "MC_CHANGECART",1,SKILL_PERM; skill "MC_LOUD",1,SKILL_PERM; break; case Job_Thief: skill "TF_SPRINKLESAND",1,SKILL_PERM; skill "TF_BACKSLIDING",1,SKILL_PERM; skill "TF_PICKSTONE",1,SKILL_PERM; skill "TF_THROWSTONE",1,SKILL_PERM; break; default: break; } switch (BaseJob) { case Job_Knight: skill "KN_CHARGEATK",1,SKILL_PERM; break; case Job_Priest: skill "PR_REDEMPTIO",1,SKILL_PERM; break; case Job_Wizard: skill "WZ_SIGHTBLASTER",1,SKILL_PERM; break; case Job_Blacksmith: skill "BS_UNFAIRLYTRICK",1,SKILL_PERM; skill "BS_GREED",1,SKILL_PERM; break; case Job_Hunter: skill "HT_PHANTASMIC",1,SKILL_PERM; break; case Job_Assassin: skill "AS_SONICACCEL",1,SKILL_PERM; skill "AS_VENOMKNIFE",1,SKILL_PERM; break; case Job_Crusader: skill "CR_SHRINK",1,SKILL_PERM; break; case Job_Monk: skill "MO_KITRANSLATION",1,SKILL_PERM; skill "MO_BALKYOUNG",1,SKILL_PERM; break; case Job_Sage: skill "SA_CREATECON",1,SKILL_PERM; skill "SA_ELEMENTWATER",1,SKILL_PERM; skill "SA_ELEMENTGROUND",1,SKILL_PERM; skill "SA_ELEMENTFIRE",1,SKILL_PERM; skill "SA_ELEMENTWIND",1,SKILL_PERM; break; case Job_Rogue: skill "RG_CLOSECONFINE",1,SKILL_PERM; break; case Job_Alchemist: skill "AM_BIOETHICS",1,SKILL_PERM; break; case Job_Bard: skill "BA_PANGVOICE",1,SKILL_PERM; break; case Job_Dancer: skill "DC_WINKCHARM",1,SKILL_PERM; break; default: break; } return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class .ThirdClass = 1; // Enable third classes? (1: yes / 0: no) .SecondExpanded = 1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) .SNovice = 45; // Minimum base level to turn into Super Novice .LastJob = 1; // Enforce linear class changes? (1: yes / 0: no) .SkillPointCheck = 1; // Force player to use up all skill points? (1: yes / 0: no) .Platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) end; } //------------Duplicate iz_ac02_a,103,210,4 duplicate(Principal Rain) Principal Rain#a 620 iz_ac02_b,103,210,4 duplicate(Principal Rain) Principal Rain#b 620 iz_ac02_c,103,210,4 duplicate(Principal Rain) Principal Rain#c 620 iz_ac02_d,103,210,4 duplicate(Principal Rain) Principal Rain#d 620 -
[Showcase] Achievements, Titles, Random Options
Kakaroto replied to Luxuri's topic in Source Releases
Nice! -
Yeah I know ... but as I said, my personal opinion, even though the name of the server hybrid does not mean that you need every image have a different logo too with a different color sequence ... my opinion.
-
It's very weird, in each image you used a color pattern, choose only two at most 3 colors and create a color pattern for your server, so is very weird. Personal opinion.
-
Hello! Someone could tell me what's wrong with this check? if ( getstatus( SC_MONSTER_TRANSFORM,1 ) != 1002) { No error message displayed in map_server but does not work.
-
The @Emistry he sells these scripts.
-
What price? or will release as free? e.e
-
[Showcase] Hancock jump in Ragnarok !
Kakaroto replied to Vykimo's topic in Project Concepts & In Progress
A while ago I started work to create a full race system with new skills, with processing for each race, you think it would be interesting to add one thing to another? -
como colocar custons itens no Banco dados
Kakaroto replied to alissrk's question in Installation Support
more lost than the other. You shows an example of DB Hercules. You have presented a model of brathena ... Use: // Items Database // // Structure of Database: // ID,AegisName,Name,Type,Buy,Sell,Weight,ATK[:MATK],DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } exemp: 501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,63,2,,,,,,{ itemheal rand(45,65),0; },{},{} -
Hello, I wonder if someone would have to share a npc enchants, or better orbs. It works like this: The player must have the orb you want to place the equipment and can charm any item type of equipment. So it would be: item: x enchants any equipment, either weapon or armor, shoes equipment for head, in short anything. And it is possible to put several different spells. Thank you very much who can share something.
-
My emulator is 2016, but don't have this packet. Can someone help me? Emulator download link, client 2015 support: CLICK
-
It works perfectly. Try to download the rAthena on GitHub here: LINK
-
It worked beautifully! thank you so much!
-
Hello, I know that is something easy, but I wonder if it is possible to set the maximum amount of members to enter a particular map. Type the group can only have one member in the maximum to enter. I thank you from anyone who can help me.
-
Crie vergonha na cara e faça você mesmo, se preste ao mínimo desse trabalho.
-
4/10 Abusing red color, mixing with black, it is very strange. Choose a color pattern to the server, and create all the images following this pattern.
-
if(checkquest([email protected])) erasequest [email protected];
Kakaroto replied to Kakaroto's question in Scripting Support
is better Works perfectly, tnks guys! -
if(checkquest([email protected])) erasequest [email protected];
Kakaroto posted a question in Scripting Support
Hello... Could someone give me a quick little help? I like to check and delete multiple quests a player, but I can not make it work. Script: for([email protected] = 9285; [email protected] <= 9289; [email protected]++) { if(checkquest([email protected])) erasequest [email protected]; } map_server: Thank you in advance!! -
You know when RODEX will be released in rAthena?
-
hmm... so how can I change this operator and maintain the function working properly? I use this way? @edit: I switched the operator for only "=" and it worked ... thanks!
-
Hello good evening, I'm a little strange problem, I'm trying to create an instance, but if you have more than one person in the group, the instance does not start, is giving errors in map_server, can anyone help me? IMG: script: [email protected],109,348,5 script Chaos#face 683,{ if(getpartyleader(getcharid(1),2) != getcharid(0)) { cutin "H_CHAOS01", 2; mes "[Chaos]"; mes "You are not the Partyleader."; close2; cutin "", 255; end; } switch('progress) { case 0: [email protected] = getcharid(1); getpartymember [email protected],0; 'members = [email protected]; 'partyname$ = getpartyname([email protected]); 'membername$ = [email protected]$[0]; for([email protected] = 1; [email protected] < 'members; [email protected]++) { 'membername$ += " " + [email protected]$[[email protected]]; } cutin "H_CHAOS01", 2; mes "[Chaos]";
-
Wonder!