Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|

Aura na ziemi za pomoca sprites
#1
Napisano 08.09.2012 19:21
Może być także jakis tutorial
proszę o pomoc
#2
Gość_21977_*
#3
Napisano 09.09.2012 16:08
i trzeba do tego zrobic odnosnik ze sprite ?
public Aura(id) {
new origin[3]
get_user_origin(id, origin)
message_begin(MSG_ONE ,SVC_TEMPENTITY)
write_byte(TE_BEAMENTPOINT)
write_coord(id) // end position
write_coord(origin[0])
write_coord(origin[1])
write_short(sprite path) // sprite index
write_byte(0) // starting frame
write_byte(0) // frame rate in 0.1's write_byte(100) // life in 0.1's
write_byte(10) // line width in 0.1's
write_byte(10) // noise amplitude in 0.01's
write_byte(0) // Red write_byte(0) // Green
write_byte(255) // Blue
write_byte(127) // brightness
write_byte(0) // scroll speed in 0.1's
message_end()
#4
Napisano 09.09.2012 16:14
write_short(sprite path) // sprite index
to jest to index zwracany przez
precache_model("sciezka")
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
#5
Gość_21977_*
Napisano 09.09.2012 16:49
Żeby użyć jakiegoś sprite`a, musisz go najpierw precache`ować, np. poprzez funkcję precache_model

Bardzo prostym do zrozumienia przykładem będzie plugin Death skull by DarkGL, który wyświetla czaszkę jako sprite
w miejscu zabitego gracza. Ta z kolei wcześniej została precache`owana. Kod jest naprawdę przystępny, krótki i łatwy do zrozumienia.
#6
Napisano 09.09.2012 17:17
Zrobilem wszystko według waszych porad
Macie po +
Oczy wiscie macie po plusie jednakże mam kolejne pytanie z tym wiążące
jak dodac tak aure tylko dla wybranej klasy
i czy nie powinienen czasem zrobić jeszcze taska do niej?
#7
Napisano 10.09.2012 13:33
#8
Gość_21977_*
Napisano 10.09.2012 13:35
#9
Napisano 10.09.2012 13:54
sporo pozmieniałem i dodałem parę funkcji jednakże mam nadzieje ze nie zrobiłem zbyt dużych błędów
Dodaje cod bez dodania ostanie funkcji aury ponieważ mam z nią problemy licze na jakąś pomoc


Użytkownik benio101 edytował ten post 10.09.2012 14:12
#10
Gość_21977_*
Napisano 10.09.2012 14:27
public Smierc()Zacznijmy od tego, że nie jesteś pewien, że attacker żyje, ba! nie wiesz nawet, czy jest to gracz.
{
new attacker = read_data( 1 );
if(player_class[attacker] == 0)
return PLUGIN_CONTINUE
new headshot = read_data( 3 )
new weaponname[20]
read_data(4,weaponname,31)
//Jaka bron została użyta
new clip, ammo,
weapon = get_user_weapon(attacker,clip,ammo);
player_exp[attacker] += get_pcvar_num(jb_normal)
if(headshot)
player_exp[attacker] += get_pcvar_num(jb_hs)
if(weapon == CSW_KNIFE)
player_exp[attacker] += get_pcvar_num(jb_sword)
while(player_exp[attacker] >= Poziomy[player_lvl[attacker]])
{
client_print(attacker, print_chat, "[Final Fantasy] Gratulacje! Uzyskales poziom i jestes teraz na poziomie %i postaci %s!", player_lvl[attacker],modetext[_:player_class[attacker]])
client_cmd(attacker, "mp3 play sound/final/lvlup")
player_lvl[attacker] += 1
}
// Pokazujemy jego poziom w HUDzie
return PLUGIN_HANDLED;
}
Może to być równie dobrze byt o id=200, co będzie powodowało błąd wywołany próbą odniesienia się do player_class[200] podczas, gdy tablica ma tylko 33 komórki.
Proponuję dodać zmienną globalną
new gMaxPlayers;i przypisać jej maksymalną liczbę graczy na serwerze
plugin_cfg(){oraz przekształcić pierwszy warunek na
gMaxPlayers=get_maxplayers();
}
if(!attacker || attacker>gMaxPlayers || !is_user_alive(id) || player_class[attacker] == 0)Tak samo wszędzie, gdzie jest taka potrzeba, sprawdzaj, czy gracz żyje, w RoundStart dajesz przedmioty graczom, których może nie być na serwerze, a ponadto nie wiadomo, czy są żywi, a dodanie przedmiotu trupom może sypać Ci błędami.
return PLUGIN_CONTINUE
BTW. Jakiej klasie chcesz dodawać aurę i kiedy?
#11
Napisano 10.09.2012 14:35
Co do globalnej zmienie zgodnie z poradą
Z roundstartem spróbuje pozmieniać aby sprawdzało czy gracz żyje
#12
Gość_21977_*
Napisano 10.09.2012 14:58
#13
Napisano 10.09.2012 15:08
Aura miała by działać na klawiszu v oraz jeśli możesz
Podał mi jakiś tutorial jak zrobić by aura np dodawała życie lub odbierała
#14
Napisano 11.09.2012 18:58
Benio pomożesz?

#15
Napisano 12.09.2012 17:55
register_clcmd("ultimate", "UseSkill");
register_clcmd("say /bind", "BindKeys");
na sam dol daj
pulbic UseSkill(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;
if(player_class[id] == Knight)
{
Aura(id);
//jakas funkcja dla klasy Knight (po uzyciu aury)
}
return PLUGIN_HANDLED;
}
public BindKeys(id)
{
client_cmd(id, "bind v ultimate");
return PLUGIN_HANDLED;
}
dodaj jeszcze gdzies funkcje Aura(id), skonfigurowac mozesz sobie ją jak tylko chcesz
Jeśli chodzi o dodawanie / odejmowanie życia to użyj
set_user_health(id, get_user_health(id)+5) //dodaje 5hp
set_user_health(id, get_user_health(id)-5) //odejmuje 5hp
wiecej o funkcjach get_user_health i set_user_health mozesz sie dowiedziec uzywajac dokumentacji, natomiast jesli chcialbys zadawac obrazenia, to juz nie co inna bajka

A i dokładnie określ kto ma tracić/dostawac życie, bo jeżeli dodasz to co dalem do publica UseSKill zaraz pod Aura(id) to gracz ktory uzyje aury straci/dostanie 5hp
#16
Napisano 12.09.2012 19:55
Co do odbioru zycia chciałem zrobic to dla innej klasy

Plus leci ale jeśli już tu zaglądłeś to możesz mi dać kode na aure migającą ?
proszę
#17
Napisano 14.09.2012 13:17
#18
Napisano 14.09.2012 14:03
Aura za pomoca sprite ma sie pojawiac pod nogami gracza kolor niebieski i mogła pulsowac lub byc stała
#20
Napisano 18.09.2012 06:19
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych