Beiträge von Jeffry

    Entferne die Include und mache es so:
    Unter die Includes:
    new tTime[MAX_PLAYERS];


    OnPlayerUpdate:
    tTime[playerid] = gettime();


    Und der stock:
    stock IsPlayerOnDesktop(playerid)
    {
    if(tTime[playerid]+1 < gettime()) return true;
    return false;
    }

    Was geht denn nicht? Kommen irgendwelche Meldungen im Chat?



    Edit:
    DenJail:
    Ich habe die Meldung in Zusammenhang mit dem Code noch gar nicht gesehen als du gepostet hast, kann es ja zuvor schlecht erraten, deshalb habe ich nach der Meldung gefragt. Und liegt ja nicht mal da dran. ;)
    Sinnvoll wäre es jetzt die IF Abfrage mal zu debuggen.
    Gute Nacht, das bekommt ihr schon hin :good:

    Kannst es so schreiben:
    forward updateTimer();
    public updateTimer()
    {
    new str[128];
    new name[MAX_PLAYER_NAME], Float:pHP, Float:armour;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    GetPlayerName(i, name, sizeof(name));
    GetPlayerHealth(i,pHP);
    GetPlayerArmour(i,armour);
    if(IsPlayerOnDesktop(i)) format(str, sizeof(str), "AFK/Desktop\n%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
    else format(str, sizeof(str), "%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
    Update3DTextLabelText(label[i],0xFFFFFFFF,str);
    }
    return 1;
    }

    Ah, deine Einrückung war komplett daneben.
    Schreibe es so:
    forward desktoptimer();
    public desktoptimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new str[32];
    if(IsPlayerOnDesktop(i))
    {
    format(str, 32, "%s Sekunden AFK", GetPlayerDesktopTime(i));
    if(GetPVarInt(i, "TextSend") == 0)
    {
    SetPVarInt(i, "TextSend", 1);
    PlayerText[i] = Create3DTextLabel(str, COLOR_LIGHTRED, 0.0, 0.0, 0.0, 20.0, -1, -1);
    }
    Attach3DTextLabelToPlayer(PlayerText[i], i, 0.0, 0.0, 0.0);
    Update3DTextLabelText(PlayerText[i], 0x0069FFFF, str);
    }
    else
    {
    if(GetPVarInt(i, "TextSend") == 1)
    {
    Delete3DTextLabel(PlayerText[i]);
    SetPVarInt(i, "TextSend", 0);
    }
    }
    }
    return 1;
    }

    Was denn?
    In deinem Befehl bei der Auswahl:
    sInfo[playerid][fightingstyle] = 1;
    zu:
    sInfo[playerid][fightingstyle] = FIGHT_STYLE_NORMAL;
    Ebenso für alle anderen Styles.


    Und beim Login lädst du es ja wieder aus der Datei/Datenbank, danach kannst du dann
    SetPlayerFightingStyle(playerid,sInfo[playerid][fightingstyle]);
    machen.


    :rolleyes:

    Nach deiner Variante so:
    ocmd:makeadmin(playerid, params[])
    {
    new pid,level,string[128],string1[128],alvlname[64];
    if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"M�glich ab: "COLO" Adminrank 6");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
    if(sscanf(params,"ud", pid, level)) return SendClientMessage(playerid, Rot,""COLO"Verwendung :"COLR" /makeadmin [ID] [Level]");
    SpielerInfo[pid][pAdminlevel] = level;
    SavePlayer(pid);
    switch(level)
    {
    case 1: format(alvlname, 64, arang1[id]);
    case 2: format(alvlname, 64, arang2[id]);
    case 3: format(alvlname, 64, arang3[id]);
    case 4: format(alvlname, 64, arang4[id]);
    case 5: format(alvlname, 64, arang5[id]);
    case 6: format(alvlname, 64, arang6[id]);
    }
    format(string,sizeof(string),""COLO"[%s] %s"COLR" hat dir das Adminlevel"COLO" %d (%s) "COLR"gegeben ",adminrang(playerid),GetName(playerid),level,alvlname);
    format(string1,sizeof(string1),"Du hast "COLO"%s "COLR"das Adminlevel "COLO"%d (%s) "COLR"gegeben ",GetName(pid),level,alvlname);
    SendClientMessage(playerid,Rot,string1);
    SendClientMessage(pid,Rot,string);
    return 1;
    }

    Beim Login, dort wo du es aus der Datei lädst eben wieder SetPlayerFightingStyle machen.
    Den Fightingstyle würde ich dann lieber so in's enum schreiben:
    sInfo[playerid][fightingstyle] = FIGHT_STYLE_NORMAL;
    (bei allen)


    Dann kannst du einfach
    SetPlayerFightingStyle(playerid,sInfo[playerid][fightingstyle]);
    machen.

    Das else hast du an den switch gesetzt, das war falsch. Und in Zeile 3540 war das " und das ! vertauscht.
    So:

    Spoiler anzeigen
    if(dialogid==DIALOG_FIGHTINGSTYLE)
    {
    if(!response) return 1;
    else
    {
    switch(listitem)
    {
    case 0: //normal
    {
    if(sInfo[playerid][level]>1)
    {
    if(sInfo[playerid][geld]<100)
    {
    GivePlayerMoney(playerid, -100);
    SetPlayerFightingStyle(playerid,FIGHT_STYLE_NORMAL);
    sInfo[playerid][fightingstyle] = 1;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast den Fightingstyle erfolgreich gekauft!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du benötigst mindestens 100$ um diesen Kampfstyle zu erwerben!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst mindestens Level 1 sein um diesen Kampfstyle erwerben zu können!"); //Zeile 3540
    }
    }
    case 1: //boxen
    {
    if(sInfo[playerid][level]>3)
    {
    if(sInfo[playerid][geld]<5000)
    {
    GivePlayerMoney(playerid, -5000);
    SetPlayerFightingStyle(playerid,FIGHT_STYLE_BOXING);
    sInfo[playerid][fightingstyle] = 2;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast den Fightingstyle erfolgreich gekauft!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du benötigst mindestens 5000$ um diesen Kampfstyle zu erwerben!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst mindestens Level 3 sein um diesen Kampfstyle erwerben zu können!");
    }
    }
    case 2: //kong fu
    {
    if(sInfo[playerid][level]>7)
    {
    if(sInfo[playerid][geld]<10000)
    {
    GivePlayerMoney(playerid, -10000);
    SetPlayerFightingStyle(playerid,FIGHT_STYLE_KUNGFU);
    sInfo[playerid][fightingstyle] = 3;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast den Fightingstyle erfolgreich gekauft!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du benötigst mindestens 10000$ um diesen Kampfstyle zu erwerben!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst mindestens Level 7 sein um diesen Kampfstyle erwerben zu können!");
    }
    }
    case 3: //knee head
    {
    if(sInfo[playerid][level]>10)
    {
    if(sInfo[playerid][geld]<15000)
    {
    GivePlayerMoney(playerid, -15000);
    SetPlayerFightingStyle(playerid,FIGHT_STYLE_KNEEHEAD);
    sInfo[playerid][fightingstyle] = 4;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast den Fightingstyle erfolgreich gekauft!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du benötigst mindestens 10000$ um diesen Kampfstyle zu erwerben!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst mindestens Level 10 sein um diesen Kampfstyle erwerben zu können!");
    }
    }
    case 4: //Grab Kick
    {
    if(sInfo[playerid][level]>15)
    {
    if(sInfo[playerid][geld]<25000)
    {
    GivePlayerMoney(playerid, -25000);
    SetPlayerFightingStyle(playerid,FIGHT_STYLE_GRABKICK);
    sInfo[playerid][fightingstyle] = 5;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast den Fightingstyle erfolgreich gekauft!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du benötigst mindestens 25000$ um diesen Kampfstyle zu erwerben!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst mindestens Level 15 sein um diesen Kampfstyle erwerben zu können!");
    }
    }
    case 5: //elbow
    {
    if(sInfo[playerid][level]>20)
    {
    if(sInfo[playerid][geld]<40000)
    {
    GivePlayerMoney(playerid, -40000);
    SetPlayerFightingStyle(playerid,FIGHT_STYLE_ELBOW);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du benötigst mindestens 40000$ um diesen Kampfstyle zu erwerben!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst mindestens Level 20 sein um diesen Kampfstyle erwerben zu können!");
    }
    }
    }
    }
    return 1;
    }

    SetPlayerFightingstlye zu SetPlayerFightingStyle ändern.
    Möglicherweise behebt das schon alle Errors. Wenn money noch immer nicht definiert ist, dann musst du es in das sInfo enum dazu schreiben.


    Außerdem muss das Semikolon hinter den if-Abfragen weg:
    if(sInfo[playerid][money]<15000);
    zu:
    if(sInfo[playerid][money]<15000)

    public OnPlayerDisconnect(playerid)
    {
    DeletePlayer3DTextLabel(playerid, label[playerid]);
    return 1;
    }


    new name[MAX_PLAYER_NAME], Float:pHP;
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerHealth(playerid,pHP);
    new str[128];
    format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
    printf("pHP: %f", pHP);
    label[playerid] = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0); //WARNING ZEILE
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.2);