Hallo zusammen,
viele von euch kennen ja diese Automaten in SAMP an denen man sich heilen kann, indem man etwas trinkt.
Gibt es irgendeine Möglichkeit diese abzuschalten?
Hallo zusammen,
viele von euch kennen ja diese Automaten in SAMP an denen man sich heilen kann, indem man etwas trinkt.
Gibt es irgendeine Möglichkeit diese abzuschalten?
Nein gibt es nicht. Map was davor und dann ist es gelöst.
oder du suchst jeden Automaten in ganz SA und holst dir die Koords davon.
Sobald jemand an den Koordinaten ist, und enter drückt, freezen & unfreezen.
Ja aber es gibt soviele Automaten und ich kann doch nicht bei jedem Automaten etwas davor mappen...
Oder du schaust, wieviel Geld man abgezogen bekommt,
und prüfst dann diesen nach.
Dadurch musst du auch nicht jeden einzelnen Automaten eintragen
Frag doch einfach mit GetPlayerAnimationIndex(playerid); ab ob der Spieler gerade die Kauf-Animation ausführt.
edit:
if(GetPlayerAnimationIndex(playerid))
{
new animlib[32];
new animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
if(strcmp(animname,"VEND_USE",true) == 0)
{
TogglePlayerControllable(playerid,0);
TogglePlayerControllable(playerid,1);
SCM(playerid,rot,"Du kannst hier kein Getränk kaufen!");
}
}
damit kannst du abfragen, ob der Spieler sich ein Getränk kauft. Das musst du nurnoch in einen Timer (oder OnPlayerUpdate, was aber nicht so gut ist^^) einbauen...
Auch schon Bemerkt :D?
b2t
Lass doch die Automaten einfach da Stehen und alles das ist Doch Reallife.^^
Ist das wirklich Reallife? Nehmen wir mal an, ich werde von nem Auto angefahren. Kann ich dann auch an einen Getränkeautomat, was trinken und alles ist verheilt? xD
ZitatIst das wirklich Reallife? Nehmen wir mal an, ich werde von nem Auto
angefahren. Kann ich dann auch an einen Getränkeautomat, was trinken und
alles ist verheilt? xD
wenn du es schon so genau sehen willst dann ist das alles kein reallife
oder laufen alle menschen mit waffen rum?
oder klauen alle menschen von jedem das auto?
oder gehören fast alle menschen einer gang/mafia an?
ich könnt bis in die ewigkeit so weiter machen aber das gehört hier ja nicht rein
ich würd es so machen wie es Haxler beschrieben hat
könnt mir vorstellen bei KeyCHange, sobald die Entertaste gedrückt wird - dann brauchst keinen Timer starten.
Habs getestet. Die Animation wird erst ein paar Millisekunden später gestartet würde also mit OnPlayerKeyStateChange ohne Weiteres nicht so leicht funktionieren
aber nen Timer mit nem relativ kleinen Interval ist auch nicht das optimale...
Somit besteht nun ein Problem
Wollte auch nur zeigen dass es geht. Wie er es letztlich verwenden will muss er wissen
Map einfach was DRÜBER
Habs getestet. Die Animation wird erst ein paar Millisekunden später gestartet würde also mit OnPlayerKeyStateChange ohne Weiteres nicht so leicht funktionieren
Jo, genau das Problem habe ich
(Ich möchte nichts drübermappen, da dies viel zu lange dauert
dann gibts jetzt 2 Möglichkeiten noch.
so wie ich sagte mit den koords, oder einen Timer mit Haxlers Lösung
Ja, an einen Timer nach if(GetPlayerAnimationIndex(playerid)) hab ich auch schon gedacht
Aber wieviele ms sollt ich einstellen?
ich weis nicht ob meine antwort hier noch gebraucht wird, aber so würde es funktionieren:
if(GetPlayerAnimationIndex(playerid))
{
new animlib[32];
new animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
if(!strcmp(animname,"VEND_USE",true))
{
new Float:phealth;
GetPlayerHealth(playerid,phealth);
SetPlayerHealth(playerid,phealth);
ClearAnimations(playerid);
}
return 0;
}
//edit: das ganze unter OnPlayerUpdate
bei mir gehts nicht, ich bekomme trotzdem leben.
Ich würde gucken, wie viel dir beim Trinken eines Getränkes gegeben wird (durch einen Befehl wo die Funktion GetPlayerHealth verwendet wird),
und diese Zahl dann beim Ausführen der Animation abziehen lassen. Den Rest würde ich wie Haxler machen (Seite 1).
habe ich es wird 35 hp gegeben ich habe das abziehen lassen bloß wenn man 5 hp hat und sich heilen will verliert man das erst dann bekommt man leben wieder dann bsite tod