Change city command

Codes already submitted by people of the forums.
Post Reply
50-pesos
just visiting
Posts: 3
Joined: Sun Jan 01, 2006 1:11 pm

Post by 50-pesos »

Classic /changecity command but this one also changes your hero items.

HG SRC:
Game.cpp:
Search for:

Code: Select all

case '/':
right before that add:

Code: Select all

if (memcmp(cp, "/changecity ", 12) == 0) {
        PlayerOrder_ChangeCity(iClientH);
        return; 
        }
now at the end of Game.cpp add:

Code: Select all

void CGame::PlayerOrder_ChangeCity(int iClientH)
{
class CItem * pItem;
int i, iEraseReq;
int iCape, iCape1, iHelm, iBerk, iPlate, iLegs, iRobe, iCap;
iCape = iCape1 = iHelm = iBerk = iPlate = iLegs = iRobe = iCap = 0;
if(m_pClientList[iClientH] == NULL) return;
if(m_pClientList[iClientH]->m_iLevel <= 249) return;
if(m_pClientList[iClientH]->m_iGizonItemUpgradeLeft >= 300)
{
for(i = 0; i < DEF_MAXITEMS; i++)
{
if(m_pClientList[iClientH]->m_pItemList[i] != NULL)
{
switch(m_pClientList[iClientH]->m_pItemList[i]->m_sIDnum)
{
case 400://AresdenHeroCape-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCape = 1;
break;
case 401://ElvineHeroCape-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCape = 2;
break;
case 403://aHeroHelm(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iHelm = 1;
break;
case 404://aHeroHelm(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iHelm = 2;
break;
case 405://eHeroHelm(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iHelm = 3;
break;
case 406://eHeroHelm(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iHelm = 4;
break;
case 407://aHeroCap(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCap = 1;
break;
case 408://aHeroCap(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCap = 2;
break;
case 409://eHeroCap(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCap = 3;
break;
case 410://eHeroCap(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCap = 4;
break;
case 411://aHeroArmor(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iPlate = 1;
break;
case 412://aHeroArmor(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iPlate = 2;
break;
case 413://eHeroArmor(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iPlate = 3;
break;
case 414://eHeroArmor(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iPlate = 4;
break;
case 415://aHeroRobe(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iRobe = 1;
break;
case 416://aHeroRobe(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iRobe = 2;
break;
case 417://eHeroRobe(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iRobe = 3;
break;
case 418://eHeroRobe(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iRobe = 4;
break;
case 419://aHeroHauberk(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iBerk = 1;
break;
case 420://aHeroHauberk(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iBerk = 2;
break;
case 421://eHeroHauberk(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iBerk = 3;
break;
case 422://eHeroHauberk(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iBerk = 4;
break;
case 423://aHeroLeggings(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iLegs = 1;
break;
case 424://aHeroLeggings(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iLegs = 2;
break;
case 425://eHeroLeggings(M)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iLegs = 3;
break;
case 426://eHeroLeggings(W)-
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iLegs = 4;
break;
case 427://AresdenHeroCape+1
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCape1 = 1;
break;
case 428://ElvineHeroCape+1
ItemDepleteHandler(iClientH, i, TRUE, TRUE);
iCape1 = 2;
break;
}
}
}
if(iCape != 0)
{
pItem = new class CItem;
if(iCape == 1) _bInitItemAttr(pItem, 401);
else if(iCape == 2) _bInitItemAttr(pItem, 400);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iHelm != 0)
{
pItem = new class CItem;
if(iHelm == 1) _bInitItemAttr(pItem, 405);
else if(iHelm == 2) _bInitItemAttr(pItem, 406);
else if(iHelm == 3) _bInitItemAttr(pItem, 403);
else if(iHelm == 4) _bInitItemAttr(pItem, 404);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iCap != 0)
{
pItem = new class CItem;
if(iCap == 1) _bInitItemAttr(pItem, 409);
else if(iCap == 2) _bInitItemAttr(pItem, 410);
else if(iCap == 3) _bInitItemAttr(pItem, 407);
else if(iCap == 4) _bInitItemAttr(pItem, 408);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iPlate != 0)
{
pItem = new class CItem;
if(iPlate == 1) _bInitItemAttr(pItem, 413);
else if(iPlate == 2) _bInitItemAttr(pItem, 414);
else if(iPlate == 3) _bInitItemAttr(pItem, 411);
else if(iPlate == 4) _bInitItemAttr(pItem, 412);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iRobe != 0)
{
pItem = new class CItem;
if(iRobe == 1) _bInitItemAttr(pItem, 417);
else if(iRobe == 2) _bInitItemAttr(pItem, 418);
else if(iRobe == 3) _bInitItemAttr(pItem, 415);
else if(iRobe == 4) _bInitItemAttr(pItem, 416);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iBerk != 0)
{
pItem = new class CItem;
if(iBerk == 1) _bInitItemAttr(pItem, 421);
else if(iBerk == 2) _bInitItemAttr(pItem, 422);
else if(iBerk == 3) _bInitItemAttr(pItem, 419);
else if(iBerk == 4) _bInitItemAttr(pItem, 420);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iLegs != 0)
{
pItem = new class CItem;
if(iLegs == 1) _bInitItemAttr(pItem, 425);
else if(iLegs == 2) _bInitItemAttr(pItem, 426);
else if(iLegs == 3) _bInitItemAttr(pItem, 423);
else if(iLegs == 4) _bInitItemAttr(pItem, 424);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
if(iCape1 != 0)
{
pItem = new class CItem;
if(iCape1 == 1) _bInitItemAttr(pItem, 428);
else if(iCape1 == 2) _bInitItemAttr(pItem, 427);
pItem->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
pItem->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
pItem->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
pItem->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
_bAddClientItemList(iClientH, pItem, &iEraseReq);
SendItemNotifyMsg(iClientH, DEF_NOTIFY_ITEMOBTAINED, pItem, NULL);
}
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= 300;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
if(memcmp(m_pClientList[iClientH]->m_cLocation, "aresden",7) == 0 ) strcpy(m_pClientList[iClientH]->m_cLocation,"elvine");
else if (memcmp(m_pClientList[iClientH]->m_cLocation, "elvine",6) == 0 ) strcpy(m_pClientList[iClientH]->m_cLocation,"aresden");
if(m_pClientList[iClientH]->m_iGuildRank != -1)
{
m_pClientList[iClientH]->m_iGuildRank = -1;
m_pClientList[iClientH]->m_iGuildGUID = -1;
strcpy(m_pClientList[iClientH]->m_cGuildName,"NONE");
}

ShowClientMsg(iClientH, "Enjoy your new citizenship!");
wsprintf(G_cTxt, "(!) Player(%s) Request ChangeCity: C(%d) - H(%d) - C(%d) - P(%d) - R(%d) - B(%d) - L(%d) - C(%d)", m_pClientList[iClientH]->m_cCharName, iCape, iHelm, iCap, iPlate, iRobe, iBerk, iLegs, iCape1);
PutLogList(G_cTxt);
DeleteClient(iClientH, TRUE, TRUE);
}
else
{
ShowClientMsg(iClientH, "Necesitas 300 majestic para cambiar de ciudad");
}
}
Game.h:
Add:

Code: Select all

void PlayerOrder_ChangeCity(int iClientH);
By 50Cent
<img src='http://i722.photobucket.com/albums/ww22 ... ippy-5.gif' border='0' alt='user posted image' />
Cleo.Carter
just visiting
Posts: 4
Joined: Sat Oct 04, 2025 8:15 am
Location: France
Contact:

Exploring the Future of Helbreath Development.

Post by Cleo.Carter »

I believe the future of Helbreath development hinges on community collaboration and innovation. With so many passionate developers involved, what if we could create an entirely new game mode that completely redefines the Helbreath experience? Would this radical shift enhance player engagement or alienate the existing fanbase?
Post Reply