Schade, es muss wirklich einer im Fahrzeug sein, sonst wäre das zu geil würde es SetVehicleGravity geben.
Da jemand im Fahrzeug sitzen muss wird das nicht gehen, manchmal hat man so gute Ideen und man kann sie nicht umsetzten.
Trotzdem ein sehr großes Dankeschön das du mir alles erklärt hast.
[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
-
-
Moin Leuts,
ich hab mal eine Frage...
Code
Alles anzeigenstock GetNameFromDB(dbid){ new query[512], rows, dbname[MAX_PLAYER_NAME]; mysql_format(handle, query, sizeof(query), "SELECT * FROM user WHERE id = '%i'", dbid); mysql_pquery(handle, query); printf("%s", query); cache_get_row_count(rows); if(rows == 1){ cache_get_value_name(0, "name", dbname, 24); } return dbname[MAX_PLAYER_NAME], 1; }
Funktioniert nicht wirklich ... Wenn ich Manuell unter OnGameModeInit:kommt der richtige Name bei raus, wenn ich allerdings...
nehme, dann funktioniert das mit dem Namen nicht. Letzendlich steht hinter dem bInfo[i][biz_owner] auch eine 1...
MfG
XonarZ -
-
Funktioniert nicht wirklich .
Nutze mysql_query anstatt mysql_pquery. Empfohlen ist das aber nicht, auf Grund der Performance.
Außerdem
return dbname[MAX_PLAYER_NAME], 1;
Zu
return dbname; -
Nutze mysql_query anstatt mysql_pquery. Empfohlen ist das aber nicht, auf Grund der Performance
Wenn ich das mit mysql_query mache, dann findet er die Biz namen nicht mehr^^
Mysql Log:
Code
Alles anzeigen[10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2105) [10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2106) [10:20:48] [ERROR] cache_get_value_name: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2107) [10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2108) [10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2109) [10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2110) [10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2111) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2112) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2113) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2114) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2115) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2116) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2117) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2118) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2119) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2120) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2121) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2122) [10:20:48] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2123) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2124) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2125) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2126) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2127) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2128) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2129) [10:20:48] [ERROR] cache_get_value_name_float: invalid row index '1' (number of rows: '0') (...selfmade.pwn:2130)
Das geht bis invalid row index '21' (sind ja 22 Einträge)Code
Alles anzeigenfor(new i = 0; i < rows; i++){ cache_get_value_name_int(i, "id", bInfo[i][biz_id]); cache_get_value_name_int(i, "biz_typ", bInfo[i][biz_typ]); cache_get_value_name(i, "biz_name", bInfo[i][biz_name], 256); cache_get_value_name_int(i, "biz_owner", bInfo[i][biz_owner]); cache_get_value_name_int(i, "biz_sowner", bInfo[i][biz_sowner]); cache_get_value_name_int(i, "biz_level", bInfo[i][biz_level]); cache_get_value_name_int(i, "int_id", bInfo[i][int_id]); cache_get_value_name_float(i, "bizkosten", bInfo[i][biz_kosten]); cache_get_value_name_float(i, "bizkasse", bInfo[i][biz_kasse]); cache_get_value_name_float(i, "biz_x", bInfo[i][biz_x]); cache_get_value_name_float(i, "biz_y", bInfo[i][biz_y]); cache_get_value_name_float(i, "biz_z", bInfo[i][biz_z]); cache_get_value_name_float(i, "int_x", bInfo[i][int_x]); cache_get_value_name_float(i, "int_y", bInfo[i][int_y]); cache_get_value_name_float(i, "int_z", bInfo[i][int_z]); cache_get_value_name_float(i, "i_x", bInfo[i][i_x]); cache_get_value_name_float(i, "i_y", bInfo[i][i_y]); cache_get_value_name_float(i, "i_z", bInfo[i][i_z]); cache_get_value_name_int(i, "actor_skin", bInfo[i][actor_skin]); cache_get_value_name_float(i, "actor_x", bInfo[i][actor_x]); cache_get_value_name_float(i, "actor_y", bInfo[i][actor_y]); cache_get_value_name_float(i, "actor_z", bInfo[i][actor_z]); cache_get_value_name_float(i, "actor_r", bInfo[i][actor_r]); cache_get_value_name_float(i, "liefer_x", bInfo[i][liefer_x]); cache_get_value_name_float(i, "liefer_y", bInfo[i][liefer_y]); cache_get_value_name_float(i, "liefer_z", bInfo[i][liefer_z]);Ich hoffe das dies jetzt keine "Große" Scripting Frage wird ...
MfG
XonarZ -
Das ist doch jetzt ein ganz anderer Code. Wie stehen diese in Verbindung miteinander?
-
Das ist doch jetzt ein ganz anderer Code. Wie stehen diese in Verbindung miteinander?
Ganz Einfach, der Besitzer wird als Integer Gespeichert (Die Datenbank ID vom User). Ich möchte nämlich den Namen nicht als String speichern aus dem Grund, wenn sich jemand bsp. als "Niemand" Registriert und ich frage ab ob der String = Name ist, dann gehört diesem JEDE Biz bzw. ist überall Teilhaber. Somit möchte ich mit der Datenbank ID vom User arbeiten.
Ich lade erst die Bizzen und da bei OnLoadBiz der Name aus der Datenbank (GetNameFromDB) aufgerufen wird um den Namen des eingetragenen Integers abzufragen Sprich welcher Name steckt hinter der Datenbank ID bsp. 1
MfG
XonarZ -
Poste bitte den Code dazu, sonst ist das Problem nicht nachvollziehbar.
-
Ganz Einfach, der Besitzer wird als Integer Gespeichert (Die Datenbank ID vom User). Ich möchte nämlich den Namen nicht als String speichern aus dem Grund, wenn sich jemand bsp. als "Niemand" Registriert und ich frage ab ob der String = Name ist, dann gehört diesem JEDE Biz bzw. ist überall Teilhaber. Somit möchte ich mit der Datenbank ID vom User arbeiten.
Ich lade erst die Bizzen und da bei OnLoadBiz der Name aus der Datenbank (GetNameFromDB) aufgerufen wird um den Namen des eingetragenen Integers abzufragen Sprich welcher Name steckt hinter der Datenbank ID bsp. 1MfG
XonarZDas lässt sich deutlich einfacher mit einem LEFT JOIN verwirklichen. Dann kannst du dir das zusätzliche ermitteln des Namens sparen. Müsste in etwa so aussehen:
SQLSELECT biz_tabelle.*, user.username FROM biz_tabelle LEFT JOIN user ON user.id = biz_tabelle.biz_owneruser.username musst du noch an deinen Spaltennamen anpassen + per cache_get_value_name() dir den username holen.
-
Das lässt sich deutlich einfacher mit einem LEFT JOIN verwirklichen. Dann kannst du dir das zusätzliche ermitteln des Namens sparen. Müsste in etwa so aussehen:
Ich habs nun so:
Codenew query[512]; mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte LEFT JOIN user ON geschaefte.biz_owner = user.id"); mysql_query(handle, query); cache_get_value_name(0, "name", inhaber, MAX_PLAYER_NAME);
Als ergebnis kommt allerdings "NULL" Raus ... woran könntes das liegen ? Ich hab mir den Query mal printen lassen:Code1 // <- das ist die Owner ID sprich in der user tabelle user.id 1 = Mein Name [13:45:54] SELECT * FROM geschaefte LEFT JOIN user ON geschaefte.biz_owner = user.idIch arbeite in PHP selten (vielleicht sollte ich das mal ändern) mit LEFT JOIN daher ist das neuland für mich.
Poste bitte den Code dazu, sonst ist das Problem nicht nachvollziehbar.
Welchen genau meinst du ? von OnLoadBiz?:
Code
Alles anzeigenpublic OnLoadBiz(){ new rows, string[256]; cache_get_row_count(rows); printf("Einträge: %i", rows); for(new i = 0; i < rows; i++){ cache_get_value_name_int(i, "id", bInfo[i][biz_id]); cache_get_value_name_int(i, "biz_typ", bInfo[i][biz_typ]); cache_get_value_name(i, "biz_name", bInfo[i][biz_name], 256); cache_get_value_name_int(i, "biz_owner", bInfo[i][biz_owner]); cache_get_value_name_int(i, "biz_sowner", bInfo[i][biz_sowner]); cache_get_value_name_int(i, "biz_level", bInfo[i][biz_level]); cache_get_value_name_int(i, "int_id", bInfo[i][int_id]); cache_get_value_name_float(i, "bizkosten", bInfo[i][biz_kosten]); cache_get_value_name_float(i, "bizkasse", bInfo[i][biz_kasse]); cache_get_value_name_float(i, "biz_x", bInfo[i][biz_x]); cache_get_value_name_float(i, "biz_y", bInfo[i][biz_y]); cache_get_value_name_float(i, "biz_z", bInfo[i][biz_z]); cache_get_value_name_float(i, "int_x", bInfo[i][int_x]); cache_get_value_name_float(i, "int_y", bInfo[i][int_y]); cache_get_value_name_float(i, "int_z", bInfo[i][int_z]); cache_get_value_name_float(i, "i_x", bInfo[i][i_x]); cache_get_value_name_float(i, "i_y", bInfo[i][i_y]); cache_get_value_name_float(i, "i_z", bInfo[i][i_z]); cache_get_value_name_int(i, "actor_skin", bInfo[i][actor_skin]); cache_get_value_name_float(i, "actor_x", bInfo[i][actor_x]); cache_get_value_name_float(i, "actor_y", bInfo[i][actor_y]); cache_get_value_name_float(i, "actor_z", bInfo[i][actor_z]); cache_get_value_name_float(i, "actor_r", bInfo[i][actor_r]); cache_get_value_name_float(i, "liefer_x", bInfo[i][liefer_x]); cache_get_value_name_float(i, "liefer_y", bInfo[i][liefer_y]); cache_get_value_name_float(i, "liefer_z", bInfo[i][liefer_z]); printf("%i", bInfo[i][biz_owner]); new teilhaber[MAX_PLAYER_NAME], inhaber[MAX_PLAYER_NAME]; if(bInfo[i][biz_owner] == 0){ bizPickup[i] = CreatePickup(1274, 1, bInfo[i][biz_x], bInfo[i][biz_y], bInfo[i][biz_z], 0); format(string, sizeof(string), "{00AFFF}%s - Zum Verkauf\n{00AFFF}Kosten: {FFFFFF}%0.0f€\n{00AFFF}Benötigtes Level: {FFFFFF}%i\n\nZum Betreten /enter oder Z", bInfo[i][biz_name], bInfo[i][biz_kosten], bInfo[i][biz_level]); }else{ if(bInfo[i][biz_sowner] == 0){ teilhaber = "Niemand"; }else{ teilhaber = GetDBName(bInfo[i][biz_sowner]); } new query[512]; mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte LEFT JOIN user ON geschaefte.biz_owner = user.id"); mysql_query(handle, query); cache_get_value_name(0, "name", inhaber, MAX_PLAYER_NAME); printf("%s", query); bizPickup[i] = CreatePickup(1239, 1, bInfo[i][biz_x], bInfo[i][biz_y], bInfo[i][biz_z], 0); format(string, sizeof(string), "{00AFFF}%s\nInhaber: {FFFFFF}%s\n{00AFFF}Teilhaber: {FFFFFF}%s\n\nZum Betreten /enter oder Z", bInfo[i][biz_name], inhaber, teilhaber); } bizLabel[i] = Create3DTextLabel(string, COLOR_WHITE, bInfo[i][biz_x], bInfo[i][biz_y], bInfo[i][biz_z], 10, 0, 0); format(string, sizeof(string), "%s - Lieferpunkt\n\n/beliefern", bInfo[i][biz_name]); lieferLabel[i] = Create3DTextLabel(string, COLOR_RED, bInfo[i][liefer_x], bInfo[i][liefer_y], bInfo[i][liefer_z], 10.0, 0, 0); CreatePickup(1239, 1, bInfo[i][liefer_x], bInfo[i][liefer_y], bInfo[i][liefer_z], 0); bizActor[i] = CreateActor(bInfo[i][actor_skin], bInfo[i][actor_x], bInfo[i][actor_y], bInfo[i][actor_z], bInfo[i][actor_r]); format(string, sizeof(string), "%s - Personal", bInfo[i][biz_name]); bizActorLabel[i] = Create3DTextLabel(string, COLOR_WHITE, bInfo[i][actor_x], bInfo[i][actor_y], bInfo[i][actor_z]+1, 10.0, bInfo[i][biz_id], 0); SetActorVirtualWorld(bizActor[i], bInfo[i][biz_id]); printf("BizID: %i | Biz Name: %s | Inhaber: %s | Teilhaber: %s", bInfo[i][biz_id], bInfo[i][biz_name], inhaber, teilhaber); if(i == 2) break; } print(" "); printf("|__________%i/%i Geschäfte wurden Geladen__________|", rows, MAX_BIZ); new query[1024]; //Tankstellen mysql_format(handle, query, sizeof(query), "SELECT * FROM tankstellen"); mysql_pquery(handle, query, "OnLoadTanke"); return 1; } -
@XonarZ: Das Statement hat weniger mit PHP, sondern mehr etwas mit SQL / mySQL zu tun :).
Den Query den du oben ausgibst muss auch an eine andere Stelle hin. Nämlich dort, wo der Query für OnLoadBiz() aufgerufen bzw. gesendet wird. Irgendwo muss ja ein Code-ähnlicher Teil wie:
Codemysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte"); mysql_pquery(handle, query, "OnLoadBiz");sein, dort den Query mit den oberen ersetzen. Dann kannst du, wie deine anderen Werte gemütlich per cache_get_value_name*() aus den einzelnen rows ziehen.
-
noch ne idee?
-
noch ne idee?
Dein Problem musst du schon etwas konkretisieren. Was ist immer 0? cache_get_row_count() oder gibt OnCarKeyCountCheck() immer 0 zurück? Schon mal versucht den Query manuell per phpMyAdmin auszuführen und zu schauen, ob und wie viele Zeilen du zurückbekommst? Alternativ, versuch mal die Funktion cache_num_rows() zu verwenden (weiß nicht, ob es diese Funktion bei deiner MySQL BlueG Version gibt).
-
Interior ( Ein & Ausgänge ) Probleme
Code
Alles anzeigenpublic OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if((RELEASED(KEY_SECONDARY_ATTACK))) { if(IsPlayerInAnyVehicle(playerid))return 1; // Fragt ab ob der Spieler in eine Auto sitzt else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.4299,-1690.7727,14.7656)) // Grove Street Eingang vom ICON zum Betretten vom Interior { SetPlayerInterior(playerid,3);//Grove Street SetCameraBehindPlayer(playerid); SetPlayerFacingAngle(playerid,88.4473); SetPlayerPos(playerid,2496.049804,-1695.238159,1014.742187); SetPlayerVirtualWorld(playerid,1); GameTextForPlayer(playerid,"~b~Los Santos~n~~w~Grove Street",1200,1); } else if(IsPlayerInRangeOfPoint(playerid,2.0,2494.0928,-1463.9749,24.0249)) // Ballas Eingang { SetPlayerInterior(playerid,3); SetCameraBehindPlayer(playerid); SetPlayerFacingAngle(playerid,0.4231); SetPlayerPos(playerid,2496.049804,-1695.238159,1014.742187); SetPlayerVirtualWorld(playerid,2); GameTextForPlayer(playerid,"~b~Los Santos~n~~w~Ballas",1200,1); return 1; } else if(IsPlayerInRangeOfPoint(playerid,2.0,2507.8247,-2020.4296,14.2101)) // Vagos Eingang { SetPlayerInterior(playerid,3); SetCameraBehindPlayer(playerid); SetPlayerFacingAngle(playerid,0.4207); SetPlayerPos(playerid,2496.049804,-1695.238159,1014.742187); SetPlayerVirtualWorld(playerid,3); GameTextForPlayer(playerid,"~b~Los Santos~n~~w~Vagos",1200,1); else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422)) // Grove Street Ausgang { SetPlayerInterior(playerid,0); SetCameraBehindPlayer(playerid); SetPlayerFacingAngle(playerid,0.4231); SetPlayerPos(playerid,2495.4299,-1690.7727,14.7656); return 1; } else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422)) // Ballas Ausgang { SetPlayerInterior(playerid,0); SetCameraBehindPlayer(playerid); SetPlayerFacingAngle(playerid,0.4231); SetPlayerPos(playerid,2494.0928,-1463.9749,24.0249); return 1; } else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422)) // Vagos Ausgang { SetPlayerInterior(playerid,0); SetCameraBehindPlayer(playerid); SetPlayerFacingAngle(playerid,0.4231); SetPlayerPos(playerid,2507.8247,-2020.4296,14.2101); return 1; } return 1; }Sobald ein Spier das Ballas Interior betritt, welches derzeit ( noch "alle" die ID & Koordinaten vom CJ Interior besitzen, ) spawnt der Spieler beim heraus gehen an der "Grove Street" Base.
Er soll ja "eigentlich" an dem Ballas Icon ( Draußen ) Spawnen, wie es im Code deklariert ist. !!!!!
Muss ich überall noch die VirtuellenWelten auf 0 setzen, oder soll ich das System wie Mr.Monat als "Enum" System schreiben ?
@Jeffry Villeicht kannst du mir ja helfen ?
-
Muss ich überall noch die VirtuellenWelten auf 0 setzen
Ja, sonst sehen sich die Spieler danach nicht mehr.
Außerdem, und daher der Fehler, musst du zusätzlich beim jeweiligen Ausgang, die virtuelle Welt abfragen.
Beispiel:
else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422)) // Grove Street Ausgang
zu:
else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422) && GetPlayerVirtualWorld(playerid) == 1) // Grove Street Ausgangsoll ich das System wie Mr.Monat als "Enum" System schreiben ?
Das wäre natürlich schöner und gegebenenfalls dynamisch aufbaubar, bei den bisher drei Ein-/Ausgängen aber auch nicht wirklich notwendig. Je mehr es werden, desto besser wäre es.
-
Korrekt danke dir, werde ich später mal testen.
Bei Problemen meld ich mich nochmal.
Sollen ja noch mehr Interiors kommen
-
als "Enum" System schreiben ?
besser ja
-
Alles anzeigen
Ja, sonst sehen sich die Spieler danach nicht mehr.
Außerdem, und daher der Fehler, musst du zusätzlich beim jeweiligen Ausgang, die virtuelle Welt abfragen.
Beispiel:
else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422)) // Grove Street Ausgang
zu:
else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422) && GetPlayerVirtualWorld(playerid) == 1) // Grove Street AusgangDas wäre natürlich schöner und gegebenenfalls dynamisch aufbaubar, bei den bisher drei Ein-/Ausgängen aber auch nicht wirklich notwendig. Je mehr es werden, desto besser wäre es.
Danke dir, hat Funktioniert, jedoch finde ich es so, bei vielen Interiors und Systemen sehr umständlich. Dennoch hat es mir geholfen warum es nicht funktioniert hat.
Werde mehrere Systeme mal als Enum anfangen und schauen wie meine Fortschritte werden
Schonmal Danke für deine Hilfe komme sicherlich nochmal auf dich zurück.besser ja
Habe mal ein Shop System angefangen, viel Übersichtlicher mit Enums und weniger Code..
Danke euch für eure Hilfe. -
Beitrag von Fernandez_ ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: done (). -
Hier der Code noch mal ein bisschen anders geschrieben, kannst an einigen Stellen auf einiges verzichten.
Zudem solltest du versuchen keine globalen Strings zu verwenden.
C
Alles anzeigenCMD:billboards(playerid) { if(Spieler[playerid][pFraktion] != 5 && Spieler[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_GREY, "Fehler: Sie haben keinen Zugriff auf Billboards."); new Header[32], count, string[(64)*sizeof(Billboards)] = "ID\tStandort\tText\n"; for(new i; i<sizeof(Billboards);i++) { if(Billboards[i][b_Created] != 1) continue; format(string,sizeof(string),"%s\n%d\t%s (%d)\t%s", string, Billboards[i][datenbank_id], Billboards[i][bOrt], i, Billboards[i][bText]); count ++; } if(count == 0)return SendClientMessage(playerid, COLOR_GREY, "Fehler: Es existieren zur Zeit keine Billboards."); format(Header, sizeof(Header), "Werbetafeln (Insgesamt: %d)", count); ShowPlayerDialog(playerid, DIALOG_BILLBOARDS, DIALOG_STYLE_TABLIST_HEADERS, Header, string, "Schließen", ""); return 1; } //Dann der Dialog part if(!response) return 1; new header[32]; //Das hier eventuell so lösen: //Das liefert dir direkt die DatenbankID pBillboardList[playerid] = strval(inputtext); format(header, sizeof(header),"Billboard (ID: %d)", pBillboardList[playerid]); if(Spieler[playerid][pAdmin] >= 4) { ShowPlayerDialog(playerid, DIALOG_BILLBOARDS_ADMIN, DIALOG_STYLE_LIST, header, "Checkpoint setzen\nText bearbeiten\nOrt bearbeiten\nBillboard löschen", "Auswählen", "Zurück"); } else if(Spieler[playerid][pFraktion] == 5) { ShowPlayerDialog(playerid, DIALOG_BILLBOARDS_NR, DIALOG_STYLE_LIST, header, "Checkpoint setzen\nText bearbeiten", "Auswählen", "Zurück"); } return 1;Habe direkt mal eine mögliche Lösung im Code angegeben, über inputtext kannst du dann die Datenbankid abfragen.
Hier mal, was inputtext für den jeweiligen Dialog Typ enthält: https://wiki.sa-mp.com/wiki/Dialog_Styles
Man kann es auch anders lösen, z.B. indem du das temporär in PVars zwischenspeicherst o.ä.
Aber so ist es eigentlich am einfachsten

