Beiträge von Frank Labruzzo


    Er möchte es "dynamisch" haben, also /gotopos [x] [y] [z] ingame, nicht so ein Befehl wie /gotols. An den Autor: Ich kann's dir machen, sscanf oder strcmp/strtok?


    edit: Außerdem ist deine Abfrage falsch.

    Und mit GetVehicleParamsEx kenne ich mich nicht aus, wie man einen bestimmten Wert ausliest und nicht alle.


    Dann kannst Du ja eine neue Variable für alle Fahrzeuge erstellen (new EngineOn[MAX_VEHICLES];), und diese auf 1 setzen, wenn der Motor angeht (EngineOn[GetPlayerVehicleID(playerid)] = 1;). Das wäre die simple Variante. :)

    Mal ein Tipp: Wieso wartest Du nicht ingame, bis Du in den AFK-Modus gebracht worden bist und guckst dann z.B. was du für eine Message erhalten hast. Beispielsweise "Du wurdest in den AFK Modus geschickt", und daraufhin suchst Du genau diesen Text im Script? ;)


    Das bedeutet, dass die Variable schon erstellt wurde. Mach anstatt new fps[10]; einfach mal new fps2[10];


    PS: Du kannst auch diesen stock direkt verwenden, dann müsstest Du anstatt pFPS[playerid], GetPVarInt(playerid,"FPS"); benutzen, wenn Du Strings formatieren willst.
    stock GetPlayerFPS(playerid)
    {
    SetPVarInt(playerid, "DrunkL", GetPlayerDrunkLevel(playerid));
    if(GetPVarInt(playerid, "DrunkL") < 100)
    {
    SetPlayerDrunkLevel(playerid, 2000);
    }
    else
    {
    if(GetPVarInt(playerid, "LDrunkL") != GetPVarInt(playerid, "DrunkL"))
    {
    SetPVarInt(playerid, "FPS", (GetPVarInt(playerid, "LDrunkL") - GetPVarInt(playerid, "DrunkL")));
    SetPVarInt(playerid, "LDrunkL", GetPVarInt(playerid, "DrunkL"));
    if((GetPVarInt(playerid, "FPS") > 0) && (GetPVarInt(playerid, "FPS") < 256))
    {
    return GetPVarInt(playerid, "FPS") - 1;
    }
    }
    }
    return 0;
    }

    Eines der Größten ist, das wenn man an einer Tankstelle steht und /tanken eingibt, steht da das das fahrzeug betankt wird, aber dies passiert nicht. und wenn man die nase voll vom warten hat obwohl nix passiert, ist man Plötzlich Gefreezed. :O Ich finde keine Lösung!! -.-"


    Guck dir mal den Befehl bzw. den Timer, der gestartet wird, genau an. Vielleicht fällt dir was auf. ;)


    Ich stehe in einem 24/7 und will was kaufen. doch dort ist ein textlabel mit /markt, wenn ich das eingebe steht dort, du bist nicht am schwarzmarkt.


    Wahrscheinlich die IsPlayerInRangeOfPoint-Abfrage im /markt Befehl gefailt, schau es dir an und erstelle ggf. eine neue if-Abfrage.

    Jojo, könnte klappen, wenn Du OnPlayerStateChange mit in die Sache bringst. ;)


    Man macht ja einen Wasserstrahl mit STRG bzw. schießen, d.H. du kannst abfragen:


    if(newkeys == KEY_FIRE)
    {
    if(GetPlayerVehicleID(playerid) == 407)
    {
    if(WasserTank[GetPlayerVehicleID(playerid)] == 0)
    {
    SendClientMessage(playerid,FARBE," Der Wassertank ist leer. Du wirst aus dem Auto rausgeschmissen! ");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }


    Dann müsstest Du evtl. auch ein Wassertank-System machen, wo es immer weniger wird, wenn er diesen Wasserstrahl benutzt. :)

    Function IsAFeuer(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4) {
    return 1;
    }
    else return 0;
    }
    return 1;
    }


    Einfach ein return 1; nach IsPlayerConnected

    Function IsAFeuer(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4) {
    return 1;
    }
    else return 0;
    }
    }


    Mach es mal so.


    MfG

    if(strcmp(cmdtext,"/tor",true)==0)
    {
    if(SpielerInfo[playerid][Fraktion] == 1 && IsPlayerInRangeOfPoint(playerid,range,x,y,z))
    {
    //...
    //...
    }
    else if(SpielerInfo[playerid][Fraktion] == 2 && IsPlayerInRangeOfPoint(playerid,range,x,y,z))
    {
    //...
    //...
    }
    else SendClientMessage(playerid, FARBE," Du gehörst entweder keiner Fraktion an, oder du bist am falschen Tor! ");
    return 1;
    }


    Prinzip verstanden? ;)