←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
Dodanie komendy /respawn

  • +
  • -
Dens - zdjęcie Dens 09.03.2012

Witam mam prosbę aby ktoś przerobił mi plugin aby gracze którzy weszli na server mogli wpisać /respawn i się zrespić.
Ale aby to nie działało dla graczy którzy czekają te 8 sekund na respawn. Lub 2 opcja dawało automatyczny respawn po wejściu na serwer. Z góry dzięki za pomoc

#include <amxmodx>
#include <hamsandwich>
#define PLUGIN "Auto Respawn"
#define AUTHOR "hiroshima"
#define VERSION "1.0"
new czas[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed, "player","Killed", 1)
set_task(90.0,"info",_,_,_,"b")
}
public Killed(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
czas[id] = 1;
if( task_exists(id))
{
remove_task(id)
}
set_task(1.0,"timer",id,_,_,"b")
}
else
{
czas[id] = 8;
if( task_exists(id))
{
remove_task(id)
}
set_task(1.0,"timer",id,_,_,"b")
}
}
public Respawn(id)
{
ExecuteHamB(Ham_CS_RoundRespawn, id)
}
public timer(id)
{
set_hudmessage(0, 255, 0, 0.1, 0.7, 0, 6.0, 10.0)
show_hudmessage(id, "[CIACH.com] Odrodzisz sie za %d sekund^nPo natychmiastowe odrodzenie pisz na GG: 10706888",czas[id])

czas[id]--
if(czas[id] <= 0)
{
Respawn(id)
if( task_exists(id))
{
remove_task(id)
}
}
}
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 09.03.2012

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod X > Problemy z pluginami
do
Scripting AMXX > Pluginy

Odpowiedz

  • +
  • -
Dens - zdjęcie Dens 10.03.2012

Czy ktoś jest mi w stanie pomóc ?
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 10.03.2012

#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "Auto Respawn"
#define AUTHOR "hiroshima"
#define VERSION "1.0"

new czas[33]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed, "player","Killed", 1)
register_clcmd("say /spawn", "Killed");
set_task(90.0,"info",_,_,_,"b")
}

public Killed(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
czas[id] = 1;
remove_task(id)
set_task(1.0,"timer",id,_,_,"b")
}
else
{
czas[id] = 8;
remove_task(id)
set_task(1.0,"timer",id,_,_,"b")
}
}

public Respawn(id)
{
if(is_user_connected(id) && !is_user_alive(id) && (get_user_team(id) == 1 || get_user_team(id) == 2))
ExecuteHamB(Ham_CS_RoundRespawn, id)
}

public timer(id)
{
set_hudmessage(0, 255, 0, 0.1, 0.7, 0, 6.0, 10.0)
show_hudmessage(id, "[CIACH.com] Odrodzisz sie za %d sekund^nPo natychmiastowe odrodzenie pisz na GG: 10706888",czas[id])

czas[id]--
if(czas[id] <= 0)
{
Respawn(id)
remove_task(id)
}
}
Odpowiedz

  • +
  • -
kapi10072 - zdjęcie kapi10072 10.03.2012

Spróbuj tak:

#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "Auto Respawn"
#define AUTHOR "hiroshima"
#define VERSION "1.0"

new czas[33];
new bool:laczy_sie
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /respawn", "Respawn_say");
RegisterHam(Ham_Killed, "player","Killed", 1);
set_task(90.0,"info",_,_,_,"b");
}
public client_connect(id)
{
laczy_sie = true
}

public Killed(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
czas[id] = 1;

if( task_exists(id))
{
remove_task(id);
}
set_task(1.0,"timer",id,_,_,"b");
}
else
{
czas[id] = 8;

if( task_exists(id))
{
remove_task(id);
}
set_task(1.0,"timer",id,_,_,"b");
}
}

public Respawn_say(id)
{
if(laczy_sie == true)
{
Respawn(id);
}

laczy_sie = false
}
public Respawn(id)
{
ExecuteHamB(Ham_CS_RoundRespawn, id);
}

public timer(id)
{
set_hudmessage(0, 255, 0, 0.1, 0.7, 0, 6.0, 10.0)
show_hudmessage(id, "[CIACH.com] Odrodzisz sie za %d sekund^nPo natychmiastowe odrodzenie pisz na GG: 10706888",czas[id])

czas[id]--
if(czas[id] <= 0)
{
Respawn(id);
if( task_exists(id))
{
remove_task(id);
}
}
}
Odpowiedz

  • +
  • -
Dens - zdjęcie Dens 11.03.2012

Leci oczywiście pomógł! I wielkie sorki bo zapomniałem napisać aby na spectators nie było /respawn ani w ogóle nie można było grać na spect. PRzerobi ktoś?
#include <amxmodx>
#include <hamsandwich>
#define PLUGIN "Auto Respawn"
#define AUTHOR "hiroshima"
#define VERSION "1.0"
new czas[33];
new bool:laczy_sie
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /respawn", "Respawn_say");
RegisterHam(Ham_Killed, "player","Killed", 1);
set_task(90.0,"info",_,_,_,"b");
}
public client_connect(id)
{
laczy_sie = true
}
public Killed(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
czas[id] = 1;
if( task_exists(id))
{
remove_task(id);
}
set_task(1.0,"timer",id,_,_,"b");
}
else
{
czas[id] = 8;
if( task_exists(id))
{
remove_task(id);
}
set_task(1.0,"timer",id,_,_,"b");
}
}
public Respawn_say(id)
{
if(laczy_sie == true)
{
Respawn(id);
}
laczy_sie = false
}
public Respawn(id)
{
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
public timer(id)
{
set_hudmessage(0, 255, 0, 0.1, 0.7, 0, 6.0, 10.0)
show_hudmessage(id, "[CIACH.com] Odrodzisz sie za %d sekund^nPo natychmiastowe odrodzenie pisz na GG: 10706888",czas[id])
czas[id]--
if(czas[id] <= 0)
{
Respawn(id);
if( task_exists(id))
{
remove_task(id);
}
}
}
Odpowiedz

  • +
  • -
kapi10072 - zdjęcie kapi10072 11.03.2012

Zamień całą funkcję Respawn_say(id) na tą

public Respawn_say(id)
{
if(get_user_team == 3)
return PLUGIN_HANDLED;

if(laczy_sie == true)
{
Respawn(id);
}
laczy_sie = false

return PLUGIN_CONTINUE;
}

Odpowiedz

  • +
  • -
Dens - zdjęcie Dens 11.03.2012

Przy kompilacji pojawia się 1 error. Kompiluje lokalnie. Może źle podmieniłem? Proszę o konsultacje
#include <amxmodx>
#include <hamsandwich>
#define PLUGIN "Auto Respawn"
#define AUTHOR "hiroshima"
#define VERSION "1.0"
new czas[33];
new bool:laczy_sie
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /respawn", "Respawn_say");
RegisterHam(Ham_Killed, "player","Killed", 1);
set_task(90.0,"info",_,_,_,"b");
}
public client_connect(id)
{
laczy_sie = true
}
public Killed(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
czas[id] = 1;
if( task_exists(id))
{
remove_task(id);
}
set_task(1.0,"timer",id,_,_,"b");
}
else
{
czas[id] = 8;
if( task_exists(id))
{
remove_task(id);
}
set_task(1.0,"timer",id,_,_,"b");
}
}
public Respawn_say(id)
{
if(get_user_team == 3)
return PLUGIN_HANDLED;
if(laczy_sie == true)
{
Respawn(id);
}
laczy_sie = false
return PLUGIN_CONTINUE;
}
public Respawn(id)
{
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
public timer(id)
{
set_hudmessage(0, 255, 0, 0.1, 0.7, 0, 6.0, 10.0)
show_hudmessage(id, "[CIACH.com] Odrodzisz sie za %d sekund^nPo natychmiastowe odrodzenie pisz na GG: 10706888",czas[id])
czas[id]--
if(czas[id] <= 0)
{
Respawn(id);
if( task_exists(id))
{
remove_task(id);
}
}
}
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 11.03.2012

3maj
#include <amxmodx>
#include <hamsandwich>
#define PLUGIN "Auto Respawn"
#define AUTHOR "hiroshima"
#define VERSION "1.0"
new czas[33];
new bool:laczy_sie
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /respawn", "Respawn_say");
	RegisterHam(Ham_Killed, "player","Killed", 1);
	set_task(90.0,"info",_,_,_,"b");
}
public client_connect(id)
{
	laczy_sie = true
}
public Killed(id)
{
	if(get_user_flags(id) & ADMIN_LEVEL_F)
	{
		czas[id] = 1;
		if( task_exists(id))
		{
			remove_task(id);
		}
		set_task(1.0,"timer",id,_,_,"b");
	}
	else
	{
		czas[id] = 8;
		if( task_exists(id))
		{
			remove_task(id);
		}
		set_task(1.0,"timer",id,_,_,"b");
	}
}
public Respawn_say(id)
{
	if(laczy_sie == true && get_user_team(id) != 3)
	{
		Respawn(id);
	}
	laczy_sie = false
	return PLUGIN_CONTINUE;
}
public Respawn(id)
{
	ExecuteHamB(Ham_CS_RoundRespawn, id);
}
public timer(id)
{
	set_hudmessage(0, 255, 0, 0.1, 0.7, 0, 6.0, 10.0)
	show_hudmessage(id, "[CIACH.com] Odrodzisz sie za %d sekund^nPo natychmiastowe odrodzenie pisz na GG: 10706888",czas[id])
	czas[id]--
	if(czas[id] <= 0)
	{
		Respawn(id);
		if( task_exists(id))
		{
			remove_task(id);
		}
	}
}
Odpowiedz

  • +
  • -
Dens - zdjęcie Dens 11.03.2012

Dzięki wielkie! Poszło pomógł! Do zamknięcia
Odpowiedz

  • +
  • -
kapi10072 - zdjęcie kapi10072 11.03.2012

Rzeczywiście mój błąd :P

Nowy kod

public Respawn_say(id)
{
if(get_user_team(id) == 3)
return PLUGIN_HANDLED;

if(laczy_sie == true)
{
Respawn(id);
}
laczy_sie = false

return PLUGIN_CONTINUE;
}

Odpowiedz

  • +
  • -
Dens - zdjęcie Dens 11.03.2012

A nie jednak komenda /respawn zostala zablokowana na spect. Ale gracze dalej respia sie na spect
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 11.03.2012

Podmień public Respawn(id)
na :
public Respawn(id)
{ 
        if(get_user_team(id) != 3)
        {
		ExecuteHamB(Ham_CS_RoundRespawn, id);
	}
}
I nie ma szans aby spect się odrodził ;)
sebul (11.03.2012 21:08):
Są szanse, bo "get_user_team" nie zawsze zwraca wartość, w którym teamie jest dany gracz.
Odpowiedz

  • +
  • -
kapi10072 - zdjęcie kapi10072 11.03.2012

W takim razie dodaj na początku pluginu

#include <cstrike>

i podmień ten kod na

public Respawn_say(id)
{
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR )
return PLUGIN_HANDLED;

if(laczy_sie == true)
{
Respawn(id);
}
laczy_sie = false

return PLUGIN_CONTINUE;
}


I ewentualnie jeszcze to :P


public Respawn(id)
{
if(cs_get_user_team(id) != CS_TEAM_SPECTATOR )
{
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
}
Odpowiedz

  • +
  • -
Enson - zdjęcie Enson 13.03.2012

skoro on wg nie chce aby na spekcie ktos siedzial to moze niech ustawi w server.cfg komende allow_spectators na 0
wtedy zaden gracz nie moze dolaczac na spekta xP

lecz nie jestem w 100% pewien czy w tym przypadku pomoze ale warto sprobowac :P
Odpowiedz

  • +
  • -
kapi10072 - zdjęcie kapi10072 13.03.2012

On chce, aby nie można było używać komendy /respawn na spekcie ...
Odpowiedz