Beiträge von Pille

    Seit 03x wurde an der Funktion Kick() und Ban() einiges geändert, sodass diese beiden wichtigen Befehle
    höchste Priorität haben. Das hat einerseits Vorteile, wenn der Server laggt und der 'Cheater' muss gekickt werden,
    andererseits werden allerdings keine Nachrichten mehr für den Clienten angezeigt.


    Hier bekommst du die Lösung des Problems ;)
    Oder hier

    GivePlayerMoney(pID, GetPlayerMoney(pID)+geld);


    Die Funktion heißt GivePlayerMoney, nicht SetPlayerMoney!


    GivePlayerMoney = Dem Spieler Geld geben (Du hast 10€ und ich gebe dir (GivePlayerMoney) 2€, also hast du 12€!)
    SetPlayerMoney = Des Spielers Geld auf einen bestimmten Betrag setzen (Du hast 10€ und ich setze dein Geld auf 2€, also hast du 2€!)


    SetPlayerMoney gibt es nicht, dafür müsstest du eine eigene Funktion bauen,
    die aus einer Kombination zwischen GetPlayerMoney und GivePlayerMoney besteht.

    if(strcmp(cmdtext,"/aduty",true)==0)
    {
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,0xFF0063FF,"Du bist kein Adminstrator");
    SetPlayerSkin(playerid,217);
    GivePlayerWeapon(playerid,27,99999);
    SetPlayerHealth(playerid,999999);
    SetPlayerArmour(playerid,999999);
    Create3DTextLabel("Admin",0xFF000099,0,0,0,50,-1,1);
    return 1;
    }


    So müsste es gehen.

    Bitte lies es dir nochmal aufmerksam durch.


    Das kann ich nur zurückgeben.


    Zitat:

    Du hast in deinem Beispiel einen globalen Timer gemacht, in dem alle User durchgegangen werden.
    So ist das okay, keine Frage..


    Sinnlos wirds erst dann, wenn man für jeden Spieler unter OnPlayerConnect einen Timer startet,
    wo jeder Spieler durchgegangen wird, wie in dem Beispiel von 'Keybinder'.



    @Keybinder: Starte bei OnGameModeInit einen Timer, der jede Minute abläuft.
    In diesem Timer erhöhst du die Variable eines Spielers, der online ist, um eins,
    und wenn sie 60 ist, setzt du sie wieder auf 0 und gibst ihm den Payday.

    Du brauchst das Auto nicht in die Schleife paken


    Das ist schon sinnvoll, da ma dann nicht 50 Zeilen schreiben muss.


    Zu deinen Fehlermeldungen:
    Anscheinend stimmt etwas mit den Variablentypen nicht,
    kannst du uns die Zeilen zeigen, wo du die Variablen erstellt hast?

    Sicher geht das.


    Möglich ist es, sinnvoll nicht.
    Du hast in deinem Beispiel einen globalen Timer gemacht, in dem alle User durchgegangen werden.
    So ist das okay, keine Frage..
    Sinnlos wirds erst dann, wenn man für jeden Spieler unter OnPlayerConnect einen Timer startet,
    wo jeder Spieler durchgegangen wird, wie in dem Beispiel von 'Keybinder'.


    Möglich ist es - aber dann auch nur, wenn man es richtig programmiert.
    Aber selbst dann ist es unlogisch und sinnlos.


    forward paydaytimer(); // Ein Callback ohne Parameter


    SetTimerEx("paydaytimer",1000*60,1,"i",playerid);
    // Ein Timer mit Parameter zu dem Callback ohne Parameter


    = sinnlos

    Habe dir das mal neu geschrieben, weil ich zu faul war mir alls durchzulesen ^^


    Mach nicht den Fehler und kopier das in deinen Gamemode, die Hauptsache ist,
    dass du deine Fehler verstehst und sie beim nächsten mal nichtmehr machst.


    Deswegen: Vergleichen und draus lernen :)


    Spoiler anzeigen
    ocmd:invite(playerid,params[])
    {
    if(!IsPlayerAnLeader(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Leader.");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"/invite [ID]");
    new string[128];
    new fraktname[56];
    new fID=GetPVarInt(playerid,"Fraktion");
    switch(fID)
    {
    case 0: fraktname="Fraktion 0";
    case 1: fraktname="Fraktion 1";
    case 2: fraktname="Fraktion 2";
    }
    SetPVarInt(pID,"Fraktion",fID);
    SetPVarInt(pID,"Leader",0);
    format(string,sizeof(string),"Du hast %s in die Fraktion %s invitet.",SpielerName(pID),fraktname);
    SendClientMessage(playerid,HBLAU,string);
    format(string,sizeof(string),"%s hat dich in seine Fraktion %s invitet",SpielerName(playerid),fraktname);
    SendClientMessage(pID,HBLAU,string);
    return 1;
    }