derby /godmod frage

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
  • so leute moin alle zusammen ich habe folgendes problem
    also ich habe ein derby aber auch gleichzeitig ein cargodmod wie bekomme ich das nun aus wenn ich im godmode binn und dann nachher wieder an ?


    ich hab mir das so über legt der godmode isn timer der jede sekunde checkt ob das auto so hoch beschädigt ist das er es reparieren soll


    das hier ist der derby command


    if(strcmp(cmdtext, "/derby", true) == 0)
    {
    new name[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), ">>> %s ist im Derby /derby <<<", name);
    SendClientMessageToAll(0x2EB8FFFF, string);
    SetPlayerInterior(playerid,15);
    ResetPlayerWeapons(playerid);
    SetPlayerHealth(playerid, 100);
    SetPlayerPos(playerid,-1443.5715,933.3106,1036.4977);
    return 1;
    }


    ich wollte da jetzt halt
    SetTimerEx("ScanVehicleHealth", 1000, 1);
    einfügen aber wenn ich jetzt zb sterbe oder das derby per teleport command verlasse wie bekomme ich den timer wieder an ohne in jeden command SetTimer("ScanVehicleHealth", 1000, 1); rein zu schreiben ?


    kann man das irgentwie per if abfrage machen ? wenn ja dann zeigt mir bitte wie :D

  • SetTimerEx("ScanVehicleHealth", 1000, 1);
    kann nicht gehen, fehlen Parameter.


    Einfach in dem CarGodMoce-Code eine Abfrage einbauen:



    if(InDerby[playerid] == false && IsPlayerInAnyVehicle(playerid)) // bzw. i oder was auch immer bei einer for schleife.
    {
    .... auf 1000.0 setzen eben
    }

    Und im Derby CMD InDerby[playerid] = true; setzen den bool.


    Oder den SetTimerEx (der ja für jeden gilt) zerstören (KillTimer()) und dann wieder re-aktiviere per SetTimerEx eben bei OnPlayerDeath oder /leave. Besser ist jedoch die erste Methode, da ein Timer vollkommen rausreicht und nur einmal eine Abfrage gestellt werden muss.

  • öhm probiert und gescheitert also ich bekomme wieden warn nicht weg das sind meine befehle bisher


    command


    if(strcmp(cmdtext, "/derby", true) == 0)
    {
    DMZone[playerid]= true;
    new name[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), ">>> %s ist im Derby /derby <<<", name);
    SendClientMessageToAll(0x2EB8FFFF, string);
    SetPlayerInterior(playerid,15);
    ResetPlayerWeapons(playerid);
    SetPlayerHealth(playerid, 100);
    SetPlayerPos(playerid,-1443.5715,933.3106,1036.4977);
    return 1;
    }


    godmode


    public ScanVehicleHealth(){
    new Float:HP;
    for(new playerid=0;playerid<MAX_PLAYERS;playerid++)
    {
    if(DMZone[playerid] == false && IsPlayerInAnyVehicle(playerid))
    {
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    GetVehicleHealth(v,Float:HP);
    if(Float:HP < 250)
    {
    SetVehicleHealth(v,900);
    }
    }
    }
    }
    }


    warn


    C:\Dokumente und Einstellungen\ante\Desktop\ls\stuntlantis.pwn(751) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    zeile 751 ist


    if(DMZone[playerid] == false && IsPlayerInAnyVehicle(playerid))

  • public ScanVehicleHealth(){
    new Float:HP, v;
    for(new playerid=0;playerid<MAX_PLAYERS;playerid++)
    {
    if(DMZone[playerid] == false && IsPlayerInAnyVehicle(playerid))
    {
    v=GetPlayerVehicleID(playerid);
    GetVehicleHealth(v,Float:HP);
    if(Float:HP < 250)
    {
    SetVehicleHealth(v,900);
    }
    }
    }
    }