FM_Think за CS_TEAM_SPECTATOR

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Потребителски аватар

Автор на темата
LayerFort DJBosma
Потребител
Потребител
Мнения: 85
Регистриран: 25 дек 2018, 04:14
Местоположение: Alkmaar
Се отблагодари: 2 пъти
Получена благодарност: 3 пъти
Години: 24
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от LayerFort DJBosma » 31 дек 2018, 03:49

Здравейте,

Това което желая да направя е на играчите

Код: Избери всички

register_forward(FM_Think, "fw_screenthink")
да проектира на

Код: Избери всички

CS_TEAM_SPECTATOR
Пиша от избата, защото горе имаме течове..

Потребителски аватар

SmirnoffBG ῌΞƦΘЄⱿ
Потребител
Потребител
Мнения: 167
Регистриран: 27 ное 2016, 19:43
Местоположение: София
Се отблагодари: 9 пъти
Получена благодарност: 6 пъти
Години: 23
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от SmirnoffBG ῌΞƦΘЄⱿ » 31 дек 2018, 04:53

Яснотата на идеята ти, ич я нема.
Изображение

Потребителски аватар

Автор на темата
LayerFort DJBosma
Потребител
Потребител
Мнения: 85
Регистриран: 25 дек 2018, 04:14
Местоположение: Alkmaar
Се отблагодари: 2 пъти
Получена благодарност: 3 пъти
Години: 24
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от LayerFort DJBosma » 31 дек 2018, 06:09

CS_TEAM_SPECTATOR да виждат самият nanosuit на играчите в сървъра. :)

Код: Избери всички

public fw_screenthink(ent)
{
	if (!pev_valid(ent))
		return FMRES_IGNORED
	
	if (ent != nd_ent_monitor)
		return FMRES_IGNORED
	
	new players[32], count, id
	energy = 100.0
	
	get_players(players, count, "ac")
	
	for (new i=0;i<count;i++)
	{
		id = players[i]
		
		if (cl_nn_has[id] == NANO_YES && ((cl_nn_lowres[id] && cl_nn_counter[id] == 0) || !cl_nn_lowres[id]))
		{
			// Current Mode
			static hud[200]
			
			formatex(hud, 199, "Current Mode:")
			
			switch (cl_nn_mode[id])
			{
				case NANO_STREN: formatex(hud, 199, "%s Strength",hud)
				case NANO_ARMOR: formatex(hud, 199, "%s Armor",hud)
				case NANO_SPEED: formatex(hud, 199, "%s Speed",hud)
				case NANO_CLOAK: formatex(hud, 199, "%s Cloac",hud)
			}
			
			formatex(hud, 199, "%s^nEnergy: (%d%%)", hud, floatround(cl_nn_energy[id] / energy * 100))
			
			for (new x = 0; x < floatround(cl_nn_energy[id] / energy * 20); x++)
				formatex(hud, 199, "%s|", hud)
			
			formatex(hud, 199, "%s^n", hud)
			
			// Health, Armor
			//formatex(hud, 199, "%sHealth: %d Armor: %d", hud, get_user_health(id), get_user_armor(id))
			
			switch (cl_nn_scr_speed[id])
			{
				case SPD_SCR_STILL:  formatex(hud, 199, "%sSpeed: Standing",hud)
				case SPD_SCR_VSLOW:  formatex(hud, 199, "%sSpeed: Very Slow",hud)
				case SPD_SCR_SLOW:   formatex(hud, 199, "%sSpeed: Slow",hud)
				case SPD_SCR_NORMAL: formatex(hud, 199, "%sSpeed: Normal",hud)
				case SPD_SCR_FAST:   formatex(hud, 199, "%sSpeed: Fast",hud)
			}
			
			if (cl_nn_mode[id] == NANO_STREN)
			{
				formatex(hud, 199, "%s^nController:(%d%%)", hud, floatround(cl_nn_controlling[id] / energy * 100))
				
				for (new x = 0; x < floatround(cl_nn_controlling[id] / energy * 20); x++)
				formatex(hud, 199, "%s|", hud)
			}
			
			if (!cl_nn_lowres[id])
			{
				set_hudmessage(NanoScreenColor[cl_nn_mode[id]][0], NanoScreenColor[cl_nn_mode[id]][1], NanoScreenColor[cl_nn_mode[id]][2], 0.025, 0.6, 0, 0.0, 0.2, 0.01)
				ShowSyncHudMsg(id, nd_hud_sync, "%s", hud)
			}
			else
			{
				set_hudmessage(NanoScreenColor[cl_nn_mode[id]][0], NanoScreenColor[cl_nn_mode[id]][1], NanoScreenColor[cl_nn_mode[id]][2], -0.6, 0.5, 0, 0.0, (0.2 + (0.1 * float(NANO_LOW_RES))), 0.0, 0.0)
				ShowSyncHudMsg(id, nd_hud_sync, "%s", hud)
			}
		}
		
		if (cl_nn_counter[id] > 0)
			cl_nn_counter[id] -= 1
		else
			cl_nn_counter[id] = NANO_LOW_RES
	}
	
	set_pev(ent, pev_nextthink, get_gametime() + 0.1)
	
	return FMRES_IGNORED
}
Пиша от избата, защото горе имаме течове..

Потребителски аватар

hackera457 СОТА
Модератор
Модератор
Мнения: 635
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Получена благодарност: 66 пъти
Години: 24
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от hackera457 СОТА » 31 дек 2018, 08:37

Ако съм те разбрал правилно трябва да е така:

Код: Избери всички

public fw_screenthink(ent)
{
	if (!pev_valid(ent))
		return FMRES_IGNORED
	
	if (ent != nd_ent_monitor)
		return FMRES_IGNORED
	
	new players[32], count, id
	energy = 100.0
	
	get_players(players, count, "ac")
	
	for (new i=0;i<count;i++)
	{
		id = players[i]
		
		if (cl_nn_has[id] == NANO_YES && ((cl_nn_lowres[id] && cl_nn_counter[id] == 0) || !cl_nn_lowres[id]) || cs_get_user_team(id) == CS_TEAM_SPECTATOR)
		{
			// Current Mode
			static hud[200]
			
			formatex(hud, 199, "Current Mode:")
			
			switch (cl_nn_mode[id])
			{
				case NANO_STREN: formatex(hud, 199, "%s Strength",hud)
				case NANO_ARMOR: formatex(hud, 199, "%s Armor",hud)
				case NANO_SPEED: formatex(hud, 199, "%s Speed",hud)
				case NANO_CLOAK: formatex(hud, 199, "%s Cloac",hud)
			}
			
			formatex(hud, 199, "%s^nEnergy: (%d%%)", hud, floatround(cl_nn_energy[id] / energy * 100))
			
			for (new x = 0; x < floatround(cl_nn_energy[id] / energy * 20); x++)
				formatex(hud, 199, "%s|", hud)
			
			formatex(hud, 199, "%s^n", hud)
			
			// Health, Armor
			//formatex(hud, 199, "%sHealth: %d Armor: %d", hud, get_user_health(id), get_user_armor(id))
			
			switch (cl_nn_scr_speed[id])
			{
				case SPD_SCR_STILL:  formatex(hud, 199, "%sSpeed: Standing",hud)
				case SPD_SCR_VSLOW:  formatex(hud, 199, "%sSpeed: Very Slow",hud)
				case SPD_SCR_SLOW:   formatex(hud, 199, "%sSpeed: Slow",hud)
				case SPD_SCR_NORMAL: formatex(hud, 199, "%sSpeed: Normal",hud)
				case SPD_SCR_FAST:   formatex(hud, 199, "%sSpeed: Fast",hud)
			}
			
			if (cl_nn_mode[id] == NANO_STREN)
			{
				formatex(hud, 199, "%s^nController:(%d%%)", hud, floatround(cl_nn_controlling[id] / energy * 100))
				
				for (new x = 0; x < floatround(cl_nn_controlling[id] / energy * 20); x++)
				formatex(hud, 199, "%s|", hud)
			}
			
			if (!cl_nn_lowres[id])
			{
				set_hudmessage(NanoScreenColor[cl_nn_mode[id]][0], NanoScreenColor[cl_nn_mode[id]][1], NanoScreenColor[cl_nn_mode[id]][2], 0.025, 0.6, 0, 0.0, 0.2, 0.01)
				ShowSyncHudMsg(id, nd_hud_sync, "%s", hud)
			}
			else
			{
				set_hudmessage(NanoScreenColor[cl_nn_mode[id]][0], NanoScreenColor[cl_nn_mode[id]][1], NanoScreenColor[cl_nn_mode[id]][2], -0.6, 0.5, 0, 0.0, (0.2 + (0.1 * float(NANO_LOW_RES))), 0.0, 0.0)
				ShowSyncHudMsg(id, nd_hud_sync, "%s", hud)
			}
		}
		
		if (cl_nn_counter[id] > 0)
			cl_nn_counter[id] -= 1
		else
			cl_nn_counter[id] = NANO_LOW_RES
	}
	
	set_pev(ent, pev_nextthink, get_gametime() + 0.1)
	
	return FMRES_IGNORED
}
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

Автор на темата
LayerFort DJBosma
Потребител
Потребител
Мнения: 85
Регистриран: 25 дек 2018, 04:14
Местоположение: Alkmaar
Се отблагодари: 2 пъти
Получена благодарност: 3 пъти
Години: 24
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от LayerFort DJBosma » 31 дек 2018, 13:37

Мне, нито

Код: Избери всички

if (cl_nn_has[id] == NANO_YES && ((cl_nn_lowres[id] && cl_nn_counter[id] == 0) || !cl_nn_lowres[id]) || cs_get_user_team(id) == CS_TEAM_SPECTATOR)
нито

Код: Избери всички

if (cs_get_user_team(id) == CS_TEAM_SPECTATOR ||cl_nn_has[id] == NANO_YES && ((cl_nn_lowres[id] && cl_nn_counter[id] == 0) || !cl_nn_lowres[id]) )
Пиша от избата, защото горе имаме течове..

Потребителски аватар

kryder11 findBugs
AMXX Скриптър
AMXX Скриптър
Мнения: 29
Регистриран: 19 окт 2016, 05:58
Местоположение: BehindYou
Се отблагодари: 1 път
Получена благодарност: 11 пъти
Години: 24

FM_Think за CS_TEAM_SPECTATOR

Мнение от kryder11 findBugs » 31 дек 2018, 15:07

Първо, register_forward(FM_Think, "fw_screenthink") има две променливи: ent y toucher

На второ място, един for() в FM_Think.... просто не знаете какво правите защото е по веруютно да падне сървъра от колкото на направите каквото искате.

Прави се ето така, на първо място махни този register_forward:

Код: Избери всички

public client_putinserver(id)
{
	set_task(1.0, "fw_screenthink", id, _, _, "b")
}

public fw_screenthink(id)
{
	if (!is_user_alive(id))
	{
		id = pev(id, PEV_SPEC_TARGET)
		
		if (!is_user_alive(id)) return;
	}
	
	energy = 100.0
	
	if (cl_nn_has[id] == NANO_YES && ((cl_nn_lowres[id] && cl_nn_counter[id] == 0) || !cl_nn_lowres[id]))
	{
		// Current Mode
		static hud[200]
		
		formatex(hud, 199, "Current Mode:")
		
		switch (cl_nn_mode[id])
		{
			case NANO_STREN: formatex(hud, 199, "%s Strength",hud)
			case NANO_ARMOR: formatex(hud, 199, "%s Armor",hud)
			case NANO_SPEED: formatex(hud, 199, "%s Speed",hud)
			case NANO_CLOAK: formatex(hud, 199, "%s Cloac",hud)
		}
		
		formatex(hud, 199, "%s^nEnergy: (%d%%)", hud, floatround(cl_nn_energy[id] / energy * 100))
		
		for (new x = 0; x < floatround(cl_nn_energy[id] / energy * 20); x++)
			formatex(hud, 199, "%s|", hud)
		
		formatex(hud, 199, "%s^n", hud)
		
		// Health, Armor
		//formatex(hud, 199, "%sHealth: %d Armor: %d", hud, get_user_health(id), get_user_armor(id))
		
		switch (cl_nn_scr_speed[id])
		{
			case SPD_SCR_STILL:  formatex(hud, 199, "%sSpeed: Standing",hud)
			case SPD_SCR_VSLOW:  formatex(hud, 199, "%sSpeed: Very Slow",hud)
			case SPD_SCR_SLOW:   formatex(hud, 199, "%sSpeed: Slow",hud)
			case SPD_SCR_NORMAL: formatex(hud, 199, "%sSpeed: Normal",hud)
			case SPD_SCR_FAST:   formatex(hud, 199, "%sSpeed: Fast",hud)
		}
		
		if (cl_nn_mode[id] == NANO_STREN)
		{
			formatex(hud, 199, "%s^nController:(%d%%)", hud, floatround(cl_nn_controlling[id] / energy * 100))
			
			for (new x = 0; x < floatround(cl_nn_controlling[id] / energy * 20); x++)
			formatex(hud, 199, "%s|", hud)
		}
		
		if (!cl_nn_lowres[id])
		{
			set_hudmessage(NanoScreenColor[cl_nn_mode[id]][0], NanoScreenColor[cl_nn_mode[id]][1], NanoScreenColor[cl_nn_mode[id]][2], 0.025, 0.6, 0, 0.0, 0.2, 0.01)
			ShowSyncHudMsg(id, nd_hud_sync, "%s", hud)
		}
		else
		{
			set_hudmessage(NanoScreenColor[cl_nn_mode[id]][0], NanoScreenColor[cl_nn_mode[id]][1], NanoScreenColor[cl_nn_mode[id]][2], -0.6, 0.5, 0, 0.0, (0.2 + (0.1 * float(NANO_LOW_RES))), 0.0, 0.0)
			ShowSyncHudMsg(id, nd_hud_sync, "%s", hud)
		}
	}
		
	if (cl_nn_counter[id] > 0)
		cl_nn_counter[id] -= 1
	else
		cl_nn_counter[id] = NANO_LOW_RES
	
	set_pev(ent, pev_nextthink, get_gametime() + 0.1)
}
И сега ми обясни по добре какво искаш да направиш.Спектаторите да виждат да ли има нано другия играч който гледат?
Site: http://www.olympiagaming.es/serversboard.php
Zombie Apocalypse: 54.37.14.249:27015
4Fun: 54.37.14.249:27016

Потребителски аватар

Huehue БРАТМЕЕ
Модератор
Модератор
Мнения: 229
Регистриран: 16 яну 2017, 23:42
Местоположение: София
Се отблагодари: 4 пъти
Получена благодарност: 51 пъти
Години: 22
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от Huehue БРАТМЕЕ » 31 дек 2018, 15:17

Само щуротии пишете ползвайте register_think.

Грешката на колегата @hackera457 е, че проверя дали клиента е спектатор, но преди това функцията get_players взима всички живи играчи.
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

Потребителски аватар

kryder11 findBugs
AMXX Скриптър
AMXX Скриптър
Мнения: 29
Регистриран: 19 окт 2016, 05:58
Местоположение: BehindYou
Се отблагодари: 1 път
Получена благодарност: 11 пъти
Години: 24

FM_Think за CS_TEAM_SPECTATOR

Мнение от kryder11 findBugs » 31 дек 2018, 15:25

Никакви щуротии Huehue... За каквоти е register_think ако може да ми обясниш като think се ползва само при entities. За нещо са тези глобални set_task().

FW_Think праща до мотора (engine) горе доло 1000 петиции в секунда на 32 играча ако сървъра е пълен... И да не споменавам че е fakemeta. Това иска да каже: fakemeta -> engine -> преработка -> engine -> fakemeta.
Преди да корегираш, питай. :rolle:
Site: http://www.olympiagaming.es/serversboard.php
Zombie Apocalypse: 54.37.14.249:27015
4Fun: 54.37.14.249:27016

Потребителски аватар

Huehue БРАТМЕЕ
Модератор
Модератор
Мнения: 229
Регистриран: 16 яну 2017, 23:42
Местоположение: София
Се отблагодари: 4 пъти
Получена благодарност: 51 пъти
Години: 22
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от Huehue БРАТМЕЕ » 31 дек 2018, 15:41

Ползваш register_think за да създадеш мислещо ентити, което в случая ще му бъде hud съобщеното. И въобще няма никакъв проблем с пълен сървър и тези проверки.. Някога ги е имало, но със сегашните хостове нямат никви проблеми. А другото което е, че ако реално бяха толкова тежки неща, въобще нямаше да ги има и да се използват. В твоя случай дори таска, който си му дал не е глобален.
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

Потребителски аватар

Автор на темата
LayerFort DJBosma
Потребител
Потребител
Мнения: 85
Регистриран: 25 дек 2018, 04:14
Местоположение: Alkmaar
Се отблагодари: 2 пъти
Получена благодарност: 3 пъти
Години: 24
Контакти:

FM_Think за CS_TEAM_SPECTATOR

Мнение от LayerFort DJBosma » 31 дек 2018, 16:53

Пробвах това което дадохте, но не се компилирва от PEV_SPEC_TARGET - желая спектаторите да виждат самият сйют на играчите.
Пиша от избата, защото горе имаме течове..

Заключена

Върни се в “Помощ в скриптирането”

Кой е на линия

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