Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Jak utworzyć odbezpieczony granat?


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 Ossal

    Wszechwidzący

  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:263
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 20.01.2015 18:20

Pytanie proste: jak na wybranym originie utworzyć granat, który będzie odbezpieczony (około 2 sekundy do wybuchu)?
Jak nie można enta zrobić to na pewno da się to jakoś zastąpić (inicjując eksplozję w danym miejscu po danym czasie i z określonym rangem i dmg :)


Użytkownik Ossal edytował ten post 20.01.2015 18:24

  • +
  • -
  • 0

#2 radim

    Godlike

  • Moderator

Reputacja: 932
Master

  • Postów:2725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 20.01.2015 22:46

Tworzysz byt na danym miejscu (odpowiedni origin) i ustawiasz taska który po 2 sekundach utworzy efekt wybuchu, zada odpowiedni damage w określonej odległości od bytu i usunie ten byt z mapy.


  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#3 psilocybe

    Toasty!

  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 20.01.2015 23:19

Wszystko jest właściwie gotowe, a sposobów na pewno wiele.

 

Dokumentacja > engine :)

 

Prawie wszystko opisane. create_entity, tworzysz trigger_hurt, ustawiasz mu origin, rozmiar, dmg i w tym samym miejscu tworzysz sprite, message_const, TE_SPRITE, ścieżka do sprite'a wybuchu granatu i wszystko. :D

 

Edit:

 

Jeszcze łatwiej, tworzysz sprite w wybranym miejscu i używasz funkcji fakedamage :D


Użytkownik psilocybe edytował ten post 20.01.2015 23:21

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#4 Ossal

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:263
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 20.01.2015 23:25


Jak nie można enta zrobić to na pewno da się to jakoś zastąpić (inicjując eksplozję w danym miejscu po danym czasie i z określonym rangem i dmg

Radim napisałeś to co ja właściwie, ale ja chcę wiedzieć jak?
psilo czy trigger_hurt nie jest wszędzie takie samo? Granat zadaje dmg w zależności od odległości.

Wyraź się jaśniej, dopiero zaczynam enty :)
  • +
  • -
  • 0

#5 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 21.01.2015 01:21

Tu jest problem bo nie wiem czy silnik obsłuży sztucznie stworzony granat. Mozesz spróbować i po stworzeniu ustaw mu pev_think na 2.0 a jaki to byt to poszukaj pluginu od przyklejajacych sie granatow
  • +
  • -
  • 0

#6 psilocybe

    Toasty!

  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 21.01.2015 01:25

No tak, użyj Hamsandwich, znalazłem gotowy stock <ham> + <xs> ;)

stock HamRadiusDamage(ent, Float:radius, Float:damage, bits) 
{ 
    new target = -1, Float:origin[3] 
    pev(ent, pev_origin, origin) 
     
    while(( target = find_ent_in_sphere(target, origin, radius) )) 
    { 
        static Float:o[3] 
        pev(target, pev_origin, o) 
         
        xs_vec_sub(origin, o, o) 
         
        // Recheck if the entity is in radius 
        if (xs_vec_len(o) > radius) 
            continue 
         
        Ham_ExecDamageB(target, ent, pev(ent, pev_owner), damage * (xs_vec_len(o) / radius), HIT_GENERIC, bits) 
    } 
}  

Obliczna dmg na podstawie odległości od bytu zadającego obrażenia.

 

Zobacz też na kod pluginu Wybuchające Granaty czy coś w tym stylu, strzelałeś w leżący granat i on wybuchał, może coś znajdziesz w kodzie. ;)


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych