Beiträge von tayson87

    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]");
    }



    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]");
    }

    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 ? :wacko:


    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

    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...