Palonez
бб братки
- Сообщения
- 3,035
- Реакции
- 1,837
ПоэкспериментируйНо тогда трансляция прервётся (а там задержка 40сек)
Не тестил, при смене карты бот вернётся?)
Через setconvar не ставится чтоли пароль?
ПоэкспериментируйНо тогда трансляция прервётся (а там задержка 40сек)
Не тестил, при смене карты бот вернётся?)
Да, все равно не даёт, пока все не выйдутЧерез setconvar не ставится чтоли пароль
Так, а в чем смысл, ты хочешь их кикать, но не хочешь выключать GOTV из-за того, что они выйдут после этого, в чем логика?Да, все равно не даёт, пока все не выйдут
Нужно поставить пароль на сервер для турниров по окончанию.Так, а в чем смысл, ты хочешь их кикать, но не хочешь выключать GOTV из-за того, что они выйдут после этого, в чем логика?
Нужно поставить пароль на сервер для турниров по окончанию.
Как проходит финал для gotv (timer 40 sec). Нужно кикнуть всех и запаролить сервер.
НО! Следующий турнир может быть через несколько минут на том же сервере и той же карте.
Пока вижу вариант кикать всех с ботом через 40 сек после окончания, паролить и после менять карту (что бы бот появился заново)
"Games"
{
"csgo"
{
"Signatures"
{
// void SvPasswordChangeCallback( IConVar *pConVar, const char *pOldValue, float flOldValue )
"SvPasswordChangeCallback"
{
"library" "engine"
"windows" "\x55\x8B\xEC\x83\xE4\xF8\x8B\x45\x08\x85\xC0\x8B\x4D\x0C"
"linux" "\x55\x89\xE5\x56\x31\xF6\x53\x83\xEC\x20\x8B\x45\x08"
/*
Windows
Signature for sub_101B7980: 55 8B EC 83 E4 F8 8B 45 08 85 C0 8B 4D 0C
Linux
Signature for sub_1DA6B0: 55 89 E5 56 31 F6 53 83 EC 20 8B 45 08
*/
}
}
}
}
/*
[CS:GO] sv_password - bypass players and reserved cookie check
23.2.2021
- Works until Valve update breaks signature
https://forums.alliedmods.net/showthread.php?t=330847
*/
#include <dhooks>
public Plugin myinfo =
{
name = "[CS:GO] sv_password - bypass players and reserved cookie check",
author = "Bacardi",
description = "Allow set server password even players are in game",
version = "23.2.2021",
url = "https://forums.alliedmods.net/showthread.php?t=330847"
};
Handle hSvPasswordChangeCallback;
public void OnPluginStart()
{
GameData temp = new GameData("csgo_sv_password.games");
if(temp == null) SetFailState("Why you no has csgo_sv_password.games.txt gamedata?");
// Function - engine
// void SvPasswordChangeCallback( IConVar *pConVar, const char *pOldValue, float flOldValue )
// Build DHooks DHookCallback type (go look under typeset DHookCallback)
// - Can be Address_Null if you want to load the address from gamedata using DHookSetFromConf.
hSvPasswordChangeCallback = DHookCreateDetour(Address_Null, CallConv_CDECL, ReturnType_Void, ThisPointer_Ignore);
if (!hSvPasswordChangeCallback)
SetFailState("Failed to setup detour for SvPasswordChangeCallback DHookCallback"); // You build Dhook callback wrong! Try fix it.
if (!DHookSetFromConf(hSvPasswordChangeCallback, temp, SDKConf_Signature, "SvPasswordChangeCallback"))
SetFailState("Failed to load SvPasswordChangeCallback signature from csgo_sv_password.games.txt gamedata"); // Bad gamedata format ?
delete temp;
DHookAddParam(hSvPasswordChangeCallback, HookParamType_ObjectPtr); // IConVar *pConVar
DHookAddParam(hSvPasswordChangeCallback, HookParamType_StringPtr); // const char *pOldValue
DHookAddParam(hSvPasswordChangeCallback, HookParamType_Float); // float flOldValue
if (!DHookEnableDetour(hSvPasswordChangeCallback, false, Detour_OnCSWeaponDrop))
SetFailState("Failed to detour hSvPasswordChangeCallback.");
// Post callback
// if (!DHookEnableDetour(hSvPasswordChangeCallback, true, Detour_OnCSWeaponDrop_Post))
// SetFailState("Failed to detour hSvPasswordChangeCallback post.");
//PrintToServer("hSvPasswordChangeCallback detoured!");
}
public MRESReturn Detour_OnCSWeaponDrop(DHookParam hParams)
{
//PrintToServer("hSvPasswordChangeCallback Pre");
// Skip real function. Bypass player and reserved cookie check.
return MRES_Supercede;
}
// Not in use
public MRESReturn Detour_OnCSWeaponDrop_Post(DHookParam hParams)
{
//PrintToServer("hSvPasswordChangeCallback Post");
return MRES_Supercede;
}
кто нибудь может переписать плагин на новом синтаксисе для CSGO?
на csgo не работает, ошибок в логах нет, файлы скинов качает, но не меняет ни у кого... отключал все плагины, конфликтов с другими плагинами не оказалось. Пришли пожалуйста твой исходник, который без ошибок компилится под последний билд SM
с ошибками, я исправил их, скомпилировал, все равно не заменяет скины@gam19980, а что, новыми версиями SM не компилится?
Напиши в лс тзНужен плагин ночной дм, с отключением некоторых плагинов в ночное время и автоматическим включением подробности в лс
Писать в лс, цена до 1500
АктуальноНужен плагин ночной дм, с отключением некоторых плагинов в ночное время и автоматическим включением подробности в лс
Писать в лс, цена до 1500
Нужен плагин, который при Победе террористов перекидывает всех игроков на сервере в наблюдатели. Может кто написать?
#include <cstrike>
public void OnPluginStart() { HookEvent("round_end", EventEnd, EventHookMode_Post); }
public void EventEnd(Event hEvent, const char[] sEvent, bool bdb)
{
if(view_as<CSRoundEndReason>(hEvent.GetInt("reason")) == CSRoundEnd_TerroristWin)
for(int i = 0; i <= MaxClients; i++)
if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) != 1) CS_SwitchTeam(i, 1);
}
AutoExecConfig(true, "autodemo_simpleuploader");
public void OnPluginStart() { AddCommandListener(Event_Drop, "drop"); }
public Action Event_Drop(int client, const char[] command, int args)
{
int weapon = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon");
if(IsValidEntity(weapon))
{
char szbuffer[15];
GetEdictClassname(weapon, szbuffer, sizeof(szbuffer));
if(StrEqual(szbuffer, "weapon_snowball", false))
return Plugin_Handled;
}
return Plugin_Continue;
}
Работать то работает, но теперь не работает баланс и не пишет, что Т прожал кнопку.Я видимо не так понял, я думал ему вообще выключить нужно скорость. А ему получается просто с его повышенной скорости - нужно поставить дефолтную
Сообщения автоматически склеены:
!mycommand ставит тшнику стандартную скорость - может поставить только он сам себе
public OnPluginStart()
{
HookEvent("round_end", Event_RoundEnd, EventHookMode_Pre);
}
public Action:Event_RoundEnd(Handle:hEvent, const String:sEvName[], bool:bDontBroadcast)
{
if(!bDontBroadcast)
{
return Plugin_Handled;
}
return Plugin_Continue;
}