Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Classes custominizadas


ExDeath
 Compartilhar

Posts Recomendados

Bom, pessoal, ja que a demanda eh alta, vou explicar um pouco como se começar (COMEÇAR!) a criar classes customizadas.

 

Bom, primeiro voce precisa decidir qual classe voce quer substituir. Sim, substituir porque a menos que voce conheça e programe em hexadecimal, nao tem como adicionar novos IDs de classe no client.

 

Vou começar pegando uma classe simples e pouco usada...Hmm, vamos ver, Merchant.

Ok, o que preciso fazer agora? Decidir o que diabos quero fazer com essa classe ne...Começar apenas mudando de nome e de skills.

 

Mudando O nome da classe:

Da maneira mais simples, abrindo o sclientinfo.xml e editando isso:

 

QUOTE

 

<version>20</version>

<langtype>12</langtype>

 

 

Porque 20 e 12, porque essas sao as configuraçoes do client do bRO, que foi o primeiro a aceitar a leitura do msgstringtable pra substituir o nome de classes.

 

Agora abra o msgstringtable.txt dentro da sua pasta data e ache o merchant e mude para o nome que voce tem em mente. Que tal chamar nossa nova classe de Politic?

 

QUOTE

 

Swordman#

Mage#

Archer#

Acolyte#

Merchant#

 

 

Pronto achei, vou mudar agora para:

 

QUOTE

 

Merchant#

 

 

So uma nota, Esse nome tem 2 vezes dentro do msgstringtable, 1 para a sua janela de status e outra pra janela de guilda, tenha certeza que mudou os 2.

 

Ok, meu merchant ja se chama Politic e agora?

 

Configurar skills de maneira simples:

Primeiro vou escolher skills que ja existem e dar pra ele, pode ser ate algumas de merchant mesmo...

Bom, eu escolhi as seguintes skills:

 

QUOTE

 

MC_INCCARRY#Enlarge_Weight_Limit# Porque eles tem mao de vaca.

MC_OVERCHARGE#Overcharge# Gostam de enganar as pessoas.

MC_IDENTIFY#Item_Appraisal# Como sua riquesa geralmente eh grande, sabem avaliar o preço das coisas pra depois vender mais caro.

TF_STEAL#Steal# Nao precisa explicar ne...

TF_HIDING#Hiding# Mesmo que acima...

WZ_ESTIMATION#Sense# Porque sempre que acontece merda, eles desaparecem.

BS_HILTBINDING#Hilt_Binding# Denovo, porque sao mao de vaca.

TF_BACKSLIDING#Back Slide# Na hora de correr, quem sao os mais rapidos?

MC_LOUD#Lord Exclamation# Porque gostam de mandar nas pessoas.

RG_COMPULSION#Compulsion_Discount# Tambem porque gostam de enganar as pessoas.

RG_PLAGIARISM#Plagiarism# Porque copiam os outros na cara dura.

ST_PRESERVE#Preserve# Porque alem de copiar, clamam que era seu desde o inicio.

RG_SNATCHER#Snatcher# *cof*roubar*cof*

RG_STEALCOIN#Steal_Coin# *cof*dinheiro nunca eh demais*cof*

RG_BACKSTAP#Back_Stab# Porque apunhalam todos pelas costas.

 

 

 

Ok, bem, ja escolhi, entre as skills que tem em RO, quais quero usar. Agora traço uma skill tree bonitinha, que nao fique muito forte e defino quais vao ser os lvs maximos de cada skill.

 

Leveis maximos de skill, como defino?

 

Definindo os Leveis maximos de cada skill:

Depende, voce quer que seja uma first class ou second class (talvez evoçuçao de merchant, mas ai voce ia precisar mudar muita coisa nas lista de skills, senao ia repetir, mas isso eh o de menos).

Bem, vou decidir que ela seja uma first class. Entao começo logo a calcular os pontos de skill, ela nao pode desequilibrar demais o jogo certo?

 

Vou calcular tudo denovo:

 

QUOTE

 

MC_INCCARRY# 5, eles carregam so aquilo que conseguem, mas ter coisa demais gera suspeita.

MC_OVERCHARGE#Overcharge# 5, roubar nunca eh demais certo?

MC_IDENTIFY#Item_Appraisal# 1, ela so tem 1 lv mesmo.

TF_STEAL#Steal# 5, eles sao ladroes, mas nao vivem disso ne (ou vivem? <.<)

TF_HIDING#Hiding# 5 Apesar de tudo, eles nao treinaram isso a vida toda.

WZ_ESTIMATION#Sense# 1 tambem, lv max.

BS_HILTBINDING#Hilt_Binding# 1, mesma coisa.

TF_BACKSLIDING#Back Slide# 1, <.<

MC_LOUD#Lord Exclamation# 1, ficando repetitivo isso...

RG_COMPULSION#Compulsion_Discount# 5, level maximo, ajuda a fazer dinheiro tambem.

RG_PLAGIARISM#Plagiarism# 10 sao eximios em clamar qualquer coisa como sua.

ST_PRESERVE#Preserve# 1, "que saco, esse cara so tem skill de 1 lv?"

RG_SNATCHER#Snatcher# 10, level maximo, senao teria 20 (Os Ladroes pelo menos sao honestos, politicos nao)

RG_STEALCOIN#Steal_Coin# 5, level maximo tambem.

RG_BACKSTAP#Back_Stab# 5, nao queremos ele forte demais certo?

 

 

 

Bom, calculando tudo, ele eh uma classe de 61 pontos de skill, isso quer dizer que se eu chegar no lv 50, vai faltar 12 pontos de skill pra maximizar todas (Justo ne? Tem classe que maximiza no 45 <.<).

 

Bem, traçar uma skill tree bonitinha agora.

 

Skill Tree (Arvore de Skills):

 

QUOTE

 

Increase Weight Limit - Inicial, ganha quando vira essa classe

Steal - Inicial, ganha quando vira essa classe

Lord Exclamation - Inicial, ganha quando vira essa classe

Snatcher - Requer Steal 3 e Increase Weight Limit 1

Overcharge - Increase Weight Limit 3, Lord Exclamation 1 e Snatcher 1

Steal Coin - Snatcher 5

Item apraisal - Overcharge 3

Hiding - Steal 5 e Snatcher 5

Back Sliding - Hiding 3

Compulsive Discount - Item Appraisal 1 e Overcharge 5

Hilt Binding - Compulsive Discount 1

Sense - Item Apraisal 1, Hilt Binding 1 e Steal Coin 1

Plagiarism - Steal Coin 5, Snatcher 10 e Overcharge 5.

Preserve - Plagiarism 1, Lord Exclamation 1 e Steal 5.

BackStab - Hilt Binding 1 e Steal Coin 5.

 

 

 

Bem, agora colocar isso tudo que esta no papel em pratica.

Primeiro abro o skill_tree.txt na pasta /db e acho o Merchant:

 

QUOTE

 

//Merchant

5,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#

5,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#

5,36,10,0,0,0,0,0,0,0,0,0,0 //MC_INCCARRY#Enlarge Weight Limit#

5,37,10,36,3,0,0,0,0,0,0,0,0 //MC_DISCOUNT#Discount#

5,38,10,37,3,0,0,0,0,0,0,0,0 //MC_OVERCHARGE#Overcharge#

5,39,10,36,5,0,0,0,0,0,0,0,0 //MC_PUSHCART#Pushcart#

5,40,1,0,0,0,0,0,0,0,0,0,0 //MC_IDENTIFY#Item Appraisal#

5,41,10,39,3,0,0,0,0,0,0,0,0 //MC_VENDING#Vending#

5,42,10,0,0,0,0,0,0,0,0,0,0 //MC_MAMMONITE#Mammonite#

5,153,1,0,0,0,0,0,0,0,0,0,0 //MC_CARTREVOLUTION#Cart Revolution#

5,154,1,0,0,0,0,0,0,0,0,0,0 //MC_CHANGECART#Change Cart#

5,155,1,0,0,0,0,0,0,0,0,0,0 //MC_LOUD#Crazy Uproar#

5,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#

 

 

Vamos remover tudo que nao precisamos e adicionar tudo que queremos, ficando assim no final (ja com os Max lvs ajustados.

 

QUOTE

 

//Merchant

5,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#

5,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#

5,36,5,0,0,0,0,0,0,0,0,0,0 //MC_INCCARRY#Enlarge Weight Limit#

5,38,5,36,3,155,1,210,1,0,0,0,0 //MC_OVERCHARGE#Overcharge#

5,40,1,38,3,0,0,0,0,0,0,0,0 //MC_IDENTIFY#Item Appraisal#

5,155,1,0,0,0,0,0,0,0,0,0,0 //MC_LOUD#Crazy Uproar#

5,50,5,0,0,0,0,0,0,0,0,0,0 //TF_STEAL#Steal#

5,51,5,50,5,210,5,0,0,0,0,0,0 //TF_HIDING#Hiding#

5,150,1,50,3,0,0,0,0,0,0,0,0 //TF_BACKSLIDING#Back Sliding#

5,93,1,40,1,211,1,105,1,0,0,0,0 //WZ_ESTIMATION#Sense#

5,105,1,224,1,0,0,0,0,0,0,0,0 //BS_HILTBINDING#Hilt Binding#

5,210,10,50,3,36,1,0,0,0,0,0,0 //RG_SNATCHER#Gank#

5,211,5,210,5,0,0,0,0,0,0,0,0 //RG_STEALCOIN#Mug#

5,212,5,211,5,105,1,0,0,0,0,0,0 //RG_BACKSTAP#Back Stab#

5,219,5,212,4,214,5,0,0,0,0,0,0 //RG_INTIMIDATE#Snatch#

5,225,10,219,5,0,0,0,0,0,0,0,0 //RG_PLAGIARISM#Intimidate#

5,224,5,38,5,40,1,0,0,0,0,0,0 //RG_COMPULSION#Haggle#

5,105,1,225,1,50,5,0,0,0,0,0,0 //ST_PRESERVE#Preserve#

 

 

Para quem quer entender melhor o que foi feito:

 

QUOTE

 

//JobNo,Skill-ID,MaxLV,Prerequisite Skill-ID-1,Prerequisite Skill-ID-1-Lv,PrereqSkill-ID-2,PrereqSkill-ID-2-Lv,PrereqSkill-ID-3,PrereqSkill-ID-3-Lv,PrereqSkill-ID-4,

PrereqSkill-ID-4-Lv,PrereqSkill-ID-5,PrereqSkill-ID-5-Lv//CLASS_SKILLNAME#Skill Name#

 

 

Nota que algumas das skills dessa classe sao class-skill, logo voce precisa ou modificar isso no skill_db, ou criar um npc que da todas elas pra essa classe(mais facil).

 

Mas se quiser que elas deixem de ser class-skill e que os players tenham que comprar elas com seus proprios pontos:

 

QUOTE

 

155,0,6,4,0,1,0,1,1,no,0,1,0,weapon,0 //MC_LOUD#Crazy Uproar#

150,0,6,4,0,1,0,1,1,no,0,1,0,weapon,5 //TF_BACKSLIDING#Back Sliding#

 

 

 

Mude para:

 

QUOTE

 

155,0,6,4,0,1,0,1,1,no,0,0,0,weapon,0 //MC_LOUD#Crazy Uproar#

150,0,6,4,0,1,0,1,1,no,0,0,0,weapon,5 //TF_BACKSLIDING#Back Sliding#

 

 

 

Pronto, a classe ja esta praticamente pronta, voce precisa apenas criar uma quest pra ela, ou usar um jobchanger (mas nao esqueça de mudar "Merchant" para "Politic" no npc).

 

Se quiserem, podem mudar o comando @Job/@jobchange tambem.

 

Mudando o comando @jobchange:

Abram o arquivo:

/src/map/atcommand.c

E achem o seguinte codigo.

 

QUOTE

 

int atcommand_jobchange(

const int fd, struct map_session_data* sd,

const char* command, const char* message)

{

int job = 0, upper = 0;

nullpo_retr(-1, sd);

 

if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) {

 

int i, found = 0;

const struct { char name[16]; int id; } jobs[] = {

{ "novice", 0 },

{ "swordsman", 1 },

{ "mage", 2 },

{ "archer 2", 3 },

{ "acolyte", 4 },

{ "merchant", 5 },

 

 

 

E mudem para o que quiserem:

 

 

QUOTE

 

int atcommand_jobchange(

const int fd, struct map_session_data* sd,

const char* command, const char* message)

{

int job = 0, upper = 0;

nullpo_retr(-1, sd);

 

if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) {

 

int i, found = 0;

const struct { char name[16]; int id; } jobs[] = {

{ "novice", 0 },

{ "swordsman", 1 },

{ "mage", 2 },

{ "archer 2", 3 },

{ "acolyte", 4 },

{ "politic", 5 },

 

 

 

 

Assim, quando digitarem @job ou @jobchange politic, voce vai se tornar essa classe. Caso contrario, voce iria digitar @job merchant e viraria o Politico.

 

Nao vou ensinar a modificar os sprites nesse topico, porque...Bem , eu nao sou designer nem nada, entao eu realmente nao sei fazer isso.

 

Bom, com isso eu espero que a comunidade de desenvolvedores do forum aumente, pois uma ideia basica de como criar sua propria classe voces ja tem. Qualquer dia eu apareço com mais coisa pra complementar esse topico.

 

lovehinasexsign.jpg

Link para o comentário
Compartilhar em outros sites

Existe varios tipos de Flood

 

Flood com topico Duplo

Flood com topico na area errada

Flood sem colocar os creditos

+- Flood de link de download Off

Flood de oalavras q n tenha nada aver como :d21a2d1a2d1a6e5av6e

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois...
  • 2 semanas atrás...

Naum sei de qual outro topico eh issu

mas sei q esse outro topico vem do eAthena,

Erro no topico, pra fazer classes customizadas naum tem nada a ver com o Hexed do jogo (hexadecimal)

Parar vc fazer uma classe customizada, vc tem q saber compilar o jogo e saber mexer no mmo.h

tem q ter bastante no´ao pois se vc mexer errado Puff..., ja era, e tem q saber mexer com edi´ao de imagens, pra fazer os Sprites(.SPR) e os Actions(.ACT)

e eh um baita ctrl+c,pois nem os Quotes foram pegos

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.