Ich bräuchte die nächste Hilfe von dir wenn du Zeit & Lust hättest
Das nächste Problem ist mein Spawnsystem, wenn du Zeit hast schreib mir doch mal eine pn bitte
Ich bräuchte die nächste Hilfe von dir wenn du Zeit & Lust hättest
Das nächste Problem ist mein Spawnsystem, wenn du Zeit hast schreib mir doch mal eine pn bitte
kann geclosed werden
hab mal dir durch die konversation geschickt
Hier mal die Prints:
[20:17:54] (Setdeckname)Deckname: SadiQ | Spieler[Deckname]: N/V
Wenn ich dann Verkleiden mache, stürzt der server ab und dann printet er den cmd verkleiden nicht
COMMAND:verkleiden(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
new string[24],cmdtext[20],deckname[MAX_PLAYER_NAME];
if(Paintball[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du bist in der Paintball Arena und kannst somit nicht Maskiert sein.");
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(Spieler[playerid][pHaveMaske] == 0)return SendClientMessage(playerid,GRAU,"Du trägst keine Maske mit dir.");
if(Spieler[playerid][pAdminOnduty] == true)return SendClientMessage(playerid,GRAU,"Du bist im Admindienst.");
if(sscanf(params,"s[20]",cmdtext))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Absetzen/SWAT/Undercover/Maske]");
if(strcmp(cmdtext,"Undercover",true) == 0)
{
if(Spieler[playerid][pMaske] == 1)return SendClientMessage(playerid,GRAU,"Du trägst bereits eine Tarnung.");
Spieler[playerid][pMaske] = 1;
SetPlayerScore(playerid,random(3) + 10);
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
Spieler[playerid][pDeckname] = deckname;
SetPlayerName(playerid, deckname);
SendClientMessage(playerid,SORBLAU,"** Du ziehst deine Tarnung auf **");
printf("(Verkleiden)Deckname: %s | Spieler[Deckname]: %s", deckname, Spieler[playerid][pDeckname]);
return 1;
}
return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Absetzen/SWAT/Undercover/Maske]");
}
Hier die Befehle für Decknamen vergeben und Decknamen verkleiden
COMMAND:setdeckname(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
new pID,deckname[MAX_PLAYER_NAME],query[256];
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(!isPlayerAMember(playerid,6))return SendClientMessage(playerid,GRAU,"Du besitzt nicht den jeweiligen Rang.");
if(sscanf(params,"us[24]",pID,deckname))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /setdeckname [playerid/Name][Neuername]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(GetPVarInt(pID,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(IsPlayerNPC(pID))return SendClientMessage(playerid,GRAU,"Das kannst du nicht!");
if(!strcmp(deckname,Spieler[pID][pDeckname]) && Spieler[pID][pDeckname][0] != EOS)return SendClientMessage(playerid,GRAU,"Spieler hat bereits den selben Decknamen!");
//if(!strcmp(deckname,Spieler[pID][pDeckname],true))return SendClientMessage(playerid,GRAU,"Spieler hat bereits den selben Decknamen!");
mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE Deckname = '%s'",deckname);
mysql_function_query(MySqlConnection,query,true,"OnQueryFinish2","ssiiii",query,deckname,_SQL_SETDECKNAME_QUERY,playerid,pID,MySqlConnection);
return 1;
}
case _SQL_SETDECKNAME_QUERY:
{
cache_get_data(rows,fields);
if(rows)
{
SendClientMessage(extraid,GRAU,"Name wir schon verwendet.");
return 1;
}
mysql_format(MySqlConnection,query,sizeof(query),"UPDATE "#SQLTAG"_account_main SET Deckname='%s' WHERE Name='%s'",index2,Spieler[extraid2][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
mysql_format(MySqlConnection,query,sizeof(query),"Du hast den Decknamen von %s zu %s umbenannt!",Spieler[extraid2][pName],index2);
SendClientMessage(extraid,GELB,query);
mysql_format(MySqlConnection,query,sizeof(query),"SpezialBefehl: Der Leader %s (ID:%i) hat deinen Decknamen in %s umgeändert. Dein Account wurde geupdatet!",Spieler[extraid][pName],extraid,index2);
SendClientMessage(extraid2,GELB,query);
return 1;
}
COMMAND:verkleiden(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
new string[24],cmdtext[20];
if(Paintball[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du bist in der Paintball Arena und kannst somit nicht Maskiert sein.");
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(Spieler[playerid][pHaveMaske] == 0)return SendClientMessage(playerid,GRAU,"Du trägst keine Maske mit dir.");
if(Spieler[playerid][pAdminOnduty] == true)return SendClientMessage(playerid,GRAU,"Du bist im Admindienst.");
if(sscanf(params,"s[20]",cmdtext))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Absetzen/SWAT/Undercover/Maske]");
if(strcmp(cmdtext,"Undercover",true) == 0)
{
if(Spieler[playerid][pMaske] == 1)return SendClientMessage(playerid,GRAU,"Du trägst bereits eine Tarnung.");
Spieler[playerid][pMaske] = 1;
SetPlayerScore(playerid,random(3) + 10);
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
format(string,sizeof(string),"%s",Spieler[playerid][pDeckname]);//Der Name undbekannt wird gesetzt, Leben & Rüstung wird eingesetzt
SetPlayerChatBubble(playerid,string,0xFF0000FF,40.0,10000);//Das ganze steht über dem Namen
SendClientMessage(playerid,SORBLAU,"** Du ziehst deine Tarnung auf **");
return 1;
}
return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Absetzen/SWAT/Undercover/Maske]");
}
Wie meinst du des mit cmds ?
Habs auch mit MAX_PLAYER_NAME definiert aber keine reaktion
ICh printe es mal später
Kleine Frage welche Farbe zeigt die user nicht auf der karte ?
SetPlayerColor(Farbe) ?
Nun bekommt der Spieler eine Zahl statt den Decknamen
Okey habe das mit dem Crash gefixxt jedoch wird der Name des Users nicht getauscht.. Bzw der Dackname wird immernoch nicht angezeigt nur der Spielername..
COMMAND:verkleiden(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
new string[24],cmdtext[20],query[256];
if(Paintball[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du bist in der Paintball Arena und kannst somit nicht Maskiert sein.");
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(Spieler[playerid][pHaveMaske] == 0)return SendClientMessage(playerid,GRAU,"Du trägst keine Maske mit dir.");
if(Spieler[playerid][pAdminOnduty] == true)return SendClientMessage(playerid,GRAU,"Du bist im Admindienst.");
if(sscanf(params,"s[20]",cmdtext))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Absetzen/SWAT/Undercover/Maske]");
if(strcmp(cmdtext,"Undercover",true) == 0)
{
if(Spieler[playerid][pMaske] == 1)return SendClientMessage(playerid,GRAU,"Du trägst bereits eine Tarnung.");
Spieler[playerid][pMaske] = 1;
//format(string,sizeof(string),"%s",Spieler[playerid][pDeckname]);
SetPlayerName(playerid,Spieler[playerid][pDeckname]);
SetPlayerScore(playerid,random(3) + 10);
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
SendClientMessage(playerid,SORBLAU,"** Du ziehst deine Tarnung auf **");
mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE Deckname = '%s'",Spieler[playerid][pDeckname]);
mysql_function_query(MySqlConnection,query,false,"","");
return 1;
}
return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Absetzen/SWAT/Undercover/Maske]");
}
[19:30:42] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)
Was bedeutet das ?
Server lässt sich leider nicht starten..
Guten Abend zusammen,
Mein Vekleiden Befehl crasht den Server leider. Kurze Erklärung: Ich habe so eine Art Decknamen gescriptet und wenn der Spieler diesen dann abruft, crasht auf einmal der ganze Server..
Kann wer mir eventuell sagen was ich falsch gemacht habe ?
COMMAND:verkleiden(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot.");
if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
new string[24],cmdtext[20];
if(Paintball[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du bist in der Paintball Arena und kannst somit nicht Maskiert sein.");
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(Spieler[playerid][pHaveMaske] == 0)return SendClientMessage(playerid,GRAU,"Du trägst keine Maske mit dir.");
if(Spieler[playerid][pAdminOnduty] == true)return SendClientMessage(playerid,GRAU,"Du bist im Admindienst.");
if(sscanf(params,"s[20]",cmdtext))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Undercover]");
if(strcmp(cmdtext,"Undercover",true) == 0)
{
if(Spieler[playerid][pMaske] == 1)return SendClientMessage(playerid,GRAU,"Du trägst bereits eine Tarnung.");
Spieler[playerid][pMaske] = 1;
//format(string,sizeof(string),"%s",Spieler[playerid][pDeckname]);
SetPlayerName(playerid,Spieler[playerid][pDeckname]);
SetPlayerScore(playerid,random(3) + 10);
SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
SendClientMessage(playerid,SORBLAU,"** Du ziehst deine Tarnung auf **");
return 1;
}
return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /verkleiden [Undercover]");
}
Alles anzeigen
Es funktioniert jetzt allerding wenn ich dann den Namen ersetzen will
mit SetPlayerName(playerid,Spieler[playerid][pDeckname]); Dann liest er
das nicht ab. Aber in der Datenbank steht dann der Decknamen ganz
normal es speichert auch ganz normal ab..
Nur könntes einer mir sagen wie ich des hinbekäme das er den Decknamen abliest ?
@Kaliber danke funktioniert jedoch hab ich ein Problem undzwar wenn ich dann SetPlayerName(playerid,Spieler[playerid][pDeckname]); mache funktioniert es nicht und der server stürzt ab
zb der Befehl: /Setdeckname gibt einen anderne namen ein der gespeichert werden soll. und wenn ich dann den namen abrufen will mit SetPlayerName(playerid,Spieler[playerid][pDeckname]); stürzt der server ab
Alf das geht Problemlos, achte mal darauf was mein eigentliches Problem ist. Mein Problem liegt daran, dass das Deckname nicht funktioniert. Ich kann keinen Decknamen setzen. Es kommt immer wieder "Spieler hat bereits den selben Decknamen!"
Kann wer helfen warum ich den Decknamen nicht
auslesen kann bzw Setzen kann ?
Ich lade es mit:
cache_get_field_content(0,"Deckname",Spieler[playerid][pDeckname]);
Der Befehl dazu:
COMMAND:setdeckname(playerid,params[])
{
if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
new pID,deckname[MAX_PLAYER_NAME],query[256];
if(!isPlayerInFrakt(playerid,19))return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
if(!isPlayerAMember(playerid,6))return SendClientMessage(playerid,GRAU,"Du besitzt nicht den jeweiligen Rang.");
if(sscanf(params,"us[24]",pID,deckname))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /setdeckname [playerid/Name][Neuername]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(GetPVarInt(pID,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Der angegebene Spieler ist nicht eingeloggt!");
if(IsPlayerNPC(pID))return SendClientMessage(playerid,GRAU,"Das kannst du nicht!");
if(!strcmp(deckname,Spieler[pID][pDeckname],true))return SendClientMessage(playerid,GRAU,"Spieler hat bereits den selben Decknamen!");
mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE Deckname = '%s'",deckname);
mysql_function_query(MySqlConnection,query,true,"OnQueryFinish2","ssiiii",query,deckname,_SQL_SETDECKNAME_QUERY,playerid,pID,MySqlConnection);
return 1;
}
case _SQL_SETDECKNAME_QUERY:
{
cache_get_data(rows,fields);
if(rows)
{
SendClientMessage(extraid,GRAU,"Name wir schon verwendet.");
return 1;
}
mysql_format(MySqlConnection,query,sizeof(query),"UPDATE "#SQLTAG"_account_main SET Deckname='%s' WHERE Deckname='%s'",index2,Spieler[extraid2][pDeckname]);
mysql_function_query(MySqlConnection,query,false,"","");
mysql_format(MySqlConnection,query,sizeof(query),"Du hast den Decknamen von %s zu %s umbenannt!",Spieler[extraid2][pDeckname],index2);
SendClientMessage(extraid,GELB,query);
mysql_format(MySqlConnection,query,sizeof(query),"AdminBefehl: Der Admin %s (ID:%i) hat deinen Decknamen in %s umgeändert. Dein Account wurde geupdatet!",Spieler[extraid][pDeckname],extraid,index2);
SendClientMessage(extraid2,GELB,query);
return 1;
}
Kann leider keine Threads eröffnen...
NICE!
Will gewinnen
Also dieser Fehler kommt wenn ich die Samp-Server.exe öffne und dann kommt gleich error und nichts wird geladen..
Also wenn ich auf Windows den Server starten will kommt so eine Fehlermeldung das msvcr120.dll fehlt, habe es runtergeladen aber klappt nicht..Weis jemand woran es liegt ?