
Für 17,90€ anstatt 22,90€, hatte zufällig noch einen Gutscheincode über 5€ ohne MBW von eBay.

Für 17,90€ anstatt 22,90€, hatte zufällig noch einen Gutscheincode über 5€ ohne MBW von eBay.
Das kannst du dann einfach so machen:
stock GetLabelColor(playerid)
{
new lvColor;
switch(AccountInfo[playerid][account_Admin])
{
case 1: lvColor = 0x7401DFFF; //Mapper
case 2: lvColor = 0x00AB1AFF; //Helfer
case 3: lvColor = 0xFE2EC8FF; //Probe Supporter
case 4: lvColor = 0xFE2EC8FF; //Supporter
case 5: lvColor = 0x717171FF; //Administrator
case 6: lvColor = 0x0000FFFF; //Manager
case 7: lvColor = 0x7401DFFF; //Scripter
case 8: lvColor = 0xFF0000FF; //Projektleiter
}
return lvColor;
}
Alles anzeigen
Dann kannst du das so nutzen:
Das kannst du dann einfach so machen:
stock GetAdminName(adminlevel, playerid, bool:colored = false)
{
#pragma unused adminlevel
new lvName[64];
if(colored) strcat(lvName, GetColoredName(playerid));
else strcat(lvName, AccountInfo[playerid][account_Name]);
return lvName;
}
oder:
stock GetAdminName(playerid, bool:colored = false)
{
new lvName[64];
if(colored) strcat(lvName, GetColoredName(playerid));
else strcat(lvName, AccountInfo[playerid][account_Name]);
return lvName;
}
Bei letzterem musst du dann das Admin Level noch aus den Funktionsaufrufen von GetAdminName entfernen.
Genau, aber es ist nicht das " Zeichen im direkten Sinn, sondern ein "unsichtbares" Zeichen davor (wird automatisch in jeden String aufgenommen). EOS ist auch ein vordefiniertes Makro mit dem Wert '\0'. Das beendet einen String an dieser Stelle.
Sehr ausführliche Informationen dazu gibt es in diesem Tutorial: https://forum.sa-mp.com/showthread.php?t=654471
stock GetColoredName(playerid)
{
new lvColor[9], lvName[64];
switch(AccountInfo[playerid][account_Admin])
{
case 1: lvColor = "{7401DF}"; //Mapper
case 2: lvColor = "{00AB1A}"; //Helfer
case 3: lvColor = "{FE2EC8}"; //Probe Supporter
case 4: lvColor = "{FE2EC8}"; //Supporter
case 5: lvColor = "{717171}"; //Administrator
case 6: lvColor = "{0000FF}"; //Manager
case 7: lvColor = "{7401DF}"; //Scripter
case 8: lvColor = "{FF0000}"; //Projektleiter
}
if(GetPVarInt(playerid,"aduty") == 1) format(lvName, sizeof(lvName), "%s%s{FFFFFF}",lvColor, GetAdminName(AccountInfo[playerid][account_Name],true));
else format(lvName, sizeof(lvName), "%s%s{FFFFFF}",lvColor, AccountInfo[playerid][account_Name]);
return lvName;
}
Alles anzeigen
Aufzurufen:
if(GetPVarInt(playerid,"aduty") == 1)
{
format(message, 145,"(( [{33CCFF}Helferchat{FFFFFF}] %s [%s]%s[%d]: %s ))",GetAdminRang(AccountInfo[playerid][account_Admin],true),ServerInfo[0][server_Tag],GetColoredName(playerid),playerid, string);
}
else
{
format(message, 145,"(( [{33CCFF}Helferchat{FFFFFF}] %s %s[%s]: %s ))",GetAdminRang(AccountInfo[playerid][account_Admin],true),GetColoredName(playerid),playerid, string);
}
Übrigens kann eine SendClientMessage nur 145 Zeichen lang sein (144 sichtbare Zeichen + das EOS Zeichen).
Vielen Dank für die Anerkennung, das freut mich! Selbstverständlich muss dazu aber besonders auch erwähnt werden, dass dies ohne die Arbeit des gesamten Teams, auch ehemaliger Teammitglieder, nicht möglich gewesen wäre und auch weiterhin nicht möglich wäre. Ich weiß es aus den 6 Jahren, die ich in meinen damaligen Server UGP investiert habe, selbst, wie zeitaufwändig das ist.
Glückwunsch auch an Kaliber! Auch wenn wir in den Jahren nicht immer einer Meinung waren, hatten und haben wir am Ende immer das gleiche Ziel: Zu helfen.
Die Motivation über die Jahre war für mich immer, den Leuten weiterzuhelfen, bei den Problemen die sich beim Scripting ergeben haben. Als ich 2009 mit PAWN begonnen habe, wusste ich zum einen noch nicht, dass ich noch 10 Jahre später noch immer, wenn auch inzwischen deutlich weniger, damit zu habe, zum anderen wusste ich aber auch damals noch nicht, wie wegweisend es war, mich dem Scripting anzunehmen. Rückblickend würde ich alles wieder genau so machen, was SA-MP angeht, ich habe nie etwas bereut, ganz im Gegenteil. Damals hatte ich noch keinen Schimmer, in welche berufliche Richtung ich gehen werde, die Antwort war aber schon nach weniger als einem Jahr mehr als klar für mich. Das hat sich über die Jahre, bis 2013 auch immer weiter verstärkt und am Ende auch durchgesetzt. Da auch ich zu Beginn an teils völlig banalen Dingen gescheitert bin, was sich übrigens noch immer im englischen Forum nachlesen lässt, und ich damals auch auf Hilfe angewiesen war, weiß ich nur zu gut, wie wichtig es ist, dass man diese Hilfe auch bekommt. Mir ist es daher wichtig, wo immer möglich, mein Wissen weiterzugeben, sei es für SA-MP oder im Beruf. Denn nur das Wissen, das wir teilen, macht uns am Ende alle besser!
Dann fehlen vermutlich noch die notwendigen Runtimes. Diese kannst du mit diesem Paket installieren: https://www.chip.de/downloads/…ne-Runtimes_37449838.html
Liegt die mysql.dll im plugins Ordner?
Dann darfst du den Zusatz ".so" bei den Plugins nicht angeben. Windows lädt die DLL.
Also nur "plugins mysql" in die server.cfg schreiben.
Startest du den Server auf Windows oder Linux?
Ohne hilfreiche Informationen lässt sich dir nicht helfen.
Du darfst nicht einfach irgendetwas rein machen, sondern die richtigen Plugins, die für den Code benötigt werden.
Vor allem also erst mal das MySQL Plugin zu dem Code den du vom Video abgeschrieben hast.
Dir fehlen ein oder mehrere Plugins. Das MySQL Plugin auf jeden Fall.
Mit dem crashdetect Plugin kannst du prüfen, welche Funktionen Probleme verursachen: https://forum.sa-mp.com/showthread.php?t=262796
Das dürfte an dem obig noch hinzugefügten Fehler liegen (am Weiter Button).
Die da wären? Bitte mit korrekter Zeilenangabe im Code.
Edit:
Sehe gerade noch einen weiteren Fehler in beiden Zeilen:
{0x00FF14FF}"Weiter"
Zu
"{00FF14}Weiter"
Was meinst du mit der Version? Das gilt für 0.3.7.
Welche Zeile ist denn die 259? Falls es die ShowPlayerDialog Zeile ist, versuche es wie geschrieben. Die playerid muss logischerweise mitgegeben werden, woher soll der Code sonst wissen, welchem Spieler der Dialog angezeigt werden soll?
In den beiden ShowPlayerDialog Zeilen fehlt die playerid als erster Parameter.
Möglicherweise ist strMsg zu lang? Lasse es dir mal als print ausgeben, wird es dort ausgegeben? Wenn ja, dann ist es zu lang. strMsg darf höchstens 145 als Array Größe haben, da der Chat nur 144 Zeichen anzeigen kann (plus EOS).
Dann beim Einzahlen so:
if((ATM[id][atmGeld] + money) > 2000000)
Beim Einzahlen muss der Code-Teil raus.
Beim Abheben passt es. Wenn es nicht funktioniert, lass dir den Wert von "ATM[id][atmGeld]" und "money" über einen print ausgeben, eventuell hat "ATM[id][atmGeld]" tatsächlich mehr Geld drin.