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
Plugin.sma 14,68 KB 51 Ilość pobrań
Plugin.amxx
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 nie tej samej "przerpraszam jeśli żle przedstawiłem zarys"
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