Wieso denn genau? Je nach Vorhaben bietet es sich eventuell auch an, die Struktur der Tabelle zu ändern
Beiträge von Douq
-
-
TextDrawShowForAll() zeigt es allen Spieler an, die IN DIESEM MOMENT mit dem Server verbunden sind. Es bietet sich an, das TextDraw bei TextDrawShowForPlayer() anzuzeigen, beispielsweise bei OnPlayerConnect(), OnPlayerSpawn() oder OnPlayerRequestSpawn()
-
Meine Anfrage bezieht isch aber nicht auf eine WoltLab sache, sondern complett Custom und nicht fälschbar.
Der Link von seegras beschreibt trotzdessen universelle Möglichkeiten, einen Clienten zu identifizieren. Das sind keine Woltlabsachen.
-
-
@Dr.Frauenarzt: Du hast es mit den negativen Index. In Zeile 19 vom oberen Code setzt du pAccept[playerid] auf -255. In Zeile 22 versuchst du auf den Index zuzugreifen, der in der Variable pAccept[playerid] ist. Da diese -255 beträgt, greifst du auf einen negativen Index zu, den es in PAWN nicht gibt.
Generell empfehle ich dir, in den PAWNO Ordner eine pawn.cfg zu erstellen und dort -d3 reinzuschreiben. Dadurch erhälst du von crashdetect detailiertere Fehlerinformationen. Für Testzwecke bzw. um Fehler zu finden eignet sich das durchaus.
-
Bei dem Befehl /cooked müsste doch in Zeile 7 pCookID statt pFishID hin, oder? pFishID scheinst du ja immer auf -1 zu setzen, wenn es gekocht wurde - demnach würde es den Fehler erklären
-
Eigentlich bietet es sich nicht an, für jeden Channelbaum eine neue Channelgruppe zu erstellen. Sinnvoll wäre eher sowas wie Leader und Member. Aber nein, die Rechte beziehen sich stets auf die Channel, in welchem er die Channelgruppe erhält. Außerhalb des Channelbaums hat er diese Rechte nicht -> dadurch verfallen jegliche Privilegien, die er durch die Gruppe erhält.
-
Mir ist es unbegreiflich, wieso denn ein neuer Server nicht mal ohne ellenlange Anschuldigungen und schlechten Umgangston starten kann. Da das Thema nach 2 Stunden mehr gelöschte und verwarnte Beiträge besitzt als normale, schließe ich diesen Thread erstmal bis morgen. Ich hoffe in dieser Zeit beruhigen sich die Gemüter und wir schaffen es, konstruktive Beiträge zum Server und seiner Werbung zu verfassen.
Edit:
Neuer Tag - neues Glück. Bitte überlegt bevor ihr einen Beitrag verfasst, ob dieser wirklich dem Regelwerk vom breadfish entspricht. Kommende Beiträge werden stärker von mir sanktioniert, sofern diese gegen den normalen Umgangston verstoßen.Der Nikolaus ist heute das letze mal gnädig. Auch weiterhin gilt oberes - jede mögliche Art des Regelverstoßes wird sanktioniert - mit Verwarnungen.
-
Code
Alles anzeigenocmd:help(playerid, params[]) { if(!IsLoggedIn(playerid))return 1; { new strFind[64]; if(!sscanf(params, "s[64]", strFind)) { if(!IsNumeric(strFind)) { if(strlen(strFind) > 2) { new strTemp[512]; format(strTemp, sizeof(strTemp), "SELECT * FROM `server_help`"); mysql_function_query(MySqlConnection, strTemp, true, "sqlCheckHelp", "is", playerid, strFind); } else { SendClientMessage(playerid, COLOR_WHITE, "{AA3333}Der Begriff nach dem du suchst muss mindestens 3 Zeichen haben!"); } } else { new strTemp[512]; format(strTemp, sizeof(strTemp), "SELECT * FROM `server_help`"); mysql_function_query(MySqlConnection, strTemp, true, "sqlCheckHelp", "is", playerid, strFind); } } else { SendClientMessage(playerid, COLOR_WHITE, "{247BA6}*** HILFE *** {00CC00}Du kannst mit /help [Suchbegriff] die Datenbank durchsuchen."); } } return 1; } public sqlCheckHelp(playerid, find[]) { new strHelp[1500], strTitle[128], tempCount, strList[1024], dataID, tempHelp[1024], tempTitle[128]; format(strList, 1024, "Es wurden mehrere Einträge in der Datenbank gefunden!\nVerwende: /help [ID]\n\n"); if(!IsNumeric(find)) { for(new i = 0; i < cache_get_row_count(MySqlConnection); i++) { cache_get_field_content(i, "text", strHelp, MySqlConnection, 1500); cache_get_field_content(i, "title", strTitle, MySqlConnection, 128); dataID = cache_get_field_content_int(i, "id", MySqlConnection); if(strfind(strHelp, find, true) != -1) { tempCount++; format(strList, 1024, "%sID: %i - Titel: %s\n", strList, dataID, strTitle); format(tempHelp, 1500, "%s", strHelp); format(tempTitle, 128, "%s", strTitle); continue; } } if(tempCount) { if(tempCount > 1) ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Es wurden mehrere Einträge gefunden!", strList, "Schließen", ""); else ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Hilfe", tempHelp, "Schließen", ""); } else { SendClientMessage(playerid, COLOR_WHITE, "{AA3333}Wir haben in der Datenbank keinen Begriff dazu gefunden!"); } } else { if(cache_get_row_count(MySqlConnection)) { cache_get_field_content(0, "text", strHelp, MySqlConnection, 1500); cache_get_field_content(0, "title", strTitle, MySqlConnection, 128); ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Hilfe", strHelp, "Schließen", ""); } else { SendClientMessage(playerid, COLOR_WHITE, "{AA3333}Es konnte kein Eintrag zu dieser ID gefunden werden!"); } } return 1; }
Hey,
Habe folgendes Problem... Egal nach welcher nummer ich suche schmeißt er mir den 1. Artikel her.. Weiß jemand warum. Mysql R34
Du solltest die Fallentscheidung (ob Zahl oder nicht) bereits im Befehl help machen. Sollte dann eine Zahl sein, würde ich per WHERE Klausel die ID angeben. Derzeit lässt du ihm einfach den ersten Eintrag den er findet anzeigen, wodurch auch dein "Fehler" die logische Konsequenz ist.
-
Mir ist es unbegreiflich, wieso denn ein neuer Server nicht mal ohne ellenlange Anschuldigungen und schlechten Umgangston starten kann. Da das Thema nach 2 Stunden mehr gelöschte und verwarnte Beiträge besitzt als normale, schließe ich diesen Thread erstmal bis morgen. Ich hoffe in dieser Zeit beruhigen sich die Gemüter und wir schaffen es, konstruktive Beiträge zum Server und seiner Werbung zu verfassen.
Edit:
Neuer Tag - neues Glück. Bitte überlegt bevor ihr einen Beitrag verfasst, ob dieser wirklich dem Regelwerk vom breadfish entspricht. Kommende Beiträge werden stärker von mir sanktioniert, sofern diese gegen den normalen Umgangston verstoßen. -
@Ivory_Diamond Theoretisch wäre das umsetzbar. Kannst deinem enum theoretisch um zwei Variablen erweitern: interiorOwnerTyp und interiorOwnerID. Dann könntest du beispielsweise machen, dass interiorOwnerTyp = 1 einer Fraktion entspricht und interiorOwnerID dementsprechend als FraktionsID interpretieren. Dadurch hast du die Möglichkeit, die verschiedenen Fälle unter ein System zu kriegen.
-
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).
-
@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.
-
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_owner
user.username musst du noch an deinen Spaltennamen anpassen + per cache_get_value_name() dir den username holen.
-
Wo updatest du denn den neuen Namen? Du musst selbstverständlich auch der SQL-Instanz sagen, dass er den Namen verändern soll. So etwas wie:
UPDATE players SET rpname = '%s' WHERE player_id = '%d'
-
Das ist ein ternärer Operator. Der Artikel sollte das ganz gut beschreiben: https://developer.mozilla.org/…tors/Conditional_Operator
-
Es empfiehlt sich die Syntax aus der Include zu verwenden, denn das ist die des aktuellen PlugIns
-
Abend Jungs,
Codenew seconds = pInfo[playerid][pAutoRestzeit] - gettime(); new days = seconds / 86400; seconds -= days * 86400; new hours = seconds / 3600; seconds -= hours * 3600; new minutes = seconds / 60; seconds -= minutes * 60; new year, month, day, hour, minute, second; TimestampToDate(pInfo[playerid][pAutoDatum], year, month, day, hour, minute, second, 2); if(pInfo[playerid][pAutosperre]) format(string, sizeof(string), "%s\n{bc4343} | %02d.%02d.%d | •Autoschein Sperre (%d:%d:%d)", string, day, month, year, hours, minutes, seconds);
Welchen Wert muss ich denn jetzt speichern und bzw. welcher Wert ist die Restzeit. Wie wird sie gespeichert und als was?
Nicht vergessen ist TimestampToDate. Meine ich hatte das schon aber habe gemerkt das es nirgends gespeichert wird.Muss ich dazu noch einen Timer erstellen der prüft ob die Zeit abgelaufen ist sagen wir so alle 2 Minuten? Wenn ja wie sieht der
Code aus einfach ob die Restzeit <0 ist?Muss es eine Float sein? Wenn ja wie viele nach Komma Stellen?
TimestampToDate() wandelt einen UNIX-Timestamp in ein Datum um. Der UNIX-Timestamp für gerade JETZT lautet 1539246883 und würde per TimestampToDate() dir folgendes zurückgeben:
year = 2018, month = 10, day = 11, hour = 10, minute = 35. Speichern würde ich generell immer den UNIX-Timestamp den du in der Variable pAutoRestzeit speicherst. Damit kannst du dir nämlich immer berechnen, wie lange es noch bis zur Zeit pAutoRestzeit dauert, als auch welche Zeit es genau ist.Der UNIX-Timestamp ist eine ganze Zahl (int), demnach musst du keinerlei Komma-Stellen beachten. Zur Überprüfung kannst du einfach schauen, ob gettime() > als pAutoRestzeit ist - falls ja, ist die Zeit abgelaufen.
-
Abend,
habe noch bisschen Zeit heute gehabt und kam zu einer Idee.Ist es möglich abzufragen welches Teil am Fahrzeug kaputt ist?
Sagen wir die linke Tür ist beschädigt und man kann das abfragen
oder dann auch reparieren.Gibt es so etwas?
Hey, vielleicht ist das etwas, was dich interessieren könnte: https://wiki.sa-mp.com/wiki/DoorStates
-
Überprüfe, ob die Plugins sscanf, streamer und mysql geladen werden. Falls ja, musst du schauen ob die PluginVersion zur IncludeVersion passt.