Moin Fischis,
Mein Problem ist das die neuen Koordinaten nicht in die Spielerdatei eingetragen werden beim Ausführen des CMD. Wie kommt das? Ich habe hier die Variante das ich die SpielerPosition abfrage, ginge es nicht auch das einfach die Koordinaten aus dem IsPlayerInRangeOfPoint nehme?
Zur Erklärung: Es stehen HausPickups rum, sobald der Besitzer "Keiner" eingetragen ist, kann man es kaufen und man soll nach Reconnect dort auf denselben Koordinaten spawnen wie wo das Pickup steht.
Edit: Die Variablengrößen sind nicht entsprechend dessen wie sie Optimal wären, diese werden von mir hinterher angepasst.
ocmd:kaufehaus(playerid,params[])
{
for(new haus=1;haus<MAX_HAUS;haus++)
{
if(IsPlayerInRangeOfPoint(playerid,2.0,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
new name[MAX_PLAYER_NAME],string[40],save[50], Float: pSpawnX, Float:pSpawnY,Float:pSpawnZ;
GetPlayerName(playerid,name,sizeof name);
GetPlayerPos(playerid, pSpawnX,pSpawnY,pSpawnZ);
format(string,sizeof(string),"/Spieler/%s.ini",name);
sInfo[playerid][pHaus] = dini_Int(string,"pHaus");
if(sInfo[playerid][pHaus] == 0)
{
if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,COLOR_RED,"Dieses Haus gehört dir bereits!");
if(strcmp(HausInfo[haus][haus_besitzer],"Keiner",false))return SendClientMessage(playerid,COLOR_RED,"Dieses Haus steht nicht zum Verkauf!");
if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genug Geld!");
GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]);
SendClientMessage(playerid,COLOR_GREEN,"Du hast das Haus erfolgreich gekauft!");
format(save,sizeof(save),"/Haus/%d.ini",haus);
dini_Set(save,"besitzer",name);
dini_IntSet(string,"pHaus",1);
dini_FloatSet("string","pSpawnX",pSpawnX);
dini_FloatSet("string","pSpawnY",pSpawnY);
dini_FloatSet("string","pSpawnZ",pSpawnZ);
SendClientMessage(playerid,COLOR_YELLOW,"Info: Dein Spawn wurde an dieses Haus gebunden!");
KillHaus(haus);
LoadHaus(haus);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Info: Deine Hausdaten wurden erfolgreich geaendert!");
}
else if(sInfo[playerid][pHaus] == 1)
{
SendClientMessage(playerid,COLOR_RED,"Du kannst derzeit nur 1 Haus besitzen");
}
}
}
return 1;
}