←  Pytania dotyczące pluginów

AMXX.pl: Support AMX Mod X i SourceMod

»

[Pytanie/Prośba] Modyfikacja pluginu "...


Najlepsza odpowiedź ogieR8 07.12.2014 21:18

Tutaj masz funkcję, którą testowałem i działała poprawnie :)

if(get_user_team(id) != get_user_team(victim)) {
	if(fm_is_ent_visible(id, victim)) hs?client_print(id, print_chat, "hs - widzimy"):client_print(id, print_chat, "kill - widzimy")
	if(!fm_is_ent_visible(id, victim)) hs?client_print(id, print_chat, "hs - NIE widzimy") : client_print(id, print_chat, "kill - NIE widzimy")
}

client_print opisują Ci co się wtedy dzieje, zamień je sobie operacje z statami, np:

if(fm_is_ent_visible(id, victim)) hs?set_user_frags(id, frags+2):set_user_frags(id, frags+1)
if(!fm_is_ent_visible(id, victim)) hs?set_user_frags(id, frags+4):set_user_frags(id, frags+3)
Przejdź do postu

  • +
  • -
he1st - zdjęcie he1st 07.12.2014

Witajcie. Jako, że nie jestem zbyt zaawansowany w edytowaniu pluginów zwracam się do was z pytaniem jak mogę przerobić ten plugin, aby znajdowało się w nim:

 

Zabicie HS - 2 Fragi

Zabicie Skanem - 3 Fragi

Zabicie Skanem + HS - 4 fragi.

 

SMA wam podrzucam. Jak coś zawsze możecie mi sugerować rozwiązanie. Może w końcu czegoś się nauczę ^D^

Załączone pliki

Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 07.12.2014


Bullet Damage (Ulepszony, poprawiony, zmiana kolorów, DHUD)

 

W tym pluginie masz cvar: 

Bullet_Damage_ShowWalls
;- 0 : wyłączone (domyślnie)
;- 1 : pokazuj obrażenia przez ścianę .

Powinieneś dać radę wyciągnąć z niego funkcję odpowiadającą za strzały przenikające przez byty (ściany) i jeśli gracz w eventcie DeathMsg spełni ten warunek to dodaj mu te fragi, a jeśli spełni ten i dodatkowo zabije strzałem w głowę - dodam kolejne :)

Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 07.12.2014

 


Bullet Damage (Ulepszony, poprawiony, zmiana kolorów, DHUD)

 

W tym pluginie masz cvar: 

Bullet_Damage_ShowWalls
;- 0 : wyłączone (domyślnie)
;- 1 : pokazuj obrażenia przez ścianę .

Powinieneś dać radę wyciągnąć z niego funkcję odpowiadającą za strzały przenikające przez byty (ściany) i jeśli gracz w eventcie DeathMsg spełni ten warunek to dodaj mu te fragi, a jeśli spełni ten i dodatkowo zabije strzałem w głowę - dodam kolejne :)

Zobaczę ten sposób, tymczasem:

 

 

Próbowałem zrobić coś z entem

if(!fm_is_ent_visible(id, victim))

 

Ale coś mi nie idzie... 


Użytkownik MS.Zer0. edytował ten post 07.12.2014 19:20
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 07.12.2014

Pokaż mi cały plugin. Postaram się zaraz to zrobić.

Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 07.12.2014

Masz w załączniku :D

 

A to moje aktualne podboje. (No Laugh please)

 

 

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
 
new hs_kills
new wallhskill
 
public plugin_init()
{
register_plugin("X-Kills","1.3","Mini_Midget")
 
register_event("DeathMsg","deathmsg","ae")
 
hs_kills = register_cvar("amx_hskills", "2")
wallhskill = register_cvar("amx_wallhskill", "4")
}
 
public deathmsg(id) 
{     
new id = read_data(1)    
new victim = read_data(2)    
new headshot = read_data(3)   
 
new frags = get_user_frags(id) 
new hsKills = get_pcvar_num(hs_kills) -1
new wallHSkill = get_pcvar_num(wallhskill) -3
 
if (!is_user_alive(id) || !headshot )        
return PLUGIN_CONTINUE         
 
if (get_user_team(id) == get_user_team(victim))         
set_user_frags(id, frags - hsKills)    
else         
set_user_frags(id, frags + hsKills)  
 
if(!fm_is_ent_visible(id, victim) && get_user_team(id) == get_user_team(victim))
set_user_frags(id, frags - wallHSkill)
else
set_user_flags(id, frags + wallHSkill)
return PLUGIN_CONTINUE 
}
 
 
poprawiłem kod, bo dałem stary
 
@EDIT 
 
 
DZIAŁAJĄ MI 4 FRAGI ZA ZABICIE SKANEM W GŁOWĘ. TERAZ TYLKO SAMO ZABICIE PRZEZ ŚCIANĘ ;P 

Użytkownik MS.Zer0. edytował ten post 07.12.2014 20:11
Odpowiedz

  • +
  • -
Najlepsza odpowiedź ogieR8 - zdjęcie ogieR8 07.12.2014

Tutaj masz funkcję, którą testowałem i działała poprawnie :)

if(get_user_team(id) != get_user_team(victim)) {
	if(fm_is_ent_visible(id, victim)) hs?client_print(id, print_chat, "hs - widzimy"):client_print(id, print_chat, "kill - widzimy")
	if(!fm_is_ent_visible(id, victim)) hs?client_print(id, print_chat, "hs - NIE widzimy") : client_print(id, print_chat, "kill - NIE widzimy")
}

client_print opisują Ci co się wtedy dzieje, zamień je sobie operacje z statami, np:

if(fm_is_ent_visible(id, victim)) hs?set_user_frags(id, frags+2):set_user_frags(id, frags+1)
if(!fm_is_ent_visible(id, victim)) hs?set_user_frags(id, frags+4):set_user_frags(id, frags+3)
Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 07.12.2014

To przetestuję jutro. ;) Dzięki za pomoc jak coś :)

Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 08.12.2014

 

Tutaj masz funkcję, którą testowałem i działała poprawnie :)

if(get_user_team(id) != get_user_team(victim)) {
	if(fm_is_ent_visible(id, victim)) hs?client_print(id, print_chat, "hs - widzimy"):client_print(id, print_chat, "kill - widzimy")
	if(!fm_is_ent_visible(id, victim)) hs?client_print(id, print_chat, "hs - NIE widzimy") : client_print(id, print_chat, "kill - NIE widzimy")
}

client_print opisują Ci co się wtedy dzieje, zamień je sobie operacje z statami, np:

if(fm_is_ent_visible(id, victim)) hs?set_user_frags(id, frags+2):set_user_frags(id, frags+1)
if(!fm_is_ent_visible(id, victim)) hs?set_user_frags(id, frags+4):set_user_frags(id, frags+3)

 

4-krotny frag za skan + HS działa i twoim i moim sposobem. ;) Tak samo podwójny. 

 

To teraz tylko się pomęczyć z normalnym skanem i wszyscy będą Happy. ^D^ 

Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 08.12.2014

Zapewniam, że działało u mnie na serwerze, testowałem najpierw na PodBOT'ach 2.5, a później z kumplem :) Wiadomości wypisywało względem warunków zabicia, z jednym małym minusem funkcji fm_is_ent_visible.. nie ważne czy zabiłem przez ściane czy normalnie, jeśli połowę człowieka widziałem, to aktywowała się funkcja tak, jakby to byłoby normalne (widzialny = bez skana), ale to w tej funkcji normalne.

 

Symulacja:

siwe tło - ściana
białe tło - przestrzeń 'pusta'

czerwona kropka - śmiertelny strzał
 

http://scr.hu/1bo3/ll733

 

1. bez skana

2. bez skana (visible średnio się nadaję do tego rozwiązania, ponieważ widzimy byt, jednakże według Twoich założeń w pluginie powinno zaliczyć to do skana)

3. skan

 

 

Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 08.12.2014

Zapewniam, że działało u mnie na serwerze, testowałem najpierw na PodBOT'ach 2.5, a później z kumplem :) Wiadomości wypisywało względem warunków zabicia, z jednym małym minusem funkcji fm_is_ent_visible.. nie ważne czy zabiłem przez ściane czy normalnie, jeśli połowę człowieka widziałem, to aktywowała się funkcja tak, jakby to byłoby normalne (widzialny = bez skana), ale to w tej funkcji normalne.

 

Symulacja:

siwe tło - ściana
białe tło - przestrzeń 'pusta'

czerwona kropka - śmiertelny strzał
 

http://scr.hu/1bo3/ll733

 

1. bez skana

2. bez skana (visible średnio się nadaję do tego rozwiązania, ponieważ widzimy byt, jednakże według Twoich założeń w pluginie powinno zaliczyć to do skana)

3. skan

 

 

Dokładnie tak liczy. Tylko nie umiem zrobić tej funkcji tak, aby działał sam skan bez HS. Reszta działa poprawnie

Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 08.12.2014

hs?gdy_walnie_hs:gdy_nie_walnie_hs..

 

if(hs) gdy_walnie_hs
else gdy_nie_walnie_hs

 

Podałem Ci to już.

 

No i jeden z tych warunków musisz umieścić, jeśli gracz nie widzi ent'a, to chyba wiadome.

Odpowiedz

  • +
  • -
psilocybe - zdjęcie psilocybe 08.12.2014

fm_is_ent_visible ?

 

Zalicza skany gdy ich nie ma w wielu przypadkach, sprawdź sobie jego zawodne działanie.

 

W pluginie Toasty Walls jest to bardziej dopracowane, wyciągnij sobie co potrzebujesz albo dopisz czego Ci tam brakuje.

Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 09.12.2014

Skończyłem. Wszystko działa poprawnie. Miałem problem i problemu nie ma. Dzięki wielkie

ogieR-
Użytkownik MS.Zer0. edytował ten post 09.12.2014 12:05
Odpowiedz