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
Tutorial

Problem z naświetlaniem Ninji? Znak widoczności!

Tutorial

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

#1 DioW

    Pomocny

  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:51
  • GG:
  • Imię:Jan
  • Lokalizacja:Szczecin
Offline

Napisano 08.07.2010 18:19

*
Popularny

Witam,
Jest to mój 1 tutorial którego postanowiłem napisać gdyż sam miałem bardzo duży problem z rozwiązaniem tych problemów.
Mianowicie:
Po 1. Ninja po naświetleniu nie znika automatycznie, tylko musi wcisnąć "Q" albo zmienić nóż na nóż
Po 2. Znaczek widoczności ninji co bardzo polepsza grę!
Ten tutorial usuwa bląd 1 i dodaje 2
Dołączona grafika
To co u góry ale w kolorze pomarańczowym.


Zaczynamy!

Krok 1.
Znajdujemy linijkę:
if ((get_user_team(id)!=get_user_team(index1)) && (index1!=0))

I usuwamy wszysto pod aż do linijki
//Before freeze_ended check
lub(jeżeli nie ma @up)
if (((player_b_silent[id] > 0) || (player_class[id] == Zabojca)) && is_user_alive(id)) 


Krok 2.
Dodaj pod:
if ((get_user_team(id)!=get_user_team(index1)) && (index1!=0))

To:
{
if ((index1!=54) && (is_user_connected(index1))) set_user_rendering(index1,kRenderFxGlowShell,flashlight_r,flashlight_g,flashlight_b,kRenderNormal,4)
remove_task(TASK_FLASH_LIGHT+index1);
set_task(7.5, "un_rander",TASK_FLASH_LIGHT+index1)
//set_task(15.0,"un_rander",TASK_NAME,index1)
if(player_class[index1] == Ninja)
{
message_begin(MSG_ONE,g_msg_statusicon,{0,0,0},index1)
write_byte(2)
write_string("dmg_bio")
write_byte(255)
write_byte(0)
write_byte(0)
message_end()
}
}


Krok 3.
Usuwamy całą funkcję un_rander

Krok 4.
Dodaj na miejsce funkcji un_rander
public un_rander(task_id){
new id = task_id - TASK_FLASH_LIGHT
if(is_user_connected(id)){
if (player_class[id] == Ninja) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 15)
Display_Icon(id,0,"dmg_bio",255,0,0)
}
}


Efekt końcowy:
[...]
if ((get_user_team(id)!=get_user_team(index1)) && (index1!=0))
{
if ((index1!=54) && (is_user_connected(index1))) set_user_rendering(index1,kRenderFxGlowShell,flashlight_r,flashlight_g,flashlight_b,kRenderNormal,4)
remove_task(TASK_FLASH_LIGHT+index1);
set_task(7.5, "un_rander",TASK_FLASH_LIGHT+index1)
//set_task(15.0,"un_rander",TASK_NAME,index1)
if(player_class[index1] == Ninja)
{
message_begin(MSG_ONE,g_msg_statusicon,{0,0,0},index1)
write_byte(2)
write_string("dmg_bio")
write_byte(255)
write_byte(0)
write_byte(0)
message_end()
}
}


//Before freeze_ended check
if (((player_b_silent[id] > 0) || (player_class[id] == Zabojca)) && is_user_alive(id))
[...]


[...](0.5,"charge_hunter",attacker,parms,5)

public un_rander(task_id){
new id = task_id - TASK_FLASH_LIGHT
if(is_user_connected(id)){
if (player_class[id] == Ninja) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 15)
Display_Icon(id,0,"dmg_bio",255,0,0)
}
}

public client_PreThink ( id )
{
[...]



Ps. W efekcie końcowym dodałem kawałek kodu za dużo abyście zobaczyli w jakim miejscu i ile klamer ma mieć dokładnie funkcja

Jeżeli wpadła jakaś literówka lub jakiś byczek to proszę o poprawienie

Użytkownik Goliath edytował ten post 25.10.2011 16:45

  • +
  • -
  • 10

#2 TaKieCos

    Zaawansowany

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:126
  • Lokalizacja:warszawa
Offline

Napisano 08.07.2010 19:01

Mogłbys napisac jak zrobic Znaczek widoczności ninji bez punktu 1? czyli ze automatycznie znika bez zmieniania broni
  • +
  • -
  • 0
Pomogłem?? DAJ Dołączona grafika

#3 DioW

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:51
  • GG:
  • Imię:Jan
  • Lokalizacja:Szczecin
Offline

Napisano 08.07.2010 19:07

Właśnie tak jest! Poto to zrobiłem!

08 lipiec 2010 - 20:08:
Napisałem rozwiązaniem tych problemów a nie z tymi problemami Dołączona grafika

Użytkownik DioW edytował ten post 29.09.2011 18:12

  • +
  • -
  • 0

#4 Gosteq

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:1
  • Lokalizacja:Szczecin
Offline

Napisano 10.07.2010 07:25

Dzięki + leci!
Poradnik w 100% dziala i bardzo mi się przydał!
  • +
  • -
  • 0

#5 TaKieCos

    Zaawansowany

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:126
  • Lokalizacja:warszawa
Offline

Napisano 10.07.2010 07:33

podaj to w [sma]
  • +
  • -
  • 0
Pomogłem?? DAJ Dołączona grafika

#6 STRAZAK

    Profesjonalista

  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:216
  • GG:
  • Steam:steam
  • Lokalizacja:Gabrielów
Offline

Napisano 25.07.2010 15:14

Nie rozumiem jak usunąć funkcję? Nie znam się na tym.

z un_rander mam to:
public un_rander(task_id)
{
	new id = task_id - TASK_FLASH_LIGHT
	if(is_user_connected(id)) set_renderchange(id)
}

public client_PreThink ( id ) 
{	
	new button2 = get_user_button(id);
	
	if(flashlight[id] && flashbattery[id] && (get_cvar_num("flashlight_custom")) && (player_class[id] == Mag)) {
		new num1, num2, num3
		num1=random_num(0,2)
		num2=random_num(-1,1)
		num3=random_num(-1,1)
		flashlight_r+=1+num1
		if (flashlight_r>250) flashlight_r-=245
		flashlight_g+=1+num2
		if (flashlight_g>250) flashlight_g-=245
		flashlight_b+=-1+num3
		if (flashlight_b<5) flashlight_b+=240		
		new origin[3];
		get_user_origin(id,origin,3);
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
		write_byte(27); // TE_DLIGHT
		write_coord(origin[0]); // X
		write_coord(origin[1]); // Y
		write_coord(origin[2]); // Z
		write_byte(get_cvar_num("flashlight_radius")); // radius
		write_byte(flashlight_r); // R
		write_byte(flashlight_g); // G
		write_byte(flashlight_b); // B
		write_byte(1); // life
		write_byte(get_cvar_num("flashlight_decay")); // decay rate
		message_end();
		
		new index1, bodypart1
		get_user_aiming(id,index1,bodypart1) 
		if ((get_user_team(id)!=get_user_team(index1)) && (index1!=0))
		{
			if ((index1!=54) && (is_user_connected(index1))) set_user_rendering(index1,kRenderFxGlowShell,flashlight_r,flashlight_g,flashlight_b,kRenderNormal,4)	
			remove_task(TASK_FLASH_LIGHT+index1);
			set_task(7.5, "un_rander",TASK_FLASH_LIGHT+index1)
			//set_task(15.0,"un_rander",TASK_NAME,index1)
		}
	}


#7 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 26.07.2010 19:18

Usun to

public un_rander(task_id)
{
new id = task_id - TASK_FLASH_LIGHT
if(is_user_connected(id)) set_renderchange(id)
}


  • +
  • -
  • 0

#8 szczepaneto

    Zaawansowany

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:122
  • Lokalizacja:KrK
Offline

Napisano 07.08.2010 11:20

jest jedno ale można naświetlać osoby z swojej drużyny jak to naprawić ??

07 sierpień 2010 - 11:22:
a i czy dało by rade zrobić żeby znaczek się pojawiał każdej osobie

07 sierpień 2010 - 11:37:
ok sory już znalazłem błąd

Użytkownik szczepaneto edytował ten post 07.08.2010 11:37


#9 Pawlo^^

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:35
  • Imię:Paweł
  • Lokalizacja:lodz
Offline

Napisano 11.10.2010 17:14

Edit: Zrobiłem wszystko tak jak powinno być, sprawdzałem linijkę po linijce, klamry się zgadzają,przekopmilowałem poprawnie, wrzuciłem na serwer jednak nic nie działa, ninja nadal jest widoczna, nie ma tego znaczka. Po prostu jest bez zmian.Oczywiście restart serwera był. Nie wiem co robić, proszę o pomoc, nagradzam reputacją. Z góry dziękuję.
Poniżej zamieszczam plik sma, proszę o sprawdzenie go czy wszystko jest dobrze.

Załączone pliki


Użytkownik Pawlo^^ edytował ten post 12.10.2010 15:44

  • +
  • -
  • 0

#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 01.11.2010 14:17

A ja bym to zrobił inaczej, zamiast
if(player_class[index1] == Ninja)
{
message_begin(MSG_ONE,g_msg_statusicon,{0,0,0},index1)
write_byte(2)
write_string("dmg_bio")
write_byte(255)
write_byte(0)
write_byte(0)
message_end()
}

dodał
if(is_user_alive(index1)) {
message_begin(MSG_ONE,g_msg_statusicon,{0,0,0},index1)
write_byte(2)
write_string("dmg_bio")
write_byte(200)
write_byte(100)
write_byte(0)
message_end()
}

i zamiast
public un_rander(task_id) {
new id = task_id - TASK_FLASH_LIGHT
if(is_user_connected(id)) {
if(player_class[id] == Ninja) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 15)
Display_Icon(id,0,"dmg_bio",255,0,0)
}
}

dodał
public un_rander(task_id) {
new id = task_id - TASK_FLASH_LIGHT
if(is_user_connected(id)) {
if(player_class[id] == Ninja) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 15)
// inne klasy
Display_Icon(id, 0, "dmg_bio", 100, 200, 0);
}
}

I dzięki temu każdy kto zostanie naświetlony będzie miał ten znaczek (migający).

Też dziwna sprawa, że samo "set_renderchange(id)" nie wystarcza... to chyba jest coś związane z
if(!task_exists(id+TASK_FLASH_LIGHT))

co znajduje się w tym "set_renderchange(id)".

Użytkownik sebul edytował ten post 01.11.2010 19:16

  • +
  • -
  • 3

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


#11 NiFreZ

    Zaawansowany

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:116
  • Imię:tom
  • Lokalizacja:ASd
Offline

Napisano 01.11.2010 17:19

Sebul Działa poprawnie Testowałem ;)
  • +
  • -
  • 0

#12 wreki

    Zaawansowany

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:88
  • Imię:wojtek
  • Lokalizacja:legnica
Offline

Napisano 07.11.2010 22:26

robię wszystko tak jak autor tematu napisał i mam dwa błędy przy kompilowaniu
diablo.sma(1638) : error 017: undefined symbol "Ninja"
diablo.sma(1684) : error 017: undefined symbol "Ninja"

2 Errors.
Could not locate output file diablo-pulpido.amxx (compile failed).

  • +
  • -
  • 0
Zapraszam na moje portfolio oraz sieć serwerów

#13 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 07.11.2010 23:45

Po prostu nie masz klasy "Ninja"...
  • +
  • -
  • 1

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


#14 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 22.12.2010 21:38

Jest lepsze rozwiązanie ^^ Można dodać nową tablicę i wtedy według niej sprawdzać, czy gracz jest naświetlony, czy też nie. Może poradnik napiszę od początku, czyli od kodu taki jaki jest w 5.9l.

Spoiler


Chyba nie zapomniałem o niczym. Teraz nie trzeba będzie wypisywać po dwa razy tej samej klasy, żeby stawała się niewidzialna.

Użytkownik sebul edytował ten post 03.06.2011 11:22

  • +
  • -
  • 4

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


#15 cesik

    Zaawansowany

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:129
  • Imię:Dawid
  • Lokalizacja:KIELCE
Offline

Napisano 16.02.2011 19:55

Sebul niedziala duzo bledow wywala przynajmniej u mnie

#16 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 16.02.2011 23:44

A patrz u mnie nic nie wywala... Może źle coś dodałeś, bo przed chwilą jeszcze raz sprawdziłem czy dobrze wszystko napisałem i nie zauważyłem jakichś błędów.
  • +
  • -
  • 0

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


#17 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 16.02.2011 23:48

wywala 26 błęów ;]

nie pamiętam już jak sobie z nimi poradziłem

#18 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 17.02.2011 00:17

Przed chwilą dodałem to do standardowego diablo, wszystko po kolei tak jak w moim tutku i jakoś 0 błędów... Więc zero pytań mam co do tych rzekomych błędów...

Użytkownik sebul edytował ten post 17.02.2011 23:44

  • +
  • -
  • 0

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


#19 cesik

    Zaawansowany

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:129
  • Imię:Dawid
  • Lokalizacja:KIELCE
Offline

Napisano 17.02.2011 00:20

To tak 1 sposob mi niedziala niewiem czemu? O.o


Sposób sebola mi dziala tylko jest 1 ostrzezenie o spacji czy tabulatorze :)
i w:
naswietlony[i] = 0;
jesli ma sie tj. u mnie umiejetnosc odradzania dla jakiejs klasy trzeba ; usunac

Użytkownik cesik edytował ten post 18.02.2011 00:22


#20 OverShot

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:52
  • Lokalizacja:Czarnobyl
Offline

Napisano 23.01.2014 17:49

Sebul niestety nie działa :/

 

        get_user_aiming(id, index1, bodypart1);
        if(is_user_alive(index1)) {
            if(index1 != 54 && get_user_team(id) != get_user_team(index1) && pev(index1, pev_renderamt) < 220) {
                naswietlony[index1] = 1;
                set_renderchange(index1);
                Display_Icon(index1, ICON_FLASH, "dmg_bio", 200, 100, 0);
                if(task_exists(index1+TASK_FLASH_LIGHT)) remove_task(index1+TASK_FLASH_LIGHT);
                set_task(7.5, "un_rander", index1+TASK_FLASH_LIGHT);
            }
        }

 

nnfc.png


  • +
  • -
  • 0





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

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

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