То есть если вкл. То снежки можно будет поднимать? На той же самой awp_lego_2 Про снег просто, как его включитьsv_holiday_mode 1
А снег помоему не включен в обновление
Скорее всего только для стандартных картТо есть если вкл. То снежки можно будет поднимать? На той же самой awp_lego_2 Про снег просто, как его включить
Ок, а я профукал. Урон он наносит?Скорее всего только для стандартных карт
Но может там есть что то типо weapon_snowball добавлено в обновлении
И можно например плагином выдавать каждому снежок
НетОк, а я профукал. Урон он наносит?
А можно это исправить? Просто кастом раунд хочу сделать. Кстати почему у меня кастом раунды не хотят работать. Модуль авто старт ошибку выводит
очевидно виноват плагин, отвечающий за эту командупосле прописывания команды !snow сервер падает после обновы!!!!!!!!
да уже понял, хотел узнать а её можно как-нибудь запретить, исходя из возможностей плагина я не могу это вроде какочевидно виноват плагин, отвечающий за эту команду
А можно убрать эффект от снежков? когда в тебя попали и не видно ничего на пару сек. А то у меня на bhop сервере будут друг другу в лицо кидать уверен)Не думаю что за раунд выкинут 999 снежков
"ammo_grenade_limit_snowballs" = "3" game replicated
"sv_snowball_strength" = "12.0" min. 2.000000 max. 64.000000 game replicated - Snowball strength
#include <sdkhooks>
#include <sdktools_entinput>
#include <sdktools_functions>
public Plugin myinfo =
{
name = "Snowball",
author = "Drumanid",
version = "1.0.0",
url = "Discrod: Drumanid#9108 | Telegram: t.me/drumanid"
};
int g_iCvarSnowball,
g_iCvarTeam,
g_iCountSnowball[MAXPLAYERS +1];
float g_fCvarDamage;
public APLRes AskPluginLoad2(Handle hMySelf, bool bLate, char[] sError, int iErrMax)
{
if(GetEngineVersion() != Engine_CSGO) SetFailState("Only available for CS:GO");
LoadTranslations("snowball.phrases.txt");
}
#define CHOOK(%0,%1) %0.AddChangeHook(view_as<ConVarChanged>(%1))
public void OnPluginStart()
{
ConVar hCvar = CreateConVar("snowball_count", "3", "Сколько выдавать снежков? | -1 - не выдавать / 0 - игрок сможет взять на спавне / > 0 - выдаваемое кол-во снежков");
CHOOK(hCvar, CvarHookSnowball); g_iCvarSnowball = hCvar.IntValue;
hCvar = CreateConVar("snowball_team", "0", "Какой команде выдавать снежки? | 0 - всем / 2 - только т / 3 - только кт");
CHOOK(hCvar, CvarHookTeam); g_iCvarTeam = hCvar.IntValue;
hCvar = CreateConVar("snowball_damage", "50", "Каков урон от снежка? | 0.0 - запретить урон");
CHOOK(hCvar, CvarHookDamage); g_fCvarDamage = hCvar.FloatValue;
AutoExecConfig(true, "snowball");
HookEvent("player_spawn", view_as<EventHook>(PlayerSpawn));
}
void CvarHookSnowball(ConVar hCvar) { g_iCvarSnowball = hCvar.IntValue; }
void CvarHookTeam(ConVar hCvar) { g_iCvarTeam = hCvar.IntValue; }
void CvarHookDamage(ConVar hCvar) { g_fCvarDamage = hCvar.FloatValue; }
public void OnConfigsExecuted()
{
ConVar hCvar = FindConVar("ammo_grenade_limit_snowballs");
if(hCvar == null) LogError("No found cvar: ammo_grenade_limit_snowballs");
else hCvar.SetInt(1);
}
public void OnEntityCreated(int iEntity, const char[] sClassname)
{
if(g_iCvarSnowball != 0 && StrEqual(sClassname, "ent_snowball_pile")) AcceptEntityInput(iEntity, "Kill");
else if(g_iCvarSnowball != -1 && StrEqual(sClassname, "snowball_projectile")) SDKHook(iEntity, SDKHook_StartTouchPost, StartTouchPost);
}
void StartTouchPost(int iEntity, int iVictim)
{
int iAttacker = GetEntPropEnt(iEntity, Prop_Send, "m_hThrower");
if(iAttacker > 0 && IsClientInGame(iAttacker) && IsPlayerAlive(iAttacker))
{
if(g_fCvarDamage > 0.0 && iVictim != -1) SDKHooks_TakeDamage(iVictim, iAttacker, iAttacker, g_fCvarDamage);
if(g_iCvarSnowball > 0 && --g_iCountSnowball[iAttacker] > 0)
{
GivePlayerItem(iAttacker, "weapon_snowball");
FakeClientCommand(iAttacker, "use weapon_snowball");
PrintHintText(iAttacker, "%t", "Snowballs left", g_iCountSnowball[iAttacker]);
}
else PrintHintText(iAttacker, "%t", "No snowballs");
}
SDKUnhook(iEntity, SDKHook_StartTouchPost, StartTouchPost);
}
#define SZF(%0) %0, sizeof(%0)
void PlayerSpawn(Event hEvent)
{
if(g_iCvarSnowball < 1) return;
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
if(g_iCvarTeam == 0 || GetClientTeam(iClient) == g_iCvarTeam)
{
// ...
int iCount, iWeapon; char sWeapon[32];
for(; iCount < 5; ++iCount)
{
if((iWeapon = GetPlayerWeaponSlot(iClient, 3)) != -1)
{
GetEdictClassname(iWeapon, SZF(sWeapon));
if(StrEqual(sWeapon, "weapon_snowball"))
{
sWeapon = "+";
break;
}
}
}
if(!StrEqual(sWeapon, "+")) GivePlayerItem(iClient, "weapon_snowball");
g_iCountSnowball[iClient] = g_iCvarSnowball;
}
}
public void OnClientDisconnect(int iClient)
{
g_iCountSnowball[iClient] = g_iCvarSnowball;
}
public Action CS_OnCSWeaponDrop(int iClient, int iWeapon)
{
char sWeapon[32]; GetEdictClassname(iWeapon, SZF(sWeapon));
if(StrEqual(sWeapon, "weapon_snowball")) AcceptEntityInput(iWeapon, "Kill");
}
Как и откуда взять такие модельки игроков?!Я тут почудил слегка...
PHP:#include <sdkhooks> #include <sdktools_entinput> #include <sdktools_functions> public Plugin myinfo = { name = "Snowball", author = "Drumanid", version = "1.0.0", url = "Discrod: Drumanid#9108 | Telegram: t.me/drumanid" }; int g_iCvarSnowball, g_iCvarTeam, g_iCountSnowball[MAXPLAYERS +1]; float g_fCvarDamage; public APLRes AskPluginLoad2(Handle hMySelf, bool bLate, char[] sError, int iErrMax) { if(GetEngineVersion() != Engine_CSGO) SetFailState("Only available for CS:GO"); LoadTranslations("snowball.phrases.txt"); } #define CHOOK(%0,%1) %0.AddChangeHook(view_as<ConVarChanged>(%1)) public void OnPluginStart() { ConVar hCvar = CreateConVar("snowball_count", "3", "Сколько выдавать снежков? | -1 - не выдавать / 0 - игрок сможет взять на спавне / > 0 - выдаваемое кол-во снежков"); CHOOK(hCvar, CvarHookSnowball); g_iCvarSnowball = hCvar.IntValue; hCvar = CreateConVar("snowball_team", "0", "Какой команде выдавать снежки? | 0 - всем / 2 - только т / 3 - только кт"); CHOOK(hCvar, CvarHookTeam); g_iCvarTeam = hCvar.IntValue; hCvar = CreateConVar("snowball_damage", "50", "Каков урон от снежка? | 0.0 - запретить урон"); CHOOK(hCvar, CvarHookDamage); g_fCvarDamage = hCvar.FloatValue; AutoExecConfig(true, "snowball"); HookEvent("player_spawn", view_as<EventHook>(PlayerSpawn)); } void CvarHookSnowball(ConVar hCvar) { g_iCvarSnowball = hCvar.IntValue; } void CvarHookTeam(ConVar hCvar) { g_iCvarTeam = hCvar.IntValue; } void CvarHookDamage(ConVar hCvar) { g_fCvarDamage = hCvar.FloatValue; } public void OnConfigsExecuted() { ConVar hCvar = FindConVar("ammo_grenade_limit_snowballs"); if(hCvar == null) LogError("No found cvar: ammo_grenade_limit_snowballs"); else hCvar.SetInt(1); } public void OnEntityCreated(int iEntity, const char[] sClassname) { if(g_iCvarSnowball != 0 && StrEqual(sClassname, "ent_snowball_pile")) AcceptEntityInput(iEntity, "Kill"); else if(g_iCvarSnowball != -1 && StrEqual(sClassname, "snowball_projectile")) SDKHook(iEntity, SDKHook_StartTouchPost, StartTouchPost); } void StartTouchPost(int iEntity, int iVictim) { int iAttacker = GetEntPropEnt(iEntity, Prop_Send, "m_hThrower"); if(iAttacker > 0 && IsClientInGame(iAttacker) && IsPlayerAlive(iAttacker)) { if(g_fCvarDamage > 0.0 && iVictim != -1) SDKHooks_TakeDamage(iVictim, iAttacker, iAttacker, g_fCvarDamage); if(g_iCvarSnowball > 0 && --g_iCountSnowball[iAttacker] > 0) { GivePlayerItem(iAttacker, "weapon_snowball"); FakeClientCommand(iAttacker, "use weapon_snowball"); PrintHintText(iAttacker, "%t", "Snowballs left", g_iCountSnowball[iAttacker]); } else PrintHintText(iAttacker, "%t", "No snowballs"); } SDKUnhook(iEntity, SDKHook_StartTouchPost, StartTouchPost); } #define SZF(%0) %0, sizeof(%0) void PlayerSpawn(Event hEvent) { if(g_iCvarSnowball < 1) return; int iClient = GetClientOfUserId(hEvent.GetInt("userid")); if(g_iCvarTeam == 0 || GetClientTeam(iClient) == g_iCvarTeam) { // ... int iCount, iWeapon; char sWeapon[32]; for(; iCount < 5; ++iCount) { if((iWeapon = GetPlayerWeaponSlot(iClient, 3)) != -1) { GetEdictClassname(iWeapon, SZF(sWeapon)); if(StrEqual(sWeapon, "weapon_snowball")) { sWeapon = "+"; break; } } } if(!StrEqual(sWeapon, "+")) GivePlayerItem(iClient, "weapon_snowball"); g_iCountSnowball[iClient] = g_iCvarSnowball; } } public void OnClientDisconnect(int iClient) { g_iCountSnowball[iClient] = g_iCvarSnowball; } public Action CS_OnCSWeaponDrop(int iClient, int iWeapon) { char sWeapon[32]; GetEdictClassname(iWeapon, SZF(sWeapon)); if(StrEqual(sWeapon, "weapon_snowball")) AcceptEntityInput(iWeapon, "Kill"); }
Наносит урон. У меня на сервере убили игрока снежком. Ржали всем сервером.
Мне кажется ты путаешь то, о чем я говорилНаносит урон. У меня на сервере убили игрока снежком. Ржали всем сервером.
Ну я так понял, речь была об уроне снежка. Наносит ли он урон или нет.Мне кажется ты путаешь то, о чем я говорил
Ты плагины используешь для снежков?Ну я так понял, речь была об уроне снежка. Наносит ли он урон или нет.