Ich glaube du meinst die Funktion [wiki]CallRemoteFunction[/wiki]
[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
-
-
Nabend,
Ich finde grade einfach den Fehler nicht...
format(string,sizeof(string),"Fraktionrang: [%s]", GetFraktionName(PlayerInfo[playerid][pFraktionrang]));
Fehler: error 029: invalid Expression, assumed Zero....Hab auch schon den Fehlerklärbär genutzt. Gibt aber keine Informationen aus
Wird denke ich mal nur ein Denkfehler sein, den ich grade einfach nicht Finde. -
Zeig mal GetFraktionsRang
-
Zeig mal GetFraktionsRang
Die Ränge werden einfach als ID gespeichert. Und diese möchte ich anstatt als ID mit Namen in den Staats z.b Ausgeben.
Habe es so umgesetzt:
#define GetFraktionName(%0) f_rang_name[(0%)-1]
stock const f_rang_name[][] = {
"Anwärter",
"Streifenpolizist",
"Kommissar",
"Polizeichef"
};
Bei allen anderen Funktionen / Abfragen klappt es, nur bei der Abfrage scheint es Probleme zu geben
-
Benutze mal z. B new const copRank[] [] und frage es mittels copRank(id) ab.. Und wieso eigentlich - 1? Sorry bin erst am Freitag am PC über Handy ist das doof aber schauen wir mal
-
PlayerInfo[playerid][pFraktionrang]
Als was ist das denn definiert?
Benutze mal z. B new const copRank[] [] und frage es mittels copRank(id) ab.. Und wieso eigentlich - 1? Sorry bin erst am Freitag am PC über Handy ist das doof aber schauen wir mal
Ne, das stimmt schon so, der Code stammt von mir

-1 weil jemand der einen Rang von 0 hat, ja keinen Rang hat, allerdings das Array bei 0 beginnt, somit -1

//Edit: Eventuell gibt es schon eine Funktion oder so mit dem Namen?
-
Als was ist das denn definiert?
Ne, das stimmt schon so, der Code stammt von mir
-1 weil jemand der einen Rang von 0 hat, ja keinen Rang hat, allerdings das Array bei 0 beginnt, somit -1
//Edit: Eventuell gibt es schon eine Funktion oder so mit dem Namen?
Ich schaue mal später nach.
Aber ich weiß eigentlich, das ich die Funktion noch nirgendwo verwendet habe.#edit: Neues Problem
/*getRangName(fraktionsID, rangID)
{
switch(FraktionsID)
{
case 1: // Polizist
{
switch(rangID)
{
case 1: return "Anwärter";
case 2: return "Officer";
case 3: return "Chief of Police";
}
}
case 2: // Medic
{
switch(rangID)
{
case 1: return "Anwärter";
case 2: return "Arzt";
case 3: return "Chefarzt";
}
}
}
return 1;
}*/
Wenn ich diese Funktion nutzen möchte, um mir die Ränge auszugeben dauert es ziemlich lange zum Compilieren und zusätzlich erhalte ich einen Fehler beim Server starten:Kann mir jemand sagen woran der Fehler liegt?
-
Beitrag von Kasakow ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Ich hör auf um die Uhrzeit helfen zu wollen bin eh hundemüde (). -
Der Parameter der Funktion heißt fraktionsID, du verwendest aber im Switch FraktionsID. Das f am Anfang muss klein geschrieben werden.
-
Der Parameter der Funktion heißt fraktionsID, du verwendest aber im Switch FraktionsID. Das f am Anfang muss klein geschrieben werden.
Leider der selbe Fehler:
getRangName(fraktionsID, rangID)
{
switch(fraktionsID)
{
case:1 // POLICE
{
switch(rangID)
{
case 1: return "Anwärter";
}
}
case 2: //MEDIC
{
switch(rangID)
{
case 1: return "Anwärter";
}
}
}
return 1;
} -
-
Für was brauchst du denn switch in switch? Nutze doch im Switch für eine einzige Abfrage If.
-
Für was brauchst du denn switch in switch? Nutze doch im Switch für eine einzige Abfrage If.
Wie genau meinst du das?
if(PlayerInfo[playerid][pFraktion] == 1) // COPS <- z.b wie hier? -
//edit hat sich geklärt
//edit neues Problem
Code[00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [WARNING] CMySQLHandle::Create - connection already exists [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111) [00:54:19] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on '5.39.31.192' (111)Connect daten sind alle richtig habs auch mit 127.0.0.1/root/keinpw probiert geht auch nicht selber fehler
-
[00:54:19] [WARNING] CMySQLHandle::Create - connection already exists
Da ist dein Fehler, die Verbindung besteht schon.
-
Wie trenne ich die Verbindung?
-
Zeig erstmal den Code wo du die Verbindung herstellst, ohne kann ich dir nicht helfen

-
#define LOCAL_SQL_HOST "127.0.0.1" //
#define LOCAL_SQL_USER "root" //
#define LOCAL_SQL_PASS "" //
#define LOCAL_SQL_DATA "californiaRL" //
//
#define SQL_HOST "5.39.31.192" //
#define SQL_USER "californiaRL" //
#define SQL_PASS "************" //
#define SQL_DATA "californiaRL" //OnGameModeInit:
//mysql_debug(0);
#if SQL_DATABASE == 0
MySqlConnection = mysql_connect(LOCAL_SQL_HOST,LOCAL_SQL_USER,LOCAL_SQL_DATA,LOCAL_SQL_PASS);
#endif
#if SQL_DATABASE == 1
MySqlConnection = mysql_connect(SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
printf("Host: %s,User: %s,Datanbank: %s,Passwort: %s",SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
#endif
#if SQL_LOGGING == 1
mysql_log(LOG_ALL);
#endifif(/*mysql_ping() == 1*/mysql_errno(MySqlConnection) == 0)
{
print("MYSQL » Verbindung zur Datenbank wurde erfolgreich hergestellt.");
}
else
{
print("MYSQL » Es konnte keine Verbindung zur Datenbank hergestellt werden.");
print("MYSQL » Es wird erneut versucht eine Verbindung zur Datenbank herzustellen.");
#if SQL_DATABASE == 0
MySqlConnection = mysql_connect(LOCAL_SQL_HOST,LOCAL_SQL_USER,LOCAL_SQL_DATA,LOCAL_SQL_PASS);
#endif
#if SQL_DATABASE == 1
MySqlConnection = mysql_connect(SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
printf("Host: %s,User: %s,Datanbank: %s,Passwort: %s",SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
#endif
if(/*mysql_ping() == 1*/mysql_errno(MySqlConnection) == 0)
{
print("MYSQL » Es konnte im zweiten Versuch eine Datenbankverbindung hergestellt werden.");
}
else
{
print("MYSQL » Es konnte keine Verbindung zur Datenbank hergestellt werden.");
print("SERVER » Server wird nun heruntergefahren.");
SendRconCommand("exit");
return 1;
}
} -
MySQL kannst du per mysql_close(Name von Connection Handle); beenden (unter OnGameModeExit).
-
MySQL kannst du per mysql_close(Name von Connection Handle); beenden (unter OnGameModeExit).
Ja das habe ich schon immer drinne gehabt geht immer noch nicht
-
Ja das habe ich schon immer drinne gehabt geht immer noch nicht
Brauchst du an der Stelle auch nicht. Der Fehler hat damit nichts zu tun.
Liegt der MySQL Server auf dem gleichen Server, wie der SA-MP Server? Sprich, haben diese die gleiche IP?
Wenn ja, dann kannst du localhost bzw. 127.0.0.1 nutzen, entweder mit dem dafür angelegten User, oder dem root User, das kommt drauf an, ob du den MySQL Server selbst eingerichtet hast (eigene VM) oder ob es über einen Hoster läuft.
Wenn nein, dann ist die Remote-Verbindung eventuell blockiert. Siehe hierzu: https://www.tecmint.com/fix-er…-server-on-127-0-0-1-111/ -