Beiträge von Kaliber

    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:

    Mal ne doofe Frage, was bringt das jetzt eig?


    Naja, so ist es z.B. einfacher und übersichtlicher ein Tutorial Mode zu erstellen oder bestimmte Nachrichten halt erst ab ner Bestimmten Zeit zu senden allgemein...
    Naja, macht halt das, was die sleep Funktion bewirken soll, den Code kurz pausieren und ab einer bestimmten Zeit weiterfortführen ;)


    mfg. :thumbup:

    Was dazu auch mal interessant wäre ist goto zu studieren und vllt ein opcode via emit zu generieren um zu dem pointer zu gelangen.


    Hatte auch an diese beiden Möglichkeiten gedacht ;)


    Jedoch, ist das mit goto nicht möglich, da es ja einfach an einen Punkt springt, sprich:


    stop:
    print("test");
    goto stop;


    //Was leider nicht geht ist folgendes:
    stop:
    print("test");
    SetTimer("test",1000,0);


    public test() {
    goto stop;
    }


    Da kann man keinen Sleep machen, außer man lässt das so lange irgendwie springen bis eine bestimmte anzahl von ms vorbei ist, aber dann hängt der Server weil die CPU Auslastung bei 100% liegt :D


    Mit emit, ist das leider nicht möglich direkt wieder an einen bestimmten Punkt im Code zu springen...Das funktioniert nur in strings ^^


    mfg. :thumbup: