hilfe bei /heal

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
  • ocmd:heal(playerid,params[])
    {
    new pID;
    if(sscanf(params, "i", pID, hp))return SendClientMessage(playerid,0xFF0019FF, "Fehler: /heal [ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xFF0019FF, "Fehler: Dieser Spieler ist nicht online.");
    if(hp<0||hp>150)return SendClientMessage(playerid,0xFF0019FF,"Dieser spieler hat volles leben");
    SetPlayerHealth(pID,GetPlayerHealth(pID)+10);
    }


    ich wills abber so haben dass z.b. jede 5 sekunden der player 10hp bekommt ums realistischer zu machen
    kann mir pls jmd helfen

  • Versuch es mal mit einem Timer der bei dem CMD losgeht. Ein Timer der alle 10 sekunden 10hp oder änhlich gibt

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • new healtimer[MAX_PLAYERS];


    forward heilen(id);


    public heilen(id)
    {
    new Float:health;
    GetPlayerHealth(id,health);
    if(health < 100.0)
    {
    SetPlayerHealth(id,health+10);
    return 1;
    }
    else{KillTimer(healtimer[id]);}
    return 0;
    }


    ocmd:heal(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,0xFF0019FF, "Fehler: /heal [ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xFF0019FF, "Fehler: Dieser Spieler ist nicht online.");
    healtimer[playerid] = SetTimerEx("heilen",3000,true,"i",pID);
    }


    Ungetestet. Damit nur der ausgewählte Spieler geheilt wird.



    Maddin is my Lord and Master :D
    Musel my one and only b0wm
    Bisafloah is the pokemon that pwns a lot of goddamn ponys.

  • dcmd(heal, 4, cmdtext); //hoffe du hast DCMD
    //heal Command
    dcmd_heal(playerid, params[])
    {
    if(IstSpielerInFraktion(playerid, 2))//noch Anpassen
    {
    new pID;
    if (sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid, Blau, "Richtige Benutzung: /heal Playerid");
    }
    SetPlayerHealth(pID,100.0);
    GivePlayerMoney(pID,-150);//Kannst Rausnehmen,wenn es nichts kosten soll
    GivePlayerMoney(playerid,150);//Hier genauso
    }
    return 1;
    }


  • Völliger Blödsinn, erstens der Code den er oben hat ist ocmd, zweitens will er dass es immer +10 jede 5 Sekunden kommt.


    Demnach ist die Zeile von Ramino auch falsch.


    SetTimerEx("heilen",3000,true,"i",pID);



    Den 3000 Millisekunden sind 3 Sek..


    Wenn du 5 Sek willst, dann musste 5000 machen @Threadstarter :D



    #JoKér



  • irgendwie will das nicht so wie ichs will, dass der erst heilt wenn der andere /heilen annehmen schreibt


    wie mache ich dass das erst angefangen wird zu healen, wenn der andere acceptet

    Einmal editiert, zuletzt von Danili ()

  • new healtimer[MAX_PLAYERS];


    forward heilen(id);


    public heilen(id)
    {
    new Float:health;
    GetPlayerHealth(id,health);
    if(health < 100.0)
    {
    SetPlayerHealth(id,health+10);
    return 1;
    }
    else{KillTimer(healtimer[id]);}
    return 0;
    }


    ocmd:heal(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,0xFF0019FF, "Fehler: /heal [ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xFF0019FF, "Fehler: Dieser Spieler ist nicht online.");
    }
    ocmd:heal annehmen(playerid,params[])
    {
    healtimer[playerid] = SetTimerEx("heilen",3000,true,"i",pID);
    return 1;
    }


    soo???
    woe mache ich dann die nachricht es hat dir keiner ein heal angeboten?

    Einmal editiert, zuletzt von Danili () aus folgendem Grund: rechtschreibfehler im script