←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

GodMode, pasek.

Zablokowany

Screeaam... - zdjęcie Screeaam... 10.04.2010

Witam, zrobiłem item nieśmiertelność:

/* ==================================================================================================== */
public gdmode(id){
       if (used_item[id])
       {
		hudmsg(id,2.0,"Niesmiertelnosc mozesz uzyc raz na runde!")
		return PLUGIN_CONTINUE
       }
       if (get_user_button(id) & IN_USE && button[id]==0)
       {
       button[id]=1;
       set_user_godmode(id, 1)
       hudmsg(id,2.0,"Niesmiertelnosc zostala aktywowana!")
       if(!task_exists(id))
       set_task(5.0, "fnOFF", id);
       }
       used_item[id] = true    
       return PLUGIN_CONTINUE
}
/* ==================================================================================================== */

Raz na rundę można użyć, trwa 5 sekund. Jak dorobić do niego pasek ładowania (Czyli leci pasek taki jak przy rozbrajaniu od włączenia do wyłączenia)? Oraz jak przerobić, aby gdy robię item, to piszę tak:


player_b_godmode[id] == tutaj czas jak długo można go użyć

Po drugie, jeżeli dodam do tego:

set_user_maxspeed(id,get_user_maxspeed(id)+500.0)

To w funkcji wyłączającej jaki mam dać parametr do szybkości, taki:

set_user_maxspeed(id,get_user_maxspeed(id)+1.0)

Czy to będzie błędne?
Użytkownik Screeaam... edytował ten post 10.04.2010 23:37
Odpowiedz

Tomi - zdjęcie Tomi 11.04.2010

/* ==================================================================================================== */
public gdmode(id){
       if (used_item[id])
       {
		hudmsg(id,2.0,"Niesmiertelnosc mozesz uzyc raz na runde!")
		return PLUGIN_CONTINUE
       }
       if (get_user_button(id) & IN_USE && button[id]==0)
       {
       button[id]=1;
       set_user_godmode(id, 1)
       hudmsg(id,2.0,"Niesmiertelnosc zostala aktywowana!")
       if(!task_exists(id))
       set_task(5.0, "fnOFF", id);
       }
       used_item[id] = true    
       return PLUGIN_CONTINUE
}
/* ==================================================================================================== */

Popraw z
public gdmode(id){

na

public godmode(id){
Odpowiedz

Screeaam... - zdjęcie Screeaam... 11.04.2010

/* ==================================================================================================== */
public gdmode(id){
       if (used_item[id])
       {
		hudmsg(id,2.0,"Niesmiertelnosc mozesz uzyc raz na runde!")
		return PLUGIN_CONTINUE
       }
       if (get_user_button(id) & IN_USE && button[id]==0)
       {
       button[id]=1;
       set_user_godmode(id, 1)
       hudmsg(id,2.0,"Niesmiertelnosc zostala aktywowana!")
       if(!task_exists(id))
       set_task(5.0, "fnOFF", id);
       }
       used_item[id] = true    
       return PLUGIN_CONTINUE
}
/* ==================================================================================================== */

Popraw z
public gdmode(id){

na

public godmode(id){


Nie wiesz, nie pisz, specjalnie funkcję nazwałem gdmode. >.> Nazwa funkcji nie ma nic do znaczenia. -.-

//Swoją drogą, wszystko działa, tylko chcę ten pasek dorobić.
Użytkownik Screeaam... edytował ten post 11.04.2010 00:20
Odpowiedz

  • +
  • -
Vertricus - zdjęcie Vertricus 11.04.2010

w diablo jest stock msg_bartime :&
Tam jest struktura :>
Odpowiedz

Screeaam... - zdjęcie Screeaam... 12.04.2010

Coś takiego:
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) 
       write_byte( player_b_godmode[id]+4 ) 
       write_byte( 0 ) 
       message_end()

Czyli takie coś:
/* ==================================================================================================== */
public gdmode(id){
       if (used_item[id])
       {
		hudmsg(id,2.0,"Niesmiertelnosc mozesz uzyc raz na runde!")
		return PLUGIN_CONTINUE
       }
       if (get_user_button(id) & IN_USE && button[id]==0)
       {
       button[id]=1;
       set_user_godmode(id, 1)
       show_hudmessage(id, "Niesmiertelnosc zostala aktywowana!")
       if(!task_exists(id))
       set_task(5.0, "fnOFF", id);
       message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) 
       write_byte( player_b_godmode[id]+4 ) 
       write_byte( 0 ) 
       message_end() 
       }
       used_item[id] = true    
       return PLUGIN_CONTINUE
}
/* ==================================================================================================== */

Będzie dobre?


//Edit:

Dobra, pasek działa.. Ale jak zrobic, aby informacja, czy GodMode ma się włączonego i wyłączonego pokazywała się w chacie, ale tylko dla jednej osoby (używającej) na kolorowo? Oraz jak zrobić tą prędkość gracza? Wiem jak ją ustawić, ale jak zrobić, aby potem była prędkość standardowa?

//Edit2:

Z tym napisem chyba wiem, pójdzie coś taiego:

new name[32]
	get_user_name(id, name, 31)
        ColorChat(id, GREEN,"^x04[DiabloMod][%s]^x01 Niesmiertelnosc zostala aktywowana", name)

Czy wtedy będzie widziała to osoba używająca? Bo dałem zamiast 0 id.

No i co z tą szybkością?

11 kwiecień 2010 - 02:17:
Okey, mam kilka pytań:

Czy tak funkcja jest dobra:

if(player_speedis[id] > 0)
        {
                set_user_maxspeed(id,get_user_maxspeed(id)+player_speedis[id])
        }

Wtedy przy robieniu itemu w:

player_speedis[id] = wartość szybkości

Dobrze to jest?

2. Jak zrobić, aby np. co 3 sekundy leczyło 50hp?

11 kwiecień 2010 - 17:53:
Powie ktoś, jeżeli wpiszę set_user_maxspeed(id, 1,0) to bd standardowa prędkość klasy?

12 kwiecień 2010 - 19:02:
Nast. pytanie.


Jak zrobić, aby gdy klasa ma mniej niż 100 hp dodaje mu 700 speeda, zrobiłem tak i wpakowałem do prethink:

                if(player_class[id] == Fernando && get_user_health(id) < 100)
                {
                        set_user_maxspeed(id,get_user_maxspeed(id)+700.0)
                        new name[32]
			get_user_name(id, name, 31) 
		        ColorChat(id, GREEN, "^x04[DiabloMod][%s]^x01Szarza zostala ^x03wlaczona", name)
                }

Lecz po pewnym czasie wywala osoby z serwa. :/
Użytkownik Screeaam... edytował ten post 12.04.2010 19:03
Odpowiedz

  • +
  • -
Valito - zdjęcie Valito 12.04.2010

Screeam, jak zrobiłem własny kod podobny do twojego nie wyłączał się godmone. U ciebie wszystko działa? Bo mi się wydaje że taskiem powinieneś to wyłączyć
Odpowiedz

Screeaam... - zdjęcie Screeaam... 12.04.2010

Screeam, jak zrobiłem własny kod podobny do twojego nie wyłączał się godmone. U ciebie wszystko działa? Bo mi się wydaje że taskiem powinieneś to wyłączyć



Tak, bo zrobiłem osobną funkcję, która wyłącza GodMode i aktywuje ją taskiem. :X

U mnie działa elegancko.

Przecież mam task. :X
set_task(5.0, "fnOFF", id);

12 kwiecień 2010 - 21:16:


Okej, zrobiłem tak:

if(player_class[id] == Fernando && get_user_health(id) < 100)
{
set_renderchange(id)
set_user_maxspeed(id,get_user_maxspeed(id)+600.0)
}
else if(player_class[id] == Fernando && get_user_health(id) > 150)
{
set_renderchange(id)
set_user_maxspeed(id,270.0)
}


1. Ale jak zrobić, aby co 3 sekundy się leczył po 10hp aż nie osiągnie 150hp? Bo jak dodam taska do prethinku, to od razu robi mi max hp. :/

2. Jak zrobić, że jak się wciśnie E to teleportuje do spawnu?

Dodałem to do prethinku.
Użytkownik Screeaam... edytował ten post 12.04.2010 22:55
Odpowiedz
Zablokowany