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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: [sdc]skyline - 2014. január 26. - 23:12:45

Cím: Kapaszkodás lekérdezése
Írta: [sdc]skyline - 2014. január 26. - 23:12:45
Sziasztok!
Azt szeretném megkérdezni, hogy a \"CLIMB_IDLE\" animot hogy lehetne lekérdezni?
És ha azt az animot csinálja vagyis kapaszkodik valahova, akkor pl.: írjon ki egy szöveget (Ezt csak azért írtam ide, hogy nagyjából tudjátok mit szeretnék.)
Ezzel a kóddal, meg ezzel az átalakításával is próbálkoztam, de nem sikerült:..
 
public OnPlayerUpdate(playerid)
{
    if(GetPlayerAnimationIndex(playerid))
    {
        new animlib[32];
        new animname[32];
        new msg[128];
        GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
        format(msg, 128, \"Futó animáció: %s %s\", animlib, animname);
        SendClientMessage(playerid, 0xFFFFFFFF, msg);
    }
    return 1;
}

 
Elõre is köszönöm a segítséget!
Cím: Kapaszkodás lekérdezése
Írta: BoOy - 2014. január 27. - 00:26:53
Szia. Elsõnek is keresd meg az animáció nevét a leírt szkripted alapján (felmész a szerverre felkapaszkodsz valamire és kiírja a nevét.). Ezt úgy kell megoldani, ellenõrzöd hogy a kapaszkodó animáció neve egyezik-e a lekérdezés pillanatában. Tehát ha fut a játékos akkor nem fogja kiírni, de ha kapaszkodik akkor kiírja.
 
public OnPlayerUpdate(playerid)
{
    if(GetPlayerAnimationIndex(playerid))
    {
        new animlib[32],animname[32];
        GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
        if(!strcmp(\"kapaszkodó animáció neve\", animname, true)) SendClientMessage(playerid,-1,\"Te most kapaszkodsz. (Flood roham) \");
    }
    return 1;
}
Cím: Kapaszkodás lekérdezése
Írta: [sdc]skyline - 2014. január 27. - 00:28:31
Az anim nevét tudom az a \'CLIMB_IDLE\'.
A scriptet, megnézem majd olyan délután fele, köszönöm szépen.
Cím: Kapaszkodás lekérdezése
Írta: BoOy - 2014. január 27. - 00:31:07
Akkor módosítottam is a szkriptet. Tessék:
 
public OnPlayerUpdate(playerid)
{
    if(GetPlayerAnimationIndex(playerid))
    {
        new animlib[32],animname[32];
        GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
        if(!strcmp(\"CLIMB_IDLE\", animname, true)) SendClientMessage(playerid,-1,\"Te most kapaszkodsz. (Flood roham) \");
    }
    return 1;
}
Cím: Kapaszkodás lekérdezése
Írta: Kovacs_Richard - 2014. január 27. - 07:55:00
szerintem felesleges ez a string ellenõrzés...
 
if(GetPlayerAnimationIndex(playerid) == ANIMÁCIÓ_ID)

 
ez nem terhel annyit, fõleg OnPlayerUpdate alatt egy ilyen \"spórolás\" nagyon sokat számít!
inkább ezt ajánlom :)
Cím: Kapaszkodás lekérdezése
Írta: [sdc]skyline - 2014. január 27. - 09:17:52
Idézetet írta: Kovacs_Richard date=1390805700\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46092\" data-ipsquote-contentclass=\"forums_Topic
szerintem felesleges ez a string ellenõrzés...
 
if(GetPlayerAnimationIndex(playerid) == ANIMÁCIÓ_ID)

 
ez nem terhel annyit, fõleg OnPlayerUpdate alatt egy ilyen \"spórolás\" nagyon sokat számít!
inkább ezt ajánlom :)
 
Richard: nem tudom miért, de a tied nekem valoamiért erroros, próbáltam \" jelek közé tenni, akkor is errort ír próbáltam anélkül akkor is.
BoOy:
A tied az tökéletesen mûködik köszönöm!
E: még nyitva hagyom témát Richard hátha tud olyan kodót adni ami sporólás képpen jó.
Cím: Kapaszkodás lekérdezése
Írta: Kovacs_Richard - 2014. január 27. - 09:49:40
az ANIMÁCIÓ_ID-t átírtad az ID-ra? :) (pl.: 1234)
ehhez 1. meg kell tudnod az anim ID-t, mint ahogy a stringhez tudod a nevet ide az ID-ja kell
 
if(!strcmp(\"CLIMB_IDLE\", animname, true)) { format(animname,sizeof(animname),\"ID: %d\",GetPlayerAnimationIndex(playerid)); }
Cím: Kapaszkodás lekérdezése
Írta: [sdc]skyline - 2014. január 27. - 10:19:22
Ja, hogy az ID -t kellet, elnézést én néztem félre. Tökéletesen mûködik köszönöm, neked is megy a +!