In deinem Update Query, speicherst du ja auch nicht die Fahrzeugfarben?!
Wieso sollte das auch funktionieren...
Wie sieht denn die Datenbankstruktur aus?
In deinem Update Query, speicherst du ja auch nicht die Fahrzeugfarben?!
Wieso sollte das auch funktionieren...
Wie sieht denn die Datenbankstruktur aus?
es die Möglichkeiten gibt sein Partyerlebnis öffentlich zu teilen
Nein, hör doch auf, das ist ja DIE IDEE.
Gäbe es doch nur eine Plattform, wo man seine Freunde adden könnte, um Bilder oder gar Videos zu teilen.
Neben WhatsApp, Signal, Telegram, Instagram, Facebook, Twitter, Snapchat, TikTok brauch es unbedingt noch eine App, gerade für diesen Zweck. Das ist ja essentiell seine Partyerlebnisse in die Öffentlichkeit zu tragen.
Auf den anderen kann man ja keine Bilder oder Videos teilen, also mega gute Nische.
Wenn du die Millionen dafür gemacht hast, hier Idee Nr. 2.
Eine Dating App. Aber mal ordentlich.
Das wird unsere Gesellschaft als Ganzes voranbringen, da bin ich mir sicher!
Sry, bin nur ein Neider, weil es mir nicht eingefallen ist.
Für sowas kann ich dir ChatGPT ans Herz legen.
Das hat sogut wie alle öffentlichen Dokus gelesen und all das Wissen in Foren aufgesammelt.
Zitat von ChatGPTAlles anzeigenMoin!
Es scheint, dass du die Buffer-Pool-Größe in Plesk auf einem Windows Server 2022 erhöhen möchtest. Die genaue Vorgehensweise kann von der spezifischen Version von Plesk abhängen, die du verwendest, da sich die Benutzeroberfläche im Laufe der Zeit ändern kann. Dennoch kann ich dir eine allgemeine Anleitung geben, wie du die Buffer-Pool-Größe erhöhen könntest:
1. **Plesk Benutzeroberfläche:**
In den meisten Fällen kannst du versuchen, die Buffer-Pool-Größe über die Plesk-Benutzeroberfläche zu ändern. Hier sind die Schritte, die du befolgen könntest:
- Melde dich in der Plesk-Admin-Oberfläche an.
- Suche nach dem Menüpunkt oder der Option, die sich auf die MySQL-Datenbankverwaltung bezieht. Je nach Plesk-Version könnte dies "Datenbanken" oder "Datenbankserver" sein.
- Innerhalb der Datenbankverwaltung solltest du eine Option zur Konfiguration der MySQL-Servereinstellungen finden. Dies kann als "MySQL-Server-Einstellungen" oder ähnlich bezeichnet sein.
- Hier sollte es eine Einstellung für die "Buffer-Pool-Größe" oder ähnlich geben. Ändere den Wert entsprechend deinen Anforderungen und speichere die Einstellungen.
2. **Direkte Konfigurationsdatei:**
Falls du die Einstellungen nicht über die Benutzeroberfläche vornehmen kannst oder möchtest, könntest du die Konfigurationsdatei von MySQL manuell bearbeiten. In Plesk läuft MySQL in der Regel als Dienst, und die Konfigurationsdatei befindet sich normalerweise an einem Pfad ähnlich diesem:
```
C:\Program Files\MySQL\MySQL Server X.X\my.ini
```
Öffne die `my.ini`-Datei in einem Texteditor und suche nach dem Abschnitt, der die MySQL-Konfigurationseinstellungen enthält. Dort findest du normalerweise eine Einstellung für die Buffer-Pool-Größe. Sie sollte ähnlich aussehen wie:
```
innodb_buffer_pool_size = 16M
```
Ändere den Wert entsprechend deinen Anforderungen, zum Beispiel:
```
innodb_buffer_pool_size = 256M
```
Speichere die Datei nach der Bearbeitung und starte den MySQL-Dienst neu, damit die Änderungen wirksam werden.
Bitte beachte, dass diese Anleitung allgemein gehalten ist und die genauen Schritte je nach Plesk-Version und Systemkonfiguration variieren können. Es wird empfohlen, vor Änderungen an kritischen Systemeinstellungen eine Sicherung durchzuführen, um unerwünschte Auswirkungen zu vermeiden.
Wenn das nicht weiterhilft, dann gerne hier nochmal melden ![]()
Du hast da e_modelid, statt modelid stehen.
Es ist halt maximal stupid modelid als globale Variable zu haben. Fast so wie wenn man playerid o.ä. als globale Variable hätte.
Nenn es um zu gModelid (für global) oder sowas. Oder lass es ganz weg eig ist es unnötig.
#Handy
ich versteh nur nicht was daran falsch ist
Es steht doch da, was falsch ist.
Schau mal in die Doku: https://team.sa-mp.com/wiki/My…#cache_get_value_name_int
Du verwendest cache_get_value_name_int gibst aber keinen Spaltennamen an...
So wie das aussieht, willst du cache_get_value_index_int verwenden.
Aber selbst da, bekommst du nicht als return wert den Wert zurück, sondern als Parameter gesetzt.
Sprich dann so nutzen:
cache_get_value_index_int(i, 0, dynClothesInfo[playerid][i][cID]);
Wobei ich dir empfehle das per Name zu machen, damit es zu keinen Verwechslungen kommt...ist schwer zu finden xD
Oder nutze direkt ein ORM System, wobei das etwas komplexer ist, wenn man damit noch nie gearbeitet hat.
Genau ![]()
Nur die Klammern sind unnötig, also:
for(new i, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerNPC(i) || !eingeloggt[i]) continue;
SpeichereSpieler(i);
}
Das reicht völlig.
Wenn btw keine Reihenfolge nötig ist (beim Zählen der Loop), kannst die Loop auch noch optimieren:
for(new i = GetPlayerPoolSize(); i != -1; i--)
{
if(IsPlayerNPC(i) || !eingeloggt[i]) continue;
SpeichereSpieler(i);
}
Dann ist die Bedingung nämlich eine Konstante und keine Variable mehr.
Aber Grundsätzlich ist das mit dem GetPlayerPoolSize überbewertet. Ich denke es macht mehr Sinn MAX_PLAYERS auf ein angemessenes Niveau zu definieren und dann zu nutzen.
OMP zum Beispiel hat das auch entdeckt und empfiehlt halt foreach oder MAX_PLAYERS ![]()
Siehe: https://www.open.mp/docs/scrip…nctions/GetPlayerPoolSize
Das hängt mit Callback-Hooking zusammen ![]()
Dort wird quasi der Callback unbenannt mit _ALS_ und deshalb kannst du das nicht direkt aufrufen.
Generell ist das keine gute Idee Callbacks direkt aufzurufen. Willst du, dass der Spieler den Server verlässt, dann Kick ihn.
Ansonsten lager den Code von OnPlayerDisconnect in eine Funktion aus und rufe diese gezielt auf.
PS: Der schlägt dir Gas vor, weil der Compiler durcheinander kommt. Der sucht nach 3 stelligen Variablennamen, weil "ALS" auch 3 stellig ist und schlägt dir das deshalb vor ![]()
Dinge die mir aufgefallen sind:
Joa, also Respekt 👍🏼
(function($) {
Es ist komisch, dass du Dropbox direkt aufrufst.
Normalerweise musst du das dem $.fn Objekt hinzufügen.
In deinem Fall am Ende (der (function($) { Funktion) folgendes tun:
$.fn.Dropbox = Dropbox;
Und dann das wie folgt aufrufen:
Ich bin mir nicht ganz sicher (da ich das nicht mehr aktiv verfolge), aaaaber ich meine gelesen zu haben, dass OMP GTA Trilogy schon supported?
Aber vielleicht weiß myu mehr ![]()
nur wird das nur auf eine Seite angezeigt und nicht auf beiden Seiten
Das liegt an der Reihenfolge, wie du die Dinge aufrufst.
Du musst natürlich erst das eine Objekt erstellen und anheften und dann das Andere.
Nicht beides versuchen parallel zu mixxen.
Ich empfehle dir btw das in eine Funktion auszulagern (da du das sicherlich noch öfters nutzen wirst) und zum Anderen einen Streamer zu verwenden, denn wenn du da (nur als extremes Beispiel) 500 Fahrzeuge hast, könntest du keine anderen Objekte mehr auf dem Server streamen 😅 Deshalb nie CreateObject verwenden, sondern immer CreateDynamicObject.
Sähe dann z.B. so aus:
stock AddWingDingsToVehicle(vehicleid)
{
new obj = CreateDynamicObject(19477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetDynamicObjectMaterialText(obj, 0, !"-", OBJECT_MATERIAL_SIZE_128x64,!"Wingdings", 75, 1, 0xFFFFFFFF, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
AttachDynamicObjectToVehicle(obj, vehicleid,1.24, -1.0, 1.2, 0.0, 0.0, 0.0);
obj = CreateDynamicObject(19477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetDynamicObjectMaterialText(obj, 0, !"-", OBJECT_MATERIAL_SIZE_128x64,!"Wingdings", 75, 1, 0xFFFFFFFF, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
AttachDynamicObjectToVehicle(obj, vehicleid,-1.24, -1.0, 1.2, 0.0, 0.0, 0.0);
}
//Nutzung:
Postwagen[0] = CreateVehicleEx(609,989.9643,-1525.2175,13.7328,180.3481,1,1,14400);
AddWingDingsToVehicle(Postwagen[0]);
Alles anzeigen
Habe es eben getestet, also mit den Daten stimmt alles.
(Bekommst du da nicht mega viele compile Fehler?)
Wie Maho schon gesagt hat, es reicht quasi:
Postwagen[0]=CreateVehicleEx(609,989.9643,-1525.2175,13.7328,180.3481,1,1,120,false);
new postobj = CreateObject(19477, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetObjectMaterialText(postobj, "-", 0, OBJECT_MATERIAL_SIZE_128x64,"Wingdings", 75, 1, 0xFFFFFFFF, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
AttachObjectToVehicle(postobj, Postwagen[0],1.24, -1.0, 1.2, 0.0, 0.0, 0.0);
Es ist nur die Interiorid, welche da eine Rolle spielt.
Diese wird wohl nicht gesetzt, wenn du zurück gehst.
Mit dem Standard Befehl /interior kannst das prüfen, in welchem Interior du dich befindest.
#Handy
So, das sieht doch schon einmal ganz anders aus.
Laut Log handelt es sich hier um einen OutOfMemory Fehler der GPU.
Da gibt es jetzt 3 Möglichkeiten:
Viel Erfolg ![]()
Ich liebe es ja Log Einträge als Screenshots zu erhalten...vor Allem, wenn es nur n kleiner Teil der Logs ist.
Auch gut, dass die Screens in unterschiedlicher Zeitlicher Abfolge gepostet wurden...
Am Besten wäre ja ein Video, wie du die Logs ganz schnell durchscrollst, kappa xD
Wieso nicht einfach den gesamten Log mal hier posten? Ist das so schwer? Oder hänge ihn an...
Was hat das in der Sektion Fehler / Vorschläge / Kritik / Lob zum Forum zu suchen? Also die Zeit hätte man sich nehmen können...
Kennt wer Games mit weniger als 50 Usern?^^
Jo, jeder Deutsche SA:MP Server ![]()
Ich helfe doch gerne.
tag mismatch ist immer die hp = 15.0;
Ah, sry, schreib es so:
if (strcmp(cmd, "/drink", true) == 0)
{
if (!IsPlayerInRangeOfPoint(playerid, 3.0, 499.9694, -20.5940, 1000.6797)) return SendClientMessage(playerid, COLOR_GREY, "Es ist kein Barkeeper in der Nähe!");
new local = PlayerInfo[playerid][pLocal];
if(local < 99) return SendClientMessage(playerid,-1,"Hier ist kein Ort zum Trinken!");
if(local-99 >= sizeof(BizzInfo)) return SendClientMessage(playerid,-1,"Das Unternehmen wurde nicht richtig erstellt.");
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if (!x_nr[0])
{
SendClientMessage(playerid, COLOR_WHITE, "|__________________ Bar __________________|");
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /drink [Drink]");
SendClientMessage(playerid, COLOR_GREY, "Verfügbare Drinks: Bier ($60), Vodka ($100), V+Energy ($100), Wasser ($20), Soda ($10)");
SendClientMessage(playerid, COLOR_GREY, "Verfügbare Drinks: Mixery ($20), Grapefruit ($20), Cola ($10), Fanta ($10)");
SendClientMessage(playerid, COLOR_WHITE, "|________________________________________________|");
return 1;
}
new cost, drunkLevel, Float:hp, till, Float:health;
if (strcmp(x_nr, "Bier", true) == 0)
{
cost = 60;
drunkLevel = 1;
hp = 15.0;
till = 60;
}
else if (strcmp(x_nr, "Mixery", true) == 0)
{
cost = 10;
drunkLevel = 2;
hp = 25.0;
till = 10;
}
else if (strcmp(x_nr, "Grapefruit", true) == 0)
{
cost = 20;
drunkLevel = 2;
hp = 25.0;
till = 20;
}
else if (strcmp(x_nr, "Cola", true) == 0)
{
cost = 10;
drunkLevel = 2;
till = 10;
hp = 25.0;
}
else if (strcmp(x_nr, "Fanta", true) == 0)
{
cost = 20;
drunkLevel = 2;
till = 20;
hp = 25.0;
}
else if (strcmp(x_nr, "Vodka", true) == 0)
{
cost = 10;
drunkLevel = 2;
till = 100;
hp = 25.0;
}
else if (strcmp(x_nr, "V+Energy", true) == 0)
{
cost = 100;
drunkLevel = 3;
till = 100;
hp = 27.0;
}
else if (strcmp(x_nr, "Wasser", true) == 0)
{
cost = 20;
till = 20;
hp = 5.0;
}
else if (strcmp(x_nr, "Soda", true) == 0)
{
cost = 10;
till = 10;
hp = 5.0;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Barkeeper: Sorry, ich kenne dieses Getränk nicht.");
return 1;
}
if (PlayerDrunk[playerid] >= 10) return SendClientMessage(playerid, COLOR_GREY, "Du kannst nicht mehr trinken, sonst musst du brechen!");
GivePlayerMoney(playerid, -cost);
BizzInfo[local - 99][bProducts] -= 1;
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
PlayerDrunk[playerid] += drunkLevel;
if (PlayerDrunk[playerid] >= 5)
{
GameTextForPlayer(playerid, "~w~Du bist~n~~p~betrunken", 3500, 1);
BizzInfo[local - 99][bTill] += till;
}
SetPlayerTime(playerid, 22, 10);
SetPlayerDrunkLevel(playerid, 50000);
SetPlayerWeather(playerid, -66);
PlayerStoned[playerid] += 1;
if (GetPlayerHealth(playerid, health) < 100)
{
if (PlayerInfo[playerid][pAlcoholPerk] > 0)
{
PlayerDrunk[playerid] += 1;
hp = 2 * PlayerInfo[playerid][pAlcoholPerk] + hp;
}
SetPlayerHealth(playerid, health + hp);
}
new tName[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, tName, sizeof(tName));
format(string, sizeof(string), "* %s trinkt %s.", tName, x_nr);
ProxDetector(30.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
return 1;
}
Alles anzeigen
Hast du meinen Befehl mal probiert?
Wie ist denn BizzInfo deklariert worden?
Oder versuchs mal so:
if (strcmp(cmd, "/drink", true) == 0)
{
if (!IsPlayerInRangeOfPoint(playerid, 3.0, 499.9694, -20.5940, 1000.6797)) return SendClientMessage(playerid, COLOR_GREY, "Es ist kein Barkeeper in der Nähe!");
new local = PlayerInfo[playerid][pLocal];
if(local < 99) return SendClientMessage(playerid,-1,"Hier ist kein Ort zum Trinken!");
new Float:health;
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if (!x_nr[0])
{
SendClientMessage(playerid, COLOR_WHITE, "|__________________ Bar __________________|");
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /drink [Drink]");
SendClientMessage(playerid, COLOR_GREY, "Verfügbare Drinks: Bier ($60), Vodka ($100), V+Energy ($100), Wasser ($20), Soda ($10)");
SendClientMessage(playerid, COLOR_GREY, "Verfügbare Drinks: Mixery ($20), Grapefruit ($20), Cola ($10), Fanta ($10)");
SendClientMessage(playerid, COLOR_WHITE, "|________________________________________________|");
return 1;
}
new cost, drunkLevel, hp, till;
if (strcmp(x_nr, "Bier", true) == 0)
{
cost = 60;
drunkLevel = 1;
hp = 15.0;
till = 60;
}
else if (strcmp(x_nr, "Mixery", true) == 0)
{
cost = 10;
drunkLevel = 2;
hp = 25.0;
till = 10;
}
else if (strcmp(x_nr, "Grapefruit", true) == 0)
{
cost = 20;
drunkLevel = 2;
hp = 25.0;
till = 20;
}
else if (strcmp(x_nr, "Cola", true) == 0)
{
cost = 10;
drunkLevel = 2;
till = 10;
hp = 25.0;
}
else if (strcmp(x_nr, "Fanta", true) == 0)
{
cost = 20;
drunkLevel = 2;
till = 20;
hp = 25.0;
}
else if (strcmp(x_nr, "Vodka", true) == 0)
{
cost = 10;
drunkLevel = 2;
till = 100;
hp = 25.0;
}
else if (strcmp(x_nr, "V+Energy", true) == 0)
{
cost = 100;
drunkLevel = 3;
till = 100;
hp = 27.0;
}
else if (strcmp(x_nr, "Wasser", true) == 0)
{
cost = 20;
till = 20;
hp = 5.0;
}
else if (strcmp(x_nr, "Soda", true) == 0)
{
cost = 10;
till = 10;
hp = 5.0;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Barkeeper: Sorry, ich kenne dieses Getränk nicht.");
return 1;
}
if (PlayerDrunk[playerid] >= 10) return SendClientMessage(playerid, COLOR_GREY, "Du kannst nicht mehr trinken, sonst musst du brechen!");
GivePlayerMoney(playerid, -cost);
BizzInfo[local - 99][bProducts] -= 1;
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
PlayerDrunk[playerid] += drunkLevel;
if (PlayerDrunk[playerid] >= 5)
{
GameTextForPlayer(playerid, "~w~Du bist~n~~p~betrunken", 3500, 1);
BizzInfo[local - 99][bTill] += till;
}
SetPlayerTime(playerid, 22, 10);
SetPlayerDrunkLevel(playerid, 50000);
SetPlayerWeather(playerid, -66);
PlayerStoned[playerid] += 1;
if (GetPlayerHealth(playerid, health) < 100)
{
if (PlayerInfo[playerid][pAlcoholPerk] > 0)
{
PlayerDrunk[playerid] += 1;
hp = 2 * PlayerInfo[playerid][pAlcoholPerk] + hp;
}
SetPlayerHealth(playerid, health + hp);
}
new sendername[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s trinkt %s.", sendername, x_nr);
ProxDetector(30.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
return 1;
}
Alles anzeigen