Ne, das ist nur die Funktion vom UpdateHouse, aber nicht der Befehl, der darum herum gebaut ist, wenn du es z.B. kaufst oder verkaufst
Lange Rede kurzer Sinn, pack die Funktion mal jeweils ganz ans Ende deiner Befehle und probiere es erneut
Achso
ja hier bitte
Code
ocmd:buyhouse(playerid,params[])
{
if(HavePlayerAnyHouse(playerid)) return SendClientMessage(playerid,-1,"Du besitzt bereits ein Haus");
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_dbid]) continue;
if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue;
if(!strlen(hInfo[i][h_owner]))
{
if(GetPlayerCash(playerid) < hInfo[i][h_price]) return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld!");
strmid(hInfo[i][h_owner],getPlayerName(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
GivePlayerCash(playerid,-hInfo[i][h_price]);
saveHouse(i);
UpdateHouse(i);
return 1;
}
return SendClientMessage(playerid,-1,"Du kannst dieses Haus nicht Kaufen!");
}
return 1;
}
ocmd:sellhouse(playerid,params[])
{
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_dbid]) continue;
if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue;
if(!strlen(hInfo[i][h_owner]))continue;
if(!strcmp(hInfo[i][h_owner],getPlayerName(playerid),true))
{
strmid(hInfo[i][h_owner],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
GivePlayerCash(playerid,hInfo[i][h_price]/2);
saveHouse(i);
UpdateHouse(i);
SendClientMessage(playerid,-1,"Haus erfolgreich verkauft");
return 1;
}
}
return 1;
}
Alles anzeigen