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
Dodatek

Item "Piorun Zeusa"

dodatek

  • Zamknięty Temat jest zamknięty
21 odpowiedzi w tym temacie

#1 Angel of Death

    Banned

  • Zbanowany

Reputacja: 33
Życzliwy

  • Postów:150
  • GG:
  • Imię:Tomasz
  • Lokalizacja:Ornontowice
Offline

Napisano 12.02.2012 20:36

*
Popularny

Opis Itemu:
Masz losową szansę na to że trafisz wroga piorunem.

Wymagany moduł: hamsandwich

Wygląda to tak:
Dołączona grafika

No to do dzieła:

1. Dodajemy zmienną globalną:
new piorun_zeusa[33] = 1


2. W public "reset_item_skills" dodajemy
piorun_zeusa[id] = 0

3. W public "iteminfo(id)" dodajemy:
if (piorun_zeusa[id] &--#62; 0)
{
num_to_str(piorun_zeusa[id],TempSkill,10)
add(itemEffect,699,"Masz 1/")
add(itemEffect,699,TempSkill)
add(itemEffect,699,"szans ,zeby uderzyc we wroga piorunem&--#60;br&--#62;")
}


4. W public "award_item(id, itemnum)" dodajemy kolejny Item'ek, na początku podmieniamy:
new rannum = random_num(1,xxx)
xxx - nasza ilość itemow musimy zwiększyć o jedno aby losowanie odbyło się prawidłowo
case xxx:
za xxx wstawiamy kolejny numer itemu

Dalej...

{
player_item_name[id] = "Piorun Zeusa"
player_item_id[id] = rannum
piorun_zeusa[id] = random_num(8,15)
show_hudmessage(id, "Znalazles przedmiot: %s :: Masz 1/%i szans ,ze trafisz wroga piorunem",player_item_name[id],piorun_zeusa[id])
}
W public damage(id) dodajemy
add_bonus_piorun(attacker_id,id)

5. I na końcu dodajemy:

public add_bonus_piorun(attacker_id,id)
{
if (piorun_zeusa[attacker_id] &--#62;0 && (random_num(1, piorun_zeusa[attacker_id]) == 1))
{
		new Float:fl_Origin[3]
		pev(id, pev_origin, fl_Origin)	
if(cs_get_user_team(attacker_id) == cs_get_user_team(id))
return HAM_IGNORED

set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) // stop motion
set_pev(id, pev_maxspeed, 5.0) // prevent from moving

thunder_effects(fl_Origin)
ExecuteHam(Ham_TakeDamage, id, attacker_id, attacker_id, 40.0, 1);
}
return PLUGIN_HANDLED
}
thunder_effects(Float:fl_Origin[3])
{
	new Float:fX = fl_Origin[0], Float:fY = fl_Origin[1], Float:fZ = fl_Origin[2]



	// Beam effect between two points
	engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, fl_Origin, 0)
	write_byte(TE_BEAMPOINTS)		// 0
	engfunc(EngFunc_WriteCoord, fX + 150.0)	// start position
	engfunc(EngFunc_WriteCoord, fY + 150.0)
	engfunc(EngFunc_WriteCoord, fZ + 800.0)
	engfunc(EngFunc_WriteCoord, fX)	// end position
	engfunc(EngFunc_WriteCoord, fY)
	engfunc(EngFunc_WriteCoord, fZ)
	write_short(sprite_lgt)	// sprite index
	write_byte(1)					// starting frame
	write_byte(15)					// frame rate in 0.1's
	write_byte(10)					// life in 0.1's
	write_byte(80)					// line width in 0.1's
	write_byte(30)					// noise amplitude in 0.01's
	write_byte(255)					// red
	write_byte(255)					// green
	write_byte(255)					// blue
	write_byte(255)					// brightness
	write_byte(200)					// scroll speed in 0.1's
	message_end()

	// Sparks
	message_begin(MSG_PVS, SVC_TEMPENTITY)
	write_byte(TE_SPARKS)			// 9
	engfunc(EngFunc_WriteCoord, fX)	// position
	engfunc(EngFunc_WriteCoord, fY)
	engfunc(EngFunc_WriteCoord, fZ + 10.0)
	message_end()

	// Smoke
	engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, fl_Origin, 0)
	write_byte(TE_SMOKE)			// 5
	engfunc(EngFunc_WriteCoord, fX)	// position
	engfunc(EngFunc_WriteCoord, fY)
	engfunc(EngFunc_WriteCoord, fZ + 10.0)
	write_short(sprite_smoke)		// sprite index
	write_byte(10)					// scale in 0.1's
	write_byte(10)					// framerate
	message_end()
	
	// Blood
	engfunc(EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, fl_Origin, 0)
	write_byte(TE_LAVASPLASH)		// 10
	engfunc(EngFunc_WriteCoord, fX)	// position
	engfunc(EngFunc_WriteCoord, fY)
	engfunc(EngFunc_WriteCoord, fZ + 12.0)
	message_end()


}

Autorem tak jak w poprzednim przypadku nie jestem ja lecz "M@nkovsky"
Koniec, Enjoy ;)

Dalej...

{
player_item_name[id] = "Piorun Zeusa"
player_item_id[id] = rannum
piorun_zeusa[id] = random_num(8,15)
show_hudmessage(id, "Znalazles przedmiot: %s :: Masz 1/%i szans ,ze trafisz wroga piorunem",player_item_name[id],piorun_zeusa[id])
}
W public damage(id) dodajemy
add_bonus_piorun(attacker_id,id)


Powinno być:
Dalej...
{
player_item_name[id] = "Piorun Zeusa"
player_item_id[id] = rannum
piorun_zeusa[id] = random_num(8,15)
show_hudmessage(id, "Znalazles przedmiot: %s :: Masz 1/%i szans ,ze trafisz wroga piorunem",player_item_name[id],piorun_zeusa[id])
}

A później:
* W public "damage(id)" dodajemy:
add_bonus_piorun(attacker_id,id)

Dodatkowo chcę wspomnieć, że linijką :

ExecuteHam(Ham_TakeDamage, id, 0 , id, 40.0, 1);




.. można edytować obrażenia zadawane przez piorun, zamiast 40.0 dajemy własną liczbę rzeczywistą, np 66.0 - rzeczywistą, czyli koniecznie z np .0 na końcu. Można to też przerobić dodając do tego np +floatround(player_intelligence[id]/5) - czyli przy 100 inteligencji będziecie zadawać SWOJE USTAWIONE + 20 ;]


Użytkownik DarkGL edytował ten post 24.03.2012 20:03

Dołączona grafika

#2 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2012 20:56

zapomniałeś dodać

#include <hamsandwich>

  • +
  • -
  • 1

#3 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 12.02.2012 22:07

Dodatkowo chcę wspomnieć, że linijką :

ExecuteHam(Ham_TakeDamage, id, 0 , id, 40.0, 1);


.. można edytować obrażenia zadawane przez piorun, zamiast 40.0 dajemy własną liczbę rzeczywistą, np 66.0 - rzeczywistą, czyli koniecznie z np .0 na końcu. Można to też przerobić dodając do tego np +floatround(player_intelligence[id]/5) - czyli przy 100 inteligencji będziecie zadawać SWOJE USTAWIONE + 20 ;]

Użytkownik ogieR- edytował ten post 12.02.2012 22:08

  • +
  • -
  • 3

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#4 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 13.02.2012 12:09

+
za to że z nieba :P
  • +
  • -
  • 0

#5 piterlbk

    Nowy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:4
  • Imię:Piotr
  • Lokalizacja:Lębork
Offline

Napisano 26.02.2012 21:36

dał by ktoś ten perk w amx?
Hiroshima (26.02.2012 21:40):
każdy ma swoje przeróbki w silniku diablo i nikt nie będzie robił tego specjalnie dla Ciebie na Twoim .sma skoro nie ma w tym nic trudnego

  • +
  • -
  • 0

#6 Hiroshima

    Godlike

  • Przyjaciel

Reputacja: 1 327
Godlike

  • Postów:4 984
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Málaga
Offline

Napisano 26.02.2012 21:39

dał by ktoś ten perk w amx?



nie, trochę wysiłku... możesz zrobić to sam!

jak już skończysz robić to co jest w opisie to zapraszamy tutaj: http://amxx.pl/kompilator/
  • +
  • -
  • 0

#7 piterlbk

    Nowy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:4
  • Imię:Piotr
  • Lokalizacja:Lębork
Offline

Napisano 26.02.2012 22:25

nieee wiem jak to sie do końca robi niby zroniłem ale nie jestem pewien czy działa BARDZO BYM PROSIŁ O PLIK AMX

niby zrobiłem ale mi nie działa co w dotadku zawiesło mi serwer ja nie potrafie zrobić perka umiem klase BARDZO BYM PROSIŁ O AMX BD BARDZO WDZIĘCZNY
  • +
  • -
  • 0

#8 Tiger_pl

    Profesjonalista

  • Zbanowany

Reputacja: 15
Początkujący

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

Napisano 27.02.2012 15:56

Wszystko ( Prawie) działa ok ale.... gdy zabijasz przeciwnika używając tego skilla nie zalicza w ogóle dedów..
Przydało by się tutaj dodać funkcje zaliczania fragów przy użyciu tego skilla

#9 piterlbk

    Nowy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:4
  • Imię:Piotr
  • Lokalizacja:Lębork
Offline

Napisano 27.02.2012 21:40

ej czy dalibyście ten item w amxx i sma jak byście
daje + za motyw z nieba a drugi + dam za podanie pliku w amxx
  • +
  • -
  • 1

#10 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 27.02.2012 23:34

@Tiger_pl: dodaj po ExecuteHam
set_user_frags(attacker_id, get_user_frags(attacker_id) + 1)

  • +
  • -
  • 3

#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 24.03.2012 16:20

@Tiger_pl: dodaj po ExecuteHam

set_user_frags(attacker_id, get_user_frags(attacker_id) + 1)

No chyba nie ^ ^
A jak piorun nie zabije kogoś? Ogólnie nie chce mi się wierzyć, że nie dodaje fraga przy zabiciu, przecież kanapka ma to do siebie, że zadając w ten sposób obrażenia, przy zabiciu dodaje wszystko, kasę, itp.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 24.03.2012 20:03

ExecuteHam(Ham_TakeDamage, id, 0, id, 40.0, 1);
na
ExecuteHam(Ham_TakeDamage, id, attacker_id, attacker_id, 40.0, 1);

i wszystko będzie ok

( podmieniłem już w 1 poście )
  • +
  • -
  • 0

#13 dw221

    Życzliwy

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:38
  • Imię:Dominik
  • Lokalizacja:Warszawa
Offline

Napisano 31.03.2012 20:25

Ja mam problem z tym
if(cs_get_user_team(attacker_id) == cs_get_user_team(id))
Pomoże ktoś ??
  • +
  • -
  • 0

Dołączona grafikaDołączona grafika

Diablo : nicegames.no-ip.pl:27351
FFA : nicegames.no-ip.pl:27387


#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 31.03.2012 20:28

masz problem z tym tzn ?
  • +
  • -
  • 0

#15 dw221

    Życzliwy

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:38
  • Imię:Dominik
  • Lokalizacja:Warszawa
Offline

Napisano 01.04.2012 10:29

Znaczy jest warning ale działa ale chciał bym aby go nie było
  • +
  • -
  • 0

Dołączona grafikaDołączona grafika

Diablo : nicegames.no-ip.pl:27351
FFA : nicegames.no-ip.pl:27387


#16 KoRnY

    Wszechwidzący

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:281
  • Lokalizacja:Władysławowo
Offline

Napisano 30.04.2012 14:08

Jak przypisać to do umiejętności na nożu?
Bo chyba samo wywołanie tego nie starczy.
Bo z tego co widzę nigdzie nie jest pobrane , gdzie osobnik celuje.
Ktoś mógłby pomóc?

ok ogarnąłem całe przypisanie do klasy itp
Wyrzuciłem atacker id bo chyba nie potrzebne.
Problem tylko jak sprawdzić , czy gracz namierzył cel?
Tj , żeby ktoś tym piorunem dostał.

Zrobiłem tak:

	    else {
new Float:fl_Origin[3]
pev(id, pev_origin, fl_Origin)
set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) // stop motion
set_pev(id, pev_maxspeed, 5.0) // prevent from moving
thunder_effects(fl_Origin)
wait1[id]=floatround(halflife_time())
}
return PLUGIN_HANDLED


Jak dodać tutaj , gdzie ten piorun trzepnie?
Puki co dostaje w głowę ja ;P

A no i jak sprawa ma się z zadaniem obrażeń?
  • +
  • -
  • 0
Zapraszam na myArena.pl

Dołączona grafika

#17 Dizip

    Pomocny

  • Zbanowany

Reputacja: 21
Życzliwy

  • Postów:44
  • Lokalizacja:WWA
Offline

Napisano 01.05.2012 18:54

else {
new Float:fl_Origin[3]
pev(id, pev_origin, fl_Origin)
set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) // stop motion
set_pev(id, pev_maxspeed, 5.0) // prevent from moving
thunder_effects(fl_Origin)
wait1[id]=floatround(halflife_time())
}
return PLUGIN_HANDLED


Zobacz. ID to Ty ,wiec znajdujesz siebie a potem walisz sobie w leb ; P

Po co zmieniasz cos w kodzie itemu ?
zrób to w public Damage(id) po prostu okresl if klasa jakas tami jakas losowa wartosc == 1 uzyj mocy na ofeirze

Ogolnie polecam uzywac hamsandwich do zadawania dmg w diablo ; )

#18 KoRnY

    Wszechwidzący

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:281
  • Lokalizacja:Władysławowo
Offline

Napisano 01.05.2012 23:54

Zmieniam kod , bo nie chce , aby użycie tej mocy było uzależnione od broni.
Oryginał pobiera atacker_id , a skąd je weźmie , skoro nie ma to wymagać strzału?
  • +
  • -
  • 0
Zapraszam na myArena.pl

Dołączona grafika

#19 KoRnY

    Wszechwidzący

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:281
  • Lokalizacja:Władysławowo
Offline

Napisano 02.05.2012 01:00

Jeśli id to ja.
To jak pobrać id osoby w którą celuje?

Sory , że post pod postem , ale nie mogłem edytować ; /

Użytkownik KoRnY edytował ten post 02.05.2012 01:13

  • +
  • -
  • 0
Zapraszam na myArena.pl

Dołączona grafika

#20 Dizip

    Pomocny

  • Zbanowany

Reputacja: 21
Życzliwy

  • Postów:44
  • Lokalizacja:WWA
Offline

Napisano 02.05.2012 13:24

Możesz zrobić get_user_aiming ale tego nie polecam bo potem mogą być crashe z powodem "wysylanai wiadomosic do nikąd" jak ktoś bedzie spamował moca


Zrób na get_uer_orgin i to będzie ,że jeśli w zasięgu gracza to niech zaatakuje.
w prethinku np uzycie E


a potem sama moc

public Moc(id)
new origin[3]
get_user_origin(id, origin)

for(new a = 0; a < MAX; a++)
{
if (!is_user_connected(a) || !is_user_alive(a) || get_user_team(a) == get_user_team(id))
continue;

new originssp[3]
get_user_origin(a, originssp)


if(get_distance(origin,originssp) < 200)
{


Widzisz teraz robis zpetle , i suzka ludzi w ogleglosci 200 po if distans uzyj pirouna i zadaj dmg





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

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

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