Guten Tag Community,
wenn ich ein Haus ingame kaufen und den Server restarte kann ich trotz ein weiteres Haus kaufen. Ich denke es liegt am Laden aber bin mir da halt noch nicht so sicher.
Hier sind die 2 Codes:
public OnHausLoad(hausid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,mysqlconnect);
if(!num_rows)return 1;
for(new i = 0; i < num_rows; i++)
{
new id = getFreeHausID();
HausInfo[id][hID] = cache_get_field_content_int(i,"id",mysqlconnect);
HausInfo[id][hBesitzer] = cache_get_field_content(i,"Besitzer",HausInfo[id][hBesitzer],mysqlconnect);
HausInfo[id][hCreated] = cache_get_field_content_int(i,"Created",mysqlconnect);
HausInfo[id][hEnterX] = cache_get_field_content_float(i,"EnterX",mysqlconnect);
HausInfo[id][hEnterY] = cache_get_field_content_float(i,"EnterY",mysqlconnect);
HausInfo[id][hEnterZ] = cache_get_field_content_float(i,"EnterZ",mysqlconnect);
HausInfo[id][hLevel] = cache_get_field_content_int(i,"Level",mysqlconnect);
HausInfo[id][hPreis] = cache_get_field_content_int(i,"Preis",mysqlconnect);
HausInfo[id][hOwned] = cache_get_field_content_int(i,"Owned",mysqlconnect);
if(HausInfo[id][hOwned] == 1)
{
new string2[256];
format(string2,sizeof(string2),"HausInfo:\n"#HTML_ORANGE"Hausnummer: "#HTML_WHITE"%i\n"#HTML_ORANGE"Besitzer: "#HTML_WHITE"%s\n"#HTML_ORANGE"Level: "#HTML_WHITE"%i",HausInfo[id][hID],HausInfo[id][hBesitzer],HausInfo[id][hLevel]);
HausInfo[id][hLabel] = Create3DTextLabel(string2,COLOR_WHITE,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],20,0,1);
HausInfo[id][hPickup] = CreatePickup(1239,1,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],0);
}
else
{
new string[256];
format(string,sizeof(string),"Haus zum Verkauf:\n"#HTML_ORANGE"Hausnummer: "#HTML_WHITE"%i\n"#HTML_ORANGE"Preis: "#HTML_WHITE"%i\n"#HTML_ORANGE"Level: "#HTML_WHITE"%i\nKaufen: /buyhouse ",HausInfo[id][hID],HausInfo[id][hPreis],HausInfo[id][hLevel]);
HausInfo[id][hLabel] = Create3DTextLabel(string,COLOR_WHITE,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],20,0,1);
HausInfo[id][hPickup] = CreatePickup(1273,1,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],0);
}
}
return 1;
}
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,mysqlconnect);
if(!num_rows)return 1;
for(new i = 0; i < num_rows; i++)
{
new id = getFreeHausID();
HausInfo[id][hID] = cache_get_field_content_int(i,"id",mysqlconnect);
HausInfo[id][hBesitzer] = cache_get_field_content(i,"Besitzer",HausInfo[id][hBesitzer],mysqlconnect);
HausInfo[id][hCreated] = cache_get_field_content_int(i,"Created",mysqlconnect);
HausInfo[id][hEnterX] = cache_get_field_content_float(i,"EnterX",mysqlconnect);
HausInfo[id][hEnterY] = cache_get_field_content_float(i,"EnterY",mysqlconnect);
HausInfo[id][hEnterZ] = cache_get_field_content_float(i,"EnterZ",mysqlconnect);
HausInfo[id][hLevel] = cache_get_field_content_int(i,"Level",mysqlconnect);
HausInfo[id][hPreis] = cache_get_field_content_int(i,"Preis",mysqlconnect);
HausInfo[id][hOwned] = cache_get_field_content_int(i,"Owned",mysqlconnect);
if(HausInfo[id][hOwned] == 1)
{
new string2[256];
format(string2,sizeof(string2),"HausInfo:\n"#HTML_ORANGE"Hausnummer: "#HTML_WHITE"%i\n"#HTML_ORANGE"Besitzer: "#HTML_WHITE"%s\n"#HTML_ORANGE"Level: "#HTML_WHITE"%i",HausInfo[id][hID],HausInfo[id][hBesitzer],HausInfo[id][hLevel]);
HausInfo[id][hLabel] = Create3DTextLabel(string2,COLOR_WHITE,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],20,0,1);
HausInfo[id][hPickup] = CreatePickup(1239,1,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],0);
}
else
{
new string[256];
format(string,sizeof(string),"Haus zum Verkauf:\n"#HTML_ORANGE"Hausnummer: "#HTML_WHITE"%i\n"#HTML_ORANGE"Preis: "#HTML_WHITE"%i\n"#HTML_ORANGE"Level: "#HTML_WHITE"%i\nKaufen: /buyhouse ",HausInfo[id][hID],HausInfo[id][hPreis],HausInfo[id][hLevel]);
HausInfo[id][hLabel] = Create3DTextLabel(string,COLOR_WHITE,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],20,0,1);
HausInfo[id][hPickup] = CreatePickup(1273,1,HausInfo[id][hEnterX],HausInfo[id][hEnterY],HausInfo[id][hEnterZ],0);
}
}
return 1;
}
ocmd:buyhouse(playerid,params[])
{
#pragma unused params
if(SpielerInfo[playerid][pEingeloggt] == 0)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht befugt");
if(SpielerInfo[playerid][pTazer] == 1)return SendClientMessage(playerid,COLOR_GREY,"Du bist getazert.");
for(new i = 0; i< sizeof(HausInfo); i++)
{
if(SpielerInfo[playerid][pHausKey] != 0 && strcmp(HausInfo[i][hBesitzer],SpielerName(playerid),true)==0)return SendClientMessage(playerid,COLOR_GREY,"Du besitzt schon ein Haus.");
}
new string[128];
for(new i = 0; i < sizeof(HausInfo); i++)
{
if(HausInfo[i][hCreated] == 1)
{
if(IsPlayerInRangeOfPoint(playerid,2.0,HausInfo[i][hEnterX],HausInfo[i][hEnterY],HausInfo[i][hEnterZ]))
{
if(GetPlayerMoney(playerid) < HausInfo[i][hPreis])return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genung Geld auf der Hand");
if(GetPlayerLevel(playerid) < HausInfo[i][hLevel])return SendClientMessage(playerid,COLOR_GREY,"Dein Level ist zu niedrig");
if(HausInfo[i][hOwned] == 1)return SendClientMessage(playerid,COLOR_GREY,"Das Haus ist schon verkauft");
if(SpielerInfo[playerid][pHausKey] !=0 && strcmp(HausInfo[i][hBesitzer],SpielerName(playerid),true)==0)return SendClientMessage(playerid,COLOR_GREY,"Du besitzt schon ein Haus");
format(string,sizeof(string),"Du hast das Haus für %i$ gekauft!",HausInfo[i][hPreis]);
SendClientMessage(playerid,COLOR_GREEN,string);
GivePlayerMoney(playerid,-HausInfo[i][hPreis]);
HausInfo[i][hOwned] = 1;
SpielerInfo[playerid][pHausKey] = HausInfo[i][hID];
format(HausInfo[i][hBesitzer],MAX_PLAYER_NAME,"%s",SpielerName(playerid));
SaveHaus(i);
return 1;
}
}
}
return SendClientMessage(playerid,COLOR_GREY,"Du bist an keinem Haus");
}
{
#pragma unused params
if(SpielerInfo[playerid][pEingeloggt] == 0)return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht befugt");
if(SpielerInfo[playerid][pTazer] == 1)return SendClientMessage(playerid,COLOR_GREY,"Du bist getazert.");
for(new i = 0; i< sizeof(HausInfo); i++)
{
if(SpielerInfo[playerid][pHausKey] != 0 && strcmp(HausInfo[i][hBesitzer],SpielerName(playerid),true)==0)return SendClientMessage(playerid,COLOR_GREY,"Du besitzt schon ein Haus.");
}
new string[128];
for(new i = 0; i < sizeof(HausInfo); i++)
{
if(HausInfo[i][hCreated] == 1)
{
if(IsPlayerInRangeOfPoint(playerid,2.0,HausInfo[i][hEnterX],HausInfo[i][hEnterY],HausInfo[i][hEnterZ]))
{
if(GetPlayerMoney(playerid) < HausInfo[i][hPreis])return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genung Geld auf der Hand");
if(GetPlayerLevel(playerid) < HausInfo[i][hLevel])return SendClientMessage(playerid,COLOR_GREY,"Dein Level ist zu niedrig");
if(HausInfo[i][hOwned] == 1)return SendClientMessage(playerid,COLOR_GREY,"Das Haus ist schon verkauft");
if(SpielerInfo[playerid][pHausKey] !=0 && strcmp(HausInfo[i][hBesitzer],SpielerName(playerid),true)==0)return SendClientMessage(playerid,COLOR_GREY,"Du besitzt schon ein Haus");
format(string,sizeof(string),"Du hast das Haus für %i$ gekauft!",HausInfo[i][hPreis]);
SendClientMessage(playerid,COLOR_GREEN,string);
GivePlayerMoney(playerid,-HausInfo[i][hPreis]);
HausInfo[i][hOwned] = 1;
SpielerInfo[playerid][pHausKey] = HausInfo[i][hID];
format(HausInfo[i][hBesitzer],MAX_PLAYER_NAME,"%s",SpielerName(playerid));
SaveHaus(i);
return 1;
}
}
}
return SendClientMessage(playerid,COLOR_GREY,"Du bist an keinem Haus");
}