03/07/2022 18:13
(03/07/2022 16:13)Treze_. Escreveu:(03/07/2022 15:33)k2bi_YT Escreveu: Fiz algumas alterações, como são mais de uma casa, basicamente deve conter uma variavel pra cada casa, entao na "new casa[..]", deve conter "quantas variaveis serão criadas" pra cada casa.Bom, não funcionou mt bem, agora ele ta quebrando o próximo pickup, a mensagem está certa, se estou na casa n°4 ele manda a msg falando q comprou a casa id 4 mas quebra o pickup da casa id 5
Recomendo que carregue todas as funções que existe na "enum infocasa", já na stock carregarcasas, assim você não precisa ficar usando a DOF2 toda vez, basta usar os valores salvos na variavel. Caso precise de ajuda na formatação do code, pode me adicionar no DC ou pedir ajuda para algum membro aqui do fórum.
Código PHP:enum infocasa{
id,
tipo,
Float:x,
Float:y,
Float:z,
Float:xinterior,
Float:yinterior,
Float:zinterior,
wordid,
dono,
pickup,
Text3D:texto,
valor
};
new casas[MAX_CASA][infocasa];
CMD:criarcasa(playerid)
{
new doccasa[65],str[60];
for(new i = 1; i < MAX_CASA; ++i)
{
format(doccasa, 64,"Casas/%d.inc", i);
if(!DOF2_FileExists(doccasa))
{
DOF2_CreateFile(doccasa);
GetPlayerPos(playerid,casas[i][x],casas[i][y], casas[i][z]);
casas[i][pickup] = CreateDynamicPickup(1273, 23, casas[i][x], casas[i][y], casas[i][z]);
casas[i][worldid] = i;
DOF2_SetString(doccasa, "X", casas[i][x]);
DOF2_SetString(doccasa, "Y", casas[i][y]);
DOF2_SetString(doccasa, "Z", casas[i][z]);
DOF2_SetString(doccasa, "Worldid", casas[i][worldid]);
format(str,60,"Casa id %d criada com sucesso", i);
SendClientMessage(playerid,-1, str);
return true;
}
}
return true;
}
CMD:comprarcasa(playerid)
{
new str[130];
for(new i = 1;i != sizeof(casas); i++)
{
if(IsPlayerInRangeOfPoint(playerid,2, casas[i][x], casas[i][y], casas[i][z]))
{
DestroyPickup(casas[i][pickup]);
format(str, sizeof(str), "Você comprou a casa id %d", i);
SendClientMessage(playerid, -1, str);
return true;
}
}
return 1;
}
stock carregarcasas()
{
new doccasa[130];
for(new i = 1;i < MAX_CASA; i++)
{
format(doccasa,130,"Casas/%d.inc",i);
if(DOF2_FileExists(doccasa))
{
casas[i][x] = DOF2_GetFloat(doccasa,"X");
casas[i][y] = DOF2_GetFloat(doccasa,"Y");
casas[i][z] = DOF2_GetFloat(doccasa,"Z");
casas[i][worldid] = DOF2_GetFloat(doccasa,"worldid");
casas[i][pickup] = CreateDynamicPickup(1273, 23, casas[i][x], casas[i][y], casas[i][z]);
}
}
return 1;
}[color=#d4d4d4][size=small][font=Consolas, "Courier New", monospace][color=#d4d4d4][/color][/font][/size][/color]
(03/07/2022 16:35)MarcosBrazz Escreveu: Pelo que eu vi no /criarcasa e carregarcasas() o pickup esta sendo criado pelo streamer (CreateDynamicPickup)
E no /comprarcasa esta destruindo com DestroyPickup(...) nativo, se foi criado com streamer, tem que ser destruido com streamer (DestroyDynamicPickup)
realmente era esse o problema, muito obrigado ai pra quem ajudou