Ir para conteúdo

Posts Recomendados

Olá galera, eu vi muita gente querendo script de Corpse por vocation. Tentaram fazer até no script lua, Mas eu acho mais fácil fazer pelas sources mesmo.

 

1° Abra as sources do seu servidor, e abra o arquivo chamado "Players.cpp", depois Procure por

uint16_t Player::getLookCorpse() const
{
if(sex % 2)
return ITEM_MALE_CORPSE;
 
return ITEM_FEMALE_CORPSE;
}
Depois mude esse código para
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;  
}
Como configurar ao seu gosto ?

Mudando id do corpse
Fácil, ta vendo aonde está assim

/*Config */
 
    sorcerer = ID DO CORPSE;  // corpse do sorcerer
 
    druid = ID DO CORPSE;    // corpse do druid
 
    paladin = ID DO CORPSE;    // corpse do paladin
 
    knight = ID DO CORPSE;    // corpse do knight
        
    defaultt = ID DO CORPSE;    // corpse padrão.
 
    /*End */
Adicionando novas vocations
Também é fácil, instruções \/
Procure por
  if (getVocationId() == 1 || getVocationId() == 5) 
        return sorcerer;  
 
e adicione uma nova vocation

if (getVocationId() == ID DA VOCATION || getVocationId() == ID DA VOCATION)
return NOME DA VOCATION;
/\ NOME QUE VAI DECLARAR NA INT
Declarando nome na int
Procure por
uint16_t sorcerer, druid, paladin, knight, defaultt = 0;
E adicione um nome entre eles, tipo.
uint16_t sorcerer, NOME DA VOCATION, druid, paladin, knight, defaultt = 0;
Adicionando o local da int
Procure por

 sorcerer = 3343;  // corpse do sorcerer
Embaixo dele adicione uma nova vocation assim \/
NOME DA VOCATION = ID DO CORPSE; // COMENTARIO

Pronto fim mdr.gif
Editado por Applezin
Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/
Compartilhar em outros sites

Applezin demais!

Tem como colocar pelas sources tambem,se por exemplo o player morrer e tiver X storage ,dropa X corpo?

Digo dentro de cada vocation ai no script seu.

Por exemplo:

Sorcerer com storage 10001 cai o corpo x.

Sorcerer com storage 10002 cai o corpo y.

Sorcerer com storage 10003 cai o corpo z.

 

Tem como? Pois eu queria que dropasse cada corpo quando o player tivesse tal storage.

Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/#findComment-1573366
Compartilhar em outros sites

Applezin demais!

Tem como colocar pelas sources tambem,se por exemplo o player morrer e tiver X storage ,dropa X corpo?

Digo dentro de cada vocation ai no script seu.

Por exemplo:

Sorcerer com storage 10001 cai o corpo x.

Sorcerer com storage 10002 cai o corpo y.

Sorcerer com storage 10003 cai o corpo z.

 

Tem como? Pois eu queria que dropasse cada corpo quando o player tivesse tal storage.

 

Nao, pq storage acredito eu q é só usado em scripts em lua. :S

Mas .... eu vou ver oq consigo aqui, vou estudar lua para tentar fazer isso ligado ao distro!

 

Boa mais tarde eu testo , REP + e bem vindo ao fórum.

 

Vlw

 

bom código já pensou em colocar o id dos corpses no config.lua usando o configmanager?

 

Eu não tinha pensado nisso, Mas Seria melhor botando o local em um xml, tipo no vocations ?

quando eu fazer algum ot aqui e postar, vou bota uma função de corpse lá.

Editado por Applezin
Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/#findComment-1573432
Compartilhar em outros sites

Eu não tinha pensado nisso, Mas Seria melhor botando o local em um xml, tipo no vocations ?

quando eu fazer algum ot aqui e postar, vou bota uma função de corpse lá.

Boa ideia adicionar configurações no xml não é complicado não só estudar as já existentes

Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/#findComment-1573479
Compartilhar em outros sites

 

Eu não tinha pensado nisso, Mas Seria melhor botando o local em um xml, tipo no vocations ?

quando eu fazer algum ot aqui e postar, vou bota uma função de corpse lá.

Boa ideia adicionar configurações no xml não é complicado não só estudar as já existentes

 

 

Sim, eu estou criando um servidor derivado de dbz, estilo o dbo. ai eu vou adicionar essa função e vou disponibilizar ele para download, mas eu só vou botar ele para download, quando eu terminar o otclient, aonde é a area q eu mais sofro kkk!

Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/#findComment-1573487
Compartilhar em outros sites

  • 2 months later...

Revivendo por conta de eu abordar o assunto do tópico.

 

Eu fiz tudo certo, exatamente desde modo:

uint16_t Player::getLookCorpse() const
{
    uint16_t darkelf, geryon, dwarf, orc, elf, human, defaultt = 0;

    /*Config */

    darkelf = 2945;  // corpse of liz

    geryon = 3080;    // don't have the dead corpse yet

    dwarf = 2960;    // corpse dwarf

    orc = 3080;    // corpse normalorc

    elf = 2945;    // corpse of elf

    human = 3058;    // corpse do knight
  
    defaultt = 3354;    // corpse padrão.

    /*End */

    if (getVocationId() == 1 || getVocationId() == 1)
        return darkelf;

    else if (getVocationId() == 2 || getVocationId() == 2)
        return geryon;

    else if (getVocationId() == 3 || getVocationId() == 3)
        return  dwarf;

    else if (getVocationId() == 4 || getVocationId() == 4)
        return orc;
  
    else if (getVocationId() == 5 || getVocationId() == 5)
        return elf;
  
    else if (getVocationId() == 6 || getVocationId() == 6)
        return human;

O Elf e o Human funcionam normalmente: o elfo vira um dead elfo após morrer, o humano um dead human... O problema é que, quando qualquer outra vocação morre, o corpo some, desaparece. Só fica o sangue. Por que isso?

Editado por FilipeMAN
Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/#findComment-1598885
Compartilhar em outros sites

Revivendo por conta de eu abordar o assunto do tópico.

 

Eu fiz tudo certo, exatamente desde modo:

uint16_t Player::getLookCorpse() const
{
    uint16_t darkelf, geryon, dwarf, orc, elf, human, defaultt = 0;

    /*Config */

    darkelf = 2945;  // corpse of liz

    geryon = 3080;    // don't have the dead corpse yet

    dwarf = 2960;    // corpse dwarf

    orc = 3080;    // corpse normalorc

    elf = 2945;    // corpse of elf

    human = 3058;    // corpse do knight
  
    defaultt = 3354;    // corpse padrão.

    /*End */

    if (getVocationId() == 1 || getVocationId() == 1)
        return darkelf;

    else if (getVocationId() == 2 || getVocationId() == 2)
        return geryon;

    else if (getVocationId() == 3 || getVocationId() == 3)
        return  dwarf;

    else if (getVocationId() == 4 || getVocationId() == 4)
        return orc;
  
    else if (getVocationId() == 5 || getVocationId() == 5)
        return elf;
  
    else if (getVocationId() == 6 || getVocationId() == 6)
        return human;

O Elf e o Human funcionam normalmente: o elfo vira um dead elfo após morrer, o humano um dead human... O problema é que, quando qualquer outra vocação morre, o corpo some, desaparece. Só fica o sangue. Por que isso?

 

Porque talvez você não tenha adicionado a vocation certa, ou então, Verifique no seu vocations.xml os "fromvoc" se estão com os números certos!

Link para o comentário
https://xtibia.com/forum/topic/222788-corpse-por-vocation-c/#findComment-1599091
Compartilhar em outros sites

  • 2 months later...
×
×
  • Criar Novo...