Написание плагинов

StormX

Участник
Сообщения
891
Реакции
302
Ребят, кто поможет доработать плагин?
Звук норм работает всё, но можно ли сделать чтобы этот звук при входе ничем не прерывался, так например он прерывается сменой раунда, а мне надо чтобы он до конца отыграл не зависимо от событий.

Только через MOTD такое можно реализовать не используя посторонних плагинов.
Пример кода:
<bgsound src="http://site.ru/motd/welcome.mp3" volume="-700">

Работает только на 34-ке, на 90-й почему то у меня не завелось.
 

Rezder

Участник
Сообщения
153
Реакции
8

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
нужно где-то хранить этот список команд (в строковом массиве кода самого плагина, текстовом файле конфига)а где второй параметр хука события?
Кроме того ты не хукаешь изменение значения квара и потому твой теперешний код никогда не заработает (не будет отлавливаться событие спавна).

Я планировал что информация о конваре будет храниться в map-cfg файлах, а если от карты не поступило никак изменений, то плагин выставляет его на 0 по дефолту и отключает тем самым часть кода.
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Можете подсказать что не так в данном коде?

Screenshot_1.png

PHP:
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#pragma semicolon 1

ConVar cv_test;
new g_test;

public void OnPluginStart()
{
    cv_test = CreateConVar("sm_command", "0");
    g_test = GetConVarString(cv_test);
    HookConVarChange(cv_test, OnConVarChanged);
    HookEvent("player_death", Event_PlayerDeath);
}

public void OnConVarChanged(ConVar convar, const char[] oldVal, const char[] newVal)
{
    g_test = GetConVarString(cv_test);
}

public void Event_PlayerDeath(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
    //g_test = GetConVarString(cv_test);
    PrintToChatAll(g_test);
}
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
@Loco, ни одна из функций никогда не возвращает строковое значение. Для приличия: Google GetConvarString.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Loco,
PHP:
char g_test[PLATFORM_MAX_PATH];

public void OnPluginStart()
{
	ConVar cvar;
	(cvar = CreateConVar("sm_command", "0", _, FCVAR_PRINTABLEONLY)).AddChangeHook(CVarChanged);
	cvar.GetString(g_test, sizeof(g_test));

	HookEvent("player_death", Event_PlayerDeath, EventHookMode_PostNoCopy);
}

public void CVarChanged(ConVar cvar, const char[] oldVal, const char[] newVal)
{
	cvar.GetString(g_test, sizeof(g_test));
}

public void Event_PlayerDeath(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
	PrintToChatAll(g_test);
}
 

Oki45

Участник
Сообщения
1
Реакции
0
@The End Is Near..., 1)Реферальная система.
2)Плагин для WCS сервера.При достижении 500 уровня(можно изменять) выдавалось человеку,который пригласил 100 уровней(можно изменять).Так же выводилось какой человек пригласил игрока.
Для связи с мной Egor Dvorianski .
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Можете в плагин добавить cookie, то-есть возможность выключать отображение через меню !settings/
 

Вложения

  • shop_skins.sp
    12.9 КБ · Просмотры: 7

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323

Сергей68

Неуместный юмор
Сообщения
420
Реакции
377
Может кто-то написать лайт плагин который полностью убирает показ убийств в правом верхнем углу?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Сергей68, можно: [ANY] Block Kill Feed - AlliedModders
--- Добавлено позже ---
Ну или можно вот такую версию:
sm_killfeed_ctrl_mode - 0 - полная блокировка сообщений, 1 - блокировка отключена, 2 - блокировка сообщений о смерти террористов, 3 - блокировка сообщений о смерти спецов, 4 - блокировка сообщений о чужих убийствах и смертях
Файл создаёт файл конфига с именем killfeed_ctrl
 

Вложения

  • sm_killfeed_ctrl.sp
    1.7 КБ · Просмотры: 12
Последнее редактирование:

Сергей68

Неуместный юмор
Сообщения
420
Реакции
377
@Сергей68, можно: [ANY] Block Kill Feed - AlliedModders
--- Добавлено позже ---
Ну или можно вот такую версию:
sm_killfeed_ctrl_mode - 0 - полная блокировка сообщений, 1 - блокировка отключена, 2 - блокировка сообщений о смерти террористов, 3 - блокировка сообщений о смерти спецов, 4 - блокировка сообщений о чужих убийствах и смертях
Файл создаёт файл конфига с именем killfeed_ctrl
а разве при подобном не будет утечки памяти?
PHP:
public Action Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
    if (cv_Enabled.BoolValue)
    {
        event.BroadcastDisabled = true;
    }

    return Plugin_Continue;
}
 

Сергей68

Неуместный юмор
Сообщения
420
Реакции
377

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Пофиксите компиляцию этого плагина под последнюю sm (1.10).
Screenshot_1.png
--- Добавлено позже ---
Помогите, нужно что бы плагин из конвара мог читать {userid} который этот евент вызвал,
к примеру есть в конваре загружена команда sm_give {userid} negev;sm_hp {userid} +10
Нужно сделать так, что бы {userid} - это был steam-id (или его ид) и команда выполнялась именно на него
PHP:
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>

new Handle:c_hurttime = INVALID_HANDLE;
char g_hurtcomm[PLATFORM_MAX_PATH];

public void OnPluginStart()
{
  ConVar cvar;

  c_hurttime = CreateConVar("ec_hurttime", "0.0");
  (cvar = CreateConVar("ec_hurtcomm", "", _, FCVAR_PRINTABLEONLY)).AddChangeHook(CVarChanged);
  cvar.GetString(g_hurtcomm, sizeof(g_hurtcomm));
  HookEvent("player_hurt", Event_hurt, EventHookMode_PostNoCopy);
}

public void CVarChanged(ConVar cvar, const char[] oldVal, const char[] newVal)
{
  cvar.GetString(g_hurtcomm,     sizeof(g_hurtcomm));
}

public void Event_hurt(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
  CreateTimer(GetConVarFloat(c_hurttime), Timer_hurt);
}

public Action:Timer_hurt(Handle htimer)
{
  ServerCommand(g_hurtcomm);
}
 
Последнее редактирование:

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Помогите разобраться как включать радар, есть как отключать, а как включать принудительно не нашёл
Выключает - SetEntProp(client, Prop_Send, "m_iHideHUD" | 1«12)
 
Сверху Снизу