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

Respawn z daną ilością żyć


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

#1 lexar

    Wszechwiedzący

  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 19.06.2014 11:43

Witam

Jak zrobić autorespawn dla gracza po zabiciu z daną ilością żyć?

 

Pozdrawiam


  • +
  • -
  • 0

#2 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 19.06.2014 12:34

Nabazgrałem na szybko coś takiego 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Młody"

#define MAXLIFES 3
#define TASKID 943

new lifes[33]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("HLTV", "event_hltv", "a", "1=0", "2=0")
	
	RegisterHam(Ham_Killed, "player", "client_killed", 1)
}

public client_killed(id) {

	set_task(3.0, "client_respawn", TASKID + id)	
}

public client_respawn(TASK) {

	new id = TASK - TASKID 
	if(!is_user_alive(id) && is_user_connected(id) && lifes[id] < MAXLIFES) {
		ExecuteHamB(Ham_CS_RoundRespawn, id)
		lifes[id]++
	}	
}

public event_hltv() {
	
	for(new i = 0; i < 33; i++) {
		lifes[i] = 0
		remove_task(i + TASKID)
	}
}

Nietestowane ale powinno działać ... raczej :P


Użytkownik Puchate edytował ten post 19.06.2014 12:35

  • +
  • -
  • 1

#3 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 19.06.2014 14:33

Dzięki plugin działa :D a jak zrobić, że po śmierci byłby napis pozostało ci X żyć odrodzisz się za X sekund?


  • +
  • -
  • 0

#4 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 19.06.2014 17:47

Dodałem komunikat oraz CVAR'y aby łatwiej było konfigurować.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "X Lifes"
#define VERSION "1.0"
#define AUTHOR "Młody"

#define TASKID 943
#define MAXPLAYERS 32

new lifes[MAXPLAYERS+1]
new maxlifes
new respawntime

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	maxlifes = register_cvar("amx_maxlifes", "3")
	respawntime = register_cvar("amx_maxlifes_time", "5.0")
	
	register_event("HLTV", "event_hltv", "a", "1=0", "2=0")	
	RegisterHam(Ham_Killed, "player", "client_killed", 1)
}

public client_killed(id) {
	
	new Float:timeVar = get_pcvar_float(respawntime)	
	new lifesLeft = get_pcvar_num(maxlifes) - lifes[id]
	
	if(lifesLeft) {
	
		set_task(timeVar, "client_respawn", TASKID + id)
		client_print(id, print_chat, "[AMX] Zostaniesz odrodzony za %d sekund, pozostalo Ci %d zyc", floatround(timeVar), lifesLeft)		
	}
}

public client_respawn(TASK) {
	
	new id = TASK - TASKID 
	if(!is_user_alive(id) && is_user_connected(id) && lifes[id] < get_pcvar_num(maxlifes)) {
		ExecuteHamB(Ham_CS_RoundRespawn, id)
		lifes[id]++
	}	
}

public event_hltv() {
	
	for(new i = 0; i <= MAXPLAYERS; i++) {
		lifes[i] = 0
		remove_task(i + TASKID)
	}
}

Użytkownik Puchate edytował ten post 19.06.2014 17:54

  • +
  • -
  • 1

#5 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 19.06.2014 19:51

Wywala mi błąd przy kompilacji:

 
Error: Undefined symbol "MAXPLAYERS" on line 60
Error: Invalid array size (negative or zero) on line 61
Error: Undefined symbol "MAXPLAYERS" on line 1174
 

  • +
  • -
  • 0

#6 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 19.06.2014 19:54

Czyż aby na pewno masz

#define TASKID 943
#define MAXPLAYERS 32
?

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#7 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 19.06.2014 19:57

dzięki przeoczyłem to ;) zaraz sprawdzę czy działa i dam znać


  • +
  • -
  • 0

#8 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 19.06.2014 20:19

Super działa! A czy dało by się zrobić tak że odliczanie Zostaniesz odrodzony za %d sekund było by na bieżąco i wyświetlało by się na środku ekranu? Byłbym naprawdę wdzięczny :)


  • +
  • -
  • 0

#9 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 19.06.2014 23:43


dzięki przeoczyłem to
Nieładnie w plikach źródłowych zmieniać autora ;)

 

Jutro postaram się coś Ci z tym wykminić.


  • +
  • -
  • 1

#10 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 20.06.2014 08:39

 


dzięki przeoczyłem to
Nieładnie w plikach źródłowych zmieniać autora ;)

 

Jutro postaram się coś Ci z tym wykminić.

 

 

Po prostu musiałem wkleić ten kod do innego pluginu, żeby nie było!  ;P


Użytkownik lexar edytował ten post 20.06.2014 08:39

  • +
  • -
  • 0

#11 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 25.06.2014 14:02

To jak dało by się zrobić z odliczaniem na bieżąco? :)


  • +
  • -
  • 0

#12 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 25.06.2014 22:22

Coś wymyśliłem :P

 

Wersja 1.2 pluginu, pokazuje licznik do respawnu na hudzie, wszystko w pełni konfigurowalne przez CVAR'y.

	cvar_maxlifes = register_cvar("amx_maxlifes", "3") // life count
	cvar_respawntime = register_cvar("amx_maxlifes_time", "5") // time to respawn, integer value!
	
	cvar_rgb[0] = register_cvar("amx_maxlifes_r", "255") // RGB Color system - Red color value [0-255]
	cvar_rgb[1] = register_cvar("amx_maxlifes_g", "255") // RGB Color system - Green color value [0-255]
	cvar_rgb[2] = register_cvar("amx_maxlifes_b", "255") // RGB Color system - Blue color value [0-255]
	
	cvar_pos[0] = register_cvar("amx_maxlifes_x", "-1.0") // Hud message position on x axis
	cvar_pos[1] = register_cvar("amx_maxlifes_y", "0.25") // Hud message position on y axis	

Całość napisana tak aby działała poprawnie oraz zużywała jak najmniej zasobów serwera :)

 

EDIT: Mała poprawka i mamy już 1.3 :D

Załączone pliki


Użytkownik Puchate edytował ten post 25.06.2014 22:26

  • +
  • -
  • 2

#13 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 25.06.2014 22:59

Dziękujemy Ci Puchate, nie wiadomo skąd się urwałeś :) Pozdrawiam


Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#14 lexar

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 63
Pomocny

  • Postów:502
  • GG:
  • Lokalizacja:Wyspa Kucyków
Offline

Napisano 26.06.2014 09:35

Stawiam ci wódkę!!

 

Dzięki wielkie!!


  • +
  • -
  • 0




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

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