Weiß nicht wie ich den Fehler beheben soll

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Danke nochmal. Ich versuche gerade einen Befehl zu schreiben, welcher eine Sirene für diverse Autos erstellt.


    ocmd:sirene(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) return SendClientMessage(playerid,Kaminrot,"ERROR: Du musst in einem Wagen sein.");
    if(!IsValidObject(PoliceLightObj[playerid]))
    {
    PoliceLightObj[playerid] = CreateObject(18646,0.0,0.0,0.0,0.0000000,0.0000000,0.0000000);
    AttachObjectToVehicle(PoliceLightObj[playerid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.8, 0.0, 0.0, 0.0);
    SendClientMessage(playerid,Gelb,"Die Sirene ist an");
    }
    else
    {
    DestroyObject(PoliceLightObj[playerid]);
    SendClientMessage(playerid,Blau,"Die Sirene ist aus");
    }
    return 1;
    }


    Das Objekt wird erstellt, jedoch leuchtet die Sirene nicht.

  • Das Objekt wird erstellt, jedoch leuchtet die Sirene nicht.

    Laut diesem Thread (http://forum.sa-mp.com/showthread.php?t=534862) könnte es ein Client-Problem sein, sprich an deinem GTA liegen.
    Versuche es mal mit Wetter ID 2, wie dort genannt.


    Alternativ kannst du es mal hiermit versuchen, ob das geht:
    http://forum.sa-mp.com/showthread.php?t=352070


    Wenn das nicht geht, liegt es an deinem GTA, oder einem Mod (etc).

  • Danke vielmals. Ich habe ein Problem mit meinem Mutesystem.
    Die Zeit wird in der Datenbank gespeichert, aber wenn man etwas in den Chat schreiben will wird es trotzdem abgeschickt...
    IsPlayerMuted(playerid)
    {
    new timestamp = gettime();
    if(sInfo[playerid][mute] > timestamp)return 1;
    return 0;
    }


    public OnPlayerText(playerid, text[])
    {
    new timestamp = gettime();
    if(IsPlayerMuted(playerid))
    {
    new differenz = sInfo[playerid][mute] - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Du bist noch %i Minuten gemutet!",minuten);
    return SendClientMessage(playerid,Pink,str);
    }

  • Danke.


    Ich möchte mal versuchen zwei von diesem Marken an den Spielerskin zu attachen.


    Beispielbild:



    So dass jeweils an beiden Oberarmen der Skins eine dieser Marken ist. Theoretisch sehr sehr leicht, aber bis ich da mal die Koordinaten und Rotationen rausgefunden habe ... vlt hat ja ja jemand die Koordinaten

  • Cool danke! Da wäre noch was :/


    Ich habe versucht ein Paydaysystem zu machen mit den Variablen: Payday, Xp und xpmax. xp steht für respektpunkte.
    Alle dreißig Minuten soll der Spieler ein Payday bekommen.


    new paydayzeit[MAX_PLAYERS];
    forward PayDayEx(playerid)


    public PayDayEx(playerid)
    {
    if(sInfo[playerid][payday]>=30)
    {
    //Payday bekommen
    if(sInfo[playerid][xpres]>=sInfo[playerid][xpmax])
    {
    SetPlayerScore(playerid,(sInfo[playerid][level]+1));
    sInfo[playerid][xpres]=0;
    sInfo[playerid][xpmax]+=4;
    SendClientMessage(playerid,Kaminrot,"Du bist ein Level up hier 5k .");
    GivePlayerMoney(playerid,5000);
    }
    if(sInfo[playerid][level]==10)
    {
    SendClientMessage(playerid,Kaminrot,"Du bist lvl 10 hier haste 10k");
    GivePlayerMoney(playerid,10000);
    }
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,Kaminrot,"PAYDAY!!");
    sInfo[playerid][payday]=0;
    savePlayer(playerid);
    return 1;
    }
    else
    {
    sInfo[playerid][payday]+=1;
    savePlayer(playerid);
    }
    return 1;
    }


    Spieler wird geladen:
    sInfo[playerid][payday] = cache_get_field_content_int(0,"payday",dbhandle);
    sInfo[playerid][xpres] = cache_get_field_content_int(0,"xpres",dbhandle);
    sInfo[playerid][xpmax] = cache_get_field_content_int(0,"xpmax",dbhandle);
    paydayzeit[playerid]=SetTimerEx("PayDayEx",1000*60,true,"i",playerid);



    public OnPlayerDisconnect(playerid, reason)
    {
    savePlayer(playerid);
    resetPlayer(playerid);
    KillTimer(paydayzeit[playerid]);
    return 1;
    }



    Die Variablen werden ausgelesen etc., der Timer geht aber nicht..

  • Ich bin mir nicht sicher aber ich glaub es klappt am besten wenn du einfach einen 1 Sekunden timer oder vllt sogar 60 Timer vom Server aus laufen lässt, z.B. Server startet dann Timer starten und in diesem Timer all Spieler IDs checken und denen dann die Zeit adden.


    Ich habs gerade nachgeguckt, mein Server hat einen SekundenTimer, dort habe ich z.B. PlayerInfo[playerid][pPaydaySecs] += 1 eingefügt. Und wenn es bei 60 ist, macht man daraus PlayerInfo[playerid][PaydayMins] += 1 und Sekunden wieder auf 0, wenn es 60 Minuten sind wird der Payday ausgezahlt.


    Edit: Meine Funktion



    Das ist im Sekundentimer drinne,
    Die Funktion "Payday(i)" ist die Funktion die den Payday durchführt. Gehaltscheck, nachricht, überweisung aufs Konto etc.

    SA:MP in 2020?