Beiträge von Kaliber

    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:

    Zudem wird in C# die "Zugriffsattribute" nicht nach einem Doppelpunkt geschrieben.


    In C++ verwendet man -> und in C# . ;)


    So kann man das eigentlich ziemlich schnell sehen ^^


    Weiß jemand, wo der Fehler liegt? :/


    Du solltest nochmal alle deine Projekte löschen und dann ein neues erstellen...da sind die Klassen durcheinander gekommen...und der namespace ;)


    mfg. :thumbup:

    So söllte eigendlich alles sien was du brauchst, jenachdem was du noch brauchst sag bescheid


    So stimmt das aber nicht ganz ;)


    Der Code sollte so aussehen:


    new ipstring[MAX_PLAYERS][16];//oben


    //Unter OnPlayerConnect
    GetPlayerIp(playerid, ipstring[playerid], 16);


    //Und jetzt kannst du überall im Script das hier nutzen:
    format(string,64,"Seine Ip ist: %s",ipstring[playerid]);


    mfg. :thumbup:

    Hab mir SpielerName(playerid) als makro gemacht.
    Und jetzt kommen ingame komische Wörter raus.


    GetPlayerName returnt ja auch nicht den Namen des Spielers, sondern die Länge von dem Namen ^^


    Als Makro kannst du das nicht machen, machs doch einfach so:


    new SpielerName[MAX_PLAYERS][MAX_PLAYER_NAME];


    //Unter OnPLayerConnect
    GetPlayerName(playerid,SpielerName[playerid],MAX_PLAYER_NAME);


    //Und nutzen dann einfach so
    format(string,128,"Der Name ist: %s",SpielerName[playerid]);


    mfg. :thumbup: