Jump to content
  • 0
Sign in to follow this  
Tupac

Mestre das classes full pvp 3RD

Question

Galera estou tentando modificar essas script:

//===== Hercules Script ======================================
//= Job Master
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.4
//===== Description: =========================================
//= A fully functional job changer.
//===== Additional Comments: =================================
//= 1.1 Fixed reset on Baby job change. [Euphy]
//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy]
//= 1.3 Kagerou/Oboro added. [Euphy]
//= 1.4 Improved legibility (renamed variables, replaced
//      numbers with constants; Changed syntax to match
//      Hercules standards; Fixed status point exploit upon
//      Baby Novice job change. [Haru]
//============================================================

prontera,153,193,6	script	Mestra das Classes	2_F_MAGICMASTER,{
	function Job_Menu; function A_An;

	mes "[Mestra das Classes]";
	if (Class > Job_Soul_Linker) {
		mes "Não há mais classes disponíveis.";
		close;
	}
	if (checkfalcon() || checkcart() || checkmount() || hascashmount()) {
		mes "Por favor remova "+((checkfalcon())?"o seu falcão":"")+((checkcart())?"o seu carrinho":"")+((checkmount() || hascashmount())?"a sua montaria":"")
		    +" antes de continuar.";
		close;
	}
	if (.skill_point_check && SkillPoint > 0) {
		mes "Por favor use todos os seus pontos de habilidade antes de continuar.";
		close;
	}

	.@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;
			mes "Você precisa de mais "
			    + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" níveis de base "+ (JobLevel < .rebirth_jlevel ? "e " : "")) : "")
			    + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" níveis de classe " : "")
			    + "para continuar.";
			close;
		}
		if (Class > Job_Crusader2) {
			mes "Trocar para terceira classe?";
			next;
			Job_Menu(roclass(.@eac|EAJL_THIRD));
			close;
		}
		while (true) {
			mes "Selecione uma opção.";
			next;
			.@choice = select(" ~ ^0055FFRenascer^000000:"+(.third_classes ? " ~ ^FF0000Terceira Classe^000000" : "")+": ~ ^777777Cancelar^000000");
			if (.@choice == 3)
				close;
			mes "[Mestra das Classes]";
			mes "Você tem certeza?";
			next;
			if (.@choice == 1)
				Job_Menu(Job_Novice_High);
			else
				Job_Menu(roclass(.@eac|EAJL_THIRD));
			mes "[Mestra das Classes]";
		}
	}
	.@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 || Class == Job_Gunslinger) {
		.@newclass = .@job1;
		.@required_jlevel = 70;
	}
	if (.@newclass && .third_classes) {
		if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) {
			mes "Você precisa de mais "
			    + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" níveis de base "+ (JobLevel < .@required_jlevel ? "e " : "")) : "")
			    + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" níveis de classe " : "")
			    + "para continuar.";
			close;
		}
		mes "Trocar para "+jobname(.@newclass)+"?";
		next;
		Job_Menu(.@newclass);
		close;
	}
	if (.@eac&EAJL_2)
		if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {
			mes "Não há mais classes disponíveis.";
			close;
		}
	if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
		if (JobLevel < .jobchange_first) {
			mes "É necessário ter um nível de classe igual ou maior que "+.jobchange_first+" para mudar para a 1ª Classe.";
		} else if (Class == Job_Novice_High && .linear_jobchange && lastJob) {
			mes "Trocar de classe agora?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else if (Class == Job_Novice) {
			Job_Menu(Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief,
			         Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby);
		} else if (Class == Job_Novice_High) {
			Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
		} else if (Class == 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);
		} else {
			mes "Um erro aconteceu.";
		}
		close;
	}
	if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) {
		mes "Não há mais classes disponíveis.";
	} else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) {
		mes "É necessário ter um nível de classe igual ou maior a "+.jobchange_second+" para mudar para a 2ª Classe.";
	} else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) {
		mes "Trocar de classe agora?";
		next;
		Job_Menu(lastJob+Job_Novice_High);
	} else {
		Job_Menu(.@job1, .@job2);
	}
	close;

function Job_Menu {
	while (true) {
		if (getargcount() > 1) {
			mes "Selecione uma classe.";
			.@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 "[Mestra das Classes]";
				mes "É necessário ter um nível de base igual ou maior a "+.supernovice_level+" para virar um "+jobname(.@newjob)+".";
				close;
			}
			mes "[Mestra das Classes]";
			mes "Você tem certeza?";
			next;
		} else {
			.@newjob = getarg(0);
		}
		if (select(" ~ Mudar para a classe ^0055FF"+jobname(.@newjob)+"^000000: ~ ^777777"+(getargcount() > 1 ? "Voltar" : "Cancelar")+"^000000") == 1) {
			mes "[Mestra das Classes]";
			mes "Você agora é um "+A_An(jobname(.@newjob))+"!";
			if (.@newjob == Job_Novice_High && .linear_jobchange)
				lastJob = Class; // Nota: Isso é incompatível com o script de renascimento da Valquíria
			jobchange .@newjob;
			if (.@newjob == Job_Novice_High)
				resetlvl(1);
			if (.@newjob == Job_Baby) {
				resetlvl(4);
				SkillPoint = 0;
			set BaseLevel,BaseLevel+175;
			set JobLevel,JobLevel+70;
			}
			specialeffect2 EF_ANGEL2;
			specialeffect2 EF_ELECTRIC;
			if (.platinum)
				callsub Get_Platinum;
			close;
		}
		if (getargcount() == 1)
			return;
		mes "[Mestra das Classes]";
	}
	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;
	} 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;

OnInit:
	.rebirth_blevel = 1;    // Nível de base mínimo para renascer OU mudar para terceira classe
	.rebirth_jlevel = 1;    // Nível de classe mínimo para renascer OU mudar para terceira classe
	.jobchange_first = 1;   // Nível de classe mínimo para mudar para 1ª classe
	.jobchange_second = 1;  // Nível de classe mínimo para mudar para 2ª classe
	.third_classes = 1;      // Permitir terceiras classes/classes expandidas? (1: sim / 0: não)
	.supernovice_level = 45; // Nível de base mínimo para virar um Super Aprendiz
	.linear_jobchange = 1;   // Forçar a troca linear de classes? (1: sim / 0: não)
	.skill_point_check = 1;  // Forçar o jogador usar todos os pontos de habilidade? (1: sim / 0: não)
	.platinum = 1;           // Obter habilidades de platina automaticamente? (1: sim / 0: não)
	set $@level,175;
	set $@job,70;
	end;
}

Para que upe lv máximo base e de classe sem all skill sempre que escolher uma classe, tentei adicionar:

set BaseLevel,BaseLevel+255;

set JobLevel,JobLevel+120;

Só que não tive exito porque não entendendo muito de script ainda.

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.