Намиране или изработка на Live Spectator

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Намиране или изработка на Live Spectator

Мнение от Marinovv » 15 Мар 2018, 12:35

Привет драги читатели. Имам един код:

Код за потвърждение: Избери целия код

/* Plugin generated by AMXX-Studio */


#include < amxmodx >
#include < cstrike >
#include < hamsandwich >

#define PLUGIN 		"Live Observer"
#define VERSION 	"0.1"
#define AUTHOR 		"4и4оката"

new g_Cvar[1], Valera = 0

public plugin_init() {
	//Author
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	//Clcmd
	register_clcmd("say /specspawn", "Respawn")
	
	//Logevent
	register_logevent("Round_Start", 2, "1=Round_Start")
	
	//Ham
	RegisterHam(Ham_TakeDamage,"player","TakeDamage")
	RegisterHam(Ham_Use, "func_button", "UseButton")
	RegisterHam(Ham_Touch, "weapon_hegrenade", "player_touchweapon")
  	RegisterHam(Ham_Touch, "weaponbox", "player_touchweapon")
	RegisterHam(Ham_Touch, "armoury_entity", "player_touchweapon")
	
	g_Cvar[0] = register_cvar("block_button", "2") //1-da, 2-ne
}

public player_touchweapon(id) {
	if(Valera == 1)
		return HAM_SUPERCEDE
         
	return HAM_IGNORED    
}
   
public RoundStart() {
	for(new i = 0; i <= get_maxplayers(); i++) {
		if(cs_get_user_team(i) != CS_TEAM_SPECTATOR && !is_user_alive(i)) {
			Valera = 0  
		}
	}
}
	
public Respawn(id) { //spawn
	if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) {
		ExecuteHamB(Ham_CS_RoundRespawn, id)
		Valera = 1
	}
		
}
		
public TakeDamage(victim, inflictor, attacker, Float:damage) { // Damage
	if(is_user_connected(attacker) && is_user_alive(attacker) && cs_get_user_team(attacker) == CS_TEAM_SPECTATOR)
		SetHamParamFloat(4, damage * 0.0)
}

public UseButton(ent, caller, id) { // Button
	if(get_pcvar_num( g_Cvar[0] ) && is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_SPECTATOR) 
		return HAM_SUPERCEDE
		
	return HAM_IGNORED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

Този плъгин позволява да играете, като спектатор, но не ми харесва при него, че като умреш и не те възражда отново докато не станеш отново T или CT, а трябва да пишеш постоянно командата, за респалн на спектатор.

Освен това скина е на CT, когато си жив спектатор и това е кофти. Може ли да намерите или изработите такъв, който има специален скин, респалва те постоянно, като спектатор докато си спектатор, а не T или CT и да има команда /stop, когато реша да съм спектатор, но не жив спектатор, а обикновен спектатор.

Благодаря.
Последно промяна от Marinovv на 15 Мар 2018, 17:41, променено общо 1 път.
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Намиране или изработка на Live Spectator

Мнение от OciXCrom » 15 Мар 2018, 16:29

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cromchat>
#include <cstrike>
#include <hamsandwich>

#define RESPAWN_DELAY 0.5
#define SPECTATOR_MODEL "admin_ct"

new bool:g_bNoRespawn[33]

public plugin_init()
{
	register_plugin("Play as Spectator", "1.0", "OciXCrom")
	register_event("DeathMsg", "OnPlayerKilled", "a")
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
	RegisterHam(Ham_TraceAttack, "player", "PreTraceAttack")
	RegisterHam(Ham_Touch, "weapon_hegrenade", "PreTouchWeapon")
  	RegisterHam(Ham_Touch, "weaponbox", "PreTouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "PreTouchWeapon")
	register_clcmd("say /specspawn", "Cmd_Spawn")
	register_clcmd("say_team /specspawn", "Cmd_Spawn")
	register_clcmd("say /stop", "Cmd_Stop")
	register_clcmd("say_team /stop", "Cmd_Stop")
	CC_SetPrefix("&x04[PaS]")
}

public plugin_precache()
	precache_player_model(SPECTATOR_MODEL)

public client_putinserver(id)
	g_bNoRespawn[id] = false
	
public Cmd_Spawn(id)
{
	if(is_spectator(id, false))
	{
		RespawnPlayer(id)
		CC_SendMessage(id, "&x06Respawned!")
	}
	else
		CC_SendMessage(id, "&x07You're not a spectator!")
		
	return PLUGIN_HANDLED
}

public Cmd_Stop(id)
{
	g_bNoRespawn[id] = !g_bNoRespawn[id]
	
	if(g_bNoRespawn[id])
	{
		if(is_user_alive(id) && is_spectator(id, false))
			user_silentkill(id)
			
		CC_SendMessage(id, "&x07You will no longer respawn as a spectator.")
	}
	else
	{
		if(!is_user_alive(id) && is_spectator(id, false))
			RespawnPlayer(id)
			
		CC_SendMessage(id, "&x06You will once again respawn as a spectator.")
	}
	
	return PLUGIN_HANDLED
}

public OnPlayerSpawn(id)
{
	if(is_user_alive(id) && is_spectator(id, false))
		cs_set_user_model(id, SPECTATOR_MODEL)
}

public PreTraceAttack(iVictim, iAttacker)
	return (is_spectator(iVictim, true) || is_spectator(iAttacker, true)) ? HAM_SUPERCEDE : HAM_IGNORED
	
public PreTouchWeapon(iEnt, id)
	return is_spectator(id, true) ? HAM_SUPERCEDE : HAM_IGNORED

public OnPlayerKilled()
{
	new iVictim = read_data(2)
	
	if(g_bNoRespawn[iVictim] || !is_spectator(iVictim, true))
		return
		
	set_task(RESPAWN_DELAY, "RespawnPlayer", iVictim)
}

public RespawnPlayer(id)
	ExecuteHamB(Ham_CS_RoundRespawn, id)
	
bool:is_spectator(const id, const bCheckConnected)
{
	if(bCheckConnected)
		return (is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_SPECTATOR)
	
	return (cs_get_user_team(id) == CS_TEAM_SPECTATOR)
}
	
precache_player_model(szModel[])
{
    static szFile[128]
    formatex(szFile, charsmax(szFile), "models/player/%s/%s.mdl", szModel, szModel)
    precache_model(szFile)
    replace(szFile, charsmax(szFile), ".mdl", "T.mdl")
    
    if(file_exists(szFile))
        precache_model(szFile)
}

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Намиране или изработка на Live Spectator

Мнение от Marinovv » 15 Мар 2018, 17:38

Много благодаря, но вярвам, че вината е отново в мен.

Защо този плъгин те прави безсмъртен. Искам просто да мога да умирам, както T или CT, за да мога да бия и двата отбора.

Дали си го направил така, защото не е възможно да се съживяваш постоянно без да пишеш команда /specspawn , като спектатор?

Той онзи горния плъгин работи идеално, но няма специален скин и + това всеки път иска да пиша/specspawn , за да ме съживи, като спектатор отново.

Ще те помоля само да погледнеш плъгина си и да го коригираш на смъртен. :)
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Намиране или изработка на Live Spectator

Мнение от OciXCrom » 16 Мар 2018, 00:50

Направил съм го така защото не виждам какъв е смисълът да можеш да умираш. Промених го.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта