Beiträge von Haxler

    Adnan klar kann man das im Filterscript definieren. Aber dann musst du auch das Team vom Spieler etc. aus der Spielerdatei laden. Das alles wird ja im Gamemode schon gemacht deshalb ist es im Filterscript viel umständlicher.


    Xilent
    Einfach alles was in OnFilterScriptInit steht, in OnGameModeInit und den Befehl auch im GameMode unter OnPlayerCommandText. Dann dürftest du keine Fehler mehr bekommen.

    Ich schätze mal, die Errors kommen, weil du die Tore in ein Filterscript gepackt hast. Wie willst du in einem Filterscript die Fraktion abfragen, die im Gamemode definiert wurde? ... Mach das Tor in dein Gamemode rein und es sollte keine Probleme mehr geben ;)

    Du könntest einen Timer erstellen, der alle paar Minuten eine Variable hochzählt. Dann einfach überprüfen ob die Variable bspw. auf 100 ist. Wenn ja die Piss-Animation laufen lassen und ein Text ausgeben "Du hast dir in die Hose gepinkelt^^". Dann noch ein wenig Leben abziehen und einen Befehl schreiben, mit dem man "rechtzeitig" noch pinkeln kann hehe

    Für den Teamleader würd ich einfach eine Variable "isleader" erstellen. Diese kannst du beim Connecten laden und beim Disconnecten speichern. Einfach wie du die Fraktionen lädst und speicherst. Dann kannst du das einfach so abfragen:

    new bool:isleader[MAX_PLAYERS];
    if(gteam[playerid]== Team_Zivi && isleader[playerid] == true)
    {
    }
    Das mit der Fraktionskasse ist auch nicht sehr schwer. Dazu gibts hier ein Tutorial einfach mal suchen. Wie du das nur für Leader machen kannst, hab ich ja oben schon geschrieben.

    if(strcmp(strget(cmdtext,0), "/rauswerfen", true) == 0)
    {
    new State=GetPlayerState(playerid);
    if(State=PLAYER_STATE_DRIVER)
    {
    RemovePlayerFromVehicle(ziel);
    return 1;
    }
    else {SendClientMessage(playerid, COLOR_TOMATO, "Du bist nicht der Fahrer de Fahrzeuges!");}
    return 1;
    }

    Du musst den geschriebenen Text ja auch erstmal in die Variable bringen. Dazu könntest du bspw. sscanf benutzen.
    Google einfach mal nach sscanf oder such hier im Forum...

    Im Beispiel


    SetTimerEx("message",1000,false,"is",1,"string to pass");


    ist "message" die Funktion, die nach 1000 Millisekunden(=1sekunde) ausgeführt wird. 1 und string to pass sind die Parameter die dabei übergeben werden.

    Hallo,
    Ich hab ein nerviges Problem mit Strings und dini.
    Wenn ich einen Text aus einer Ini laden will und den in einem String speicher, klappt das ohne Probleme:
    new string[256];
    string = dini_Get("test.ini","test");
    bei
    enum test
    {
    string[256]
    }
    new StringTest[MAX_PLAYERS][test];


    StringTest[playerid][string] = dini_Get("test.ini","test");
    bekomm ich immer einen Error:

    Code
    error 047: array sizes do not match, or destination array is too small


    Woran liegt das?

    lspdla[lspdcars] = Create3DTextLabel("LSPD 110",0xB3FF00FF,0.0,0.0,0.0,40.0,0);
    Attach3DTextLabelToVehicle(lspdla[lspdcars], lspdcars, 0.0, 0.0, 0.40);


    stimmt nicht ganz:


    lspdla[lspdcars[0]] = Create3DTextLabel("LSPD 110",0xB3FF00FF,0.0,0.0,0.0,40.0,0); // Erstellt textlabel für das 1. police car deshalb die [0] das zweite wäre [1] etc.
    Attach3DTextLabelToVehicle(lspdla[lspdcars[0]], lspdcars[0], 0.0, 0.0, 0.40);

    Oh das kann eigentlich überhaupt nicht gehen...


    1. Unter OnGameModeInit kannst du nie playerid abfragen
    2. du verwendest die variable cartest[MAX_VEHICLES] zum Auto erstellen und zum Label erstellen....


    Lösung:


    oben ins Script:
    new Text3D:cartest[MAX_VEHICLES];
    unter OnGameModeInit:


    new testid= CreateVehicle(....)
    cartest[testid] = Create3DTextLabel("LSPD CAR",0xB3FF00FF,0.0,0.0,0.0,40.0,0);
    Attach3DTextLabelToVehicle(cartest[testid], testid, 0.0, 0.0, 0.40);


    So in der Art müsste es klappen

    Als erstes musst du das Copcar erstellen:
    new lspdcar = CreateVehicle(x,y,z.....);// Hier deine Koordinaten etc. eintragen
    Danach erstellst du ein forward(Das wird später die Funktion, mit der du abfragst, ob das Fahrzeug ein copcar ist):
    forward IsACopCar(vehicleid);
    Dann unter OnPlayerStateChange:

    if(IsPlayerInAnyVehicle(playerid) && newstate == PLAYER_STATE_DRIVER) // Wenn der Spieler in einem Fahrzeug ist und er der Fahrer ist (PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);// VehicleID in Variable abspeichern
    {
    if(IsACopCar(vehicleid))
    {
    if(...) // Hier abfrage ob der Spieler Polizist ist
    {
    // Wenn er Polizist ist passiert nichts
    }
    else
    RemovePlayerFromVehicle(playerid);
    }
    }


    Hier unsere Funktion, um abzufragen ob der Spieler in einem CopCar ist:
    public IsACopCar(vehicleid)
    {
    if(vehicleid == lspdcar)
    {
    return 1;
    }
    return 0;
    }


    So in der Art dürfte es gehen :) Viel glück