Szerző Téma: játékos hp-nak megállapítása  (Megtekintve 958 alkalommal)

játékos hp-nak megállapítása
« Dátum: 2013. Július 31. - 22:20:30 »
0 Show voters
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!

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
játékos hp-nak megállapítása
« Válasz #1 Dátum: 2013. Július 31. - 22:50:14 »
0 Show voters
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.  ;)

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
játékos hp-nak megállapítása
« Válasz #2 Dátum: 2013. Július 31. - 22:53:05 »
0 Show voters
#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;
}
« Utoljára szerkesztve: 2013. Július 31. - 22:55:30 írta BoOy »

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
játékos hp-nak megállapítása
« Válasz #3 Dátum: 2013. Augusztus 01. - 14:21:15 »
+1 Show voters
Idézetet írta: ZyZu date=1375303814\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40714\" data-ipsquote-contentclass=\"forums_Topic
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.

játékos hp-nak megállapítása
« Válasz #4 Dátum: 2013. Augusztus 01. - 19:58:29 »
0 Show voters
Idézetet írta: BoOy date=1375303985\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40714\" data-ipsquote-contentclass=\"forums_Topic

#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.

játékos hp-nak megállapítása
« Válasz #5 Dátum: 2013. Augusztus 01. - 22:12:07 »
0 Show voters
Ö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!

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
játékos hp-nak megállapítása
« Válasz #6 Dátum: 2013. Augusztus 02. - 00:02:32 »
0 Show voters
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
« Utoljára szerkesztve: 2013. Augusztus 02. - 00:18:48 írta BoOy »

játékos hp-nak megállapítása
« Válasz #7 Dátum: 2013. Augusztus 02. - 20:05:20 »
0 Show voters
nem jóü:S

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
játékos hp-nak megállapítása
« Válasz #8 Dátum: 2013. Augusztus 02. - 20:09:28 »
0 Show voters
Ú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

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
játékos hp-nak megállapítása
« Válasz #9 Dátum: 2013. Augusztus 04. - 13:33:24 »
0 Show voters
Idézetet írta: ɐʞzssǝlosz date=1375379909\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40714\" data-ipsquote-contentclass=\"forums_Topic


 
#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.

játékos hp-nak megállapítása
« Válasz #10 Dátum: 2013. Augusztus 06. - 17:58:25 »
+1 Show voters
Egy dolgot nem értek.. :D
Minek oda az az átkozott timer?:D
Mért nem csináljátok OnPlayerTakeDamage eljárással?:D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal