Feuerlöschen ohne Command

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
  • Guten Tag liebe Breadfish Community,


    Bin derzeit drann ein Brandsystem zu entwickeln.



    Aber dies funktioniert nur per Command bzw das man den Brand löschen kann.


    Aber möchte dies anders machen das die Feuerwehr einfach mit Feuerlösche/Feuerwehrauto löschen muss und nicht vorher den Command eingeben muss.


    Der Command zum eingeben bevor man löscht.


    Code
    ocmd:feuerloeschen(playerid)
    {
    	if(PlayerInfo[playerid][pFraktion] != 4) return SendClientMessage(playerid, COLOR_GRAD2, "Du bist kein Sanitäter/Feuerwehrmann");
    	feuertimer[playerid] = SetTimerEx("FireTimer",10000,false,"i",playerid);
    	SendClientMessage(playerid, COLOR_TUTORIAL, "Halte nun 10 Sekunden auf das Feuer!");
    	return 1;
    }


    Dies ist der Timer wen die das Feuerlöschen bzw wen die fertig sind. (Nach 10 Sekunden)

  • Per Command löschen Funktioniert ja die Funktionen habe ich ja schon alle^^.


    Die frage ist nur wie ich ohne Command einfach nur mit Feuerlösche/Feuerwehrauto das feuerlöschen kann?
    Mehr ist das nicht :o?

  • (Pressing(playerid) & KEY_FIRE

    Keine Ahnung, wie du das definiert hast, dein Pressing, aber offensichtlich solltest du deine if-Abfragen einfach unter OnPlayerKeyStateChange verwenden.


    Und dann wird ja registriert, sobald er die Taste drückt...dann kannste da das Feuer löschen lassen.



    Deshalb sagte ich, du sollst in den Code von den anderen schauen, da siehst du ja, wie die das gemacht haben und kannst dich daran orientieren.
    Schließlich fehlt bei dir ja komplett die Berechnung, ob er auch wirklich auf das Feuer zielt...und nicht nur irgendwie in der Gegend sprayt.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • hätte es so gemacht per taste



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_NAME)
    {
    ocmd_feuerloeschen(playerid,"");
    }
    return 1;
    }

    Du willst mich kennenlernen? Kauf mein Buch, Bia*ch!


  • Code
    stock Pressing(playerid)
    {
    	new keys,updown,leftright;
    	GetPlayerKeys(playerid,keys,updown,leftright);
    	return keys;
    }


    So habe ich das Definiert.


    Habe das nun so unter OnPlayerKey rein gemacht und Funktioniert reicht halt einmal drauf sprühen ist das feuer aus naja.. man sollte halt 10/20 sekunden drauf halten das es gelöscht ist.

  • man sollte halt 10/20 sekunden drauf halten das es gelöscht ist.

    Kannste ja machen.


    Starte n Timer wenn er anfängt den Key zu drücken und wenn er vorher loslässt, dann kill den timer einfach wieder.


    http://forum.sa-mp.com/showthread.php?t=491980


    Hier stehen die Makros für PRESSED und RELEASED :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Achso :D ja habs verstanden. Bin so blind.




    Habe nun erledigt:



    So sieht das nun aus:


    So funktioniert es :D


    Code
    if(Flame[id][Flame_Exists] && ((Pressing(playerid) & KEY_FIRE && Aiming_at_Flame(playerid) == id)))
    	{
    	    FeuerwehrTimer[playerid] = SetTimerEx("FireTimer", 5000, false, "i", playerid);
    	}




    //E:


    Habe mal eine frage ist es Möglich wen man z.b beim Feuerwehrauto steht und z.b /ausruesten eingibt das man sich aussuchen kann was man sich ausrüsten kann?
    Wen ja wie ist sowas möglich?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wen ja wie ist sowas möglich?

    Naja, du kannst sowas machen:



    Nutzen tust du das so:



    C
    new veh = GetClosestVehicle(playerid, 20.0); //20.0 = maximale Distanz zum Feuerwehrauto
    if(veh == INVALID_VEHICLE_ID) return SCM(playerid,rot,"Es befindet sich kein Auto in deiner Nähe!");
    if(GetVehicleModel(veh) != 407) return SCM(playerid,rot,"Du befindest dich nicht in der Nähe von einem Feuerwehrauto!");
    //Und hier kannst n dann ausrüsten :D

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S