Szerző Téma: animba esés 30 hpnál  (Megtekintve 1878 alkalommal)

animba esés 30 hpnál
« Dátum: 2014. április 19. - 21:30:22 »
0 Show voters
Sziasztok!
Valamiért a kodóm nem rakja animba:(((
 

public OnPlayerUpdate(playerid)
{
    if(IsPlayerConnected(playerid))
{
        new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete <= 30)
{
    if(pInfo[playerid][serult] == false)
    {
       cmd_me(playerid, \"összeesik\");
       SetPlayerDrunkLevel(playerid, 6);
                ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
       SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
       pInfo[playerid][serult]=true;
                TogglePlayerControllable(playerid, false);
   }
}
return 1;
}

 
Valamiért ha 30 nál van a hp nem rakja animba:((
Miért?

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #1 Dátum: 2014. április 19. - 21:36:35 »
0 Show voters
Talán mert a pInfo[playerid][serult] változónak mindig true értéke van.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #2 Dátum: 2014. április 19. - 21:37:52 »
0 Show voters
Itt csak egy elágazást látok, amely a 30 hp csekkolás és az animba esés közben van:
 
if(pInfo[playerid][serult] == false){

 
Egyáltalán elvégzi az ezen elágazás igaz ágán lévõ dolgokat? Mert ha nem, lehet, hogy ez a probléma. Csekkolhatod pl. egyszerû printes debuggal:
 
public OnPlayerUpdate(playerid)
{
        if(IsPlayerConnected(playerid))
        {
                print(\"Asd0\"); // Floodolni fogja, szóval nem fontos, elvégre csak-csak lefut idáig, ugyanis minden bizonnyal csatlakozva van a játékos. Szóval akár le is hagyható.
                new Float:Elete;
                GetPlayerHealth(playerid, Elete);
                if(Elete <= 30)
                {
                    print(\"Asd1\");
                    if(pInfo[playerid][serult] == false)
                    {
                            print(\"Asd2\");
                            cmd_me(playerid, \"összeesik\");
                            SetPlayerDrunkLevel(playerid, 6);
                                ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
                            SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
                            pInfo[playerid][serult]=true;
                            TogglePlayerControllable(playerid, false);
                        }
                        print(\"Asd3\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
                }
                print(\"Asd4\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
                return 1;
}

 
Na és ezen asdokból melyeket írja ki? Amúgy szerintem felesleges updatenél, elég timerrel, bár ki tudja... Jó itt is.


Amúgy lehet, hogy csak szimplán nem játssza le az animot. Tisztítsd a játékos animait, vagy indítsd el kétszer. Hátha. Amúgy ha nem az elágazásokkal van a baj, hanem egyszerûen nem játssza le, az asszem azért van, mert nem tölti be õket a játékos számára az anim könyvtárból, vagy valami ilyesmi... Áh, én ehhez nem értek :D

animba esés 30 hpnál
« Válasz #3 Dátum: 2014. április 19. - 21:42:40 »
0 Show voters
az elágazások jók:((
mert megkapom az üzenetet meg minden csak anim nincs:(((.
akkor meg próbálom tisztítani és úgy.
 

ClearAnimations(playerid);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);

 
igy is semmi:((
« Utoljára szerkesztve: 2014. április 19. - 21:46:30 írta kriszrap »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #4 Dátum: 2014. április 19. - 21:51:21 »
0 Show voters
Nálam pedig bejött. Dupla indítás? Azt is írtam. Csak mert amikor az alap anim fs-t használom, sokszor csak a második parancs beírásra indul az anim. Amúgy ezt azelõre  anim betöltõs dolgot még itt az egyik témában olvastam régebben, ha akarod, keresd ki, tuti megvan még valahol.

animba esés 30 hpnál
« Válasz #5 Dátum: 2014. április 19. - 21:55:30 »
0 Show voters
Szerek.:
igy sikerült:
 

if(Elete <= 30)
{
    SetPlayerDrunkLevel(playerid, 6);
      ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
    if(pInfo[playerid][serult] == false)
    {
       cmd_me(playerid, \"összeesik\");
       SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
       pInfo[playerid][serult]=true;
                TogglePlayerControllable(playerid, false);
   }
}

 
kis off melyik az az anim amikor terdel és fogja a hasát??
« Utoljára szerkesztve: 2014. április 19. - 22:15:30 írta kriszrap »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #6 Dátum: 2014. április 20. - 08:19:33 »
0 Show voters
1. Elõ kell tölteni mindig az animációs könyvtárakat, mielõtt animot használsz.
 

public OnPlayerConnect(playerid)
{
new AnimKonyvt[][] = //129 db van
{\"AIRPORT\",\"Attractors\",\"BAR\",\"BASEBALL\",\"BD_FIRE\" \"BEACH\",\"benchpress\",\"BF_injection\",\"BIKED\",\"BIKEH\",
\"BIKELEAP\",\"BIKES\",\"BIKEV\",\"BIKE_DBZ\",\"BLOWJOBZ\",\"BMX\",\"BOMBER\",\"BOX\",\"BSKTBALL\",\"BUDDY\",\"BUS\",\"CAMERA\",
\"CAR\",\"CARRY\",\"CAR_CHAT\",\"CASINO\",\"CHAINSAW\",\"CHOPPA\",\"CLOTHES\",\"COACH\",\"COLT45\",\"COP_AMBIENT\",\"COP_DVBYZ\",
\"CRACK\",\"CRIB\",\"DAM_JUMP\",\"DANCING\",\"DEALER\",\"DILDO\",\"DODGE\",\"DOZER\",\"DRIVEBYS\",\"FAT\",\"FIGHT_B\",\"FIGHT_C\",
\"FIGHT_D\",\"FIGHT_E\",\"FINALE\",\"FINALE2\",\"FLAME\",\"Flowers\",\"FOOD\",\"Freeweights\",\"GANGS\",\"GHANDS\",\"GHETTO_DB\",
\"goggles\",\"GRAFFITI\",\"GRAVEYARD\",\"GRENADE\",\"GYMNASIUM\",\"HAIRCUTS\",\"HEIST9\",\"INT_HOUSE\",\"INT_OFFICE\",
\"INT_SHOP\",\"JST_BUISNESS\",\"KART\",\"KISSING\",\"KNIFE\",\"LAPDAN1\",\"LAPDAN2\",\"LAPDAN3\",\"LOWRIDER\",\"MD_CHASE\",
\"MD_END\",\"MEDIC\",\"MISC\",\"MTB\",\"MUSCULAR\",\"NEVADA\",\"ON_LOOKERS\",\"OTB\",\"PARACHUTE\",\"PARK\",\"PAULNMAC\",\"ped\",
\"PLAYER_DVBYS\",\"PLAYIDLES\",\"POLICE\",\"POOL\",\"POOR\",\"PYTHON\",\"QUAD\",\"QUAD_DBZ\",\"RAPPING\",\"RIFLE\",\"RIOT\",
\"ROB_BANK\",\"ROCKET\",\"RUSTLER\",\"RYDER\",\"SCRATCHING\",\"SHAMAL\",\"SHOP\",\"SHOTGUN\",\"SILENCED\",\"SKATE\",\"SMOKING\",
\"SNIPER\",\"SPRAYCAN\",\"STRIP\",\"SUNBATHE\",\"SWAT\",\"SWEET\",\"SWIM\",\"SWORD\",\"TANK\",\"TATTOOS\",\"TEC\",\"TRAIN\",\"TRUCK\",
\"UZI\",\"VAN\",\"VENDING\",\"VORTEX\",\"WAYFARER\",\"WEAPONS\",\"WUZI\"};
for(new a = 0; a < 129; a++) ApplyAnimation(playerid, AnimKonyvt[a], \"null\", 0.0, 0, 0, 0, 0, 0);
}

 
2. OnPlayerUpdatenél kb. felesleges lesz annyiszor ellenõrizni, max HP állítás után, vagy valami ilyesmi. Bõven elég lenne OnPlayerTakeDamaget használni. Példa:
 

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(!IsPlayerConnected(playerid)) return 1; //Mondjuk ennek nem tudom, mi értelme van.
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete > 30) return 1
if(pInfo[playerid][serult] == true) return 1;
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.0, 1, 0, 0, 0, 0);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult] = true;
//Az animáció, amit beleraktam, elméletileg megakadályozza a felállást.
return 1;
}

 
Remélem nem rontottam el sokmindent, habár lehetséges, hogy a return 1-el való rövidítés itt bem lesz célravezetõ.
Mindenesetre sok szerencsét, további jó scriptelést! :thumbsup:
« Utoljára szerkesztve: 2014. április 20. - 16:06:43 írta KovaNovik »

animba esés 30 hpnál
« Válasz #7 Dátum: 2014. április 20. - 09:09:34 »
0 Show voters
animkonyvtárnál crashol :(( miért ?? tesztelnétek???
« Utoljára szerkesztve: 2014. április 20. - 22:37:08 írta kriszrap »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #8 Dátum: 2014. április 21. - 05:56:41 »
0 Show voters
A publicot még tegnap eléírtam, úgy jónak kell lennie.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #9 Dátum: 2014. április 21. - 11:51:51 »
+1 Show voters
Na, ez az az anim könyvtár töltögetõs cucc, amirõl beszéltem. Nem a callbackokon kívül kéne létrehozni egyszer az anim könyvtáras dolgot, majd connect alatt szimplán a ciklust használva nullázni õket a játékos számára?

animba esés 30 hpnál
« Válasz #10 Dátum: 2014. április 23. - 20:23:14 »
0 Show voters
siker köszönöm zárok:)

animba esés 30 hpnál
« Válasz #11 Dátum: 2014. április 19. - 21:30:22 »
0 Show voters
Sziasztok!
Valamiért a kodóm nem rakja animba:(((
 

public OnPlayerUpdate(playerid)
{
    if(IsPlayerConnected(playerid))
{
        new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete <= 30)
{
    if(pInfo[playerid][serult] == false)
    {
       cmd_me(playerid, \"összeesik\");
       SetPlayerDrunkLevel(playerid, 6);
                ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
       SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
       pInfo[playerid][serult]=true;
                TogglePlayerControllable(playerid, false);
   }
}
return 1;
}

 
Valamiért ha 30 nál van a hp nem rakja animba:((
Miért?

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #12 Dátum: 2014. április 19. - 21:36:35 »
0 Show voters
Talán mert a pInfo[playerid][serult] változónak mindig true értéke van.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
animba esés 30 hpnál
« Válasz #13 Dátum: 2014. április 19. - 21:37:52 »
0 Show voters
Itt csak egy elágazást látok, amely a 30 hp csekkolás és az animba esés közben van:
 
if(pInfo[playerid][serult] == false){

 
Egyáltalán elvégzi az ezen elágazás igaz ágán lévõ dolgokat? Mert ha nem, lehet, hogy ez a probléma. Csekkolhatod pl. egyszerû printes debuggal:
 
public OnPlayerUpdate(playerid)
{
        if(IsPlayerConnected(playerid))
        {
                print(\"Asd0\"); // Floodolni fogja, szóval nem fontos, elvégre csak-csak lefut idáig, ugyanis minden bizonnyal csatlakozva van a játékos. Szóval akár le is hagyható.
                new Float:Elete;
                GetPlayerHealth(playerid, Elete);
                if(Elete <= 30)
                {
                    print(\"Asd1\");
                    if(pInfo[playerid][serult] == false)
                    {
                            print(\"Asd2\");
                            cmd_me(playerid, \"összeesik\");
                            SetPlayerDrunkLevel(playerid, 6);
                                ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
                            SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
                            pInfo[playerid][serult]=true;
                            TogglePlayerControllable(playerid, false);
                        }
                        print(\"Asd3\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
                }
                print(\"Asd4\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
                return 1;
}

 
Na és ezen asdokból melyeket írja ki? Amúgy szerintem felesleges updatenél, elég timerrel, bár ki tudja... Jó itt is.


Amúgy lehet, hogy csak szimplán nem játssza le az animot. Tisztítsd a játékos animait, vagy indítsd el kétszer. Hátha. Amúgy ha nem az elágazásokkal van a baj, hanem egyszerûen nem játssza le, az asszem azért van, mert nem tölti be õket a játékos számára az anim könyvtárból, vagy valami ilyesmi... Áh, én ehhez nem értek :D

animba esés 30 hpnál
« Válasz #14 Dátum: 2014. április 19. - 21:42:40 »
0 Show voters
az elágazások jók:((
mert megkapom az üzenetet meg minden csak anim nincs:(((.
akkor meg próbálom tisztítani és úgy.
 

ClearAnimations(playerid);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);

 
igy is semmi:((
« Utoljára szerkesztve: 2014. április 19. - 21:46:30 írta kriszrap »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal