Hallo leute,
Ich habe ein Problem, und zwar wenn ich ein Haus erstelle /chouse [Preis] [Interior Typ] z.B /chouse 150000 8
Funktioniert das aber wenn ich Server restarte wird es auf Interior Typ 1 gesetzt. Ich habe schon viele Sachen versucht und die gingen nicht.
Ich hoffe ihr könnt mir weiter helfen!
Meine Code's:
Interiors Typ's:
enum int_enum
{
Float:intpx,
Float:intpy,
Float:intpz,
interiorid
}
new Interiors[][int_enum] = {
{421.598 ,2536.306 ,10.155, 10},
{2495.98 ,-1692.73 ,1014.86, 3},
{222.972 ,1288.315 ,1082.29, 1},
{2233.74 ,-1113.18 ,1051.12, 5},
{2365.22 ,-1134.58 ,1051.04, 8},
{2283.0 ,-1139.20 ,1051.35, 11},
{2195.99 ,-1204.30 ,1049.57, 6},
{2269.88 ,-1210.55 ,1048.19,10},
{2308.79 ,-1211.58 ,1049.0 , 6},
{2217.14 ,-1076.29 ,10850.8, 1},
{2237.47 ,-1025.66 ,1049.45, 2},
{2317.91 ,-1025.84 ,1050.77, 9},
{260.996 ,1284.085 ,1080.35, 4},
{140.144 ,1367.368 ,1084.66, 5},
{83.1541 ,1323.397 ,1048.66, 9},
{-262.25 ,1476.809 ,1085.1 , 4},
{2333.10 ,-1076.10 ,1049.33, 6},
{318.706 ,1116.928 ,1084.28, 5}
};
/chouse befehl:
if(!strcmp(cmd, "/chouse", true))
{
if(Spieler[playerid][Admin] >= 3)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAU, "/chouse [Preis] [Interior Typ ( /interiors )]");
new housepreis = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAU, "/chouse [Preis] [Interior Typ ( /interiors )]");
new inttype = strval(tmp);
if(inttype < 1 || inttype > sizeof(Interiors)) return SendClientMessage(playerid, COLOR_GRAU, "Ungültige Interior Typ ID! /interiors");
inttype -= 1;
new str[128];
new housestring[256];
new i = GetHouseID(); if(i == -1) return SendClientMessage(playerid, COLOR_GRAU, "Es kann kein weiters Haus mehr erstellt werden! ( Max Haus erhöhen )");
format(str, sizeof str, "/Houses/%d.ini", i);
dini_Create(str);
HouseInfo[i][hEntrancex] = GetX(playerid);
HouseInfo[i][hEntrancey] = GetY(playerid);
HouseInfo[i][hEntrancez] = GetZ(playerid);
HouseInfo[i][hExitx] = Interiors[inttype][intpx];
HouseInfo[i][hExity] = Interiors[inttype][intpy];
HouseInfo[i][hExitz] = Interiors[inttype][intpz];
HouseInfo[i][hInt] = Interiors[inttype][interiorid];
HouseInfo[i][hPrice] = housepreis;
HouseInfo[i][hLock] = 0;
HouseInfo[i][hOwned] = 0;
HouseInfo[i][hRent] = 0;
HouseInfo[i][hRentabil] = 0;
HouseInfo[i][hKasse] = 0;
HouseInfo[i][hSpielzeit] = 20;
HouseInfo[i][hWorld] = inttype;
HouseInfo[i][hLeben] = 0;
format(HouseInfo[i][hOwner], MAX_PLAYER_NAME, "Niemand");
format(housestring, sizeof housestring, "Dieses Haus steht zum Verkauf\n\nPreis: $%d\nSpielzeit: %d\nTippe: /buyhouse",HouseInfo[i][hPrice], HouseInfo[i][hSpielzeit]);
HouseInfo[i][hLabel] = CreateDynamic3DTextLabel(housestring, COLOR_HOUSELABEL, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]+1,15,0,1);
HouseInfo[i][hPick] = CreateDynamicPickup(1273, 1, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]);
SendClientMessage(playerid, COLOR_BLAU22, "HausSystem: Haus erfolgreich erstellt!");
SaveHouse(i);
return 1;
}
return 1;
}
Haus Load/Save:
stock LoadHouse(i)
{
new str[158];
new hausstring[256];
format(str, sizeof str, "/Houses/%d.ini", i);
if(fexist(str))
{
INI_Open(str);
HouseInfo[i][hEntrancex] = INI_ReadFloat("Entrancex");
HouseInfo[i][hEntrancey] = INI_ReadFloat("Entrancey");
HouseInfo[i][hEntrancez] = INI_ReadFloat("Entrancez");
HouseInfo[i][hExitx] = Interiors[HouseInfo[i][hInt]][intpx];
HouseInfo[i][hExity] = Interiors[HouseInfo[i][hInt]][intpy];
HouseInfo[i][hExitz] = Interiors[HouseInfo[i][hInt]][intpz];
INI_ReadString(HouseInfo[i][hOwner], "Besitzer", MAX_PLAYER_NAME);
HouseInfo[i][hPrice] = INI_ReadInt("Preis");
HouseInfo[i][hInt] = Interiors[HouseInfo[i][hInt]][interiorid];
HouseInfo[i][hLock] = INI_ReadInt("Lock");
HouseInfo[i][hOwned] = INI_ReadInt("Besitz");
HouseInfo[i][hRent] = INI_ReadInt("Miete");
HouseInfo[i][hRentabil] = INI_ReadInt("Mietbar");
HouseInfo[i][hKasse] = INI_ReadInt("Kasse");
HouseInfo[i][hSpielzeit] = INI_ReadInt("Spielzeit");
HouseInfo[i][hWorld] = INI_ReadInt("World");
HouseInfo[i][hLeben] = INI_ReadInt("Leben");
INI_Close();
if(HouseInfo[i][hOwned] == 0)
{
format(hausstring, sizeof(hausstring), "Dieses Haus steht zum Verkauf\n\nPreis: $%d\nSpielzeit: %d\nTippe: /buyhouse",HouseInfo[i][hPrice], HouseInfo[i][hSpielzeit]);
HouseInfo[i][hLabel] = CreateDynamic3DTextLabel(hausstring, COLOR_HOUSELABEL, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]+1,15,0,1);
HouseInfo[i][hPick] = CreateDynamicPickup(1273, 23, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]);
return 1;
}
if(HouseInfo[i][hOwned] == 1)
{
if(HouseInfo[i][hRentabil] == 0)
{
format(hausstring, sizeof(hausstring), "Dieses Haus gehört: %s", HouseInfo[i][hOwner]);
HouseInfo[i][hLabel] = CreateDynamic3DTextLabel(hausstring, COLOR_HOUSELABEL, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]+1,15,0,1);
HouseInfo[i][hPick] = CreateDynamicPickup(1239, 23, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]);
return 1;
}
else
{
format(hausstring, sizeof(hausstring), "Dieses Haus vermietet Zimmer.\n\nBesitzer: %s\nMiet-Preis: $%d\nTippe: /renthouse", HouseInfo[i][hOwner], HouseInfo[i][hRent]);
HouseInfo[i][hLabel] = CreateDynamic3DTextLabel(hausstring, COLOR_HOUSELABEL, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]+1,15,0,1);
HouseInfo[i][hPick] = CreateDynamicPickup(1239, 23, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]);
return 1;
}
}
}
return 1;
}
stock SaveHouses()
{
new str[128];
for(new i = 0; i<SCRIPT_MAXHOUSES; i++)
{
format(str, sizeof str, "/Houses/%d.ini", i);
if(fexist(str))
{
INI_Open(str);
INI_WriteFloat("Entrancex", HouseInfo[i][hEntrancex]);
INI_WriteFloat("Entrancey", HouseInfo[i][hEntrancey]);
INI_WriteFloat("Entrancez", HouseInfo[i][hEntrancez]);
INI_WriteString("Besitzer", HouseInfo[i][hOwner]);
INI_WriteInt("Preis", HouseInfo[i][hPrice]);
INI_WriteInt("Lock", HouseInfo[i][hLock]);
INI_WriteInt("Besitz", HouseInfo[i][hOwned]);
INI_WriteInt("Miete", HouseInfo[i][hRent]);
INI_WriteInt("Mietbar", HouseInfo[i][hRentabil]);
INI_WriteInt("Kasse", HouseInfo[i][hKasse]);
INI_WriteInt("Spielzeit", HouseInfo[i][hSpielzeit]);
INI_WriteInt("World", HouseInfo[i][hWorld]);
INI_WriteInt("Leben", HouseInfo[i][hLeben]);
INI_Save();
INI_Close();
}
}
return 1;
}
stock SaveHouse(i)
{
new str[60];
format(str, sizeof str, "/Houses/%d.ini", i);
if(fexist(str))
{
INI_Open(str);
INI_WriteFloat("Entrancex", HouseInfo[i][hEntrancex]);
INI_WriteFloat("Entrancey", HouseInfo[i][hEntrancey]);
INI_WriteFloat("Entrancez", HouseInfo[i][hEntrancez]);
INI_WriteString("Besitzer", HouseInfo[i][hOwner]);
INI_WriteInt("Preis", HouseInfo[i][hPrice]);
INI_WriteInt("Lock", HouseInfo[i][hLock]);
INI_WriteInt("Besitz", HouseInfo[i][hOwned]);
INI_WriteInt("Miete", HouseInfo[i][hRent]);
INI_WriteInt("Mietbar", HouseInfo[i][hRentabil]);
INI_WriteInt("Kasse", HouseInfo[i][hKasse]);
INI_WriteInt("Spielzeit", HouseInfo[i][hSpielzeit]);
INI_WriteInt("World", HouseInfo[i][hWorld]);
INI_WriteInt("Leben", HouseInfo[i][hLeben]);
INI_Save();
INI_Close();
}
return 1;
}
Hoffe ihr könnt mir helfen!
Wär auch nett durch TeamViewer/TS³
Mfg.