Beiträge von Kaliber

    Ja mehr als genaug, zuviele unnötige klammern..


    Das stimmt schon mal, aber man kann noch mehr verbessern:


    if(!strcmp(cmd, "/pay", true)){
    new string[128];
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
    giveplayerid = strval(tmp),tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
    moneys = strval(tmp);
    if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 1)return SendClientMessage(playerid, 0xFF00C3FF, "Du musst mindestens Level 3 sein, um über $1000 abgeben zu können.");
    if(moneys < 1 || moneys > 99999)return SendClientMessage(playerid, 0xFF00C3FF, "Der Betrag muss zwischen $1 und $99999 sein!");
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, 0xFF00C3FF, "Ein Spieler mit dieser ID ist nicht online!");
    if(!ProxDetectorS(5.0, playerid, giveplayerid)) return SendClientMessage(playerid, 0xFF00C3FF, "Du musst näher an dem Spieler sein!");
    GetPlayerName(giveplayerid,giveplayer,MAX_PLAYER_NAME),GetPlayerName(playerid,sendername,MAX_PLAYER_NAME),playermoney = GetPlayerMoney(playerid);
    if(playermoney < moneys) return SendClientMessage(playerid, 0xFF00C3FF, "Du besitzt nicht genug Geld.");
    ConsumingMoney[giveplayerid] = 1,GivePlayerMoney(playerid,-moneys),GivePlayerMoney(giveplayerid, moneys);
    format(string, sizeof(string), " Du hast %s(Spieler ID: %d), $%d auf die Hand gegeben.", giveplayer,giveplayerid, moneys);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0),SendClientMessage(playerid, COLOR_GRAD1, string);
    format(string, sizeof(string), " Du hast $%d von %s(Spieler ID: %d) auf die Hand gegeben.", moneys, sendername, playerid);
    SendClientMessage(giveplayerid, COLOR_GRAD1, string);
    format(string, sizeof(string), "%s hat $%d dem Spieler %s auf die Hand gegeben.", sendername, moneys, giveplayer);
    PayLog(string),PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
    if(moneys >= 1000000)return ABroadCast(COLOR_YELLOW,string,1);
    format(string, sizeof(string), "* %s nimmt etwas Geld aus seiner Tasche und gibt es %s.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, 0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF);
    return 1;
    }


    Zudem ist strtok so wie es im GF verwendet wird, scheiße :S


    mfg. :thumbup:

    Ja toll, warum soll ich die Include nutzen wenn ich mir den Name doch da sowieso schon hole ? ..
    Kann ich auch als Parameter einfach Name eintragen ..


    ...wie gesagt, les dir meinen Beitrag doch durch den ich auf BlackAce seine Antwort geschrieben habe :rolleyes:

    Kaliber, in der Zeile 'if(rows)', wo soll ich dort dann die Dialoge hinschreiben? Also wenn ein Account existiert soll sein Loginfenster kommen, wenn er ein Account hat, soll ein Registerfenster kommen
    irgendwie blick ich grad nicht durch, was du gepostet hast.


    Achso :D Das wolltest du einfach nur...dann einfach so:


    public SpielerVorhanden(playerid)
    {
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows) return ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"login",string,"Spielen"," ");
    return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"regist",string,"Anmelden"," ");
    }


    mfg. :thumbup:


    Schreib das mal so:


    public SpielerVorhanden(playerid)
    {
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows)
    {
    //Wenn der Account existiert
    new fetch[11],id;
    cache_get_row(0, 0, fetch), id = strval(fetch);
    //fetch holt den String aus dem cache und da id ein Integer ist, muss es dann nochmal umgewandelt werden.
    //Du fragst ja nur die id ab in deinem Query, deshalb sind alle anderen Felder leer, wenn du mehr abfragen würdest, machst du das einfach so:
    //cache_get_row(0, 1, fetch); hier hättest du dann den nächsten Eintrag
    }
    return 1;
    }


    mfg. :thumbup:

    Also heißt das jetzt genau, dass was in dem listitem steht wird mit info[listitem] ausgegeben`?


    Ja, genau so ist es ;)


    Allerdings hat mich BlackAce gerade darüber aufgeklärt, dass inputtext...schon diese Information enthält...jedoch kann man damit ja aber auch noch mehr machen, die davor und dahinter abfragen und bei ner MSGBox den String rausholen, wenn man ihn braucht...


    Mhm...ich lass es einfach mal drinnen ;)


    mfg. :thumbup:

    Guten Abend liebe Breadfisher,


    ich habe in den letzten Tagen einige Threads gelesen, dass sie den Text den sie eingeben auch beim Callback wieder abrufen wollen. Dies war leider nicht möglich, bis jetzt :)
    Ich habe mir mal kurz die Zeit genommen und ein Include geschrieben, der das macht.


    1. Wie nutze ich sie und was bringt sie jetzt genau?
    Also, ich verdeutliche das mal alles an einem Beispiel:


    //Irgendwo rufen wir einen Dialog auf...
    ShowPlayerDialog(playerid,0,DIALOG_STYLE_LIST,"Test","Peter\nHans","Bestätigen","");


    //Und dann fragen wir ab:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[], info[][]) //info[][] ist mein Zusatz-Parameter diesen nicht vergessen! Darüber werden die Sachen übergeben!
    {
    if(dialogid==0) {
    printf("%s",info[listitem]); //Zum Beispiel so, wenn wir jetzt Peter angeklickt hätten, würde hier Peter stehen, wenn wir Hans angeklickt hätten, halt Hans
    }
    return 1;
    }


    2. Source-Code:
    Source-Code: Pastebin
    Direkter-Download: Mediafire


    3. Schlusswort:
    Ich würde mich über eine kleine Rückmeldung freuen :)


    mfg. :thumbup:

    #define OnDuty
    #define IsACop
    #define IsPlayerConnected
    #define cmd


    Nette Idee, aber so funktioniert das nicht :D


    Schließlich definierst du hier nur einen Begriff, jedoch ohne Wert...bzw ohne Anweisung, IsACop, weiß doch jetzt gar nicht, was er tun soll ^^


    Du musst dir die Funktionen suchen, die du verwenden willst oder selbst schreiben und lösch das bitte alles...macht alles keinen Sinn! :rolleyes:


    mfg. :thumbup:

    Ah habs auch gesehen, jetzt kommt noch folgendes:


    Schreib das mal so:


    if(listitem == 0) {
    new string[128],dini[15 + MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],Float:health;
    GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(dini,sizeof dini,"/Accounts/%s.ini",name),GetPlayerHealth(playerid, health);
    format(string,sizeof string,"Name: %s\nGeld: %d\nLeben: %f\nScore: %d\nAdminlevel: %d\nWarns: %d", name, GetPlayerMoney(playerid), health, GetPlayerScore(playerid), dini_Int(dini,"Admin"), dini_Int(dini,"Warns"));
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistiken",string,"Bestätigen","");
    }


    mfg. :thumbup:

    Schreib den Code mal so:


    public minute() {
    new i,string[64];
    for(; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !GetPVarInt(i,"loggedin"))continue;
    SetPVarInt(i,"Paytime",GetPVarInt(i,"Paytime")+1);
    if(GetPVarInt(i,"Paytime")==60) {
    new paydaygeld;
    switch(GetPVarInt(i,"Fraktionsrang")) {
    case 0:paydaygeld = 750; //zivi
    case 1:paydaygeld = 1500;// pd
    case 2:paydaygeld = 1000;// gang 1
    case 3:paydaygeld = 2000;// medic
    case 4:paydaygeld = 1000;// gang 2
    case 5:paydaygeld = 1000;// gang 3
    }
    //was alle 60 minuten ausgeführt werden soll
    SetPVarInt(i,"Paytime",0), format(string,64,"Payday. Du erhältst %d$.",paydaygeld),SendClientMessage(i,BLAU,string);
    GivePlayerMoney(i,paydaygeld), SetPlayerScore(i,GetPlayerScore(i)+1);
    }
    }
    return 1;
    }


    mfg. :thumbup:

    Du musst es so schreiben:


    if (strcmp("/maske", cmdtext, true) == 0)
    {
    if(Spieler[playerid][Team] != 4) return SendClientMessage(playerid, COLOR_RED, "Sie können keinen Maske aufsetzen.");
    for(new i; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, false);
    return 1;
    }


    mfg. :thumbup: