Что за ошибка? Может она у тебя только.Люди добрые здравствуйте,может кто поможет.
Нужно плагин VIP SKINS подправить чтобы можно было выгружать без ошибок тут есть инструкция но у меня все равно не удалось сделать.
Сделал как было написано,он скомпилился с одной ошибкой и при нажатии выбор скина менюшка просто офалась.
Товарисч Паника,будьте любезны откройте обе ссылки,и на ссылке "инструкция" есть данный текст,цитируюЧто за ошибка? Может она у тебя только.
Все прекрасно работает.спасибо большое.Можно ли выдать сразу 3 гранаты, не проверял...
Как я себе это представляю? Выдаешь гранату и устанавливаешь ей 'запас'.
Но есть такой варик (легкий же плагин):
PHP:#include <sourcemod> #include <sdktools_functions> #include <sdkhooks> public Plugin myinfo = { name = "Limited Grenade", author = "Drumanid", version = "1.0.0", url = "Discord: Drumanid#9108 | Telegram: t.me/drumanid" }; int g_iCountGrenade[MAXPLAYERS +1]; static const char g_sGrenade[32] = "weapon_hegrenade"; // Название гранаты #define COMMAND "sm_he" // Команда выдачи гранат(ы) #define COUNT 3 // Кол-во выдаваемых гранат #define VE(%0) view_as<EventHook>(%0) #define LC(%0) for(int %0 = 1; %0 <= MaxClients; ++%0) if(IsClientInGame(%0)) public void OnPluginStart() { LoadTranslations("limited_grenade.phrases.txt"); RegConsoleCmd(COMMAND, Comamnd); HookEvent("round_start",VE(RoundStart), EventHookMode_PostNoCopy); HookEvent("hegrenade_detonate", VE(HeGrenadeDetonate)); LC(iClient) OnClientPostAdminCheck(iClient); } public Action Comamnd(int iClient, int iArgs) { if(iClient && iArgs == 0) { if(IsPlayerAlive(iClient)) { if(g_iCountGrenade[iClient] == -1) { GivePlayerItem(iClient, g_sGrenade); PrintHintText(iClient, "%t", "Give grenade", (g_iCountGrenade[iClient] = COUNT)); } else PrintToChat(iClient, "%t", "Took grenades"); } else PrintToChat(iClient, "%t", "Player is dead"); } return Plugin_Handled; } void RoundStart() { LC(iClient) g_iCountGrenade[iClient] = -1; } void HeGrenadeDetonate(Event hEvent) { RequestFrame(HeGrenadeDetonateFrame, hEvent.GetInt("userid")); } void HeGrenadeDetonateFrame(int iClient) { if((iClient = GetClientOfUserId(iClient)) && IsClientInGame(iClient) && IsPlayerAlive(iClient)) { if(g_iCountGrenade[iClient] > 0) { if(--g_iCountGrenade[iClient] == 0) { PrintHintText(iClient, "%t", "No grenade"); return; } GivePlayerItem(iClient, g_sGrenade); PrintHintText(iClient, "%t", "Count of greandes", g_iCountGrenade[iClient]); } } } void WeaponSwitchPost(int iClient, int iEntity) { if(g_iCountGrenade[iClient] < 1) return; int iOther = GetEntPropEnt(iEntity, Prop_Send, "m_hThrower"); if(iOther == iClient) return; char sItem[32]; GetEdictClassname(iEntity, sItem, sizeof(sItem)); if(StrEqual(sItem, g_sGrenade)) ++g_iCountGrenade[iClient]; } public void OnClientPostAdminCheck(int iClient) { g_iCountGrenade[iClient] = -1; if(!IsFakeClient(iClient)) SDKHook(iClient, SDKHook_WeaponSwitchPost, WeaponSwitchPost); }
public OnPluginStart()
{
AddCommandListener(Button_G, "drop");
}
public Action:Button_G(client, String:command[], args)
{
FakeClientCommand(client, "sm_guns");
return Plugin_Continue;
}
мне кажется это ксс в34@sviridov_artem, игра хоть какая?
Да, CSS v34 , SM 1.9@sviridov_artem, игра хоть какая?
хочется, что бы менялась на ту же самую и так же без голосований@sviridov_artem, а переменная mp_maxrounds в v34 не работает?
#pragma semicolon 1
#pragma newdecls required
#include <cstrike>
static const int MAX_ROUNDS = 400;
int iRounds;
public void OnMapStart()
{
iRounds = 1;
}
public Action CS_OnTerminateRound(float& delay, CSRoundEndReason& reason)
{
if(reason == CSRoundEnd_GameStart) return Plugin_Continue;
iRounds++;
if(iRounds > MAX_ROUNDS)
{
char map[65];
GetCurrentMap(map, sizeof(map));
ForceChangeLevel(map, "Max rounds");
return Plugin_Handled;
}
return Plugin_Continue;
}
@sviridov_artem, пробуй--- Добавлено позже ---PHP:#pragma semicolon 1 #pragma newdecls required #include <cstrike> static const int MAX_ROUNDS = 400; int iRounds; public void OnMapStart() { iRounds = 1; } public Action CS_OnTerminateRound(float& delay, CSRoundEndReason& reason) { if(reason == CSRoundEnd_GameStart) return Plugin_Continue; iRounds++; if(iRounds > MAX_ROUNDS) { char map[65]; GetCurrentMap(map, sizeof(map)); ForceChangeLevel(map, "Max rounds"); return Plugin_Handled; } return Plugin_Continue; }
Возможно в плагине return Plugin_Handled; не нужно
Добрый день!
Игра CS GO. Нужно сделать, чтобы союзники могли наносить союзникам урон с he гранат и молотова, но не могли с огнестрельного оружия и ножа(также зевса).
Квары отвечающие за урон по союзникам:
Оффтоп
mp_friendlyfire 1
//Управление коэффициентом снижения пулевого урона по игрокам из своей команды
ff_damage_reduction_bullets 0
//Управление коэффициентом снижения урона гранаты по игрокам из своей команды
ff_damage_reduction_grenade 1
//Управление коэффициентом снижения урона молотова и ножа по игрокам из своей команды
ff_damage_reduction_other 1
Сейчас плагин выглядит следующим образом и урон с огнестрела, ножа и зевса не наносится по союзникам, а с гранат и молотова урон союзникам наносится как и нужно.
Оффтоп
public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype)
{
if(GetClientTeam(victim) == GetClientTeam(attacker))
{
char szWeapon[32];
GetClientWeapon(attacker, szWeapon, sizeof(szWeapon));
if(StrEqual(szWeapon[7], "knife") || StrEqual(szWeapon[7], "taser"))
{
damage = 0.0;
return Plugin_Changed;
}
}
return Plugin_Continue;
}
public OnClientPostAdminCheck(client) SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
Помогите, пожалуйста, решить две проблемы:
1) Когда союзники режут союзников с ножа урон не наносится, но происходит замедление. Как отключить это замедление?
2) При падении с большой высоты игроки не получают урона от падения (скорей всего это связано с damagetype урона от ножа, раньше в плагине была проверка на damagetype - переделал по другому, но это не решило проблему). Как сделать проверку получил ли игрок урон с ножа от своего союзника или просто упал с высоты ?
int m_flVelocityModifier; //добавь в начало кода
public void OnPluginStart()
{
m_flVelocityModifier = FindSendPropOffs("CCSPlayer", "m_flVelocityModifier"); //добавь в OnPluginStart()
}
public Action OnPlayerRunCmd(int iClient) //этот блок, полностью добавь, если нету, если есть то дополни
{
if(IsPlayerAlive(iClient) && GetEntDataFloat(iClient, m_flVelocityModifier) < 1.0)
SetEntDataFloat(iClient, m_flVelocityModifier, 1.0, true);
return Plugin_Continue;
}
public Action OnTakeDamage(int iVictim, int& iAttacker, int& iInflictor, float& fDamage, int& iDamageType) //этот блок замени
{
if(iAttacker > 0 && GetClientTeam(iVictim) == GetClientTeam(iAttacker))
{
char szWeapon[32];
GetClientWeapon(iAttacker, szWeapon, sizeof szWeapon);
if(StrEqual(szWeapon[7], "knife") || StrEqual(szWeapon[7], "taser"))
{
fDamage = 0.0;
return Plugin_Changed;
}
}
return Plugin_Continue;
}
пробуй, но замедление будет убрано у всехPHP:int m_flVelocityModifier; //добавь в начало кода public void OnPluginStart() { m_flVelocityModifier = FindSendPropOffs("CCSPlayer", "m_flVelocityModifier"); //добавь в OnPluginStart() } public Action OnPlayerRunCmd(int iClient) //этот блок, полностью добавь, если нету, если есть то дополни { if(IsPlayerAlive(iClient) && GetEntDataFloat(iClient, m_flVelocityModifier) < 1.0) SetEntDataFloat(iClient, m_flVelocityModifier, 1.0, true); return Plugin_Continue; } public Action OnTakeDamage(int iVictim, int& iAttacker, int& iInflictor, float& fDamage, int& iDamageType) //этот блок замени { if(iAttacker > 0 && GetClientTeam(iVictim) == GetClientTeam(iAttacker)) { char szWeapon[32]; GetClientWeapon(iAttacker, szWeapon, sizeof szWeapon); if(StrEqual(szWeapon[7], "knife") || StrEqual(szWeapon[7], "taser")) { fDamage = 0.0; return Plugin_Changed; } } return Plugin_Continue; }
Оффтоп
Теперь урон от падения наносится, но также наносится и урон союзникам от ножа. Кроме того наносится урон союзникам от зевса. Замедление при ударах ножом пропало, но оно также пропало и когда режешь противника (так, увы, не годится).
Вопрос остался актуален!
Как отключить замедление при ударах ножом по союзникам и вернуть урон при падении с высоты (не навредив защите от урона с ножа союзникам) ?
#include <sdkhooks>
public void OnClientPutInServer(int iClient)
{
SDKHook(iClient, SDKHook_TraceAttack, TraceAttack);
}
public Action TraceAttack(int iVictim, int& iAttacker, int& iInflictor, int &damagetype, int &ammotype, int hitbox, int hitgroup)
{
return (iAttacker > 0 && GetClientTeam(iVictim) == GetClientTeam(iAttacker) && damagetype != DMG_BLAST) ? Plugin_Stop:Plugin_Continue;
}