Weiß jemand warum es mir als "Undefined Symbol" angezeigt wird?
DIALOG_STYLE_TABLIST_HEADERS
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Weiß jemand warum es mir als "Undefined Symbol" angezeigt wird?
Ja, weil deine samp Includes veraltet sind

Musst mal die Aktuellsten hier downloaden: http://www.sa-mp.com/download.php
-
Dank dir, jetzt ein etwas kompliziertes Problem. Ich arbeite an einer Transaktionübersicht für meine Bankautomaten.
Möchte das ganze über mehrere Seiten machen. (Es werden immer 10 Transaktionen pro Seite angezeigt, was korrekt ist!)Hier mal der Code dazu, welcher funktioniert.
case 1: //Funktion (Negative Transaktionen)
{
Page[playerid] = 0;
new query[256], Cache: Result;
mysql_format(MySQLConnection, query, sizeof(query), "SELECT `Absender`, `Empfänger`, `Zeit`, `Betrag` FROM `server_atmlog` WHERE `Absender` = '%e' ORDER BY `Absender` DESC LIMIT %d, 10", PlayerInfo[playerid][pName], Page[playerid] * 15);
Result = mysql_query(MySQLConnection, query);
new rows = cache_num_rows();
if(rows)
{
new Header[1024], Sender[64], Receiver[64], Date[64], Deposit;
format(Header, sizeof(Header), ""HTML_SERVER2"Absender\t"HTML_SERVER2"Empfänger\t"HTML_SERVER2"Zeit\t"HTML_SERVER2"Betrag\n");
for(new i; i < rows; ++i)
{
cache_get_value_name(i, "Absender", Sender);
cache_get_value_name(i, "Empfänger", Receiver);
cache_get_value_name(i, "Zeit", Date);
cache_get_value_name_int(i, "Betrag", Deposit);
format(Header, sizeof(Header), "%s%s\t%s\t%s\t"HTML_RED"$%s\n", Header, Sender, Receiver, Date, convertNumber(Deposit));
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONNOD, DIALOG_STYLE_TABLIST_HEADERS, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Transaktionen (Übersicht)", Header, "Weiter", "Zurück");
}
}
if(!rows)
{
Page[playerid] = 0;
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString),""HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"derzeit sind keine Transaktionen auf Ihrem Bankkonto vorhanden.");
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONNO, DIALOG_STYLE_MSGBOX, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Transaktionen Seite 1)", DialogString, "Schließen", "");
}
cache_delete(Result);
}So, jetzt möchte ich gerne auf eine zweite Seite gehen, jedoch bekomme ich von dort keine weiteren Einträge, obwohl mehr als 10 Einträge in der Datenbank vorhanden sind.
case DIALOG_ATMTRANSAKTIONNOD:
{
if(!response)
{
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString), ""HTML_SERVER1"1. "HTML_SERVER2"Positive Kontotransaktionen\n"HTML_SERVER1"2. "HTML_SERVER2"Negative Kontotransaktionen");
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONVIEW, DIALOG_STYLE_LIST, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Transaktion Übersicht)", DialogString, "Bestätigen", "Zurück");
}
if(response)
{
Page[playerid] ++;
new query[256], Overview[256], Cache: Result;
mysql_format(MySQLConnection, query, sizeof(query), "SELECT `Absender`, `Empfänger`, `Zeit`, `Betrag` FROM `server_atmlog` WHERE `Absender` = '%e' ORDER BY `Absender` DESC LIMIT %d, 10", PlayerInfo[playerid][pName], Page[playerid] * 15);
Result = mysql_query(MySQLConnection, query);
format(Overview, sizeof(Overview), ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Transaktionen Seite %d)", Page[playerid] +1);
print("1");
new rows = cache_num_rows();
if(rows)
{
print("2");
new Header[1024], Sender[64], Receiver[64], Date[64], Deposit;
format(Header, sizeof(Header), ""HTML_SERVER2"Absender\t"HTML_SERVER2"Empfänger\t"HTML_SERVER2"Zeit\t"HTML_SERVER2"Betrag\n");
for(new i; i < rows; ++i)
{
cache_get_value_name(i, "Absender", Sender);
cache_get_value_name(i, "Empfänger", Receiver);
cache_get_value_name(i, "Zeit", Date);
cache_get_value_name_int(i, "Betrag", Deposit);
format(Header, sizeof(Header), "%s%s\t%s\t%s\t"HTML_RED"$%s\n", Header, Sender, Receiver, Date, convertNumber(Deposit));
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONNOD, DIALOG_STYLE_TABLIST_HEADERS, Overview, Header, "Weiter", "Zurück");
}
}
if(!rows)
{
}
cache_delete(Result);
}
} -
Code
Alles anzeigenocmd:healall(playerid, params[]) { new string[128]; if(PlayerInfo[playerid][pAdmin] < 5) return SendStrukturMessage(playerid, MSG_FEHLER, "Du darfst diesen Befehl nicht benutzen!"); format(string,sizeof(string),"Der Admin %s (ID:%i) hat allen Spielern volles Leben geschenkt.",PlayerInfo[playerid][pName],playerid); SendClientMessageToAll(COLOR_LIGHTRED2,string); ForEachPlayer(i) { if(IsPlayerConnected(i) && !IsPlayerNPC(i)) { if(GetPVarInt(i,"Eingeloggt") == 1) { SetPlayerHealth(i,99.0); } } } return 1; }
Habe mal eine kurze frage....Wen ich /healall mache kriegt keiner Leben warum?
-
Wen ich /healall mache kriegt keiner Leben warum?
Entweder das foreach ist falsch (keine Ahnung wie das bei dir aussieht) oder keiner hat den PVar Eingeloggt

jetzt ein etwas kompliziertes Problem
Also zum einen frage ich mich, warum du die alten mysql Funktionen nutzt und nicht mit cache arbeitest.
Dafür musste das auslagern.und auslagern ist das richtige Stichwort, es ist nicht sehr ratsam den ganzen Code einfach dahin zu klatschen, denn wie du selbst sehen solltest, wird das sehr schnell sehr unübersichtlich und man weiß gar nicht wo man nach Fehlern suchen soll

Deshalb gilt, alles ordentlich auslagern und mal mit etwas Struktur an die Sache gehen.
Ich weigere mich wirklich diesen Code durchzugehen und nach den Fehlern zu suchen xD
-
Definiere mir "auslagern"

-
Definiere mir "auslagern"
Also für die Nutzung der cache Funktionen, musste ja sowas machen:
//Da halt wo bei dir alles steht
format(query, sizeof(query), "SELECT * FROM spieler WHERE name = '%s'", name);
mysql_function_query(handle, query, true, "LoadBankTransaktion", "i", playerid);//Und dann weiter unten - Diese Funktion ist dann ausgelagert, da sie nicht bei dem anderen stuff steht
forward LoadBankTransaktion(playerid);
public LoadBankTransaktion(playerid)
{
//und hier dann halt dein Bankzeug rein.
return 1;
} -
Muss ich das wirklich tun, damit du dir meinen Code anguckst? (Bitte nicht böse nehmen, aber ich möchte meinen Code gerne so beibehalten.)
-
Muss ich das wirklich tun, damit du dir meinen Code anguckst? (Bitte nicht böse nehmen, aber ich möchte meinen Code gerne so beibehalten.)
Quatsch, du musst das nicht tun.
Ich meine nur, damit du die neuen MySQL Funktionen nutzt: http://forum.sa-mp.com/showthread.php?t=337810
Sonst bringen dir die cache Funktionen ja nichts.
Ich geh jetzt aber eh pennen, also viel Erfolg noch

-
Achso, dann werde ich die Cache Funktionen rausnehmen. Würde mich dennoch freuen, wenn du dir das mal anschaust. Das ist der letzte Schritt, zur Vollendung meines ATM's Systems.
-
-
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definition
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definition
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definition
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definition
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definition
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definition
C:\Users\ASUS\Desktop\Gaming-Board\gamemodes\Bearbeitetes.pwn(19276) : warning 202: number of arguments does not match definitionDer Command für das Fahrzeug zum erstellen
Code
Alles anzeigenocmd:givecar(playerid, params[]) { new Float:pos[3], modelidx, color1x, color2x, pID; if(PlayerInfo[playerid][pAdmin] < 7)return SendClientMessage(playerid, COLOR_GRAU, ERROR_ADMIN); if(sscanf(params, "uiii", pID, modelidx, color1x, color2x)) { SendClientMessage(playerid, COLOR_GRAU, "Benutze /givecar [SpielerID/Name] [Model-ID] [Farbe 1] [Farbe 2]"); return 1; } if(!IsLoggedIn(pID))return SendClientMessage(playerid, COLOR_GRAU, ERROR_OFFLINE); if(modelidx < 400 || modelidx > 611)return SendClientMessage(playerid, COLOR_GRAU, "Ungültige Model-ID."); GetPlayerPos(pID, pos[0], pos[1], pos[2]); CreateNewSpielerCar(pID, modelidx, pos[0], pos[1], pos[2], 0.0, color1x, color2x); return 1; }Erstellt das Fahrzeug:
Code
Alles anzeigenstock CreateNewSpielerCar(playerid) { new query[156]; new kaid = KaufAutoID[playerid]; new ahid = AutohausID[playerid]; new Farbe1 = LackierFarbe1[playerid]; new Farbe2 = LackierFarbe2[playerid]; new paid = GetFreeParkplatzID(ahid); SetPlayerCheckpoint(playerid, ParkInfo[paid][paPosX], ParkInfo[paid][paPosY], ParkInfo[paid][paPosZ], 5); new vid = CreateVehicleEx(KaufAutoInfo[kaid][kaModelID], ParkInfo[paid][paPosX], ParkInfo[paid][paPosY], ParkInfo[paid][paPosZ], ParkInfo[paid][paPosA], Farbe1, Farbe2); SetVehicleNumberPlate(vid, "{FF0000}N-A"); format(query, sizeof(query), "INSERT INTO `spielercars` (`ModelID`, `Besitzer`, `userID`, `Farbe1`, `Farbe2`) VALUES ('%d', '%s', '%d', '%d', '%d')", KaufAutoInfo[kaid][kaModelID], PlayerInfo[playerid][pName], PlayerInfo[playerid][pSaveID], Farbe1, Farbe2); mysql_query(sqlHandle, query); new tmp = mysql_insert_id(); printf("HALLO HIER: %i | %i | %f %f %f", tmp, vid, ParkInfo[paid][paPosX], ParkInfo[paid][paPosY], ParkInfo[paid][paPosZ]); SpielerAutoInfo[vid][saDatabaseID] = tmp; strmid(SpielerAutoInfo[vid][saBesitzer], PlayerInfo[playerid][pName], 0, strlen(PlayerInfo[playerid][pName]), 255); SpielerAutoInfo[vid][saParkPosX] = ParkInfo[paid][paPosX]; SpielerAutoInfo[vid][saParkPosY] = ParkInfo[paid][paPosY]; SpielerAutoInfo[vid][saParkPosZ] = ParkInfo[paid][paPosZ]; SpielerAutoInfo[vid][saParkPosA] = ParkInfo[paid][paPosA]; SpielerAutoInfo[vid][saPosX] = ParkInfo[paid][paPosX]; SpielerAutoInfo[vid][saPosY] = ParkInfo[paid][paPosY]; SpielerAutoInfo[vid][saPosZ] = ParkInfo[paid][paPosZ]; SpielerAutoInfo[vid][saPosA] = ParkInfo[paid][paPosA]; SpielerAutoInfo[vid][saFarbe1] = Farbe1; SpielerAutoInfo[vid][saFarbe2] = Farbe2; SpielerAutoInfo[vid][saModelID] = KaufAutoInfo[kaid][kaModelID]; SpielerAutoInfo[vid][saKaufPreis] = KaufAutoInfo[kaid][kaPreis]; SpielerAutoInfo[vid][saAnmeldungsOrt] = 0; SpielerAutoInfo[vid][saKFZNummer] = 0; SpielerAutoInfo[vid][saPaintjob] = 0; SpielerAutoInfo[vid][saAbgeschlossen] = 1; SpielerAutoInfo[vid][saVersichert] = 0; SpielerAutoInfo[vid][saTankInhalt] = GetVehicleTankMax(vid); SpielerAutoInfo[vid][saTankArt] = GetVehicleTankArt(vid); SpielerAutoInfo[vid][saBatterie] = BatterieMax; SpielerAutoInfo[vid][saZustand] = 1000; SpielerAutoInfo[vid][saMod1] = 0; SpielerAutoInfo[vid][saMod2] = 0; SpielerAutoInfo[vid][saMod3] = 0; SpielerAutoInfo[vid][saMod4] = 0; SpielerAutoInfo[vid][saMod5] = 0; SpielerAutoInfo[vid][saMod6] = 0; SpielerAutoInfo[vid][saMod7] = 0; SpielerAutoInfo[vid][saMod8] = 0; SpielerAutoInfo[vid][saMod9] = 0; SpielerAutoInfo[vid][saMod10] = 0; SpielerAutoInfo[vid][saMod11] = 0; SpielerAutoInfo[vid][saMod12] = 0; SpielerAutoInfo[vid][saMod13] = 0; SpielerAutoInfo[vid][saMod14] = 0; SpielerAutoInfo[vid][saAbgeschleppt] = 0; SpielerAutoInfo[vid][saPanels] = 0; SpielerAutoInfo[vid][saDoors] = 0; SpielerAutoInfo[vid][saLights] = 0; SpielerAutoInfo[vid][saTires] = 0; SpielerAutoInfo[vid][saFRadio] = 0; SpielerAutoInfo[vid][saMeterStand] = 0; SpielerAutoInfo[vid][saMotor] = 0; SpielerAutoInfo[vid][saLicht] = 0; SpielerAutoInfo[vid][saHandbremse] = 0; SpielerAutoInfo[vid][saTagesMeterStand] = 0; SpielerAutoInfo[vid][saPanzerung] = 0; SpielerAutoInfo[vid][saKennzeichenFarbe] = 0; SpielerAutoInfo[vid][saAutogas] = 0; SpielerAutoInfo[vid][saGPSSystem] = 0; SpielerAutoInfo[vid][saUserID] = PlayerInfo[playerid][pSaveID]; new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx(vid, engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid, engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective); TankInhalt[vid] = GetVehicleTankMax(vid)/2; Batterie[vid] = BatterieMax; IsSpielerCar[vid] = true; AutohausID[playerid] = 9999; KaufAutoID[playerid] = 9999; LackierFarbe1[playerid] = 0; LackierFarbe2[playerid] = 0; LackierCar[playerid] = 0; SavePlayer(playerid); SaveSpielerCar(vid); return 1; } -
CreateNewSpielerCar(pID, modelidx, pos[0], pos[1], pos[2], 0.0, color1x, color2x);
stock CreateNewSpielerCar(playerid)

-
Wen ich ihm ein Fahrzeug geben will mit farbe model ect kommt das der befehl nix existiert...
Command zum erstellen:
Code
Alles anzeigenocmd:givecar(playerid, params[]) { new Float:pos[3], modelidx, color1x, color2x, pID; if(PlayerInfo[playerid][pAdmin] < 7)return SendClientMessage(playerid, COLOR_GRAU, ERROR_ADMIN); if(sscanf(params, "uiii", pID, modelidx, color1x, color2x)) { SendClientMessage(playerid, COLOR_GRAU, "Benutze /givecar [SpielerID/Name] [Model-ID] [Farbe 1] [Farbe 2]"); return 1; } if(!IsLoggedIn(pID))return SendClientMessage(playerid, COLOR_GRAU, ERROR_OFFLINE); if(modelidx < 400 || modelidx > 611)return SendClientMessage(playerid, COLOR_GRAU, "Ungültige Model-ID."); GetPlayerPos(pID, pos[0], pos[1], pos[2]); CreateNewSpielerCar(playerid); return 1; }Erstellt das Fahrzeug:
Code
Alles anzeigenstock CreateNewSpielerCar(playerid) { new query[156]; new kaid = KaufAutoID[playerid]; new ahid = AutohausID[playerid]; new Farbe1 = LackierFarbe1[playerid]; new Farbe2 = LackierFarbe2[playerid]; new paid = GetFreeParkplatzID(ahid); SetPlayerCheckpoint(playerid, ParkInfo[paid][paPosX], ParkInfo[paid][paPosY], ParkInfo[paid][paPosZ], 5); new vid = CreateVehicleEx(KaufAutoInfo[kaid][kaModelID], ParkInfo[paid][paPosX], ParkInfo[paid][paPosY], ParkInfo[paid][paPosZ], ParkInfo[paid][paPosA], Farbe1, Farbe2); SetVehicleNumberPlate(vid, "{FF0000}N-A"); format(query, sizeof(query), "INSERT INTO `spielercars` (`ModelID`, `Besitzer`, `userID`, `Farbe1`, `Farbe2`) VALUES ('%d', '%s', '%d', '%d', '%d')", KaufAutoInfo[kaid][kaModelID], PlayerInfo[playerid][pName], PlayerInfo[playerid][pSaveID], Farbe1, Farbe2); mysql_query(sqlHandle, query); new tmp = mysql_insert_id(); printf("HALLO HIER: %i | %i | %f %f %f", tmp, vid, ParkInfo[paid][paPosX], ParkInfo[paid][paPosY], ParkInfo[paid][paPosZ]); SpielerAutoInfo[vid][saDatabaseID] = tmp; strmid(SpielerAutoInfo[vid][saBesitzer], PlayerInfo[playerid][pName], 0, strlen(PlayerInfo[playerid][pName]), 255); SpielerAutoInfo[vid][saParkPosX] = ParkInfo[paid][paPosX]; SpielerAutoInfo[vid][saParkPosY] = ParkInfo[paid][paPosY]; SpielerAutoInfo[vid][saParkPosZ] = ParkInfo[paid][paPosZ]; SpielerAutoInfo[vid][saParkPosA] = ParkInfo[paid][paPosA]; SpielerAutoInfo[vid][saPosX] = ParkInfo[paid][paPosX]; SpielerAutoInfo[vid][saPosY] = ParkInfo[paid][paPosY]; SpielerAutoInfo[vid][saPosZ] = ParkInfo[paid][paPosZ]; SpielerAutoInfo[vid][saPosA] = ParkInfo[paid][paPosA]; SpielerAutoInfo[vid][saFarbe1] = Farbe1; SpielerAutoInfo[vid][saFarbe2] = Farbe2; SpielerAutoInfo[vid][saModelID] = KaufAutoInfo[kaid][kaModelID]; SpielerAutoInfo[vid][saKaufPreis] = KaufAutoInfo[kaid][kaPreis]; SpielerAutoInfo[vid][saAnmeldungsOrt] = 0; SpielerAutoInfo[vid][saKFZNummer] = 0; SpielerAutoInfo[vid][saPaintjob] = 0; SpielerAutoInfo[vid][saAbgeschlossen] = 1; SpielerAutoInfo[vid][saVersichert] = 0; SpielerAutoInfo[vid][saTankInhalt] = GetVehicleTankMax(vid); SpielerAutoInfo[vid][saTankArt] = GetVehicleTankArt(vid); SpielerAutoInfo[vid][saBatterie] = BatterieMax; SpielerAutoInfo[vid][saZustand] = 1000; SpielerAutoInfo[vid][saMod1] = 0; SpielerAutoInfo[vid][saMod2] = 0; SpielerAutoInfo[vid][saMod3] = 0; SpielerAutoInfo[vid][saMod4] = 0; SpielerAutoInfo[vid][saMod5] = 0; SpielerAutoInfo[vid][saMod6] = 0; SpielerAutoInfo[vid][saMod7] = 0; SpielerAutoInfo[vid][saMod8] = 0; SpielerAutoInfo[vid][saMod9] = 0; SpielerAutoInfo[vid][saMod10] = 0; SpielerAutoInfo[vid][saMod11] = 0; SpielerAutoInfo[vid][saMod12] = 0; SpielerAutoInfo[vid][saMod13] = 0; SpielerAutoInfo[vid][saMod14] = 0; SpielerAutoInfo[vid][saAbgeschleppt] = 0; SpielerAutoInfo[vid][saPanels] = 0; SpielerAutoInfo[vid][saDoors] = 0; SpielerAutoInfo[vid][saLights] = 0; SpielerAutoInfo[vid][saTires] = 0; SpielerAutoInfo[vid][saFRadio] = 0; SpielerAutoInfo[vid][saMeterStand] = 0; SpielerAutoInfo[vid][saMotor] = 0; SpielerAutoInfo[vid][saLicht] = 0; SpielerAutoInfo[vid][saHandbremse] = 0; SpielerAutoInfo[vid][saTagesMeterStand] = 0; SpielerAutoInfo[vid][saPanzerung] = 0; SpielerAutoInfo[vid][saKennzeichenFarbe] = 0; SpielerAutoInfo[vid][saAutogas] = 0; SpielerAutoInfo[vid][saGPSSystem] = 0; SpielerAutoInfo[vid][saUserID] = PlayerInfo[playerid][pSaveID]; new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx(vid, engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid, engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective); TankInhalt[vid] = GetVehicleTankMax(vid)/2; Batterie[vid] = BatterieMax; IsSpielerCar[vid] = true; AutohausID[playerid] = 9999; KaufAutoID[playerid] = 9999; LackierFarbe1[playerid] = 0; LackierFarbe2[playerid] = 0; LackierCar[playerid] = 0; SavePlayer(playerid); SaveSpielerCar(vid); return 1; } -
CMD:delete(playerid, params[])
{
new str[32];
if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /delete [ATM]");
if(strcmp(str, "ATM", true) == 0)
{
new ID, query[128];
ATMInfo[ID][aPos][0] = 0.0;
ATMInfo[ID][aPos][1] = 0.0;
ATMInfo[ID][aPos][2] = 0.0;
ATMInfo[ID][aPos][3] = 0.0;
ATMInfo[ID][aPos][4] = 0.0;
ATMInfo[ID][aPos][5] = 0.0;
DestroyDynamicObject(ATMInfo[ID][aObject]);
DestroyDynamic3DTextLabel(ATMInfo[ID][aLabel]);
ATMInfo[ID][aLabel] = Text3D: INVALID_3DTEXT_ID;mysql_format(MySQLConnection, query, sizeof(query), "DELETE FROM `server_atm` WHERE `ID` = '%d' LIMIT 1", ID);
mysql_query(MySQLConnection, query);
}
return 1;
}Wie ist es möglich, dass ich direkt abfrage, welcher ATM ID VOR mir ist. So dass ich keine ID angeben muss, sondern nur der ATM vor mir gelöscht wird.
-
Hast ein Enum dazu?
Also die X, Y und Z Koordinaten, wo stehen die denn drinnen.
Im Prinzip loopst durch alle durch, nimmst von jedem den Abstand zu dem Spieler und nimmst die id von dem, wo der Abstand am kleinsten ist und solltest noch auf einen max Abstand prüfen, sodass er auch wirklich davor steht

-
Code
MoveDynamicObject(Holzfb[i][holzfb_ID], Holzfb[i][holzfb_x], Holzfb[i][holzfb_y]+0.001, Holzfb[i][holzfb_z], 0.002, Holzfb[i][holzfb_urx], Holzfb[i][holzfb_ury], Holzfb[i][holzfb_urz]);Warum wird das Object direkt Umgeworfen ?
Der Baum steht in der Rotation 0.0.0 ich Move ihn da auf 90.0.0 aber er fällt direkt um ? -
Dann mach den Speed doch mal langsamer
Probier halt ein bisschen rum.Also mal 0.0005

-
Kurze Frage noch anbei, möchte hier den inputtext zwischen speichern, wie mache ich das? (Ist ein Name)
ATMPlayer[playerid][64] -
Wie wird der Name denn übergeben?
Oder willste den Spielernamen speichern?
Theoretisch einfach mit:
format(ATMPlayer[playerid], sizeof(ATMPlayer[]), inputtext);Für Zwischenspeicherung eigenen sich aber auch gut PVars, da man diese nach temporärer Nutzung wieder löschen kann

-
Danke, perfekt.
Sollte dementsprechend so sein, jedoch werden ATM's nur manchmal gelöscht und ich kriege öfters eine Warnung, dass ich nicht in der Nähe bin. Letztendlich funktioniert dann auch derjenige ATM nicht mehr..

CMD:delete(playerid, params[])
{
new str[32];
if(sscanf(params, "s[32]", str))return SendClientMessage(playerid, COLOR_GREY, "Verwendung: /delete [ATM]");
if(strcmp(str, "ATM", true) == 0)
{
for(new i=0;i<MAX_ATM;i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.5, ATMInfo[i][aPos][0], ATMInfo[i][aPos][1], ATMInfo[i][aPos][2]))
{
ATMInfo[i][aPos][0] = 0.0;
ATMInfo[i][aPos][1] = 0.0;
ATMInfo[i][aPos][2] = 0.0;
ATMInfo[i][aPos][3] = 0.0;
ATMInfo[i][aPos][4] = 0.0;
ATMInfo[i][aPos][5] = 0.0;
DestroyDynamicObject(ATMInfo[i][aObject]);
DestroyDynamic3DTextLabel(ATMInfo[i][aLabel]);
ATMInfo[i][aLabel] = Text3D: INVALID_3DTEXT_ID;new query[128];
mysql_format(MySQLConnection, query, sizeof(query), "DELETE FROM `server_atm` WHERE `ID` = '%d' LIMIT 1", i);
mysql_query(MySQLConnection, query);
}
}
return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht in der Nähe eines Bankautomaten.");
}
return 1;
}
