←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

DM mini

Locked

olek0017's Photo olek0017 31.03.2011

Witam
mam prośbę o napisanie pluginu mini dm
a mianowicie chodzi o to aby
-respiło gracza 3 sekundy po śmierci oraz żeby dostawał awp i nóż
-nie respiło gracza który wejdzie na specta

napisałem takie coś ale jak gracz zacznie grac i chce wejść na spec to respi go i gra jak obserwator

#include <amxmodx> 
#include <amxmisc>
#include <fun>


#define PLUGIN "PGC-CS.EU - AWP DM"
#define VERSION "1.01"
#define AUTHOR "rydy17"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","smierc","a")
register_event( "TeamInfo", "dolacz", "a")
}
public dolacz()
{
new gracz = read_data(1)
new druzyna[32]
read_data(2,druzyna,31)
if(!equal(druzyna,"SPECTATOR"))
{
if(get_cvar_num("amx_debug") == 1)
{
if(!is_user_connected(gracz))
{
return PLUGIN_HANDLED
}
else
{

spawn_func(gracz)
}
}
else
{
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public spawn_func(id)
{
new tab[1]
tab[0]=id
if(!is_user_alive(tab[0]))
{
set_task(3.0,"gracz_spawn",72,tab,1)
set_task(4.0,"gracz_giveitems",72,tab,1)
}
else
{
set_task(1.0,"gracz_giveitems",72,tab,1)
}

}
public gracz_spawn(tab[1])
{
spawn(tab[0])
}
public gracz_giveitems(tab[1])
{
strip_user_weapons(tab[0]);
give_item(tab[0], "weapon_awp");
give_item(tab[0], "ammo_338magnum");
give_item(tab[0], "ammo_338magnum");
give_item(tab[0], "ammo_338magnum");
give_item(tab[0], "weapon_knife");
return PLUGIN_CONTINUE
}
public smierc()
{


new victim_id = read_data(2)

spawn_func( victim_id )

return PLUGIN_CONTINUE
}
Quote

  • +
  • -
DarkGL's Photo DarkGL 31.03.2011


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "DarkGL"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("DeathMsg","smierc","a")
RegisterHam(Ham_Spawn,"player","fwh_spawned",1)
}

public fwh_spawned(id){
if(!is_user_alive(id)){
return HAM_IGNORED;
}
fm_give_item(id, "weapon_awp");
fm_give_item(id, "ammo_338magnum");
fm_give_item(id, "ammo_338magnum");
fm_give_item(id, "ammo_338magnum");
fm_give_item(id, "weapon_knife");
return HAM_IGNORED;
}

public smierc(){
set_task(3.0,"spawn",read_data(2))
}

public spawn(id){
if(is_user_alive(id) || (get_user_team(id) != 1 && get_user_team(id) != 2)){
return PLUGIN_CONTINUE;
}
ExecuteHamB(Ham_CS_RoundRespawn, id)
return PLUGIN_CONTINUE;
}
Quote

olek0017's Photo olek0017 31.03.2011

działa ale w połowie '_'
jak się gracz połączy z serwerem to go nie zrespi znaczy się jak dołączy do drużyny
można dodać takie coś ze jak gracz wpisze /respawn albo coś to się respi
albo po prostu jak dołączy do drużyny tt/ct to go zrespi
Quote

  • +
  • -
DarkGL's Photo DarkGL 31.03.2011

działa ale w połowie - dziala w 100% nie napisales nic w pierwszym poscie ze ma byc cos takiego jak
jak się gracz połączy z serwerem to go nie zrespi znaczy się jak dołączy do drużyny
można dodać takie coś ze jak gracz wpisze /respawn albo coś to się respi
albo po prostu jak dołączy do drużyny tt/ct to go zrespi

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "DarkGL"

#define CLASS_KEYS	MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5

#define MAX 32

new bool:gFirst[MAX+1]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("DeathMsg","smierc","a") 
	RegisterHam(Ham_Spawn,"player","fwh_spawned",1)
	
	register_menucmd(register_menuid("Terrorist_Select", 1), CLASS_KEYS, "checkSpawn");
	register_menucmd(register_menuid("CT_Select", 1), CLASS_KEYS, "checkSpawn");
}

public checkSpawn(id){
	if(gFirst[id]){
		gFirst[id] = false;
		set_task(3.0,"getLife",id);
	}
}

public getLife(id){
	if(is_user_alive(id)){
		return PLUGIN_CONTINUE;
	}
	ExecuteHamB(Ham_CS_RoundRespawn, id);
	return PLUGIN_CONTINUE;
}

public client_connect(id){
	gFirst[id] = true;
}

public fwh_spawned(id){
	if(!is_user_alive(id)){
		return HAM_IGNORED;
	} 
	fm_give_item(id, "weapon_awp"); 
	fm_give_item(id, "ammo_338magnum"); 
	fm_give_item(id, "ammo_338magnum"); 
	fm_give_item(id, "ammo_338magnum"); 
	fm_give_item(id, "weapon_knife"); 
	return HAM_IGNORED;
}

public smierc(){
	set_task(3.0,"spawn",read_data(2))
}

public spawn(id){
	if(is_user_alive(id) || (get_user_team(id) != 1 && get_user_team(id) != 2)){
		return PLUGIN_CONTINUE;
	}
	ExecuteHamB(Ham_CS_RoundRespawn, id)
	return PLUGIN_CONTINUE;
}
Quote

olek0017's Photo olek0017 01.04.2011

źle napisałem moja wina :D
ale teraz i tak nie działa - działa tak jak poprzedni
czyli jak się połączę do serwera i dołączę do drużyny to nie respi również jak wejdę na spec i ponownie dołączę do drużyny tez nie zostaje zrespiony
Quote

  • +
  • -
DarkGL's Photo DarkGL 01.04.2011


#include <amxmodx>

#include <hamsandwich>

#include <fakemeta_util>



#define PLUGIN "New Plug-In"

#define VERSION "1.0"

#define AUTHOR "DarkGL"



#define MAX 32



new bool:gFirst[MAX+1]



public plugin_init() {

	register_plugin(PLUGIN, VERSION, AUTHOR)

	

	register_event("DeathMsg","smierc","a") 

	RegisterHam(Ham_Spawn,"player","fwh_spawned",1)

	

	register_event("TeamInfo","team_assign","a")

}



public getLife(id){

	if(is_user_alive(id)){

		return PLUGIN_CONTINUE;

	}

	ExecuteHamB(Ham_CS_RoundRespawn, id);

	return PLUGIN_CONTINUE;

}



public client_connect(id){

	gFirst[id] = true;

}



public fwh_spawned(id){

	if(!is_user_alive(id)){

		return HAM_IGNORED;

	} 

	fm_give_item(id, "weapon_awp"); 

	fm_give_item(id, "ammo_338magnum"); 

	fm_give_item(id, "ammo_338magnum"); 

	fm_give_item(id, "ammo_338magnum"); 

	fm_give_item(id, "weapon_knife"); 

	return HAM_IGNORED;

}



public smierc(){

	set_task(3.0,"spawn",read_data(2))

}



public spawn(id){

	if(is_user_alive(id) || (get_user_team(id) != 1 && get_user_team(id) != 2)){

		return PLUGIN_CONTINUE;

	}

	ExecuteHamB(Ham_CS_RoundRespawn, id)

	return PLUGIN_CONTINUE;

}



public team_assign()

{

	new id = read_data(1)

	new Team[32]

	read_data(2,Team,31)	//UNASSIGNED

	if((equal(Team,"TERRORIST") || equal(Team,"CT")) && gFirst[id]){

		gFirst[id] = false;

		set_task(3.0,"getLife",id);

	}

}
Quote

olek0017's Photo olek0017 01.04.2011

teraz to tylko nie respi gracza który wejdzie na spec i po ponownym połączeni do drużyny nie respi go
ale dzięki :) reszta działa
jak CI się chce to możesz to zrobić a jak nie to temat do zamknięcia
Quote

  • +
  • -
DarkGL's Photo DarkGL 01.04.2011


#include <amxmodx>

#include <hamsandwich>

#include <fakemeta_util>



#define PLUGIN "New Plug-In"

#define VERSION "1.0"

#define AUTHOR "DarkGL"



#define MAX 32



new bool:gFirst[MAX+1]



public plugin_init() {

	register_plugin(PLUGIN, VERSION, AUTHOR)

	

	register_event("DeathMsg","smierc","a") 

	RegisterHam(Ham_Spawn,"player","fwh_spawned",1)

	

	register_event("TeamInfo","team_assign","a")

}



public getLife(id){

	if(is_user_alive(id)){

		return PLUGIN_CONTINUE;

	}

	ExecuteHamB(Ham_CS_RoundRespawn, id);

	return PLUGIN_CONTINUE;

}



public client_connect(id){

	gFirst[id] = true;

}



public fwh_spawned(id){

	if(!is_user_alive(id)){

		return HAM_IGNORED;

	} 

	fm_give_item(id, "weapon_awp"); 

	fm_give_item(id, "ammo_338magnum"); 

	fm_give_item(id, "ammo_338magnum"); 

	fm_give_item(id, "ammo_338magnum"); 

	fm_give_item(id, "weapon_knife"); 

	return HAM_IGNORED;

}



public smierc(){

	set_task(3.0,"spawn",read_data(2))

}



public spawn(id){

	if(is_user_alive(id) || (get_user_team(id) != 1 && get_user_team(id) != 2)){

		return PLUGIN_CONTINUE;

	}

	ExecuteHamB(Ham_CS_RoundRespawn, id)

	return PLUGIN_CONTINUE;

}



public team_assign()

{

	static old_team[33]

	new tid

	new id = read_data(1)

	new Team[32]

	read_data(2,Team,31)	//UNASSIGNED

	if((equal(Team,"TERRORIST") || equal(Team,"CT")) && gFirst[id]){

		gFirst[id] = false;

		set_task(3.0,"getLife",id);

	}

	if(equal(Team,"UNASSIGNED")) tid = 0

	else if(equal(Team,"TERRORIST")) tid = 1

	else if(equal(Team,"CT")) tid = 2

	else if(equal(Team,"SPECTATOR")) tid = 3

	

	if(old_team[id]==tid) return PLUGIN_CONTINUE	//jesli druzyna sie nie zmienila to przerywamy event

	

	if(old_team[id] == 3 && (tid == 1 || tid == 2)){

		if(task_exists(id)){

			remove_task(id);

		}

		set_task(3.0,"getLife",id);

	}

	old_team[id] = tid

	return PLUGIN_CONTINUE

}
Quote

olek0017's Photo olek0017 01.04.2011

teraz działa wyśmienicie :)
dzięki jeszcze raza

można zamknąć
Quote

Adminek AMXX.PL's Photo Adminek AMXX.PL 01.04.2011

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: można zamknąć

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked