Jump to content
Ryen

[C++] Cambio de raza por comandos.

Recommended Posts

Hola gente, pues  vi la guia en DEV me parecio intersante por que avces tenemos que estar cmabiado de raza por quest asi que con esto estaria genial cambiar de raza por un simple comando.


 


La guia no es mia es de AlexxD


La traduccion si es mia.


 


1. Abe to cmd.cpp y busca




Debes iniciar sesión para ver el contenido del enlace en esta publicación.




ACMD(do_vote_block_chat);





depues de esa linea añadir esto




Debes iniciar sesión para ver el contenido del enlace en esta publicación.




// Change race
ACMD(do_change_race);
// Change race end





2. Tambien  en cmd.cpp buscar




Debes iniciar sesión para ver el contenido del enlace en esta publicación.




// END_OF_BLOCK_CHAT





depues de esa linea añadirr.




Debes iniciar sesión para ver el contenido del enlace en esta publicación.




// Change race
{ "change_race", do_change_race, 0, POS_DEAD, GM_IMPLEMENTOR },
// Change race end





3.Luego  cmd_gm.cpp alfinal del todo pegas este codigo si tienes lycan




Debes iniciar sesión para ver el contenido del enlace en esta publicación.




ACMD(do_change_race)
{
char arg1[256], arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
// init
bool bIsSetSkillGroup = false;
DWORD dwRace = MAIN_RACE_MAX_NUM;
DWORD dwSkillGroup = 0;
// check arg1
if (!*arg1)
{
goto USAGE;
return;
}
// check&analyze arg2
if (*arg2)
{
str_to_number(dwSkillGroup, arg2);
dwSkillGroup = MINMAX(0, dwSkillGroup, 2);
bIsSetSkillGroup = true;
}
// analyze arg1
str_to_number(dwRace, arg1);
if (dwRace >= MAIN_RACE_MAX_NUM)
{
goto USAGE;
return;
}
// skip if same race
if (dwRace==ch->GetRaceNum())
return;
// process change race
ch->ChatPacket(CHAT_TYPE_INFO, "Old race=%u, Group=%u", ch->GetRaceNum(), ch->GetSkillGroup());
ch->SetRace(dwRace);
ch->ClearSkill();
// ch->ClearSubSkill();
if (bIsSetSkillGroup)
{
ch->SetSkillGroup(dwSkillGroup);
}
// quick mesh change workaround begin
ch->SetPolymorph(101);
ch->SetPolymorph(0);
// quick mesh change workaround end
ch->ChatPacket(CHAT_TYPE_INFO, "New race=%u, Group=%u", ch->GetRaceNum(), ch->GetSkillGroup());
return;
// Usage
USAGE:
ch->ChatPacket(CHAT_TYPE_INFO, "Usage: /change_race <race_id>");
// lista raselor
ch->ChatPacket(CHAT_TYPE_INFO, "Races list:");
ch->ChatPacket(CHAT_TYPE_INFO, "\tWarrior M = %d", MAIN_RACE_WARRIOR_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tNinja F = %d", MAIN_RACE_ASSASSIN_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tSura M = %d", MAIN_RACE_SURA_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tShaman F = %d", MAIN_RACE_SHAMAN_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tWarrior W = %d", MAIN_RACE_WARRIOR_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tNinja M = %d", MAIN_RACE_ASSASSIN_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tSura W = %d", MAIN_RACE_SURA_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tShaman M = %d", MAIN_RACE_SHAMAN_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tWolfman M = %d", MAIN_RACE_WOLFMAN_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tMax race number = %d", MAIN_RACE_MAX_NUM);
// Group lists.
ch->ChatPacket(CHAT_TYPE_INFO, "Lista grupelor:");
ch->ChatPacket(CHAT_TYPE_INFO, "\tNone = 0");
ch->ChatPacket(CHAT_TYPE_INFO, "\tFirst = 1");
ch->ChatPacket(CHAT_TYPE_INFO, "\tSecond = 2");
return;
}
4.Eso seria todo.








2)Si no tienes lycan o simplemente quieres tener solo 4 razas as de pegar este otro codigo en cmd_gm.cpp:
?
ACMD(do_change_race)
{
char arg1[256], arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
// init
bool bIsSetSkillGroup = false;
DWORD dwRace = MAIN_RACE_MAX_NUM;
DWORD dwSkillGroup = 0;
// check arg1
if (!*arg1)
{
goto USAGE;
return;
}
// check&analyze arg2
if (*arg2)
{
str_to_number(dwSkillGroup, arg2);
dwSkillGroup = MINMAX(0, dwSkillGroup, 2);
bIsSetSkillGroup = true;
}
// analyze arg1
str_to_number(dwRace, arg1);
if (dwRace >= MAIN_RACE_MAX_NUM)
{
goto USAGE;
return;
}
// skip if same race
if (dwRace==ch->GetRaceNum())
return;
// process change race
ch->ChatPacket(CHAT_TYPE_INFO, "Old race=%u, Group=%u", ch->GetRaceNum(), ch->GetSkillGroup());
ch->SetRace(dwRace);
ch->ClearSkill();
// ch->ClearSubSkill();
if (bIsSetSkillGroup)
{
ch->SetSkillGroup(dwSkillGroup);
}
// quick mesh change workaround begin
ch->SetPolymorph(101);
ch->SetPolymorph(0);
// quick mesh change workaround end
ch->ChatPacket(CHAT_TYPE_INFO, "New race=%u, Group=%u", ch->GetRaceNum(), ch->GetSkillGroup());
return;
// Usage
USAGE:
ch->ChatPacket(CHAT_TYPE_INFO, "Usage: /change_race <race_id>");
// lista raselor
ch->ChatPacket(CHAT_TYPE_INFO, "Races list:");
ch->ChatPacket(CHAT_TYPE_INFO, "\tWarrior M = %d", MAIN_RACE_WARRIOR_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tNinja F = %d", MAIN_RACE_ASSASSIN_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tSura M = %d", MAIN_RACE_SURA_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tShaman F = %d", MAIN_RACE_SHAMAN_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tWarrior W = %d", MAIN_RACE_WARRIOR_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tNinja M = %d", MAIN_RACE_ASSASSIN_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tSura W = %d", MAIN_RACE_SURA_W);
ch->ChatPacket(CHAT_TYPE_INFO, "\tShaman M = %d", MAIN_RACE_SHAMAN_M);
ch->ChatPacket(CHAT_TYPE_INFO, "\tMax race number = %d", MAIN_RACE_MAX_NUM);
// Group lists.
ch->ChatPacket(CHAT_TYPE_INFO, "Lista grupelor:");
ch->ChatPacket(CHAT_TYPE_INFO, "\tNone = 0");
ch->ChatPacket(CHAT_TYPE_INFO, "\tFirst = 1");
ch->ChatPacket(CHAT_TYPE_INFO, "\tSecond = 2");
return;

Espero que disfruten con esto por que es muy comodo.


 


Ahora solo es compilar el game 


 


dejare los comandos de compilado


 


cd /ruta/[ENTER]


gmake clean [ENTER]


gmake -j20 [ENTER]


 


Ahora para comprimir el game deberis poner la ruta donde se compilo el game que norlmanete es la carpeta anterior donde esta los archivos del source


 


Para comprimir usamos el comando


strip -s [NOMBRE]-[ENTER]


 


Y listo ^^ eso es todo un saludo.


Share this post


Link to post
Share on other sites

Chacho por lo menos pon el codigo con "codigo" del foro para que quede más bonito.

 

Interesante.. buen aporte.

Share this post


Link to post
Share on other sites

Chacho por lo menos pon el codigo con "codigo" del foro para que quede más bonito.

 

Interesante.. buen aporte.

Listo ya esta editado.

 

PD: no lo habia provado lo e probado y almenos ami me da error al compilar la parte del cmd_gm.cpp ni idea por que si alguien que sepa revisa la guia y encuentra elf allo loq ue sobra o falta se agradece

Share this post


Link to post
Share on other sites

Solo es quitar el "?" que aparece al principio 

2)Si no tienes lycan o simplemente quieres tener solo 4 razas as de pegar este otro codigo en  cmd_gm.cpp:
?
ACMD(do_change_race)
{
    char arg1[256], arg2[256];
    two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
    // init
    bool bIsSetSkillGroup = false;
    DWORD dwRace = MAIN_RACE_MAX_NUM;
    DWORD dwSkillGroup = 0;
    // check arg1
    if (!*arg1)
    {

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...