FM_Think за CS_TEAM_SPECTATOR

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Dennis
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 177
Регистриран на: 25 Дек 2018, 04:14
Се отблагодари: 4 пъти
Получена благодарност: 10 пъти

FM_Think за CS_TEAM_SPECTATOR

Мнение от Dennis » 31 Дек 2018, 03:49

Здравейте,

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

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

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

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

CS_TEAM_SPECTATOR

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

FM_Think за CS_TEAM_SPECTATOR

Мнение от SmirnoffBG » 31 Дек 2018, 04:53

Яснотата на идеята ти, ич я нема.
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
Dennis
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 177
Регистриран на: 25 Дек 2018, 04:14
Се отблагодари: 4 пъти
Получена благодарност: 10 пъти

FM_Think за CS_TEAM_SPECTATOR

Мнение от Dennis » 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
Извън линия
Модератор
Модератор
Мнения: 768
Регистриран на: 01 Ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 124 пъти
Обратна връзка:

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"){
}  


Аватар
Dennis
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 177
Регистриран на: 25 Дек 2018, 04:14
Се отблагодари: 4 пъти
Получена благодарност: 10 пъти

FM_Think за CS_TEAM_SPECTATOR

Мнение от Dennis » 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
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 29
Регистриран на: 19 Окт 2016, 05:58
Местоположение: BehindYou
Се отблагодари: 1 път
Получена благодарност: 11 пъти

FM_Think за CS_TEAM_SPECTATOR

Мнение от kryder11 » 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
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

FM_Think за CS_TEAM_SPECTATOR

Мнение от Huehue » 31 Дек 2018, 15:17

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

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

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

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

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

FM_Think за CS_TEAM_SPECTATOR

Мнение от kryder11 » 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
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

FM_Think за CS_TEAM_SPECTATOR

Мнение от Huehue » 31 Дек 2018, 15:41

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

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

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
Dennis
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 177
Регистриран на: 25 Дек 2018, 04:14
Се отблагодари: 4 пъти
Получена благодарност: 10 пъти

FM_Think за CS_TEAM_SPECTATOR

Мнение от Dennis » 31 Дек 2018, 16:53

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

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

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

Кой е на линия

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