Beiträge von .Kevin


    new namestr[24];
    for(new i=0; i<GetMaxPlayers();i++)
    {
    GetPlayerName(i, namestr, sizeof(namestr));
    if(i==playerid || !IsPlayerConnected(i)) continue;
    if(strcmp(inputtext,namestr,false) == 0)
    {
    format(string,sizeof(string),"Du möchtest auf {FFAA00}%s{FEFEFE} ein Kopfgeld aussetzen.\nBitte gib das Kopfgeld für den Spieler an!",inputtext);
    ShowPlayerDialog(playerid,DIALOG_CONTRACT1,DIALOG_STYLE_INPUT,"Contract",string,"absenden","abbrechen");
    format(Spieler[playerid][ContractSpieler],24,inputtext);
    return 1;
    }
    }
    return ShowPlayerDialog(playerid,DIALOG_CONTRACT,DIALOG_STYLE_INPUT,"Contract","Der Spieler ist nicht Online!\nGib den Namen der Person ein","absenden","abbrechen");



    So funktioniert es auch nicht -.-


    Auch mit dem Code kann ich jeden Spieler eingeben .. ^^


    Break beendet nur die Schleife, danach macht er weiter.
    Also er zeigt dir wahrscheinlich KURZ den Dialog "Du möchtest auf ..." an, aber DIREKT danach zeigt er dir an, dass der Spieler nicht online ist.
    Das "return" da unten wird IMMER nach der Schleife ausgeführt.


    Nein es kommt direkt die Meldung das der Spieler nicht online ist.

    Groß- und Kleinschreibung habe ich mit dem Ignore-Case hinfällig gemacht. Genau um diese Fehlerquelle auszumerzen.


    Eine Idee hätte ich noch.
    So banal es klingen mag: Wo hast du den Code eingefügt.
    Und nicht zu vergessen: Hast du deine DialogIDs richtig definiert (bzw. abgefragt) ? Ist eine häufige Fehlerursache.


    Hier jetzt mal mein code:


    if(dialogid==DIALOG_CONTRACT)
    {
    if(response)
    {
    new namestr[24];
    for(new i=0; i<GetMaxPlayers();i++)
    {
    GetPlayerName(i, namestr, sizeof(namestr));
    if(i==playerid || !IsPlayerConnected(i)) continue;
    if(strcmp(inputtext,namestr,true) == 0)
    {
    format(string,sizeof(string),"Du möchtest auf {FFAA00}%s{FEFEFE} ein Kopfgeld aussetzen.\nBitte gib das Kopfgeld für den Spieler an!",inputtext);
    ShowPlayerDialog(playerid,DIALOG_CONTRACT1,DIALOG_STYLE_INPUT,"Contract",string,"absenden","abbrechen");
    format(Spieler[playerid][ContractSpieler],24,inputtext);
    break;
    }
    }
    return ShowPlayerDialog(playerid,DIALOG_CONTRACT,DIALOG_STYLE_INPUT,"Contract","Der Spieler ist nicht Online!\nGib den Namen der Person ein","absenden","abbrechen");
    //for(new i; i<MAX_PLAYERS; i++) { if(strcmp(inputtext,SpielerName(i),false))return ShowPlayerDialog(playerid,DIALOG_CONTRACT,DIALOG_STYLE_INPUT,"Contract","Der Spieler ist nicht Online!\nGib den Namen der Zielperson ein","absenden","abbrechen"); }
    }
    }
    if(dialogid==DIALOG_CONTRACT1)
    {
    if(response)
    {
    new a = playerid;
    format(string,sizeof(string),"Das Kopfgeld muss höher als 50$ und niedriger als 1000$ sein!\nDu möchtest auf {FFAA00}%s{FEFEFE} ein Kopfgeld aussetzen.\nBitte gib das Kopfgeld für den Spieler an!",inputtext);
    if(strval(inputtext) < 50 || strval(inputtext) > 1000)return ShowPlayerDialog(playerid,DIALOG_CONTRACT1,DIALOG_STYLE_INPUT,"Contract",string,"absenden","abbrechen");
    format(string,sizeof(string),"INSERT INTO `contracts` (`auftraggeber`,`zielperson`,`kopfgeld`) VALUES ('%s','%s','%d')",SpielerName(playerid),Spieler[playerid][ContractSpieler],strval(inputtext));
    mysql_query(string);
    format(Auftrag[a][geber],24,SpielerName(playerid));
    format(Auftrag[a][ziel],24,Spieler[playerid][ContractSpieler]);
    Auftrag[a][kopfgeld] = strval(inputtext);
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][Fraktion] == 12)
    {
    SendClientMessage(playerid,Gelb,"Es ist ein neuer Auftrag eingegangen!");
    return 1;
    }
    }
    }
    }

    Naja also ich finde das ist jetzt nichts besonderes.. es wurde meiner meinung nach nichts gemappt sondern eher einfach nur eine
    Textur drauf geballert ^^ Ich weiß auch nicht ob man das wirklich Mapping nennen kann .. :S


    4/10



    Schreib die strcmp abfrage vor dem return mal so.
    if(strcmp(inputtext,SpielerName(i),false)!=0)


    Funktioniert leider beides nicht ^^


    So kann ich auf jeden ein Kopfgeld setzten, selbst wenn er nicht Online ist ^^

    Guten Morgen liebe Community,


    ich möchte gerne überprüfen, ob es den Spielernamen den ein Spieler in einem Dialog eingibt auf dem Server gibt.. aber ich bekomme jedes mal
    die Meldung das der Spieler nicht online sei ?..


    for(new i; i<MAX_PLAYERS;i++) { if(strcmp(inputtext,SpielerName(i),false))return ShowPlayerDialog(playerid,DIALOG_PERSON,DIALOG_STYLE_INPUT,"Contract","Der Spieler ist nicht Online!\nGib den Namen der Person ein","absenden","abbrechen"); }


    Wo liegt hier bitte der Fehler ?