Beiträge von Hagi

    hm könnte aber nen bissl buggy werden.


    #define FALLOFFTIMER_KEY "fallofftimer"
    #define BIKEFALL_KEY "bikefall"
    #define BIKEFALLID_KEY "bikefallid"
    #define BIKEFALLSEAT_KEY "bikefallseat"


    //OnPlayerConnect
    SetPVarInt(playerid,FALLOFFTIMER_KEY,SetTimerEx("falloff",500,1,"i",playerid));


    // OnPlayerDisconnect
    KillTimer(GetPVarInt(playerid,FALLOFFTIMER_KEY));


    // OnPlayerEnterVehicle


    new model = GetVehicleModel(vehicleid);
    if(model == 509 || model == 481 || model == 510 || model == 462 || model == 448 || model == 581 || model == 522 || model == 461 || model == 521 || model == 523|| model == 463 || model == 586 || model == 468 || model == 471)
    {
    SetPVarInt(playerid,BIKEFALL_KEY,1);
    SetPVarInt(playerid,BIKEFALLID_KEY,vehicleid);
    }


    // OnPlayerExitVehicle


    if(GetPVarInt(playerid,BIKEFALL_KEY) == 1)
    {
    SetPVarInt(playerid,BIKEFALL_KEY,0);
    }


    // OnPlayerStateChange


    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    if(GetPVarInt(playerid,"FALLOFF_KEY") == 1)
    {
    SetPVarInt(playerid,BIKEFALLSEAT_KEY,GetPlayerVehicleSeat(playerid));
    }
    }


    // Nun noch der public zum Timer


    forward falloff(playerid);
    public falloff(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    if(GetPVarInt(playerid,BIKEFALL_KEY) == 1)
    {
    PutPlayerInVehicle(playerid,GetPVarInt(playerid,BIKEFALLID_KEY),GetPVarInt(playerid,BIKEFALLSEAT_KEY));
    }
    }
    return 1;
    }


    Ungetestet, sollte aber funktionieren


    edit1: fehler korrigiert
    edit2:fehler korrigiert

    Der Pawn compiler kann in einer Zeile nut begrenzt viele Zeichen haben. Abfragen dürfen also nicht allzu lang sein. Das bedeutete dein Error.


    Zum Case konstrukt. Bau es dir einfach so um:


    case 0:{strins(AdminLevelName,"SERVER: Du bist als normaler User eingeloggt.",0);}
    Sollte funktionieren. Alternativ


    case 0:{strpack(AdminLevelName, "SERVER: Du bist als normaler User eingeloggt.");}

    Du selber kannst das nicht sehen, wens an deinem Char befestigt ist. Brauchst wohl oder übel wen anders, der sich das dann anschaut.

    Die Map sieht finde ich sehr scheußlich aus. Hitmans laufen nicht überall rum und schreiben wer sie sind. Aber genau das tut diese Map. Ein so auffälliges HQ passt auf keinen Fall zu Hitmans. Außerdem sind eingezäunte Hqs nicht mehr angesagt. Ein Haufen Zäune sieht einfach nur blöd aus. Das Haus unter dem die Autos stehen passt auch nicht sonderlich zum drum herum.


    Ein weitere negativer Punkt ist leider die Vorstellungen. Die Map wird nicht sonderlich präsentiert und die Reschtscheibung ist leider auch nicht die beste.


    Idee: 8/10 - Hitmanbasen sind sehr gefordert
    Umsetzung: 2/10 - Oben genannte Gründe
    Präsentation: 5/10 - Oben genannte Gründe


    Gesamt: 5/10

    Zeig ma den enum zu Playerinfo wenns ein gibt, wie dort pChar1 initialisiert wird.


    Hab aber auch nen eigenes Problem: Ist ein großes multidimensionaler Array (knapp 400 zeilen) besser als 4 kleine auf 100 zeilen? Unter dem Hintergrund, dass ich die Informationen in den Arrays benutze um Objekte zu erstellen.

    Es muss noch ne Funktion geben wie: IsFahrschulAuto oder so. Diese wird aufgerufen, wenn man in ein Fahrzeug einsteigt. Such die mal und poste die dann.

    Code vom command mit dem man dem Fahrschuler die Stunde beginnen lässt und die Abfrage ob das Auto ein Fahrschuleagen ist und der entsprechende callback dazu.

    die 10 Bedeutet, dass deine Strings maximal auf 10 zeichen abgefragt wird.


    "dieserblub" und "dieserblubblibla" sind demnach dann gleiche Strings.


    Nein es wird hier ein, wie schon erwähnt, debug gefordert, bei dem man ablesen kann, bis wo der command kommt.


    Dafür einfach
    print("Stelle 1");
    print("Stelle 2");


    Und das nach jeder Zeile im Command, zwischen die einzelnen schon gescripteten Sachen. Dann kann man sehen, dass der Command Beispielsweise nur bis Punkt 10 gekommen ist. Der Fehler liegt dann also zwischen Punkt 10 und 11.

    Ich kenne den Hoster jetzt nicht, aber ich glaube nichts, dass es nicht möglich ist. Einfach mal da die Optionen durchschauen oder nen Support (anschreiben oder anrufen (wenns sowas gibt)).

    Gute Morgen.


    Ich besitze mehrere Ban Commands in meinem Script: Offlineban,Timeban,Ban,Ipban und Unban.
    Nun zum Problem: Mein Unban command kann nur den Spieler in seiner datei entbannen, also nur den Timeban,Offlineban und den Ban. Wenn der Spieler jedoch via IP Ban gebannt ist, stelle ich mir nun die Frage, ob man mit einem Command in irgenteinerweise auf die Samp.ban zugreifen kann um dort irgentwie die entsprechende Zeile zu löschen. Normalerweise kann man ja nur auf den Scriptfiles Ordner zugreifen. Kennt jemand eine Lösung, wie man dennoch auf die samp.ban zugreifen kann?


    edit: Ich habe zwar einen Rcon Command gefunden, mit dem man die Ips entbannen kann (/rcon unbanip [IP]), jedoch müsste ich vorher ja checken können, ob der Spieler überhaupt in der samp.ban gebannt ist und wie seine Ip war als er gebannt wurde.

    Wieso machst du es nicht so wie oben beschrieben. Was du jetzt gemacht hast kann nicht funktionieren, da du in einen String einen Integer und nicht einen String einfügen möchtest.

    Du hast die Variablen vermutlich als Integer erstellt. Diese müssen jedoch String sein, sprich


    new aschein; // Integer
    new aschein[16]; // String


    Also als String definieren. So nun musst du bei den Cases auch den Text in den String bekommen:


    switch(SpielerInfo[playerid][carlic])
    {
    case 0:{aschein="Nein";}
    case 1:{aschein="Ja";}
    }



    Könnte funktionieren, bin mir grad net ganz sicher. Jedoch funktioniert folgendes auf jeden Fall:


    switch(SpielerInfo[playerid][carlic])
    {
    case 0:{strins(aschein,"Nein",0);}
    case 1:{strins(aschein,"Ja",0);
    }

    Mit Rcon alleine kann man nichts anfangen um sich zum Admin zu machen, sofern die /makeadmin (o.ä) nicht mit einer Abfrage auf Rcon gespeißt ist.
    Es wäre für mich nur folgendes vorstellbar:

    • Der User hat die Logindaten zum Root und dort einen Account erstellt, bei dem er alles nach belieben ändern kann.
    • Es besteht ein Scriptfehler, bei dem man Admin Level 5 erhält.
    • Ein anderer Admin hat ihn zum Admin gemacht.

    Lösungen:


    • Neues Rcon Passwort und Root Passwort. Am besten über 20 Stellen lang und aus Buschstaben (case low und big) sowie Zahlen.
    • Das Script auf einen Fehler überprüfen
    • Andere Admin auf den User ansprechen (sofern vorhanden) und ggf. Logs überprüfen.


    Damit wären dann auch die Post meiner Vorposter zusammengefasst. Gutes Gelingen bei der Fehlersuche.