Leider Nein.
Er gibt immer noch aus den es vorher gehört hat.
//E:
Habe die Labels jetzt mal umgeschrieben bzw Global geschrieben.
Das Funktioniert auch nicht dachte er konnte den Label einfach nicht updaten aber scheinbar liegt da auch kein Fehler.
Leider Nein.
Er gibt immer noch aus den es vorher gehört hat.
//E:
Habe die Labels jetzt mal umgeschrieben bzw Global geschrieben.
Das Funktioniert auch nicht dachte er konnte den Label einfach nicht updaten aber scheinbar liegt da auch kein Fehler.
Hallo,
Wen ich die Flagge eingenommen habe bleibt der Name immer gleich.
Heißt:
format(string, sizeof(string), "{AFAFAF}Flagge A\n%s\n\n%s", GangFight[gw][warZoneName], GetFrakName(GangFight[gw][warOwner]));
Update3DTextLabelText(GangFight[gw][WarLabel][0], COLOR_WHITE, string);
Sollte sich der warowner ändern wen er die Flagge eingenommen hat.
public OnGWUpdate1()
{
new string[128];
for(new gw;gw<sizeof(GangFight);gw++)
{
if(GangFight[gw][warReady] > 0)GangFight[gw][warReady]--;
if(GangFight[gw][warTime] != 0 && GangFight[gw][warAttacker] != 0 && GangFight[gw][warStarted] != 0)
{
if(IsLoggedIn(GangFight[gw][warCapturedBy][0]) && IsPlayerInRangeOfPoint(GangFight[gw][warCapturedBy][0], 20.0, GangFight[gw][warFlagX1], GangFight[gw][warFlagY1], GangFight[gw][warFlagZ1]))
{
new tstr1[24], tstr2[24];
format(tstr1, 24, "~r~~h~~h~%s", GetFrakName(Spieler[GangFight[gw][warCapturedBy][0]][pFraktion]));
format(tstr2, 24, "~w~%s", GetFrakName(Spieler[GangFight[gw][warCapturedBy][0]][pFraktion]));
switch(GangFight[gw][warCaptureTime][0])
{
case 1:
{
SendClientMessage(GangFight[gw][warCapturedBy][0], COLOR_WHITE, "Noch 30 Sekunden bis zur Eroberung.");
TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
}
case 2: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 3: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 4: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 5: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 6: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 7: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 8: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 9: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 10: SendClientMessage(GangFight[gw][warCapturedBy][0], COLOR_WHITE, "Noch 20 Sekunden bis zur Eroberung."), TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 11: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 12: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 13: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 14: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 15: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 16: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 17: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 18: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 19: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 20: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 21: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 22: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 23: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 24: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 25: SendClientMessage(GangFight[gw][warCapturedBy][0], COLOR_WHITE, "Noch 5 Sekunden bis zur Eroberung."), TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 26: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 27: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 28: TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
case 29: TextDrawSetString(GangFight[gw][warDraw][9], tstr1);
case 30:
{
format(string, sizeof(string), "{FF9933}[GANGFIGHT] %s hat Flagge A erobert.", GetName(GangFight[gw][warCapturedBy][0]));
SendFraktionMessage(GangFight[gw][warAttacker], COLOR_WHITE, string);
SendFraktionMessage(GangFight[gw][warOwner], COLOR_WHITE, string);
format(string, sizeof(string), "{AFAFAF}Flagge A\n%s\n\n%s", GangFight[gw][warZoneName], GetFrakName(GangFight[gw][warOwner]));
Update3DTextLabelText(GangFight[gw][WarLabel][0], COLOR_WHITE, string);
printf("Besitzer: %s", GetFrakName(GangFight[gw][warOwner]));
GangFight[gw][warCaptureTime][0] = 0;
GangFight[gw][warCapturedFlags][0] = Spieler[GangFight[gw][warCapturedBy][0]][pFraktion];
if(Spieler[GangFight[gw][warCapturedBy][0]][pFraktion] == GangFight[gw][warOwner])
{
GangFight[gw][warOwnerScore] += 5;
format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gw][warOwner]), GangFight[gw][warOwnerScore], MAX_GANGFIGHTSCORE);
TextDrawSetString(GangFight[gw][warDraw][3], string);
TextDrawSetString(GangFight[gw][warDraw][9], GetFrakName(GangFight[gw][warOwner]));
}
if(Spieler[GangFight[gw][warCapturedBy][0]][pFraktion] == GangFight[gw][warAttacker])
{
GangFight[gw][warAttackerScore] += 5;
format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gw][warAttacker]), GangFight[gw][warAttackerScore], MAX_GANGFIGHTSCORE);
TextDrawSetString(GangFight[gw][warDraw][4], string);
TextDrawSetString(GangFight[gw][warDraw][9], GetFrakName(GangFight[gw][warAttacker]));
}
GangFight[gw][warCapturedBy][0] = -1;
}
}
GangFight[gw][warCaptureTime][0]++;
}
else
{
SendClientMessage(GangFight[gw][warCapturedBy][0], COLOR_WHITE, "Flaggen-Eroberung wurde abgebrochen.");
GangFight[gw][warCaptureTime][0] = 0;
GangFight[gw][warCapturedBy][0] = -1;
new tstr2[24];
format(tstr2, 24, "~w~%s", GetFrakName(GangFight[gw][warCapturedFlags][0]));
TextDrawSetString(GangFight[gw][warDraw][9], tstr2);
}
if(IsLoggedIn(GangFight[gw][warCapturedBy][1]) && IsPlayerInRangeOfPoint(GangFight[gw][warCapturedBy][1], 20.0, GangFight[gw][warFlagX2], GangFight[gw][warFlagY2], GangFight[gw][warFlagZ2]))
{
new tstr1[24], tstr2[24];
format(tstr1, 24, "~r~~h~~h~%s", GetFrakName(Spieler[GangFight[gw][warCapturedBy][1]][pFraktion]));
format(tstr2, 24, "~w~%s", GetFrakName(Spieler[GangFight[gw][warCapturedBy][1]][pFraktion]));
switch(GangFight[gw][warCaptureTime][1])
{
case 1:
{
SendClientMessage(GangFight[gw][warCapturedBy][1], COLOR_WHITE, "Noch 30 Sekunden bis zur Eroberung.");
TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
}
case 2: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 3: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 4: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 5: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 6: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 7: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 8: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 9: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 10: SendClientMessage(GangFight[gw][warCapturedBy][1], COLOR_WHITE, "Noch 20 Sekunden bis zur Eroberung."), TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 11: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 12: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 13: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 14: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 15: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 16: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 17: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 18: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 19: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 20: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 21: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 22: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 23: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 24: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 25: SendClientMessage(GangFight[gw][warCapturedBy][1], COLOR_WHITE, "Noch 5 Sekunden bis zur Eroberung."), TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 26: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 27: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 28: TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
case 29: TextDrawSetString(GangFight[gw][warDraw][13], tstr1);
case 30:
{
format(string, sizeof(string), "{FF9933}[GANGFIGHT] %s hat Flagge B erobert.", GetName(GangFight[gw][warCapturedBy][1]));
SendFraktionMessage(GangFight[gw][warAttacker], COLOR_WHITE, string);
SendFraktionMessage(GangFight[gw][warOwner], COLOR_WHITE, string);
format(string, sizeof(string), "{AFAFAF}Flagge B\n%s\n\n%s", GangFight[gw][warZoneName], GetFrakName(GangFight[gw][warOwner]));
Update3DTextLabelText(GangFight[gw][WarLabel][1], COLOR_WHITE, string);
printf("Besitzer: %s", GetFrakName(GangFight[gw][warOwner]));
GangFight[gw][warCaptureTime][1] = 0;
GangFight[gw][warCapturedFlags][1] = Spieler[GangFight[gw][warCapturedBy][1]][pFraktion];
if(Spieler[GangFight[gw][warCapturedBy][1]][pFraktion] == GangFight[gw][warOwner])
{
GangFight[gw][warOwnerScore] += 5;
format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gw][warOwner]), GangFight[gw][warOwnerScore], MAX_GANGFIGHTSCORE);
TextDrawSetString(GangFight[gw][warDraw][3], string);
TextDrawSetString(GangFight[gw][warDraw][13], GetFrakName(GangFight[gw][warOwner]));
}
if(Spieler[GangFight[gw][warCapturedBy][1]][pFraktion] == GangFight[gw][warAttacker])
{
GangFight[gw][warAttackerScore] += 5;
format(string, sizeof(string), "~b~%s:~w~ %d/%d Punkte", GetFrakName(GangFight[gw][warAttacker]), GangFight[gw][warAttackerScore], MAX_GANGFIGHTSCORE);
TextDrawSetString(GangFight[gw][warDraw][4], string);
TextDrawSetString(GangFight[gw][warDraw][13], GetFrakName(GangFight[gw][warAttacker]));
}
GangFight[gw][warCapturedBy][1] = -1;
}
}
GangFight[gw][warCaptureTime][1]++;
}
else
{
SendClientMessage(GangFight[gw][warCapturedBy][1], COLOR_WHITE, "Flaggen-Eroberung wurde abgebrochen.");
GangFight[gw][warCaptureTime][1] = 0;
GangFight[gw][warCapturedBy][1] = -1;
new tstr2[24];
format(tstr2, 24, "~w~%s", GetFrakName(GangFight[gw][warCapturedFlags][1]));
TextDrawSetString(GangFight[gw][warDraw][13], tstr2);
}
if(GangFight[gw][warOwnerScore] >= MAX_GANGFIGHTSCORE)
{
format(string, sizeof(string), "{FF9933}%s haben das Gangfight gewonnen.", GetFraktionName(GangFight[gw][warOwner]));
SendFraktionMessage(GangFight[gw][warOwner], COLOR_WHITE, string);
SendFraktionMessage(GangFight[gw][warAttacker], COLOR_WHITE, string);
GangZoneStopFlashForAll(GangFight[gw][warZoneID]);
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(Spieler[i][pFraktion] == GangFight[gw][warOwner] || Spieler[i][pFraktion] == GangFight[gw][warAttacker])
{
TextDrawHideForPlayer(i, GangFight[gw][warDraw][0]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][1]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][2]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][3]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][4]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][5]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][6]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][7]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][8]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][9]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][10]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][11]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][12]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][13]);
}
}
}
GWisStarted4Fraktion[GangFight[gw][warOwner]] = 0;
GWisStarted4Fraktion[GangFight[gw][warAttacker]] = 0;
GangFight[gw][warAttacker] = 0;
GangFight[gw][warAttackerScore] = 0;
GangFight[gw][warOwnerScore] = 0;
GangFight[gw][warCapturedBy][0] = -1;
GangFight[gw][warCapturedBy][1] = -1;
GangFight[gw][warCapturedFlags][0] = 0;
GangFight[gw][warCapturedFlags][1] = 0;
GangFight[gw][warStarted] = 0;
GangFight[gw][warTime] = 0;
GangFight[gw][warReady] = 120*60;
return 1;
}
if(GangFight[gw][warAttackerScore] >= MAX_GANGFIGHTSCORE)
{
format(string, sizeof(string), "{FF9933}%s haben das Gangfight gewonnen.", GetFraktionName(GangFight[gw][warAttacker]));
SendFraktionMessage(GangFight[gw][warOwner], COLOR_WHITE, string);
SendFraktionMessage(GangFight[gw][warAttacker], COLOR_WHITE, string);
GangZoneStopFlashForAll(GangFight[gw][warZoneID]);
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(Spieler[i][pFraktion] == GangFight[gw][warOwner] || Spieler[i][pFraktion] == GangFight[gw][warAttacker])
{
TextDrawHideForPlayer(i, GangFight[gw][warDraw][0]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][1]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][2]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][3]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][4]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][5]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][6]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][7]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][8]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][9]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][10]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][11]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][12]);
TextDrawHideForPlayer(i, GangFight[gw][warDraw][13]);
}
}
}
GWisStarted4Fraktion[GangFight[gw][warOwner]] = 0;
GWisStarted4Fraktion[GangFight[gw][warAttacker]] = 0;
GangFight[gw][warOwner] = GangFight[gw][warAttacker];
GangFight[gw][warAttacker] = 0;
GangFight[gw][warAttackerScore] = 0;
GangFight[gw][warOwnerScore] = 0;
GangFight[gw][warCapturedBy][0] = -1;
GangFight[gw][warCapturedBy][1] = -1;
GangFight[gw][warCapturedFlags][0] = 0;
GangFight[gw][warCapturedFlags][1] = 0;
GangFight[gw][warStarted] = 0;
GangFight[gw][warTime] = 0;
GangFight[gw][warReady] = 120*60;
return 1;
}
}
}
return 1;
}
Alles anzeigen
Es ist schon interessant das zu wissen die sachlage ist wie ich das am besten mache
Guten Tag,
Ich habe folgendes Problem.
-> Ich erstelle einen ATM Funktioniert und kann den auch danach bedienen.
-> Lösche ich einen ATM und erstelle danach einen Neuen funktioniert dies nicht mehr.
-> Darum wollte ich nun wissen was daran falsch ist.
Erstellen:
ocmd:create(playerid, params[])
{
if(Spieler[playerid][pAdmin] < 5)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
new str[32], query[1024];
if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/create [Bankautomat]");
if(strcmp(str, "Bankautomat", true) == 0)
{
if(atms >= MAX_ATMS) return SendClientMessage(playerid, COLOR_WHITE, ERROR_MAX_ATM);
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid, pX, pY, pZ);
CreatedATM[playerid] = CreateObject(19324, pX+2, pY, pZ-1, 0.0, 0.0, 0.0);
EditObject(playerid, CreatedATM[playerid]);
SendClientMessage(playerid, COLOR_WHITE, "{FFFF00}Du kannst nun die Rotation und die Position des {15951F}ATM´s {FFFF00}festlegen.");
return 1;
}
return 1;
}
Alles anzeigen
Wen man den ATM Erstellt hat. Bewegen Speichern usw...
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
new secondQuery[512];
new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ;
GetObjectPos(objectid, oldX, oldY, oldZ);
GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
if(response == EDIT_RESPONSE_FINAL)
{
if(CreatedATM[playerid] == objectid)
{
new atmid = lastatmid+1;
SetObjectPos(CreatedATM[playerid], fX, fY, fZ);
SetObjectRot(CreatedATM[playerid], fRotX, fRotY, fRotZ);
atmInfo[atmid][ID] = atmid;
atmInfo[atmid][aPickupX] = fX;
atmInfo[atmid][aPickupY] = fY;
atmInfo[atmid][aPickupZ] = fZ;
atmInfo[atmid][aPickuprX] = fRotX;
atmInfo[atmid][aPickuprY] = fRotY;
atmInfo[atmid][aPickuprZ] = fRotZ;
atmInfo[atmid][Exists] = true;
atmInfo[atmid][ObjectID] = CreatedATM[playerid];
mysql_format(MySqlConnection, secondQuery,sizeof(secondQuery),"INSERT INTO `server_atm` (ObjectX, ObjectY, ObjectZ, ObjectrX, ObjectrY, ObjectrZ, CreatedBy) VALUES (%f, %f, %f, %f, %f, %f, '%s')", fX, fY, fZ, fRotX, fRotY, fRotZ, GetName(playerid));
mysql_function_query(MySqlConnection, secondQuery, false, "", "");
atmInfo[atmid][Object3D] = Create3DTextLabel("{F3FF02}Du kannst den Geldautomaten\nmit der Entertaste verwenden.", COLOR_WHITE, atmInfo[atmid][aPickupX], atmInfo[atmid][aPickupY], atmInfo[atmid][aPickupZ]+0.15, 10.0, 0, 0);
format(secondQuery,sizeof(secondQuery),"{FFFF00}Du hast den ATM mit der ID {15951F}%i {FFFF00}erstellt.", atmid);
SendClientMessage(playerid, COLOR_WHITE, secondQuery);
atms++;
lastatmid = atmid;
CreatedATM[playerid] = -1;
}
else if(atmInfo[EditedATM[playerid]][ObjectID] == objectid)
{
new atmid = EditedATM[playerid];
atmInfo[atmid][aPickupX] = fX;
atmInfo[atmid][aPickupY] = fY;
atmInfo[atmid][aPickupZ] = fZ;
atmInfo[atmid][aPickuprX] = fRotX;
atmInfo[atmid][aPickuprY] = fRotY;
atmInfo[atmid][aPickuprZ] = fRotZ;
DestroyObject(atmInfo[atmid][ObjectID]);
Delete3DTextLabel(atmInfo[atmid][Object3D]);
atmInfo[atmid][ObjectID] = CreateObject(19324, atmInfo[atmid][aPickupX], atmInfo[atmid][aPickupY], atmInfo[atmid][aPickupZ], atmInfo[atmid][aPickuprX], atmInfo[atmid][aPickuprY], atmInfo[atmid][aPickuprZ]);
atmInfo[atmid][Object3D] = Create3DTextLabel("{F3FF02}Du kannst den Geldautomaten\nmit der Entertaste verwenden.", COLOR_WHITE, atmInfo[atmid][aPickupX], atmInfo[atmid][aPickupY], atmInfo[atmid][aPickupZ]+0.15, 10.0, 0, 0);
mysql_format(MySqlConnection, secondQuery,sizeof(secondQuery),"UPDATE `server_atm` SET ObjectX = '%f', ObjectY = '%f', ObjectZ = '%f', ObjectrX = '%f', ObjectrY = '%f', ObjectrZ = '%f' WHERE ID = '%d'", fX, fY, fZ, fRotX, fRotY, fRotZ, atmid);
mysql_function_query(MySqlConnection, secondQuery, false, "", "");
format(secondQuery,sizeof(secondQuery),"{FFFF00}Du hast den ATM mit der ID {15951F}%i {FFFF00}erfolgreich bearbeitet.", atmid);
SendClientMessage(playerid, COLOR_WHITE, secondQuery);
}
}
if(response == EDIT_RESPONSE_CANCEL)
{
if(CreatedATM[playerid] == objectid)
{
DestroyObject(CreatedATM[playerid]);
CreatedATM[playerid] = -1;
SendClientMessage(playerid, COLOR_WHITE, "{FFFF00}Du hast die Bearbeitung abgebrochen. Der {15951F}ATM {FFFF00}wurde nicht gespeichert.");
}
if(atmInfo[EditedATM[playerid]][ObjectID] == objectid)
{
SetObjectPos(objectid, oldX, oldY, oldZ);
SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
SendClientMessage(playerid, COLOR_WHITE, "{FFFF00}Du hast die Bearbeitung abgebrochen. Der {15951F}ATM {FFFF00}wurde nicht gespeichert.");
}
}
return 0;
}
Alles anzeigen
Löschen:
ocmd:delete(playerid, params[])
{
if(Spieler[playerid][pAdmin] < 5)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
new id, string[128], query[128], cmd[15];
if(sscanf(params, "s[15]i", cmd, id))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/delete [Bankautomat] [ID]");
if(strcmp(cmd, "Bankautomat", true) == 0)
{
if(!atmInfo[id][Exists]) return SendClientMessage(playerid, COLOR_WHITE, ERROR_ATM);
mysql_format(MySqlConnection, query,sizeof(query),"DELETE FROM `server_atm` WHERE ID = '%d'", id);
mysql_function_query(MySqlConnection, query, false, "", "");
DestroyObject(atmInfo[id][ObjectID]);
Delete3DTextLabel(atmInfo[id][Object3D]);
atmInfo[id][ID] = -1;
atmInfo[id][ObjectID] = -1;
atmInfo[id][aPickupX] = 0.0;
atmInfo[id][aPickupY] = 0.0;
atmInfo[id][aPickupZ] = 0.0;
atmInfo[id][aPickuprX] = 0.0;
atmInfo[id][aPickuprY] = 0.0;
atmInfo[id][aPickuprZ] = 0.0;
atmInfo[id][Exists] = false;
format(atmInfo[id][CreatedBy], MAX_PLAYER_NAME,"");
atms--;
format(query, sizeof(query), "{FFFF00}%s {15951F}%s {FFFF00}hat einen ATM mit der ID {15951F}%d {FFFF00}gelöscht!", GetPlayerAdminName(playerid), GetName(playerid), id);
SendAdminMessage(COLOR_WHITE, query);
}
return 1;
}
Alles anzeigen
Kurze frage an euch...
Wen ich ein Notruf annehme ja..
Sollte ein Gametext erscheinen Wieviel sekunden er noch Zeit hat bis die Person "Respawnt"
ocmd:notruf(playerid, params[])
{
new pID;
if(PlayerInfo[playerid][pFraktion] != 5)return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00FF00}/notruf [SpielerID/Name]");
if(PlayerInfo[pID][pTot] <= 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Spieler ist nicht tot.");
SetPlayerCheckpointEx(playerid, PlayerInfo[pID][pTotX], PlayerInfo[pID][pTotY], PlayerInfo[pID][pTotZ], 3.0, CP_SANI, INVALID_CHECKPOINT_TYPE);
GameTextForPlayer(playerid, "~w~notruf~n~~r~redmarker", 5000, 1);
return 1;
}
Alles anzeigen
PlayerInfo[playerid][pTotUnix] das kann man verwenden wielange er noch im krankenhaus ist.
Sieht ganz hübsch aus,
Klar über den Standort lässt sich streiten aber so von der idee und Umsetzung finde ich es super.
8/10 Fischen
Ja das sieht für mich nach kuddel mudel aus darum mach ich das ganze jetzt anders
háb das mal versucht..
mysql_format(connection, query, sizeof(query), "UPDATE %s SET %s = '%d' WHERE %s = '%s'", t, f, To, w1, w2);
mysql_tquery(connection, query, "", "");
mit mysql hab icch noch nicht so viel erfahrung... sry
Na das ist eine Alte Version vom D. S. Z und das will ich erstmal zum laufen kriegen und dann umschrieben auf die Neue Version
//E:
C:\Users\Patrick\Desktop\Gamemode\gamemodes\gamemod.pwn(2952) : error 035: argument type mismatch (argument 1)
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new t[32],f[32],w1[32],w2[32];
mysql_real_escape_string(Table, t);
mysql_real_escape_string(Field, f);
mysql_real_escape_string(Where, w1);
mysql_real_escape_string(Where2, w2);
format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", t, f, To, w1, w2);
mysql_query(query); //2952
return true;
}
Alles anzeigen
Kennt jemand zufällig das Rageban Include?
Hat das zufällig jemand
Habe die R33 schon versucht aber das scheint es nicht zu sein..
Wen ich die R33 drinnen habe passiert das:
C:\Users\Patrik\Desktop\Gamemode\gamemodes\gamemode.pwn(3080) : warning 224: indeterminate array size in "sizeof" expression (symbol "max_len")
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
mysql_real_escape_string(Table, Table); //3080
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
Welche Mysql Version ist das
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
ocmd:find(playerid, params[])
{
if(!IsLoggedIn(playerid))return 1;
if(!(Spieler[playerid][pJob] == 10))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist kein Detektiv.");
new pID, string[128], Float:pos[3], ort[36];
if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00FF00}/find [SpielerID/Name]");
if(pID == playerid)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du kannst dich nicht selber orten.");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_GREY, ERROR_OFFLINE);
if(IsPlayerNPC(pID))return 1;
if(!(Spieler[pID][pLoggedIn]))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Spieler ist noch nicht eingeloggt.");
if(pDetektivAbkling[playerid] > 0)
{
format(string, sizeof(string), "{AFAFAF}Du musst noch %d Sekunden warten bis du jemanden orten kannst.", pDetektivAbkling[playerid]);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
if(GetPlayerInterior(pID) > 0)
{
GetPlayerPos(pID, pos[0], pos[1], pos[2]);
GetPlayer3DZone(playerid, ort, 36);
SetPlayerCheckpoint(playerid, pos[0], pos[1], pos[2], 3);
format(string, sizeof(string), "{AFAFAF}Der Spieler befindet sich in Gebäudekomplex %d.%d", GetPlayerInterior(pID), GetPlayerVirtualWorld(pID));
SendClientMessage(playerid, COLOR_WHITE, string);
GivePlayerDeteSkill(playerid, 1);
switch(Spieler[playerid][pDetektivSkill])
{
case 1: pDetektivAbkling[playerid] = 120;
case 2: pDetektivAbkling[playerid] = 90;
case 3: pDetektivAbkling[playerid] = 60;
case 4: pDetektivAbkling[playerid] = 30;
case 5: pDetektivAbkling[playerid] = 5;
}
}
else if(GetPlayerInterior(pID) == 0)
{
GetPlayerPos(pID, pos[0], pos[1], pos[2]);
GetPlayer3DZone(playerid, ort, 36);
SetPlayerCheckpoint(playerid, pos[0], pos[1], pos[2], 3);
format(string, sizeof(string), "{AFAFAF}Der Spieler befindet sich in %s", ort);
SendClientMessage(playerid, COLOR_WHITE, string);
GivePlayerDeteSkill(playerid, 1);
switch(Spieler[playerid][pDetektivSkill])
{
case 1: pDetektivAbkling[playerid] = 120;
case 2: pDetektivAbkling[playerid] = 90;
case 3: pDetektivAbkling[playerid] = 60;
case 4: pDetektivAbkling[playerid] = 30;
case 5: pDetektivAbkling[playerid] = 5;
}
}
return 1;
}
Alles anzeigen
Hey, Kurze frage.
Wie kann ich die Position meinen Partner von einem Andern spieler zeigen?
Heißt: /showpos [Mein Partner] [Von dem Spieler den ich Orte]
[debug] AMX backtrace:
[debug] #0 00034098 in public ocmd_carinfo (playerid=0, params[]=@0072d618 "38") at C:\Users\Patrik\Desktop\Selfmade)\gamemodes\German.pwn:3638
[debug] #1 native CallLocalFunction () from samp-server.exe
[debug] #2 00000774 in public OnPlayerCommandText (playerid=0, cmdtext[]=@0072d5e8 "/carinfo 38") at C:\Users\Patrik\Desktop\Selfmade\pawno\include\ocmd.inc:77
if(VehicleOwner != INVALID_PLAYER_ID)
{
new slot = GetPrivateVehicleOwnerSlot(veh, VehicleOwner);
format(string, sizeof(string), "Allgemeines:\tBesitzer: %s (ID: %d)\n\t\tFahrgestellnummer: %d\n\t\tKennzeichen: %s\n\t\tModel: %s\n\t\tFarbe: %d / %d\n\nSonstiges:\tZustand: %d Prozent\n\t\tTank: %.1f L\n\t\tKilometerstand: %.1f km", //3638
PrivateVehicle[VehicleOwner][slot][vehBesitzer], VehicleOwner, PrivateVehicle[VehicleOwner][slot][vehFahrgestell], PrivateVehicle[slot][veh][vehNumberPlate], VehicleName[GetVehicleModel(veh)-400], PrivateVehicle[VehicleOwner][slot][vehColor1], PrivateVehicle[VehicleOwner][slot][vehColor2], CarHealthIni,
Vehicle[veh][vehFuel], Vehicle[veh][vehKMStand]);
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Fahrzeug Infomationen", string, "Schließen", "");
}
ocmd:carinfo(playerid, params[])
{
new veh, Float:Pos[3];
if(!IsStaatsFrak(playerid)) return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
if(sscanf(params, "i", veh)) return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/carinfo [vehicleid]");
if(veh > GetVehiclePoolSize() || veh <= 0) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Ungültige Vehicleid!");
GetVehiclePos(veh, Pos[0], Pos[1], Pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 30.0, Pos[0], Pos[1], Pos[2])) return SendClientMessage(playerid, COLOR_WHITE, "Du befindest dich nicht an diesem Auto!");
new string[256], CarHealthIni = GetVehicleHealthIni(veh), VehicleOwner = GetPrivateVehicleOwner(veh);
if(VehicleOwner == INVALID_PLAYER_ID)
{
new slot = GetPrivateVehicleOwnerSlot(veh, VehicleOwner);
format(string, sizeof(string), "Allgemeines:\tBesitzer: %s (ID: %d)\n\t\tFahrgestellnummer: %d\n\t\tKennzeichen: %s\n\t\tModel: %s\n\t\tFarbe: %d / %d\n\nSonstiges:\tZustand: %d Prozent\n\t\tTank: %.1f L\n\t\tKilometerstand: %.1f km",
PrivateVehicle[VehicleOwner][slot][vehBesitzer], VehicleOwner, PrivateVehicle[VehicleOwner][slot][vehFahrgestell], PrivateVehicle[slot][veh][vehNumberPlate], VehicleName[GetVehicleModel(veh)-400], PrivateVehicle[VehicleOwner][slot][vehColor1], PrivateVehicle[VehicleOwner][slot][vehColor2], CarHealthIni,
Vehicle[veh][vehFuel], Vehicle[veh][vehKMStand]);
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Fahrzeug Infomationen", string, "Schließen", "");
}
else if((VehicleOwner = IsAFraktionsVeh(veh)) != INVALID_PLAYER_ID)
{
format(string, sizeof(string), "Allgemeines:\tBesitzer: %s\n\t\tFahrgestellnummer: %d\n\t\tKennzeichen: %s\n\t\tModel: %s\n\t\tFarbe: %d / %d\n\nSonstiges:\tZustand: %d Prozent\n\t\tTank: %.1f L\n\t\tKilometerstand: %.1f km",
GetVehicleFraktionName(veh), fVehicle[VehicleOwner][vehFahrgestell], fVehicle[VehicleOwner][vehNumberPlate], VehicleName[GetVehicleModel(veh)-400], fVehicle[VehicleOwner][vehColor1], fVehicle[VehicleOwner][vehColor2], CarHealthIni, Vehicle[veh][vehFuel], Vehicle[veh][vehKMStand]);
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Fahrzeug Infomationen", string, "Schließen", "");
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Fahrzeug hat keinen Besitzer.");
}
return 1;
}
Alles anzeigen
So sieht der Befehl derzeit aus wie du ihn mir geschickt hast.
Habe mir den mal etwas genauer angeschaut und macht auch meiner meinung auch jetz mehr sinn.
Wie genau meinst du wo es hin muss?
Ja bin gerne eine Messi haha
Ich check nur mehr 0.
Also das mit -1 kacke da habe ich nun == 1 ersetzt
ZITAT:
slot wird nirgends zugewiesen. <- Fraglich ist was ich da zuweisen soll.
Das bringt uns zum nächsten Problem, VehicleOwner ist entweder 1 oder -1. Du glaubst aber, es entspricht der playerid vom Besitzer, was nicht der Fall ist <- Verstehe nicht ganz wo du damit hin willst
bin total heute schon überfordert
So das habe ich nun andere sachlage noch dann hab ich den müll endlich hinter mir..
CARINFO:
ocmd:carinfo(playerid, params[])
{
new Float:Pos[3], slot, vehicleid, string[256], Float:CarHealth, CarHealthIni;
if(!(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 2 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 13))return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
if(sscanf(params, "i", vehicleid))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/carinfo [vehicleid]");
GetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
GetVehicleHealth(vehicleid, CarHealth);
CarHealthIni = floatround((CarHealth - 250.0) / 7.5, floatround_floor);
new VehicleOwner = getVehicleOwner(vehicleid);
if(IsPlayerInRangeOfPoint(playerid, 30.0, Pos[0], Pos[1], Pos[2]))
{
if((VehicleOwner = getVehicleOwner(vehicleid)) != -1)
{
format(string, sizeof(string), "Allgemeines:\tBesitzer: %s (ID: %d)\n\t\tFahrgestellnummer: %d\n\t\tKennzeichen: %s\n\t\tModel: %s\n\t\tFarbe: %d / %d\n\nSonstiges:\tZustand: %d Prozent\n\t\tTank: %.1f L\n\t\tKilometerstand: %.1f km",
PrivateVehicle[VehicleOwner][slot][vehBesitzer], VehicleOwner, PrivateVehicle[VehicleOwner][slot][vehFahrgestell], PrivateVehicle[slot][vehicleid][vehNumberPlate], VehicleName[GetVehicleModel(vehicleid)-400], PrivateVehicle[VehicleOwner][slot][vehColor1], PrivateVehicle[VehicleOwner][slot][vehColor2], CarHealthIni,
Vehicle[vehicleid][vehFuel], Vehicle[vehicleid][vehKMStand]);
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Fahrzeug Infomationen", string, "Schließen", "");
}
else if((VehicleOwner = IsAFraktionsVeh(vehicleid)) != INVALID_PLAYER_ID)
{
format(string, sizeof(string), "Allgemeines:\tBesitzer: %s\n\t\tFahrgestellnummer: %d\n\t\tKennzeichen: %s\n\t\tModel: %s\n\t\tFarbe: %d / %d\n\nSonstiges:\tZustand: %d Prozent\n\t\tTank: %.1f L\n\t\tKilometerstand: %.1f km",
GetVehicleFraktionName(vehicleid), fVehicle[VehicleOwner][vehFahrgestell], fVehicle[VehicleOwner][vehNumberPlate], VehicleName[GetVehicleModel(vehicleid)-400], fVehicle[VehicleOwner][vehColor1], fVehicle[VehicleOwner][vehColor2], CarHealthIni, Vehicle[vehicleid][vehFuel], Vehicle[vehicleid][vehKMStand]);
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Fahrzeug Infomationen", string, "Schließen", "");
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Dieses Fahrzeug hat keinen Besitzer.");
}
}
return 1;
}
Alles anzeigen
Um festzustellen den Besitzer:
stock getVehicleOwner(vehicleid)
{
for(new i=0;i<GetMaxPlayers();i++)
{
for(new slot=0;slot<MAX_PLAYER_VEHICLES;slot++)
{
if(vehicleid == PrivateVehicle[i][slot][vehID])
{
return 1;
}
}
}
return -1;
}
Alles anzeigen
Also das heitß:
Wen ich /carinfo und die Fahrzeug ID eingebe kommt der Dialog. -> Das Ist schon soweit richtig.
Nur das Problem ist das es keine Werte ausgibt außer Tank und den Tank. Mehr sagt er mir nicht steht überall 0 oder garnichts
case DIALOG_CARKEYS:
{
if(response)
{
new id = listitem, Float:CarHealth, CarHealthIni, string[256];
new vehicleid = PrivateVehicle[playerid][id][vehID];
if(PrivateVehicle[playerid][id][modelid] >= 400 && PrivateVehicle[playerid][id][modelid] <= 611)
{
GetVehicleHealth(vehicleid, CarHealth);
CarHealthIni = floatround((CarHealth - 250.0) / 7.5, floatround_floor);
format(string, sizeof(string), "Allgemeines:\tBesitzer: %s (ID: %d)\n\t\tFahrgestellnummer: %d\n\t\tKennzeichen: %s\n\t\tModel: %s\n\t\tFarbe: %d / %d\n\nSonstiges:\tZustand: %d Prozent\n\t\tTank: %.1f L\n\t\tKilometerstand: %.1f km",
PrivateVehicle[playerid][id][vehBesitzer], playerid, PrivateVehicle[playerid][id][vehFahrgestell], PrivateVehicle[playerid][id][vehNumberPlate], VehicleName[GetVehicleModel(vehicleid)-400], PrivateVehicle[playerid][id][vehColor1], PrivateVehicle[playerid][id][vehColor2], CarHealthIni,
Vehicle[vehicleid][vehFuel], Vehicle[vehicleid][vehKMStand]);
ShowPlayerDialog(playerid, DIALOG_FAHRZEUG, DIALOG_STYLE_MSGBOX, "Fahrzeug Infomationen", string, "Auswählen", "Abbrechen");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Du besitzt auf diesem Schlüssel kein Fahrzeug.");
return 1;
}
}
}
case DIALOG_FAHRZEUG:
{
if(response)
{
new id = listitem, Float:pos[3], string[128];
new vehicleid = PrivateVehicle[playerid][id][vehID];
if(PrivateVehicle[playerid][id][modelid] >= 400 && PrivateVehicle[playerid][id][modelid] <= 611)
{
GetVehiclePos(PrivateVehicle[playerid][vehicleid][vehID], pos[0], pos[1], pos[2]);
SetPlayerCheckpointEx(playerid, pos[0], pos[1], pos[2], 5.0, CP_FINDCAR, INVALID_CHECKPOINT_TYPE);
format(string, sizeof(string), "{33CCFF}Dein Fahrzeug (%s) wurde auf der Karte rot markiert.", VehicleName[PrivateVehicle[playerid][vehicleid][modelid]-400]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
return 1;
}
}
Alles anzeigen
Das sind die 2 Codes. Einmal wen er das Fahrzeug auswhält hat wen er dann auf auswählen klickt soll es geortet werden.
Sry bin heute schon neben mir und genervt von den mist