Pessoal, bom dia. A gema estelar não está salvando se o personagem relogar. Se eu marco e tento usar imediatamente funciona, vejam se podem ajudar:
#pragma region Gema Estelar
if (Vol == 12)
{
unsigned char map_att = GetAttribute(pMob[conn].TargetX, pMob[conn].TargetY);
if ((pMob[conn].TargetX / 128) == 9 && (pMob[conn].TargetY / 128) == 1)
goto CanSave;
if ((pMob[conn].TargetX / 128) == 8 && (pMob[conn].TargetY / 128) == 2)
goto CanSave;
if (map_att & 4 && pMob[conn].MOB.CurrentScore.Level < 1000)
{
SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_Use_That_Here]);
SendItem(conn, m->SourType, m->SourPos, item);
return;
}
int Arena = BASE_GetArena(pMob[conn].TargetX, pMob[conn].TargetY);
int Village = BASE_GetVillage(pMob[conn].TargetX, pMob[conn].TargetY);
if (Arena < MAX_GUILDZONE || Village < MAX_GUILDZONE)
{
SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_Use_That_Here]);
SendItem(conn, m->SourType, m->SourPos, item);
return;
}
if (pMob[conn].TargetX >= 1302 && pMob[conn].TargetY >= 1391 && pMob[conn].TargetX <= 1483 && pMob[conn].TargetY <= 1523)
{
SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_Use_That_Here]);
SendItem(conn, m->SourType, m->SourPos, item);
return;
}
CanSave:
int sFace = pMob[conn].MOB.Equip[0].sIndex / 10;
if (sFace == 0)
SendEmotion(conn, 23, 0);
else if (sFace == 1)
SendEmotion(conn, 15, 0);
else if (sFace == 2)
SendEmotion(conn, 15, 0);
else if (sFace == 3)
SendEmotion(conn, 15, 0);
pMob[conn].MOB.SPX = pMob[conn].TargetX;
pMob[conn].MOB.SPY = pMob[conn].TargetY;
/*
snprintf(temp, sizeof(temp), "useitem,gema salva %d %d", pMob[conn].TargetX, pMob[conn].TargetY);
ItemLog(pUser[conn].AccountName, pUser[conn].MacAddress, pUser[conn].IP, temp);*/
if (amount > 1)
BASE_SetItemAmount(item, amount - 1);
else
memset(item, 0, sizeof(STRUCT_ITEM));
SendClientMessage(conn, g_pMessageStringTable[_NN_Set_Warp]);
return;
}
#pragma endregion
Ainda estou aprendendo C++