release file fix crash chaos card
file GMMng.cpp
in gameserver
You must be registered to see links
code:
case COMMAND_MAKECHAOSCARD:
{
char sztext[256];
int cardtype = this->GetTokenNumber();
int Amount = this->GetTokenNumber();
switch(cardtype)
{
case 0:
{
for(int i = 0;i<Amount;i++)
{
ItemSerialCreateSend(aIndex, gObj[aIndex].MapNumber, gObj[aIndex].X, gObj[aIndex].Y, ITEMGET(14,54), 0, 0, 0, 0, 0, -1, 0, 0);
}
memset(sztext, NULL, sizeof(sztext));
sprintf(sztext,"Created %d Chaos Cards",Amount);
GCServerMsgStringSend(sztext,lpObj->m_Index,1);
}
break;
case 1:
{
for(int i = 0;i<Amount;i++)
{
ItemSerialCreateSend(aIndex, gObj[aIndex].MapNumber, gObj[aIndex].X, gObj[aIndex].Y, ITEMGET(14,92), 0, 0, 0, 0, 0, -1, 0, 0);
}
memset(sztext, NULL, sizeof(sztext));
sprintf(sztext,"Created %d Golden Chaos Cards",Amount);
GCServerMsgStringSend(sztext,lpObj->m_Index,1);
}
break;
case 2:
{
for(int i = 0;i<Amount;i++)
{
ItemSerialCreateSend(aIndex, gObj[aIndex].MapNumber, gObj[aIndex].X, gObj[aIndex].Y, ITEMGET(14,93), 0, 0, 0, 0, 0, -1, 0, 0);
}
memset(sztext, NULL, sizeof(sztext));
sprintf(sztext,"Created %d Rare Chaos Cards",Amount);
GCServerMsgStringSend(sztext,lpObj->m_Index,1);
}
break;
case 3:
{
for(int i=0;i<Amount;i++)
{
ItemSerialCreateSend(aIndex, gObj[aIndex].MapNumber, gObj[aIndex].X, gObj[aIndex].Y, ITEMGET(14,95), 0, 0, 0, 0, 0, -1, 0, 0);
}
memset(sztext, NULL, sizeof(sztext));
sprintf(sztext,"Created %d Mini Chaos Cards",Amount);
GCServerMsgStringSend(sztext,lpObj->m_Index,1);
}
break;
default:
memset(sztext, NULL, sizeof(sztext));
sprintf(sztext,"Input a valid chaos card");
GCServerMsgStringSend(sztext,lpObj->m_Index,1);
}
}
break;
command :
/makechaoscard 1 10
type:
0-> normal chaos card
1-> Golden chaos card
2-> rare chaos card
3-> mini chaos card
special thanks
natzugen
release file eledoradoevent.cpp : fix LizardKing crash in game server
You must be registered to see links
code:
void CEledoradoEvent::RegenDevilLizardKing()
{
char msg[255]; // [sp+4Ch] [bp-110h]@6
int MapNumber; // [sp+14Ch] [bp-10h]@4
int n; // [sp+150h] [bp-Ch]@1
for (n = 0; n < OBJ_MAXMONSTER; ++n)
{
if (gObj[n].Class == 80) //-> Golden Vepar
{
gObj[n].Live = 1;
MapNumber = 7;
gObj[n].MapNumber = 7;
while (gMSetBase.GetBoxPosition( MapNumber, 50, 50, 200, 200, gObj[n].X, gObj[n].Y))
;
this->m_BossDevilLizardKingMapNumber = gObj[n].MapNumber;
this->m_BossDevilLizardKingMapX = gObj[n].X;
this->m_BossDevilLizardKingMapY = gObj[n].Y;
gObj[n].Life = gObj[n].MaxLife;
gObj[n].TX = gObj[n].X;
gObj[n].TY = gObj[n].Y;
gObj[n].MTX = gObj[n].X;
gObj[n].MTY = gObj[n].Y;
gObj[n].StartX = gObj[n].X;
gObj[n].StartY = gObj[n].Y;
gObj[n].m_State = 1;
gObj[n].PathCount = 0;
LogAddTD("Make GoldLizarKing : %d, %d,%d", MapNumber, gObj[n].X, gObj[n].Y);
wsprintfA(msg, "GoldLizarKing invasion started : %d, %d,%d", MapNumber, gObj[n].X, gObj[n].Y);
AllSendServerMsg(msg);
}
else if (gObj[n].Class == 81) //-> Golden Devil Lizard King
{
gObj[n].Live = 1;
MapNumber = this->m_BossDevilLizardKingMapNumber;
gObj[n].MapNumber = MapNumber;
gMSetBase.GetBoxPosition(MapNumber,this->m_BossDevilLizardKingMapX - 4,this->m_BossDevilLizardKingMapY - 4,
this->m_BossDevilLizardKingMapX + 4,this->m_BossDevilLizardKingMapY + 4,gObj[n].X,gObj[n].Y);
gObj[n].Life = gObj[n].MaxLife;
gObj[n].TX = gObj[n].X;
gObj[n].TY = gObj[n].Y;
gObj[n].MTX = gObj[n].X;
gObj[n].MTY = gObj[n].Y;
gObj[n].StartX = gObj[n].X;
gObj[n].StartY = gObj[n].Y;
gObj[n].m_State = 1;
gObj[n].PathCount = 0;
}
}
}
special thanks
natzugen