-
hogy tudom megállapítani hogy a játékosnak 15% hpja van?
és ahoz parancsot tenni?Lényeg annyi lenne hogy essen animba és ne tudjon elmenni!
-
Lekéred a játékosnak az életét a GetPlayerHealth függvényel és ha 15% élete van akkor animációba teszed.. probálgasd.. csak így tanulod meg és csinálsz egy timert ami frissíti a játékosok életét ezt ha lehet ne OnPlayerUpdate callbackel csináld mivel nagy lagg lehet ha 30 játékos van a szerveren. ;)
-
#include <a_samp>
new count[MAX_PLAYERS];
forward CheckHealth();
public OnFilterScriptInit()
{
SetTimer(\"CheckHealth\",1000,0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckHealth()
{
for(new i;i<MAX_PLAYERS;i++)
{
new Float:health;
GetPlayerHealth(i,health);
if(health < 20)
{
if(count == 0)//hogy ne floodoljon az üzenet
{
//Ide lesz az anim stb.
SendClientMessage(i,-1,\"Megsebesültél annyira hogy nem tudsz felkelni!!\");
TogglePlayerControllable(i,0);
count++;
}
}
else return count = 1;
}
return 1;
}
-
Lekéred a játékosnak az életét a GetPlayerHealth függvényel és ha 15% élete van akkor animációba teszed.. probálgasd.. csak így tanulod meg és csinálsz egy timert ami frissíti a játékosok életét ezt ha lehet ne OnPlayerUpdate callbackel csináld mivel nagy lagg lehet ha 30 játékos van a szerveren. ;)
Nyugodtan csinálja csak OnPlayerUpdate-tal. Ez pont egy megfelelõ feladat a függvénynek. Talán 30 - vagy akár 300.. - játékos életének lekérdezésébe nem fog beleroskadni egy gyengébb gép sem. Ha igen, már gondok vannak.
Mielõtt még arra gondolnál - vagy bárki más, hogy az animációrakásba roskadna bele, elárulom, hogy az csak egyszer történik meg, nem minden meghíváskor.
-
#include <a_samp>
new count[MAX_PLAYERS];
forward CheckHealth();
public OnFilterScriptInit()
{
SetTimer(\"CheckHealth\",1000,0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckHealth()
{
for(new i;i<MAX_PLAYERS;i++)
{
new Float:health;
GetPlayerHealth(i,health);
if(health < 20)
{
if(count == 0)//hogy ne floodoljon az üzenet
{
//Ide lesz az anim stb.
SendClientMessage(i,-1,\"Megsebesültél annyira hogy nem tudsz felkelni!!\");
TogglePlayerControllable(i,0);
count++;
}
}
else return count = 1;
}
return 1;
}
Ez alatt nem lehetne létrehozni ezt a dolgot?
http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage
Mert akkor nem kell idõnként az összes játékost életét ellenõrizni hanem csak akkor mikor sebzõdik és csak annak a játékosnak.
-
Öm beraktam a módba hibátlanul,semmi error ilyesmi de bármit csinálok nem tesz semmit ha lemegy 20 hpra vagy 20hp-t veszítek nem kapok üzenetet:S és le se fagyaszt!
-
Bocsi elírtam most próbáld meg ezt:
#include <a_samp>
new count[MAX_PLAYERS];
forward CheckHealth();
public OnFilterScriptInit()
{
SetTimer(\"CheckHealth\",1000,0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckHealth()
{
for(new i;i<MAX_PLAYERS;i++)
{
new Float:health;
GetPlayerHealth(i,health);
if(health < 20)
{
if(count == 0)//hogy ne floodoljon az üzenet
{
//Ide lesz az anim stb.
SendClientMessage(i,-1,\"Megsebesültél annyira hogy nem tudsz felkelni!!\");
TogglePlayerControllable(i,0);
count++;
}
}
else return count = 0;
}
return 1;
}
Amúgy amit zsoleszka ajánlott az szerintem könnyebb mód lenne, csak ez új funkció és nem nagyon hallottam róla :D
-
nem jóü:S
-
Úristen xD... Na mostmár tényleg jó lesz :D
#include <a_samp>
new count[MAX_PLAYERS];
forward CheckHealth();
public OnFilterScriptInit()
{
SetTimer(\"CheckHealth\",1000,1);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckHealth()
{
for(new i;i<MAX_PLAYERS;i++)
{
new Float:health;
GetPlayerHealth(i,health);
if(health < 20)
{
if(count == 0)//hogy ne floodoljon az üzenet
{
//Ide lesz az anim stb.
SendClientMessage(i,-1,\"Megsebesültél annyira hogy nem tudsz felkelni!!\");
TogglePlayerControllable(i,0);
count++;
}
}
else return count = 0;
}
return 1;
}
Tudod meleg van :D
-
#include <a_samp>
new count[MAX_PLAYERS];
forward CheckHealth();
public OnFilterScriptInit()
{
SetTimer(\"CheckHealth\",1000,0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckHealth()
{
for(new i;i<MAX_PLAYERS;i++)
{
new Float:health;
GetPlayerHealth(i,health);
if(health < 20)
{
if(count == 0)//hogy ne floodoljon az üzenet
{
//Ide lesz az anim stb.
SendClientMessage(i,-1,\"Megsebesültél annyira hogy nem tudsz felkelni!!\");
TogglePlayerControllable(i,0);
count++;
}
}
else return count = 1;
}
return 1;
}
Ez alatt nem lehetne létrehozni ezt a dolgot?
http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage
Mert akkor nem kell idõnként az összes játékost életét ellenõrizni hanem csak akkor mikor sebzõdik és csak annak a játékosnak.
[/quote]
Ha jól emlékszem, de. De semmiképp sem idõzítõvel.
-
Egy dolgot nem értek.. :D
Minek oda az az átkozott timer?:D
Mért nem csináljátok OnPlayerTakeDamage eljárással?:D