Beiträge von Jeffry

    idR schon nur bei Autos und Objekten nicht.
    Die fangen bei 1 an


    Das hat doch nichts mit dem Index eines Arrays zu tun. Die fangen immer bei 0 an.


    NicoAiko:
    Du hast völlig recht. Kommt jetzt drauf an, wie er die Autos erstellen lässt. Fängt er da auch bei 1 an ist der Index 0 einfach unbelegt, fängt er bei 0 an ist das der Fehler.


    Chax, wie lässt du deine Autos erstellen?

    Nutzt du das FileManager Plugin? Wenn nein, dann liegt es nicht an einem deiner Skripts, sondern wird wohl an deinem Host liegen. Dann solltest du dich dort mit dem Support in Verbindung setzen.


    Falls du das Plugin verwendest, und der Ordner immer nach dem Starten des Servers verschwindet, dann solltest du mal in deinem GameMode nach "scriptfiles" suchen, on das irgendwo gelöscht wird.

    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(bodypart != 9)
    {
    new Float:h;
    GetPlayerHealth(playerid, h);
    SetPlayerHealth(playerid, h+amount);
    }
    return 1;
    }


    Das würde dir die Leben immer wieder hoch setzen, außer du bekommst einen Schuss in den Kopf.

    Schau mal hier rein: http://forum.sa-mp.com/showthread.php?t=352260
    Wenn du es auch für offline-Benutzer machen willst, dann musst du durch alle Dateien in deinen scriptfiles loopen, mit dem FileManager Plugin: http://forum.sa-mp.com/showthread.php?t=92246
    Wobei ich dir das nicht raten würde, denn sagen wir mal du hast 1000 registrierte Benutzer, dann braucht das eine halbe Ewigkeit, da dini nicht unbedingt das schnellste System ist.


    Die einfachste Variante ist MySQL zu benutzen, selber Thread hier: Rangliste erstellen

    So wie es bei dem Link steht ist es schonmal falsch, ASC startet bei der kleinsten Ziffer, eine Rangliste startet ja bei der größten Ziffer.


    mysql_query("SELECT name, kills FROM accounts ORDER BY kills DESC LIMIT 10");
    mysql_store_result();
    if(mysql_num_rows())
    {
    new str[256];
    while(mysql_fetch_row(str))
    {
    print(str);
    //hier dann den "str" splitten, so wie du es brauchst."
    }
    }
    mysql_free_result();


    Die klein-geschriebenen Wörter im query musst du mit deinen Spalten ersetzen, so wie die bei dir heißen.

    Hast du es irgendwie in eine Schleife gepackt oder sonst was damit gemacht, sodass es mehrere Pickups an der gleichen Stelle erstellt hat?
    Hast du es schon in einem leeren GameMode versucht, ohne irgendetwas anderes?

    Für was überhaupt die Abfrage aus der Datenbank?
    ocmd:aduty(playerid,params[])
    {
    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,Rot,"Du bist nicht Eingeloggt");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Administrator oder dein Rang ist nicht hoch genung");
    if(sInfo[playerid][adminonduty] == 0)
    {
    new string[128],stringname[MAX_PLAYER_NAME];
    format(string,sizeof(string),"Der Administrator %s ist als %s im Einsatz",SpielerName(playerid),Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    format(stringname,sizeof(stringname),"["SERVERTAG"]%s",SpielerName(playerid));
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,0xFF0000B2);
    sInfo[playerid][adminonduty] = 1;
    }
    else
    {
    new string[128],stringname[MAX_PLAYER_NAME];
    format(stringname,sizeof(stringname),SpielerName(playerid));
    strdel(stringname, 0, strfind(stringname, "]")+1);
    format(string,sizeof(string),"Der Administrator %s hat den Einsatz als %s Beendet",stringname,Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,Weiß);
    sInfo[playerid][adminonduty] = 0;
    }
    return 1;
    }


    Oder so, je nach dem wie du es lieber hast.

    Spoiler anzeigen
    ocmd:aduty(playerid,params[])
    {
    static oldName[MAX_PLAYERS][MAX_PLAYER_NAME];
    if(sInfo[playerid][eingeloggt] == 0)return SendClientMessage(playerid,Rot,"Du bist nicht Eingeloggt");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Administrator oder dein Rang ist nicht hoch genung");
    if(sInfo[playerid][adminonduty] == 0)
    {
    new string[128],stringname[MAX_PLAYER_NAME];
    format(string,sizeof(string),"Der Administrator %s ist als %s im Einsatz",SpielerName(playerid),Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    format(oldName[playerid], MAX_PLAYER_NAME], SpielerName(playerid));
    format(stringname,sizeof(stringname),"["SERVERTAG"]%s",SpielerName(playerid));
    SetPlayerName(playerid,stringname);
    SetPlayerColor(playerid,0xFF0000B2);
    sInfo[playerid][adminonduty] = 1;
    }
    else
    {
    new string[128];
    format(string,sizeof(string),"Der Administrator %s hat den Einsatz als %s Beendet",oldName[playerid],Adminrang(playerid));
    SendClientMessageToAll(Rot,string);
    SetPlayerName(playerid,oldName[playerid]);
    SetPlayerColor(playerid,Weiß);
    sInfo[playerid][adminonduty] = 0;
    }
    return 1;
    }

    Der Timer zum Respawn wird meines Wissens gestartet, wenn du ein Fahrzeug verlässt. Da du ja nicht in dem Anhänger gesessen bist, wird der auch nicht re-spawnen. Kannst es ja mal versuchen, ich denke aber nicht, dass es klappt.
    Du müsstest das dann über einen Timer lösen, der prüft, ob der Anhänger an ein Fahrzeug angehängt ist, und wenn nicht, ob er an seinem Spawn steht, und wenn das auch nicht, dann setzt du einen X Sekunden Timer, mit dem du den Trailer dann zurück an seinen Spawn setzt.


    http://wiki.sa-mp.com/wiki/IsTrailerAttachedToVehicle
    GetVehicleSpawnPos (von hier z.B., oder selbst machen: http://forum.sa-mp.com/showpost.php?p=3010268&postcount=381)
    http://wiki.sa-mp.com/wiki/SetTimerEx

    Selbe Meldung. Hattest du die 64'er schon davor?
    Lade dir dann eben mal die 32-bit Linux Version herunter und auf deinen Host hoch (die .so), vielleicht braucht das Teil die alte Version. Sonst wüsste ich nicht was du noch machen könntest. (Doch! LAdmin4v2 anstatt LuxAdmin verwenden, der funktioniert!)



    PS: Ein Grund warum ich von Plugins abrate, man hat nur Probleme damit.

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new i=1;i<MAX_AUTOHAUSAUTOS;i++)
    {
    if(vehicle == AutoHausAuto[i])
    {
    SendClientMessage(playerid,WEIß,"Erkannt!");
    break;
    }
    }
    return 1;
    }


    Wenn das nicht klappt, dann zeige bitte den gesamten Code wie du die Autos erstellst.