←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Aura na ziemi za pomoca sprites

Nightmare * - zdjęcie Nightmare * 08.09.2012

Witam czy może mi ktoś napisać jak lub podać kod do stworzenia aury pod nogami za pomoca sprites tak jak w warcrafcie
Może być także jakis tutorial
proszę o pomoc
Odpowiedz

Gość_21977_* 09.09.2012

Być może zaciekawi Cię lektura tego tematu lub tej wiki.
Odpowiedz

Nightmare * - zdjęcie Nightmare * 09.09.2012

Przykładowo nap coś takiego
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()
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 09.09.2012

Jeżeli chodzi ci o

write_short(sprite path) // sprite index


to jest to index zwracany przez
precache_model("sciezka")
Odpowiedz

Gość_21977_* 09.09.2012

K!113r dobrze pisze.

Ż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.
Odpowiedz

Nightmare * - zdjęcie Nightmare * 09.09.2012

Ok wszystko zrozumiałem
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?
Odpowiedz

Nightmare * - zdjęcie Nightmare * 10.09.2012

Mam także problem ponieważ dodaje register_event i potem wszystko zaczyna szalec leca same errory
Odpowiedz

Gość_21977_* 10.09.2012

Przydałby się troszkę pełniejszy kod, żeby móc lepiej się temu przyjrzeć.
Odpowiedz

Nightmare * - zdjęcie Nightmare * 10.09.2012

Ok oto cały kod moda
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

Załączony plik  Plugin.sma   14,68 KB   51 Ilość pobrań
(10.09.2012 14:13):
Kod w postach (np. źródło pluginu) umieszczaj w odpowiednich tagach (code/php/spoiler itp), a powyżej 200 linijek tylko w załączniku lub na wklejce.

Użytkownik benio101 edytował ten post 10.09.2012 14:12
Odpowiedz

Gość_21977_* 10.09.2012

public Smierc()
{
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;
}
Zacznijmy od tego, że nie jesteś pewien, że attacker żyje, ba! nie wiesz nawet, czy jest to gracz.
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(){
gMaxPlayers=get_maxplayers();
}
oraz przekształcić pierwszy warunek na
if(!attacker || attacker>gMaxPlayers || !is_user_alive(id) || player_class[attacker] == 0)
return PLUGIN_CONTINUE
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.

BTW. Jakiej klasie chcesz dodawać aurę i kiedy?
Odpowiedz

Nightmare * - zdjęcie Nightmare * 10.09.2012

Aura miała by być na pierwsze klasie czyli Knight
Co do globalnej zmienie zgodnie z poradą
Z roundstartem spróbuje pozmieniać aby sprawdzało czy gracz żyje
Odpowiedz

Gość_21977_* 10.09.2012

Może inaczej: czy aura ma się świecić non-stop na graczu z klasą Knight czy tylko w wybranych momentach / eventach?
Odpowiedz

Nightmare * - zdjęcie Nightmare * 10.09.2012

Zdradze ci moje zamierzenie chciałem zrobić aurę najlepiej jeżeli można żeby była migająca jeśli jednak i także zadowolę się zwykłą
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
Odpowiedz

Nightmare * - zdjęcie Nightmare * 11.09.2012

Ref
Benio pomożesz? :D
Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 12.09.2012

do plugin_init dodaj
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
Odpowiedz

Nightmare * - zdjęcie Nightmare * 12.09.2012

Don the proo chodzi o to ze jak ktos ma klase Knight to ma regeneracje zycia
Co do odbioru zycia chciałem zrobic to dla innej klasy :P 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ę
Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 14.09.2012

aura to dla mnie przynajmniej zbyt dużę pojęcie, moze dodaj jaki ma miec kolor, gdzie ta aura ma sie znajdowac i jak dokladnie wyglądać
Odpowiedz

Nightmare * - zdjęcie Nightmare * 14.09.2012

Daje szczegółowo
Aura za pomoca sprite ma sie pojawiac pod nogami gracza kolor niebieski i mogła pulsowac lub byc stała
Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 17.09.2012

a jak dlugo ma trwac ???
Odpowiedz

Nightmare * - zdjęcie Nightmare * 18.09.2012

góra 20 sekund
Odpowiedz