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

[ROZWIĄZANE] Dostawanie czegoś przy odradzaniu


Najlepsza odpowiedź Nltj, 11.08.2014 12:34

zapomniałem zaznaczyć "" nazwe publicka, i moja klawiatura postawiła "niewidoczny" znak który psuł kompilacje

Przejdź do postu


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

#1 Gram Jajami

    Zaawansowany

  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 06.08.2014 16:34

Witajcie, chce dodać do pluginu od respienia, aby dostawało się "coś" przy respieniu tylko w czasie trwania rundy (nie przy rozpoczęciu nowej rundy), ale nie wiem dokładnie, w które miejsce

#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "Autorespawn/Auto-respawn"
#define AUTHOR "HubertTM"
#define VERSION "1.0"

new TimeSpawn[33] = 0;
new bool:Timer[33] = false;
new cTimeSpawn, pTimeSpawn, cInfoSpawn, pInfoSpawn, cTeamSpawn, pTeamSpawn, cSayRespawn, pSayRespawn, cTeamAuto, pTeamAuto, cPlayers, pPlayers, cColor, pColor

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	RegisterHam(Ham_Killed, "player", "ham_killed", 1);
	RegisterHam(Ham_Spawn, "player", "ham_spawn", 1);
	
	register_clcmd("say /respawn", "SayRespawn");
	register_clcmd("say_team /respawn", "SayRespawn");
	register_clcmd("say respawn", "SayRespawn");
	
	cTimeSpawn = register_cvar("spawn_time", "3");
	cInfoSpawn = register_cvar("spawn_infotimer", "1");
	cTeamSpawn = register_cvar("spawn_team", "0");
	cSayRespawn = register_cvar("spawn_say", "1");
	cTeamAuto = register_cvar("spawn_auto", "1");
	cPlayers = register_cvar("spawn_minplayers", "2");
	cColor = register_cvar("spawn_colorhud", "0");
}


public client_putinserver(id){
	Timer[id] = false
	TimeSpawn[id] = 0;
	set_task(5.0, "CheckTeam", id+291,_,_,"b");
}

public client_disconnect(id){
	Timer[id] = false
	TimeSpawn[id] = 0;
	remove_task(id+291);
}


public ham_killed(id)
{
	pTimeSpawn = get_pcvar_num(cTimeSpawn);
	pInfoSpawn = get_pcvar_num(cInfoSpawn);
	pTeamSpawn = get_pcvar_num(cTeamSpawn);
	pSayRespawn = get_pcvar_num(cSayRespawn);
	pTeamAuto = get_pcvar_num(cTeamAuto);
	pPlayers = get_pcvar_num(cPlayers);
	pColor = get_pcvar_num(cColor);

	if(!is_user_connected(id) || get_user_team(id) == 3 || get_user_team(id) == 0 || is_user_alive(id))
	return HAM_IGNORED;

	if(pTeamSpawn && get_user_team(id) != pTeamSpawn)
	return HAM_IGNORED;
	
	if(pPlayers && get_playersnum() < pPlayers)
	return HAM_IGNORED;
	
	TimeSpawn[id] = pTimeSpawn;
	
	UtworzHUD(id);
	
	remove_task(id+492);
	set_task(1.0, "TimerSpawn", id+492);
	Timer[id] = true;
	
	
	return HAM_IGNORED;
}


public SpawnPlayer(id)
{
	if(!is_user_connected(id) || get_user_team(id) == 3 || get_user_team(id) == 0 || is_user_alive(id))
	return PLUGIN_CONTINUE;
	
	if(pTeamSpawn && get_user_team(id) != pTeamSpawn)
	return PLUGIN_CONTINUE;
	
	if(get_playersnum() < pPlayers)
	return PLUGIN_CONTINUE;
	
	
	
	TimeSpawn[id] = pTimeSpawn;
	
	UtworzHUD(id);
	
	remove_task(id+492);
	set_task(1.0, "TimerSpawn", id+492);
	Timer[id] = true;
	
	
	return PLUGIN_CONTINUE;
}

public UtworzHUD(id){

	if(pInfoSpawn){
		switch(pColor)
		{
		case 0: set_hudmessage(255, 0, 0, -1.0, 0.4, 0, 1.5, 3.0);
		case 1: set_hudmessage(0, 255, 0, -1.0, 0.4, 0, 1.5, 3.0);
		case 2: set_hudmessage(0, 102, 255, -1.0, 0.4, 0, 1.5, 3.0);
		case 3: set_hudmessage(255, 255, 255, -1.0, 0.4, 0, 1.5, 3.0);
		}
		switch(TimeSpawn[id]){
		case 0: show_hudmessage(id, "Odradzanie...");
		case 1: show_hudmessage(id, "Odrodzisz sie za: %d sekunde", TimeSpawn[id]);
		case 2 .. 4: show_hudmessage(id, "Odrodzisz sie za: %d sekundy", TimeSpawn[id]);
		default: show_hudmessage(id, "Odrodzisz sie za: %d sekund", TimeSpawn[id]);
		}
	}
	
}

public TimerSpawn(id){
	id-=492
	
	if(!is_user_connected(id) || is_user_alive(id) || get_user_team(id) == 3 || get_user_team(id) == 0){
	Timer[id] = false;
	return PLUGIN_CONTINUE;
	}
	
	if(TimeSpawn[id] > 1)
	{
		TimeSpawn[id]--;
		Timer[id] = true;
		UtworzHUD(id);
		set_task(1.0, "TimerSpawn", id+492);
	}
	else
	{
		PlayerSpawn(id);
		Timer[id] = false;
	}
	
	return PLUGIN_CONTINUE;
}

public PlayerSpawn(id)
{
	if(!is_user_connected(id) || is_user_alive(id) || get_user_team(id) == 3 || get_user_team(id) == 0)
	return PLUGIN_CONTINUE;
	
	ExecuteHamB(Ham_CS_RoundRespawn, id);
	Timer[id] = false;
	
	return PLUGIN_CONTINUE;
}

public ham_spawn(id){
	if(task_exists(id+492))
	remove_task(id+492);
	
	Timer[id] = false;
	TimeSpawn[id] = pTimeSpawn
}

public SayRespawn(id)
{
	
	if(!pSayRespawn || !is_user_connected(id) || is_user_alive(id) || get_user_team(id) == 3 || get_user_team(id) == 0 || Timer[id])
	{
		if(pSayRespawn && is_user_alive(id))
		client_print(id, print_chat, "[Respawn] Jestes zywy!");
		else
		if(pSayRespawn && (get_user_team(id) == 0 || get_user_team(id) == 3))
		client_print(id, print_chat, "[Respawn] Jestes spectatorem!");
		else
		if(pSayRespawn && Timer[id] && is_user_connected(id) && !is_user_alive(id) && (get_user_team(id) == 1 || get_user_team(id) == 2)){
		new menu = menu_create("Trwa odrodzenie jednak odrodzic?", "SayRespawnH");
		menu_additem(menu, "Tak, odrodz mnie");
		menu_additem(menu, "Nie chce.");
		menu_display(id, menu);
		}
		
		return PLUGIN_CONTINUE;
	}

	SpawnPlayer(id);
	
	return PLUGIN_CONTINUE;
}
public SayRespawnH(id, menu , item){
	if(item != 0){
	menu_destroy(menu);
	return PLUGIN_HANDLED;
	}
	
	SpawnPlayer(id);
	Timer[id] = false;
	
	return PLUGIN_CONTINUE;
}



public CheckTeam(id){
	id-=291
	
	if(!is_user_connected(id))
	return PLUGIN_CONTINUE;
	
	if(is_user_alive(id)){
	Timer[id] = false;
	return PLUGIN_CONTINUE;
	}
	
	if(!pTeamAuto)
	return PLUGIN_CONTINUE;
	
	if(Timer[id])
	return PLUGIN_CONTINUE;
	
	if(get_user_team(id) == 1 || get_user_team(id) == 2)
	SpawnPlayer(id);
	
	return PLUGIN_CONTINUE;
}


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 06.08.2014 18:12

Rzeczy które chcesz dodawać po spawnie to w tu: ham_spawn

 

(fm)give_item + nazwa broni z weapon_*


  • +
  • -
  • 0

#3 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 10.08.2014 20:01

No ok, ale ja nie chce żeby dostawało się na początku rundy


  • +
  • -
  • 0

#4 ^Technik^

    Zaawansowany

  • Zbanowany

Reputacja: 35
Życzliwy

  • Postów:93
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 10.08.2014 20:08

zrób task czasowy np: po 20sec-30sec-1minucie  



#5 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 10.08.2014 20:08

No to co chesz? Opisz dokładnie. Nie rozumiem Ciebie chociaz czytam 3 raz
  • +
  • -
  • 0

#6 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 10.08.2014 21:37

Teraz jest tak:

Zaczyna się się runda (dostajesz coś), giniesz i za 5s respisz się (dostajesz coś)

 

A ja chce żeby było tak:

Zaczyna się runda (nic nie dostajesz), giniesz i za 5s respisz się (dostajesz coś)

 

Mam nadzieję, że teraz zrozumiesz :)


  • +
  • -
  • 0

#7 Nltj

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 11.08.2014 01:23

public PlayerSpawn(id)
{
    if(!is_user_connected(id) || is_user_alive(id) || get_user_team(id) == 3 || get_user_team(id) == 0)
    return PLUGIN_CONTINUE;
    
    ExecuteHamB(Ham_CS_RoundRespawn, id); // Po tym "HAMIE" gracz jest żywy, i ta funkcja wywołuje się po śmierci :3 nie na poczatku rundy

    new data[1]
    data[0] = id;
    set_task(0.5, rzeczydostawane,41633, data, 1);

    Timer[id] = false;
    
    return PLUGIN_CONTINUE;
}

public rzeczydostawane(data[])
{
new id = data[0]
//Rzeczy dostawane
//Ta calosc zamiast calego publicka PlayerSpawn(id)
//Daje gotowca tylko dopisac rzeczy
}

Załączone pliki


Użytkownik Nltj edytował ten post 11.08.2014 01:31

  • +
  • -
  • 2

#8 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 11.08.2014 09:12

Przy kompilacji

auto.smax(159) : error 029: invalid expression, assumed zero
auto.smax(159) : warning 215: expression has no effect
auto.smax(159) : warning 215: expression has no effect
auto.smax(159) : warning 215: expression has no effect
auto.smax(159) : error 001: expected token: ";", but found ")"
auto.smax(159) : error 029: invalid expression, assumed zero
auto.smax(159) : fatal error 107: too many error messages on one line


  • +
  • -
  • 0

#9 Nltj

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 11.08.2014 12:34   Najlepsza odpowiedź

zapomniałem zaznaczyć "" nazwe publicka, i moja klawiatura postawiła "niewidoczny" znak który psuł kompilacje

Załączone pliki


Użytkownik Nltj edytował ten post 11.08.2014 12:34

  • +
  • -
  • 2

#10 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 12.08.2014 09:09

Podziękował +


  • +
  • -
  • 0




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

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