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: 1Mark6 - 2016. Augusztus 31. - 21:06:45

Cím: Knife Kill probléma!
Írta: 1Mark6 - 2016. Augusztus 31. - 21:06:45
Sziasztok !
Arra lennék kíváncsi, hogy a hátból nyakon szúrós, késelést, valahogyan ki lehet e küszöbölni?
Gondolom mindenki ismeri, amikor valakinek a hátához megyünk, és jobb klikket tolunk késsel, akkor letudjuk szúrni, és instant meghal, erre van valami megoldás? RP szerverre akarok kés-t berakni, de így nem a legalkamasabb :D
Ötletek?
Cím: Knife Kill probléma!
Írta: Flash - 2016. Augusztus 31. - 22:37:47
Tiltsd le magát a fegyvert. :) A nem annyira baráti megoldás meg hogy ciklussal tudod egy nagyon gyors timer alatt lekérdezni hogy abban az animcáióban van-e (ha ilyen van) és akkor clearanimations, vagy ha valaki közelében van és van nála kés.
Cím: Knife Kill probléma!
Írta: MonKey - 2016. Augusztus 31. - 23:57:51
Idézetet írta: Flαsн date=1472675867\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62942\" data-ipsquote-contentclass=\"forums_Topic
A nem annyira baráti megoldás meg hogy ciklussal tudod egy nagyon gyors timer alatt lekérdezni hogy abban az animcáióban van-e (ha ilyen van) és akkor clearanimations, vagy ha valaki közelében van és van nála kés.
 
Hát igen a \"gyors timer\" hez azért gép is kell:)
Én is azt ajánlom tiltsd le a fegyvert (Nem mintha én többet tudnék mint Flash) :)
Cím: Knife Kill probléma!
Írta: blackdog476 - 2016. Szeptember 01. - 11:46:18
vagy ha megöli, és kés volt a reason akkor újraéleszti a playert és odateleportálja a killeridhez
Cím: Knife Kill probléma!
Írta: 1Mark6 - 2016. Szeptember 01. - 14:06:12
Valami olyan elképzelés nincs, hogy ha le is fut ez az anim a HP-t ne vegye le?
Cím: Knife Kill probléma!
Írta: blackdog476 - 2016. Szeptember 01. - 14:09:12
Idézetet írta: 1Mark6 date=1472731572\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62942\" data-ipsquote-contentclass=\"forums_Topic
Valami olyan elképzelés nincs, hogy ha le is fut ez az anim a HP-t ne vegye le?
 
olyat nem lehet csinálni, hogy ne vegye le a hpt, csak olyat, hogy miután levette, töltse vissza. tehát x mpnként lemented a player hpját, és akkor minden fasza lesz, mert onnan vissza tudod keresni. Pl indítasz egy timert és beleírod hogy ha nem halott a player (erre is lehet változót állítani) akkor elmentse változóba a player hpt. ha meghal, akkor beállítod hogy de, igen is halott a player, és ha a reason = kés akkor visszaadod neki a hpt változóból. nem tudom hogy ebből mit lehetett megérteni, valószínűleg semmit, de legalább jó volt csattogtatni a billentyűzetet. :D
Cím: Knife Kill probléma!
Írta: Flash - 2016. Szeptember 01. - 14:11:36
http://forum.sa-mp.com/showthread.php?t=402756
Ez alapján megtudod oldani. OnPlayerKeyStateChgane alatti resznel keresd.
Cím: Knife Kill probléma!
Írta: penaut - 2016. Szeptember 01. - 20:59:31
Én úgy csinálnám, hogy amikor a játékos előveszi a kést /kés paranccsal pl akkor egy objectet tesz bele a kezébe és megnöveli a sebzést a kés sebzésére. Alapjáratban is kb. ugyanúgy ütsz mintha késelnél.
Cím: Knife Kill probléma!
Írta: Basshunter - 2016. Szeptember 14. - 19:45:42
Nah, nem garantálom h működik mert nem teszteltem le... a lényeg az, h ugye a jobb gomb indítja el ezt a műveletet, a scriptem leellenőrzi, h az meg lett-e nyomva (vagyis az a gomb,ami épp be van állítva ha minden igaz) és ha a megnyomás után 5 mpen belül az adott animot hajtja végre a playered akk valszeg azt csinálja amire gondolsz :) lövésem sincs melyik anim az próbáld ki mellékeltem egy listát :D Sok sikert!
 
#include <a_samp>
// Sztem vmelyik ezek közül: https://wiki.sa-mp.com/wiki/Animations#KNIFE :D
#define BLOCKED_KNIFE_ANIMATION \"mittudomén\"
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
// ahogy nézem KEY_HANDBRAKE néven van definiálva de ha minden igaz ez a jobb egérgomb vagy az a gomb amivel a késelést csinálják hátulról
if (newkeys & 128) SetPVarInt(playerid, \"KeyAimPressed\", GetTickCount());
return 1;
}
public OnPlayerUpdate(playerid)
{
// ellenőrzi h 5 másodpercen belül volt-e megnyomva a gomb
    // ha igen és ha az animáció neve megegyezik a tiltott animáció nevével akk leállítjuk az animációt
if (GetTickCount() - GetPVarInt(playerid, \"KeyAimPressed\") < 5000)
{
new animlib[32], animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
if (strcmp(BLOCKED_KNIFE_ANIMATION, animname) == 0)
{
    ClearAnimations(playerid, 1);
}
}
return 1;
}