Иконка ресурса

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • Автор ресурса
  • #1
Пользователь White Wolf разместил новый ресурс:

Neon - Подсветка под ногами

Узнать больше об этом ресурсе...

C-подобный:
1.0.0 - Релиз плагина
1.1.0 - Устранена проблема пропадания неона в начале раунда
1.2.0 - hotfix теперь наблюдатели не могут активировать неон
1.2.1 - added plugin version broadcast
1.3.0 - добавлен targetname параметр для ентити
 

Вложения

  • shop_neon_css.zip
    8.9 КБ · Просмотры: 788
Последнее редактирование:

DarklSide

Участник
Сообщения
931
Реакции
468
Серый™, скорей всего - неохотой править под sm 1.7.0- ,
которая для некоторых являеться steam only.
 

Вложения

  • shop_neon.sp
    5 КБ · Просмотры: 39
Последнее редактирование:

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • Автор ресурса
  • #5
Новая версия.
C-подобный:
1.1.0 - Устранена проблема пропадания неона в начале раунда
 

Alraune

Участник
Сообщения
216
Реакции
52
В ксс 34 не работает =\
В 34 вообще неон не работает. Вроде. Я тоже попробовала установить.но ((
А вообще этот эффект можно было бы использовать принудительно для подсветки тимы. Например на сервере где была замена стандартных скинов на сторонние эти подсказки (красный терам, синий -кт) были бы кстати )) Я бы такой плагин поставила .
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
KSA, а ошибки в логах есть? Вроде ничего такого в плагине нет. Разве что из-за нового см может не работает. Хотя может чего-то не заметил.
 

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • Автор ресурса
  • #9
Срочное обновление плагина с версии 1.1.0
C-подобный:
1.2.0 - hotfix теперь наблюдатели не могут активировать неон
 

smoke96

Участник
Сообщения
1,134
Реакции
175
Shop Neon

Вообщем плагин который написал White Wolf не сохраняет неон после смерти и после конца раунда , решил глянуть его исходник , глянул и офигел , при компиляции исхода который он выложил куча ошибок , ну я решил избавиться от них , но избавился только от половины , вот код который я подредактировал , помогите пожалуйста , очень нужен данный модуль.
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <shop>

// Force 1.7 syntax
//#pragma newdecls required

#define PLUGIN_VERSION "1.2.1"

#define CATEGORY	"neon"

new g_iClientColor[MAXPLAYERS+1][4];
new g_iNeon[MAXPLAYERS+1];
new Handle:g_hKv

public Plugin:myinfo =
{
	name = "[Shop] ",
	author = "Smoke",
	version = "1.0"
}

public OnPluginStart()
{
	HookEvent("player_spawn", Event_PlayerSpawn);
	HookEvent("player_death", Event_PlayerDeath);
	
	if (Shop_IsStarted()) Shop_Started();
}

public OnMapStart()
{
	decl String:buffer[256];
	if (g_hKv != null) g_hKv.Close();
	g_hKv = new KeyValues("Neon");
	
	Shop_GetCfgFile(buffer, sizeof(buffer), "neon.txt");
	
	if (!g_hKv.ImportFromFile(buffer)) SetFailState("Couldn't parse file %s", buffer);
}

public OnPluginEnd()
{
	Shop_UnregisterMe();
}

public Shop_Started()
{
	if (g_hKv == null) OnMapStart();
	g_hKv.Rewind();
	decl cName[80]; decl cDescription[80];
	g_hKv.GetString("name", cName, sizeof(cName), "Neon");
	g_hKv.GetString("description", cDescription, sizeof(cDescription));
	
	CategoryId category_id = Shop_RegisterCategory(CATEGORY, cName, cDescription);
	
	g_hKv.Rewind();
	
	if (g_hKv.GotoFirstSubKey(true))
	{
		do
		{
			if (g_hKv.GetSectionName(cName, sizeof(cName)) && Shop_StartItem(category_id, cName))
			{
				g_hKv.GetString("name", cName, sizeof(cName), cName);
				g_hKv.GetString("description", cDescription, sizeof(cDescription), "");
				Shop_SetInfo(cName, cDescription, g_hKv.GetNum("price", 1000), g_hKv.GetNum("sellprice", -1), Item_Togglable, g_hKv.GetNum("duration", 604800));
				Shop_SetCallbacks(_, OnEquipItem);
				Shop_EndItem();
			}
		} while (g_hKv.GotoNextKey(true));
	}
	g_hKv.Rewind();
}

public ShopAction:OnEquipItem(iClient, CategoryId:category_id, const String:category[], ItemId:item_id, const String:item[], bool:isOn, bool:elapsed)
{
	if (isOn || elapsed)
	{
		OnClientDisconnect(iClient);
		return Shop_UseOff;
	}
	
	Shop_ToggleClientCategoryOff(iClient, category_id);
	
	if (g_hKv.JumpToKey(cItem, false) && IsPlayerAlive(iClient))
	{
		iColor[4];
		g_hKv.GetColor("color", iColor[0], iColor[1], iColor[2], iColor[3]);
		g_hKv.Rewind();
		
		for (new i = 0; i < 4; i++)
			g_iClientColor[iClient][i] = iColor[i];
		
		SetClientNeon(iClient);
		return Shop_UseOn;
	}
	
	PrintToChat(iClient, "Failed to use \"%s\".", cItem);
	return Shop_Raw;
}

public OnClientDisconnect(iClient)
{
	RemoveNeon(iClient);
}

public OnClientPostAdminCheck(iClient)
{
	RemoveNeon(iClient);
}

public Action Event_PlayerSpawn(iClient, iTeam, bool:dontBroadcast)
{
	if (iClient > 0 && g_iNeon[iClient] && IsPlayerAlive(iClient))
	{
		SetClientNeon(iClient);
	}
}

public Action:Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
	RemoveNeon(GetClientOfUserId(GetEventInt(event, "userid")));
}

RemoveNeon(iClient)
{
	if(g_iNeon[iClient] > 0 && IsValidEdict(g_iNeon[iClient]))
	{
		AcceptEntityInput(g_iNeon[iClient], "Kill");
	}
	g_iNeon[iClient] = 0;
}

SetClientNeon(iClient)
{
	RemoveNeon(iClient);
	decl Float:clientOrigin[3], Float:pos[3], Float:beampos[3], Float:FurnitureOrigin[3];
	GetClientAbsOrigin(iClient, clientOrigin);
	GetCollisionPoint(iClient, pos);
	FurnitureOrigin[0] = pos[0];
	FurnitureOrigin[1] = pos[1];
	FurnitureOrigin[2] = (pos[2] + 50);
	beampos[0] = pos[0];
	beampos[1] = pos[1];
	beampos[2] = (FurnitureOrigin[2] + 20);
	new Neon = CreateEntityByName("light_dynamic");
	DispatchKeyValue(Neon, "brightness", "5");
	decl String:str_color[25]; FormatEx(str_color, 25, "%d %d %d %d", g_iClientColor[iClient][0],  g_iClientColor[iClient][1],  g_iClientColor[iClient][2],  g_iClientColor[iClient][3]);
	DispatchKeyValue(Neon, "_light", str_color);
	DispatchKeyValue(Neon, "spotlight_radius", "50");
	DispatchKeyValue(Neon, "distance", "150");
	DispatchKeyValue(Neon, "style", "0");
	SetEntPropEnt(Neon, Prop_Send, "m_hOwnerEntity", iClient);
	if(DispatchSpawn(Neon))
	{
		AcceptEntityInput(Neon, "TurnOn");
		g_iNeon[iClient] = Neon;
		TeleportEntity(Neon, clientOrigin, NULL_VECTOR, NULL_VECTOR);
		SetVariantString("!activator");
		AcceptEntityInput(Neon, "SetParent", iClient, Neon, 0);
	} else g_iNeon[iClient] = 0;
}

GetCollisionPoint(iClient, Float:pos[3])
{
	decl Float:vOrigin[3], Float:vAngles[3];
	
	GetClientEyePosition(iClient, vOrigin);
	GetClientEyeAngles(iClient, vAngles);
	
	new Handle:trace = TR_TraceRayFilterEx(vOrigin, vAngles, MASK_SOLID, RayType_Infinite, TraceEntityFilterPlayer);
	
	if(TR_DidHit(trace))
	{
		TR_GetEndPosition(pos, trace);
		CloseHandle(trace);
		return;
	}
	
	CloseHandle(trace);
}

public bool:TraceEntityFilterPlayer(entity, contentsMask)
{
	return entity > MaxClients;
}
Скрин ошибок : https://cloud.mail.ru/public/2DR4E1V7YBcq/Снимок123.PNG
Заранее благодарен.
 

smoke96

Участник
Сообщения
1,134
Реакции
175
Re: Shop Neon

Все равно не работает, подскажите как избавиться от оставшихся ошибок :)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: Shop Neon

при начале нового раунда неон пропадает
C-подобный:
RemoveNeon(iClient)
{
    if(g_iNeon[iClient] > 0 && IsValidEdict(g_iNeon[iClient]))
    {
        AcceptEntityInput(g_iNeon[iClient], "Kill");
    }
    [B]g_iNeon[iClient] = [U]0[/U][/B];
}
Вот тебе причина. После смерти эта строка не должна выполняться.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Сверху Снизу