Tag
bin immer noch in meiner Freizeit am Scripten lernen xD
Wollt mal Fragen ob man abfragen kann ob der Spieler im Wasser ist?
Hab dazu nichts gefunden.
Wäre nett wenn mir das jemand beantworten könnte
Tag
bin immer noch in meiner Freizeit am Scripten lernen xD
Wollt mal Fragen ob man abfragen kann ob der Spieler im Wasser ist?
Hab dazu nichts gefunden.
Wäre nett wenn mir das jemand beantworten könnte
Du könntest über jede Wasserfläche eine Gangzone machen und es so abfragen, aber sonst gehts nicht.
Kenne 2 möglichkeiten:
1. Schwimmanimation abfragen (funktioniert nicht in Fahrzeugen)
2. MapAndreas -> gibt als Z-Wert 0 zurück wenn der Spieler im Wasser ist (Nachteil: Es gibt auch andere Stellen in SA die dann als Wasser erkannt werden)
Und wie genau frage ich die Schwimmanimation ab?
Ein Beispiel wäre cool.
Möchte sobald der Spieler im Wasser ist, dass er nach und nach HP verliert
Das ist denke ich mal kein Problem, nur weiß ich gerade nicht richtig wie ich die Schwimmanim abfragen soll
Wäre nett wenn du mir hilfst
Erstmal musst du rausfinden welche ID die Schwimmanimation hat. Einfach unter OnPlayerUpdate:
new s[10];
format(s,10,"Anim: %d",GetPlayerAnimationIndex(playerid));
SendClientMessage(playerid,0x00FF00,s);
wenn du dann die ID hast kannst du sie einfach mit GetPlayerAnimationIndex vergleichen.
Gut habe es nun soweit das anerkannt wird, wenn ich im Wasser bin.
Das habe ich so gemacht:
if(GetPlayerAnimationIndex(playerid))
{
new animlib[32];
new animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
if(!strcmp(animname,"SWIM_CRAWL"))
{
SendClientMessage(playerid,COLOR_WHITE,"Du bist im Wasser!");
return 1;
}
else
{
return 1;
}
Nun kriege ich aber die ClientMessage 100x die Minute, wollte fragen, wie man das macht, das diese nur 1x angezeigt wird?^^
/edit jmd ne Idee?
Probiers mal mit nem Timer.
Oder wenn die Message gesendet wurde:
SetPVarInt(playerid,"imwasser",1);
Und dann noch:
If(GetPVarInt(playerid,"imwasser")==1)return SendClientMessage(playerid,GRAU,"Du bist im Wasser!");
Böser Fehler etwas unter OnPlayerUpdate zu packen -.-'
oben im Script
new bool:PlayerInWater[MAX_PLAYERS];
in nem Timer
if(GetPlayerAnimationIndex(playerid))
{
new animlib[32];
new animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
if(!strcmp(animname,"SWIM_CRAWL") && (PlayerInWater[playerid] == true))
{
PlayerInWater[playerid] = true;
SendClientMessage(playerid,COLOR_WHITE,"Du bist im Wasser!");
return 1;
}
else
{
PlayerInWater[playerid] = false;
return 1;
}
}