So habe das nun mal so getestet es klappt nicht
-> Es wird kein Pickup erstellt.
-> Es wird kein Label erstellt.
-> Beim Restart Funktioniert es!
-> Beim Restart wird Pickup + 3DText geladen!
Code:
C
ocmd:createpickup(playerid, params[])
{
new frakID, InteriorID, WorldID, Float:PosX, Float:PosY, Float:PosZ, string[256], mainQuery[256];
if(Spieler[playerid][pAdmin] < 6)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
if(sscanf(params, "ii", frakID, WorldID))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/createpickup [Fraktions-ID] [World-ID]");
if(frakID < 1 || frakID > MAX_FRACS)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Falsche Fraktions-ID!");
if(Frak[frakID][frakOpened] == 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Diese Fraktion ist nicht geöffnet.");
InteriorID = GetPlayerInterior(playerid);
GetPlayerPos(playerid, PosX, PosY, PosZ);
if(Frak[frakID][fPickCreated] == 1)
{
DestroyDynamic3DTextLabel(Frak[frakID][fText]);
DestroyPickup(Frak[frakID][fPickup]);
}
else
{
Frak[frakID][fPickup] = CreatePickup(1239, 1, PosX, PosY, PosZ, -1);
format(string, sizeof(string), ""#SERVER_FARBE"%s\n{FFFFFF}Drücke Enter.", Frak[frakID][frakName]);
Frak[frakID][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, PosX, PosY, PosZ+1,12, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 0);
Frak[frakID][fPickCreated] = 1;
}
format(mainQuery, sizeof(mainQuery), "UPDATE `"#SQL_TAGE"_fraktion` SET `EnterX`='%f', `EnterY`='%f', `EnterZ`='%f', `EnterInterior`='%d', `EnterWorld`='%d' WHERE `frakID`='%d' ", PosX, PosY, PosZ, InteriorID, WorldID, frakID);
mysql_function_query(MySqlConnection, mainQuery, false, "", "");
return 1;
}
Alles anzeigen
E:
Habe das nun Komplett abgeändert.
C
ocmd:createpickup(playerid, params[])
{
new frakID, Float:Pos[3], string[256];
if(Spieler[playerid][pAdmin] < 6)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
if(sscanf(params, "ii", frakID))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/createpickup [Fraktions-ID]");
if(frakID < 1 || frakID > MAX_FRACS)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Falsche Fraktions-ID!");
if(Frak[frakID][frakOpened] == 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Diese Fraktion ist nicht geöffnet.");
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(Frak[frakID][fPickCreated] == 1)
{
DestroyPickup(Frak[frakID][fPickup]);
DestroyDynamic3DTextLabel(Frak[frakID][fText]);
Frak[frakID][fPickup] = CreatePickup(1239, 1, Pos[0], Pos[1], Pos[2], 0);
format(string, sizeof(string), ""#SERVER_FARBE"%s\n{FFFFFF}Drücke Enter.", Frak[frakID][frakName]);
Frak[frakID][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, Pos[0], Pos[1], Pos[2]+1,12, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 0);
}
else
{
Frak[frakID][fPickup] = CreatePickup(1239, 1, Pos[0], Pos[1], Pos[2], 0);
format(string, sizeof(string), ""#SERVER_FARBE"%s\n{FFFFFF}Drücke Enter.", Frak[frakID][frakName]);
Frak[frakID][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, Pos[0], Pos[1], Pos[2]+1,12, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 0);
Frak[frakID][fPickCreated] = 1;
}
Frak[frakID][EnterX] = Pos[0];
Frak[frakID][EnterY] = Pos[1];
Frak[frakID][EnterZ] = Pos[2];
format(string, sizeof(string), "{FFFF00}[CREATE] {15951F}%s {FFFF00}hat den Fraktions Eingang für die Fraktion ID: {15951F}%d {FFFF00}geändert!", GetName(playerid), frakID);
SendAdminMessage(COLOR_WHITE, string);
return 1;
}
Alles anzeigen
Funktioniert Einwandfrei.
Kann man da noch etwas verbessern oder kann man den Code so lassen ;D?