←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Płonące Naboje

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 12.08.2011

Od razu mówię, że kod nie jest mój tylko Cypisa. Ja przeniosłem go tylko na CODa Starego Dołączona grafika

No to zaczynamy. Mój perk będzie miał 1/4 szansy na zapalenie.
Na początku tworzymy normaly itemek Dołączona grafika

Pod:
#include <nvault>

Dodajemy:
#include <fakemeta_util>


w zmiennych globalnych dodajemy:
new sprite_fire, sprite_smoke;
new palenie_gracza[33];


W plugin_precache dodajemy:
	sprite_fire = precache_model("sprites/fire.spr")
sprite_smoke = precache_model("sprites/steam1.spr")



w public Damage przed:
	SprawdzPoziom(attacker);

dodajemy

if(informacje_przedmiotu_gracza[attacker][0] == numer itemu && random_num(1, informacje_przedmiotu_gracza[attacker][1]) == 1)
{
if(task_exists(id+2936))
remove_task(id+2936);
palenie_gracza[id] = 40;
set_task(0.5, "burning_flame", id+2936, _, _, "b");
}


Na końcu *.sma dodajemy:
public burning_flame(taskid)
{
new id = (taskid-2936)

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

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

if(flags & FL_INWATER || palenie_gracza[id] < 1)
{
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(taskid);
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)
}

if(get_user_health(id)-1 > 0)
fm_set_user_health(id, get_user_health(id)-1)

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(random_num(5,10))
write_byte(200)
message_end()

palenie_gracza[id]--
return PLUGIN_CONTINUE;
}


Podziękowania dla Pijanego Dołączona grafika za poprawkę.
Użytkownik Na5tyk edytował ten post 27.09.2011 14:50
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 12.08.2011

W sma na początku wystarczy coś takiego:
native cod_inflict_damage(atakujacy, ofiara, Float:obrazenia, Float:czynnik_inteligencji=1.0, byt_uszkadzajacy=0, dodatkowe_flagi=0);

Zamiast dodawać nową bibliotekę :D
BTW: To nowy czy stary czy nowostary CoD? xD
Odpowiedz

  • +
  • -
sharkowy - zdjęcie sharkowy 12.08.2011

 if(ma_perk[attacker] && random_num(1, wartosc_perku[attacker]) == 1)


Aha...
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 12.08.2011

popraw to bo nie będzie działać i tak :)

p.s
szczególnie popraw to:
if(ma_perk[attacker] && random_num(1, wartosc_perku[attacker]) == 1)

i

cod_inflict_damage(data[1], id, 1.0, 0.0, 0, 1<<24);
Użytkownik Cypis' edytował ten post 12.08.2011 12:56
Odpowiedz

Pijany - zdjęcie Pijany 12.08.2011

A nie lepiej dodać w public Damage(id)

if(informacje_przedmiotu_gracza[attacker][0] == numer itemu && random_num(1, informacje_przedmiotu_gracza[attacker][1]) == 1)
	{
		if(task_exists(id+2936))
			remove_task(id+2936);
		palenie_gracza[id] = 40;
		set_task(0.5, "burning_flame", id+2936, _, _, "b");
	}

i na dole .sma:

public burning_flame(taskid)
{
	new id = (taskid-2936)
	
	if(!is_user_alive(id))
	{
		palenie_gracza[id] = 0
		return PLUGIN_CONTINUE;
	}
	
	new origin[3], flags = pev(id, pev_flags)
	get_user_origin(id, origin)
	
	if(flags & FL_INWATER || palenie_gracza[id] < 1)
	{
		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(taskid);
		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)
	}
	
	if(get_user_health(id)-1 > 0)
		fm_set_user_health(id, get_user_health(id)-1)
	
	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(random_num(5,10))
	write_byte(200)
	message_end()
	
	palenie_gracza[id]--
	return PLUGIN_CONTINUE;
}
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 12.08.2011

Zaraz - z deka pogubiłem się - to już autor poprawił to , czy na spokojnie trzeba post po poście ? :/ ( sory , że jesczze nieogarniam :/ )
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 12.08.2011

Poprawie dzis o 15.30. Bo teraz na komie.
Poprawione. Nie sprawdzałem. Skopiowałem kod od Pijanego :)
Użytkownik Na5tyk edytował ten post 12.08.2011 14:43
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 12.08.2011

COD_B12SAS.sma(48) : error 010: invalid function or declaration
COD_B12SAS.sma(2493) : error 017: undefined symbol "sila2gracza" ( ten to sam poprawie <img src='http://img.amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' /> )
COD_B12SAS.sma(3387) : error 017: undefined symbol "xs_vec_mul_scalar"
COD_B12SAS.sma(3392) : error 017: undefined symbol "fm_set_user_health"

Po testach

To jest w 48 linijce :
new palenie_gracza[33];dodatkowe_flagi=0);

A :dodane te zmienne globalne w - o tu :

new doswiadczenia_za_zabojstwo;
new doswiadczenie_za_wygranie;
new doswiadczenie_za_bombe;
new bool:dostal_przedmiot[33];
new doswiadczenie_za_hs;
new sprite_fire, sprite_smoke;
new palenie_gracza[33];dodatkowe_flagi=0);

Użytkownik SAS edytował ten post 12.08.2011 16:59
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 12.08.2011

Usun to co jest po :
new palenie_gracza[33];
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 12.08.2011

COD_B12SAS.sma(3387) : error 017: undefined symbol "xs_vec_mul_scalar"
COD_B12SAS.sma(3392) : error 017: undefined symbol "fm_set_user_health"

3391      if(get_user_health(id)-1 > 0)
      3392          fm_set_user_health(id, get_user_health(id)-1)


if(flags & FL_ONGROUND)
        {
                static Float:velocity[3]
                pev(id, pev_velocity, velocity)
     3387           xs_vec_mul_scalar(velocity, 0.5, velocity)
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 12.08.2011

Dodaj:
#include <xs>

pod:
#include <nvault>
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 13.08.2011

error 017: undefined symbol "fm_set_user_health"

czyli dodać
#include <fm>
?

EDIT : Nie - lepiej nie dodawać :D
Użytkownik SAS edytował ten post 13.08.2011 07:10
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 13.08.2011

Dopisz #include <fakemeta_util>
Użytkownik Na5tyk edytował ten post 13.08.2011 09:32
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 13.08.2011

dobra - skompilowało się
Odpowiedz

  • +
  • -
Hiroshima - zdjęcie Hiroshima 16.08.2011

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
Mody -> Call of Duty Mod -> Nowości
do
Mody -> Call of Duty Mod -> Poradniki, Łatki oraz Pluginy
Odpowiedz

  • +
  • -
xXxTravisxXx - zdjęcie xXxTravisxXx 19.08.2011

Pytanie ?! czy mam dodać taki item czy on sam nie dodał bo nie rozumiem za bardzo? ;/
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 20.08.2011

Postepujesz wg. instrukcji - standardowo nie ma takiego itemu w silniku .
Odpowiedz

  • +
  • -
Na 5tyk - zdjęcie Na 5tyk 20.08.2011

Travis robisz swoj item i do piero robisz z instrukcja.
Odpowiedz

  • +
  • -
xXxTravisxXx - zdjęcie xXxTravisxXx 20.08.2011

a gdzie mam wpisać żeby czytało mój item?
tzn : gdy już zrobiłem item
Użytkownik xXxTravisxXx edytował ten post 20.08.2011 07:54
Odpowiedz

  • +
  • -
Barto_12_SAS - zdjęcie Barto_12_SAS 20.08.2011

Żeby czytało ?
Odpowiedz