Skocz do zawartości

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
CoD Nowy

Podpalenie

cod nowy

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

#1 Crew

    Zaawansowany

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:114
  • GG:
  • Imię:Marcin
  • Lokalizacja:Elbląg
Offline

Napisano 04.02.2012 22:10

Dodalem klasie podpalenie z itemu polanace naboje - moglby ktos mi zrobic aby potpalenie bylo 1/5?

/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <xs>
#define MAX 32
new sprite_fire,
sprite_smoke;

new bool:ma_klase[MAX+1] ,wartosc_perku[MAX+1], palenie_gracza[MAX+1];
new const nazwa[] = "Pyro";
new const opis[] = "Masz 1/5 aby podpalic gracza (podpalenie zabiera 25hp)";
new const bronie = 1<<CSW_XM1014 | 1<<CSW_DEAGLE;
new const zdrowie = 10;
new const kondycja = 15;
new const inteligencja = 0;
new const wytrzymalosc = 20;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("Damage", "Damage", "b", "2!=0");
}
public plugin_precache()
{
sprite_fire = precache_model("sprites/fire.spr")
sprite_smoke = precache_model("sprites/steam1.spr")
}
public cod_class_enabled(id, wartosc)
{
wartosc_perku[id] = wartosc;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public Damage(id)
{
new attacker = get_user_attacker(id);
if(!is_user_alive(attacker))
  return PLUGIN_CONTINUE;

if(ma_klase[attacker] && random_num(1, wartosc_perku[attacker]) == 1)
{
  if(task_exists(id+2936))
   remove_task(id+2936);
  palenie_gracza[id] = 25;
  new data[2]
  data[0] = id
  data[1] = attacker
  set_task(0.2, "burning_flame", id+2936, data, 2, "b");
}
return PLUGIN_CONTINUE;
}
public burning_flame(data[2])
{
new id = data[0]

if(!is_user_alive(id))
{
  palenie_gracza[id] = 0
  remove_task(id+2936);
  return PLUGIN_CONTINUE;
}

new origin[3], flags = pev(id, pev_flags)
get_user_origin(id, origin)

if(flags & FL_INWATER || palenie_gracza[id] < 1 || !get_user_health(id))
{
  message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
  write_byte(TE_SMOKE)
  write_coord(origin[0])
  write_coord(origin[1])
  write_coord(origin[2]-50)
  write_short(sprite_smoke)
  write_byte(random_num(15,20))
  write_byte(random_num(10,20))
  message_end()

  remove_task(id+2936);
  return PLUGIN_CONTINUE;
}

if(flags & FL_ONGROUND)
{
  static Float:velocity[3]
  pev(id, pev_velocity, velocity)
  xs_vec_mul_scalar(velocity, 0.5, velocity)
  set_pev(id, pev_velocity, velocity)
}
cod_inflict_damage(data[1], id, 1.0, 0.0, 0, 1<<24);

message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5,5))
write_coord(origin[1]+random_num(-5,5))
write_coord(origin[2]+random_num(-10,10))
write_short(sprite_fire)
write_byte(5)
write_byte(200)
message_end()

palenie_gracza[id]--
return PLUGIN_CONTINUE;
}

  • +
  • -
  • 0

#2 Artemis

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Piotr
  • Lokalizacja:Sanok
Offline

Napisano 04.02.2012 22:21

spróbuj tą linijke:
if(ma_klase[attacker] && random_num(1, wartosc_perku[attacker]) == 1)
zastąpić tak :
if(ma_klase[attacker] && random_num(1,5, wartosc_perku[attacker]) == 1)

jestem początkujący, ale to byłaby moja pierwsza próba ...
zobacz czy zadziała i ospisz.
  • +
  • -
  • 0

#3 Crew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:114
  • GG:
  • Imię:Marcin
  • Lokalizacja:Elbląg
Offline

Napisano 04.02.2012 22:23

to tak chyba nie zadziala
  • +
  • -
  • 0

#4 fbang

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:237
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 04.02.2012 22:56

if(ma_klase[attacker] && random_num(1,5) == 1)

i tyle:D

Użytkownik fbang edytował ten post 04.02.2012 22:56

  • +
  • -
  • 1

#5 Crew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:114
  • GG:
  • Imię:Marcin
  • Lokalizacja:Elbląg
Offline

Napisano 04.02.2012 23:01

a jak zrobic zeby zadwal wiecej z podpalenia wraz ze wzrostem inteligencji?
  • +
  • -
  • 0

#6 Artemis

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Piotr
  • Lokalizacja:Sanok
Offline

Napisano 04.02.2012 23:13

masz to automatycznie, 1 int to 1 dmg o ile się nie mylę :)

Liczę na plusa
Ojciec Dyrektor (05.02.2012 00:06):
Upraszanie się o punkty reputacji jest niemile widziane a w konsekwencji może zostać nagrodzone ujemnymi punktami lub ostrzeżeniem.

  • +
  • -
  • 0

#7 Crew

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:114
  • GG:
  • Imię:Marcin
  • Lokalizacja:Elbląg
Offline

Napisano 05.02.2012 00:18

up. mylisz sie
  • +
  • -
  • 0

#8 Artemis

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Piotr
  • Lokalizacja:Sanok
Offline

Napisano 05.02.2012 00:45

cod_inflict_damage(data[1], id, 1.0, 0.0, 0, 1<<24);
po przejrzeniu kilku plików .sma zauważyłem, że w każdym jest coś takiego :
if(weapon == CSW_AWP)
cod_inflict_damage(idattacker, this, damage*0.5, 0.5, idinflictor, damagebits);
w drugim:
cod_inflict_damage(id, pid, 75.0, 0.7);

więc sądzę, że powinnać wybrać sobie liczbę tutaj:

cod_inflict_damage(data[1], id, 1.0, tutaj wstaw liczbę , 0, 1<<24);
np. jeżeli chcesz aby 1 int dodawał 1 dmg to:
cod_inflict_damage(data[1], id, 1.0, 1.0, 0, 1<<24);
jeżeli chcesz , żeby 1 int dodawał 0,7 dmg to :
cod_inflict_damage(data[1], id, 1.0, 0.7, 0, 1<<24);

Wywnioskowałem, że to powinno być odpowiedzialne za dmg + int
cod_inflict_damage(data[1], id, 1.0(tutaj masz 1x25 dmg), 0.0(tutaj masz ile ma dodawać dmg za 1 int), 0 (tutaj nie wiem), 1<<24)( to też nie wiem, chociaż jest takie samo to natychmiastowego zabicia z HE );

myślę, że teraz jest poprawnie i liczę, że pomogłem.

Użytkownik Artemis edytował ten post 05.02.2012 00:46

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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