GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: Epsilon - 2011. június 29. - 14:33:45

Cím: Anims preloader
Írta: Epsilon - 2011. június 29. - 14:33:45
Sokatok problémát okozhatott már, hogy alkalmanként egy animáció nem játszódott le, vagy csak második próbálkozásra.
Ez azért van, mert minden animációs könyvtárat használat elõtt be kell tölteni.
Az alábbi szkriptem ezt hivatott megtenni; Betölti õket egyszer, az elsõ spawn folyamán.
Figyelmeztetés: Ez nem egy animációs szkript, ez csupán \'kijavítja\' az animációkat. Ha más animációs szkriptet használsz (kiv. actions vagy seifanim), érdemes ezt is használd a fent körülírt probléma elkerülésére.
 


Szkript
Forrás
anim_preloader.amx   

 
anim_preloader.pwn   


[dload]
Cím: Anims preloader
Írta: jana4 - 2011. június 29. - 14:56:37
Jó szkript, rá sem jöttem volna, hogy elõtte bekell tölteni az animációs könyvtárat. ;)
Cím: Anims preloader
Írta: Koncz_Norbert - 2011. június 29. - 16:58:50
Nem vagyok nagy angolos, de mi az hogy preloader? Nem inkább Reloader (Újratöltõ) ?
De ezt imádtam.
#include a_samp

 Minden eddigi publikált szkriptjeiben
#include <a_samp>

 volt. Ahogy én jöttem elõsször ezzel akkor mindenki folytatJAVÁRJ!! :laugh:
Am asszem ezt lehet változómentesen is.
Cím: Anims preloader
Írta: Epsilon - 2011. június 29. - 17:07:54
re - újra  (f.e. restart)
pre - elõre (f.e prepackaged food)

 
Ki kell, hogy ábrándítsalak tovább azt illetõen is, hogy tõled vette át mindenki.
Csak akkor használom a < >-s megoldást, ha a new.pwn bõl szerkesztem a szkriptet, más különben nem szoktam ilyen apróságokkal foglalkozni.
Cím: Anims preloader
Írta: Popec16 - 2011. június 29. - 23:49:36
Nos ügyes kis script a forrást áttekintve , ügyes vagy és ez is méltó a többi munkád mellé! ;)
Ügyes vagy írhatsz magadnak még egy piros pontot!!
Cím: Anims preloader
Írta: Zsolesszka - 2011. június 30. - 17:13:59
Szép.
Egy kérdés.
OnPlayerConnectnél nem jó betölteni az animációs könyvtárakat?
Cím: Anims preloader
Írta: Epsilon - 2011. június 30. - 17:38:33
Mikor felcsatlakozol egy szerverre, a karaktered csak utána kezd betölteni, tehát gyengébb gépeknél akadhatnak malõrök, de biztosat, csak egy teszt tudna mutatni.
Cím: Anims preloader
Írta: instant - 2011. június 30. - 20:34:03
szép munka Epsilon bácsi :P
Cím: Anims preloader
Írta: Zsolesszka - 2011. július 03. - 19:59:21
Remélem nem gond de írtam én is egy változatot sõt nemsokára kész a másik változat is ahol csak az anim library nevek kerülnek lekérdezésre.
Csak azért írtam hogy ilyen megoldás is van, meg hogy elfoglaljam magam valamivel.  :angel:
De így észre vettem hogy 131 animációs könyvtár van, hacsak a kódban nincs valami hibás rész.
Elsõ változat:
[pawn]
public
OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) return 1; // Én kizártam innen az NPC-ket de lehet nekik se árt ez aki úgy gondolja törli ezt a sort.
if(!GetPVarType(playerid, \"anims_loaded\"))
{
   SetPVarInt(playerid, \"anims_loaded\", 1);
   new
      animlib[32],
      checkanimlib[32],
      count; // Anim library számláló
   checkanimlib = \"Csak azért hogy\"; // ne legyen üres mert akkor az strcmp nem azt az eredményt adja vissza amit kell.
   for(new i = 1; i < 1812; i++)
   {
      if(!GetAnimationName(i, animlib, 32, \"\", 0))continue;
      if(strcmp(animlib, checkanimlib) != 0)
      {
         count++;
//            printf(\" %s \", animlib); // Debug
         ApplyAnimation(playerid, animlib, \"null\", 0.0, 0, 0, 0, 0, 0);
      }
      format(checkanimlib, 32, \"%s\", animlib);      
   }
   printf(\"%d, animlibrary preloaded succesfully.\", count); // Debug jellegû üzenet
}
return 1;
}
[/pawn]
Második változat:
[pawn]
public
OnPlayerSpawn(playerid)
{
static
   GetAnimLibraryIndex[ ] =
{
   1, 2, 5, 17, 28, 41, 46, 53, 57, 76,
   94, 103, 123, 141, 145, 163, 169, 179, 220, 225,
   234, 248, 259, 266, 287, 312, 323, 341, 354, 360,
   367, 379, 383, 393, 398, 403, 416, 423, 432, 436,
   446, 454, 472, 482, 494, 504, 508, 524, 532, 533,
   536, 569, 578, 611, 631, 638, 639, 641, 644, 647,
   671, 684, 694, 704, 714, 722, 726, 730, 745, 761,
   763, 765, 767, 806, 831, 839, 840, 881, 899, 916,
   918, 947, 958, 980, 983, 995, 1289, 1293, 1298, 1308,
   1329, 1331, 1336, 1353, 1357, 1365, 1370, 1377, 1382, 1387,
   1392, 1408, 1420, 1424, 1449, 1452, 1456, 1459, 1467, 1468,
   1470, 1490, 1508, 1531, 1538, 1545, 1555, 1561, 1618, 1622,
   1626, 1643, 1648, 1656, 1662, 1666, 1684, 1701, 1713, 1746,
   1779
};
if(IsPlayerNPC(playerid)) return 1;
if(!GetPVarType(playerid, \"anims_loaded\"))
{
   SetPVarInt(playerid, \"anims_loaded\", 1);
   new
      animlib[32],
      count;
   for(new i; i < sizeof GetAnimLibraryIndex; i++)
   {
      if(!GetAnimationName(GetAnimLibraryIndex, animlib, 32, \"\", 0)) continue;

      count++;


//         printf(\" %s \", animlib); // Debug


      ApplyAnimation(playerid, animlib, \"null\", 0.0, 0, 0, 0, 0, 0);


   }


   printf(\"%d, animlibrary preloaded succesfully.\", count); // Debug jellegû üzenet


}


return 1;


}


[/pawn]


El is készült a második változat.  :D
Cím: Anims preloader
Írta: Epsilon - 2011. július 05. - 23:01:09
Idézetet írta: Zsolesszka date=1309715961\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9255\" data-ipsquote-contentclass=\"forums_Topic
Remélem nem gond de írtam én is egy változatot sõt nemsokára kész a másik változat is ahol csak az anim library nevek kerülnek lekérdezésre.
Csak azért írtam hogy ilyen megoldás is van, meg hogy elfoglaljam magam valamivel.  :angel:
De így észre vettem hogy 131 animációs könyvtár van, hacsak a kódban nincs valami hibás rész.
Elsõ változat:
[pawn]
[/pawn]
Második változat:
[pawn]
[/pawn]
El is készült a második változat.  :D
 
Jól van, ezzel überelsz.  :(
 

\"I5Ch4.png\"
 
Tulajdonképpen csak bonyolítottál és az nem jó.
Mivel újabb funkciókat használtál - sztem feleslegesen -, lassítottad, emellett azt sem értem miért számoltatod meg vele minden alkalommal. Te egyszer,  a szkript megírásakor megszámolod, és kész. Nincs olyan sok.
 

Az nem felvételrõl menõ NJK-knak is ugyanúgy \'elõre be kell tölteni\' az animációs könyvtárakat.
Cím: Anims preloader
Írta: Zsolesszka - 2011. július 05. - 23:28:40
;D
A számoltatás csak azért van hogy lásd azt, hogy a scriptedben 129 animációs könyvtár név van míg ezek 131-et töltenek be tehát a scriptedbõl kettõ hiányzik nem tudom melyek azok nem néztem. De azt viszont észre vettem így, hogy 0.3c R2-ben cenzurázva lett egy anim könyvtár, ami így nem kerül lefuttatásra, (tehát akkor 132 lenne jelenleg?) amit ezek a funkciók nem jelenítenek meg: GetAnimationName GetPlayerAnimationIndex  :-[ (Amúgy arra hasznos még a postolt kód hogy szépen kiírassuk az összeset egy fájlba vagy a server_log-ba, akár szépen vesszõvel elválasztva. 
Cím: Anims preloader
Írta: palesz_88 - 2011. augusztus 09. - 16:28:10
Ha connecthez teszem be, akkor a skinválasztóban betölti az animációt az elsõ skinnek?
Cím: Anims preloader
Írta: Epsilon - 2011. augusztus 09. - 21:15:41
Idézetet írta: Epsilon date=1309448313\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9255\" data-ipsquote-contentclass=\"forums_Topic
Mikor felcsatlakozol egy szerverre, a karaktered csak utána kezd betölteni, tehát gyengébb gépeknél akadhatnak malõrök, de biztosat, csak egy teszt tudna mutatni.
 
Cím: Anims preloader
Írta: KeRteStaRz - 2011. augusztus 17. - 10:13:31
jo lett grt!