Ich wollte nicht mehrere Threads aufmachen, deswegen packe ich mal alles in diesen hier.
Aktuell besteht das Problem wenn ich das Haus zu einem Gruppenhaus umbaue, dann kann man dort seinen Spawn aber nicht mit /spawnchange hinverlegen.
Hierfür habe auch ein paar meiner dazu verwendeten Funktionen ausgegeben und sie geben mir 0 aus, also nicht vorhandene Daten.
Fangen wir mal beim Umbau selber an.
Die Spieler, die Online sind, bekommen auch die Nachricht dass das Haus umgebaut wurde aber das Gruppenhaus wird anscheinend nicht zugeteilt.
case 3: // Gruppenumbau
{
if(IsPlayerGroupLeader(playerid) ==
0)return SendClientMessage(playerid, COLOR_RED, "HAUS: {FFFFFF}Du bist
kein Gruppierungsleiter!");
if(HouseData[id][hGroupHouse] ==
1)return SendClientMessage(playerid, COLOR_RED, "HAUS: {FFFFFF}Dein Haus
hat dieses Upgrade bereits!");
if(HouseData[id][hGroupHouse] ==
DELINCE_GROUP_ADDON)return SendClientMessage(playerid, COLOR_RED, "HAUS:
{FFFFFF}Dieses Haus ist nicht für das Gruppenaddon geeignet..");
if(getPlayerMoney(playerid)
< 5000)return SendClientMessage(playerid, COLOR_RED, "FEHLER:
{FFFFFF}Du hast nicht genug Geld dabei!");
if(HouseData[id][hRentMember] > 0)
{
ShowPlayerDialog(playerid,
DIALOG_GADDON, DIALOG_STYLE_MSGBOX, "Gruppenaddon", "Es wohnen aktuell
noch andere Spieler in deinem Haus!\nWenn du das Haus umbauen möchtest,
musst die Spieler zuerst rauswerfen.\nDu kannst sie anschließend wieder
Einladen.", "Rauswerfen", "Zurück");
return 1;
}
givePlayerMoney(playerid, -5000),
HouseData[id][hGroupHouse] = 1;
for(new i;i {
if(IsPlayerLoggedIn(i) == true)
{
if(pInfo[i][pGroup] != 0 && pInfo[i][pGroup] == pInfo[playerid][pGroup])
{
SendClientMessage(i,
COLOR_GREEN, "Dein Gruppierungsleiter hat sein Haus zu einem
Gruppenhaus umgebaut. (/spawnchange)"),
pInfo[i][pGHouse] = HouseData[id][hSQL];
}
}
}
mysql_format(handle,
query, sizeof query, "UPDATE account SET GHouseID=%i WHERE Group=%i",
HouseData[id][hSQL], pInfo[playerid][pGroup]),
mysql_pquery(handle, query);
new gid = GetPlayerGroupID(playerid), str[128];
Group[gid][gHouse] = GetMyHouseID(playerid),
format(str,sizeof str, "gHouse: %i, GMHouseID: %i, mygid: %i", Group[gid][gHouse], GetMyHouseID(playerid), gid),
SendClientMessage(playerid, -1, str),
SendClientMessage(playerid, COLOR_GREEN, "Du hast dein Haus zum Gruppierungshaus umgebaut."),
SendClientMessage(playerid, COLOR_GREEN, "Du hast jetzt kein Mieterlimit aber kannst auch keine Miete mehr verlangen!");
GetPlayerGroupID, GetMyGroupHouseID & GetMyHouseID Die Funktionen geben teilweise 0 aus
stock GetMyHouseID(playerid)
{
for(new i;i {
if(HouseData[i][hOwnerSQL] == getPlayerSQL(playerid))return i;
}
return -1;
}
stock GetMyGroupHouseID(playerid)
{
for(new i;i {
if(Group[i][gSQL] != 0 && Group[i][gHouse] == pInfo[playerid][pGHouse])return i;
}
return -1;
}
stock GetPlayerGroupID(playerid)
{
for(new i;i {
if(Group[i][gSQL] != 0 && Group[i][gSQL] == pInfo[playerid][pGroup])return i;
}
return 0;
}
SpawnChange Funktion (Gruppenhaus wird nicht angeboten)
stock SpawnChange(playerid)
{
switch(pInfo[playerid][pSpawn])
{
case 0:
{
new id = GetMyRentHouseID(playerid);
if(id == -1)
{
pInfo[playerid][pSpawn] +=1;
SpawnChange(playerid);
return 1;
}
if(HouseData[id][hInterior] == -1)
{
pInfo[playerid][pSpawn] +=1;
SpawnChange(playerid);
return 1;
}
if(pInfo[playerid][pHouse] < 1)return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Du hast leider keine Unterkunft wo du Spawnen könntest.");
SendClientMessage(playerid, COLOR_GREEN, "Du spawnst nun in Zukunft dort, wo du Eingemietet bist.");
pInfo[playerid][pSpawn] = 1;
}
case 1:
{
new id2 = GetMyGroupHouseID(playerid);
printf("Bryans id2: %i", id2);
if(id2 != -1 && id2 != 0)
{
SendClientMessage(playerid, COLOR_GREEN, "Du spawnst nun in Zukunft in deinem Gruppierungshaus.");
pInfo[playerid][pSpawn] = 2;
return 1;
}
pInfo[playerid][pSpawn] ++, SpawnChange(playerid);
}
case 2:
{
if(pInfo[playerid][pHitman] < 1) {pInfo[playerid][pSpawn] ++,SpawnChange(playerid);return 1;}
else pInfo[playerid][pSpawn] = 3;
SendClientMessage(playerid, COLOR_GREEN, "Du spawnst nun in Zukunft in der Agency.");
}
case 3:
{
pInfo[playerid][pSpawn] = 0,
SendClientMessage(playerid, COLOR_GREEN, "Du spawnst nun in Zukunft wieder am Bahnhof.");
}
}
return 1;
}
Hoffe ihr habt einen Denkanstoß für mich.