Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma region CHANGEINV
- else if (!strcmp(p->Cmd, "changeinv"))
- {
- if (!nP->Chars[nP->Ingame.LoggedMob].Inventarios.hasBuyed[0] && !nP->Chars[nP->Ingame.LoggedMob].Inventarios.hasBuyed[1])
- {
- SendClientMessage(cId, "Necessário possuir novos inventários antes de utilizar o comando.");
- return;
- }
- // Copia o inventário atual para uma variável nova, salvaremos posteriormente no código
- st_Item Invent[60];
- memcpy(&Invent, &player->Inventory, sizeof(st_Item) * 60);
- // Por segurança, seta o inventário atual como zero, para evitar erros nos itens
- memset(&player->Inventory, 0x0, sizeof st_Item * 60);
- // Dá load no inventário com as infos do primeiro invent do buffer
- memcpy(&player->Inventory, nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv1, sizeof st_Item * 60);
- // Zera o primeiro inventario do buffer por segurança
- memset(nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv1, 0x0, sizeof st_Item * 60);
- // Caso tenha sido comprado um segundo inventário extra
- // Joga as infos dele para o primeiro slot de inventário para o próximo load
- // E então joga as infos do inventário anterior no ultimo slot de save
- // Caso não tenha sido, salva as infos do inventário anterior no primeiro slot para o próximo load
- if (nP->Chars[nP->Ingame.LoggedMob].Inventarios.hasBuyed[1])
- {
- memcpy(nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv1, nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv2, sizeof(st_Item) * 60);
- memset(nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv2, 0, sizeof(st_Item) * 60);
- memcpy(nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv2, &Invent, sizeof(st_Item) * 60);
- }
- else
- memcpy(nP->Chars[nP->Ingame.LoggedMob].Inventarios.sInv1, &Invent, sizeof(st_Item) * 60);
- // Atualiza o inventário sem necessariamente abri-lo
- for (int i = 0; i < 60; i++)
- SendItem(cId, INVENTORY, i, &player->Inventory[i]);
- SendClientMessage(cId, "Inventário trocado.");
- return;
- }
- #pragma endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement