só server se for na distro. eu tenho um que é em creaturescripts se quiser só fala que quando eu voltar eu deixo o scripter aqui
- Fórum
- OTServ
- Suporte
- Resolvidos
- Fazer ajuste nos códigos de corpse
Fazer ajuste nos códigos de corpse
Por AdilsonHacker, 04 de mai. de 2015 em Resolvidos
info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino

Eu tenho esse script, só que preferia essa mudança nas source por que me sinto mais seguro fazendo essa mudança nas source, obrigado por tentar ajudar!
Editado Maio 4 por AdilsonTsunami
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

Você pode usar o operador ternário para definir o id de acordo com o sexo do player.
Exemplo: Suponhamos que a função que retorna o sexo do player é a "getSex()" e ela retorne 0 para female e 1 para male, você poderia utilizar assim:
uint16_t Player::getLookCorpse() const
{
uint16_t sorcerer, druid, paladin, knight, defaultt = 0;
/*Config */
sorcerer = (getSex() == 0) ? 3342 : 3343; // corpse do sorcerer
druid = (getSex() == 0) ? 3342 : 3343; // corpse do druid
paladin = (getSex() == 0) ? 3342 : 3343; // corpse do paladin
knight = (getSex() == 0) ? 3342 : 3343; // corpse do knight
defaultt = (getSex() ==0) ? 3353 : 3354; // corpse padrão.
/*End */
if (getVocationId() == 1 || getVocationId() == 5)
return sorcerer;
else if (getVocationId() == 2 || getVocationId() == 6)
return druid;
else if (getVocationId() == 3 || getVocationId() == 7)
return paladin;
else if (getVocationId() == 4 || getVocationId() == 8)
return knight;
return defaultt;
}
Entendeu?
info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino

Pelo que eu entendi, se eu colocar as vocações humanas assim com o 0 trocando apenas os id já vai variar se o jogador for male ou female?:
sorcerer = (getSex() == 0) ? 3342 : 3343; // corpse do sorcerer male e female druid = (getSex() == 0) ? 3342 : 3343; // corpse do druid male e female paladin = (getSex() == 0) ? 3342 : 3343; // corpse do paladin male e female knight = (getSex() == 0) ? 3342 : 3343; // corpse do knight male e female
e se eu quiser adicionar os outros corpse que não quero que varie é só adicionar abaixo outro só que assim?
dwarf = 3343; // corpse do dwarf
elf = 3343; // corpse do elf
Grato!
@up
Não faça isso nas sources se pode ser feito em scripts, vai reduzir demais a manutenibilidade.
info
Grupo: Campones
Registrado: 13/04/15
Posts: 25
Reputação: +2
Char no Tibia: [ADM] Phellip

Bom, caso mude de ideia e queira um script eu disponibilizo o meu que utilizo em meu servidor de Dragon Ball.
info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino

Eu tenho ele em forma de script, mais fazer essa mudança nas source acho mais seguro.
Obrigado por tentarem ajudar.
@EDIT
Bom, obrigado a todos que tentaram ajudar consegui aqui pela source, obrigado Bruno Minervino
Editado Maio 7 por AdilsonTsunami





info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino
Amigos, eu estou com um pequeno problema em uns códigos que uso para trocar o corpse de tal vocation id ao morrer, bom o código pega 100% a única coisa que não achei legal, é que se um humano morre ele não varia seu corpo tipo se um female morrer aparecer o corpo da mulher e um male de um homem, e as outras vocações que são monstro pode ficar só um corpo só mesmo, apenas humanos que tem que ter essa variação.
Códigos:
uint16_t Player::getLookCorpse() const { uint16_t sorcerer, druid, paladin, knight, defaultt = 0; /*Config */ sorcerer = 3343; // corpse do sorcerer druid = 3343; // corpse do druid paladin = 3343; // corpse do paladin knight = 334; // corpse do knight defaultt = 3354; // corpse padrão. /*End */ if (getVocationId() == 1 || getVocationId() == 5) return sorcerer; else if (getVocationId() == 2 || getVocationId() == 6) return druid; else if (getVocationId() == 3 || getVocationId() == 7) return paladin; else if (getVocationId() == 4 || getVocationId() == 8) return knight; return defaultt; }Agradeço desde já!