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

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Parker, такое (изменение кол-ва получаемых денег за убийства из опр оружия) встроено в игру.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Мог бы кто-нибудь написать плагин который изменяет кол-во денег полученных за убийство определенным оружием?
У меня была такая задумка, даже часть кода была написана, но мне стало лень этим заниматься.
 

kleuser

Участник
Сообщения
1,838
Реакции
732
Кто может помочь немножко с плагином?
Пробую переделать один плагин под модуль для VIP. Всё сделал, вроде всё работает, но по умолчанию он выключен. Так вот, как бы сделать его включенным по умолчанию?
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <vip_core>

#pragma newdecls required

public Plugin myinfo =
{
 name = "[VIP] Blue Screen of Kill",
 author = "johnspade - kleuser",
 description = "The plugin fades the screen to transparent blue for a second when you kill someone",
 version = "2.0",
 url = "http://johnspade.ru"
}

static const char g_sFeature[] = "BlueScreen";

public void VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_sFeature, BOOL);
}

public void OnPluginStart()
{ 
    HookEvent("player_death", Event_PlayerDeath);

    if(VIP_IsVIPLoaded())
    {
        VIP_OnVIPLoaded();
    }
}

public void OnPluginEnd()
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
    {
        VIP_UnregisterFeature(g_sFeature);
    }
}

void PerformFade(int client, int duration, const int color[4])
{
    if(IsPlayerAlive(client) && VIP_IsClientVIP(client) && VIP_IsClientFeatureUse(client, g_sFeature))
    {
        Handle message = StartMessageOne("Fade", client);

        PbSetInt(message, "duration", duration);
        PbSetInt(message, "hold_time", 0);
        PbSetInt(message, "flags", 0x0001);
        PbSetColor(message, "clr", color);

        EndMessage();
    }
}
public void Event_PlayerDeath(Handle event, const char[] name, bool dontBroadcast)
{
    PerformFade(GetClientOfUserId(GetEventInt(event, "attacker")), 600, {0, 0, 255, 90});
}
 
A

Altaj

Кто может помочь немножко с плагином?
Пробую переделать один плагин под модуль для VIP. Всё сделал, вроде всё работает, но по умолчанию он выключен. Так вот, как бы сделать его включенным по умолчанию?
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <vip_core>

#pragma newdecls required

public Plugin myinfo =
{
 name = "[VIP] Blue Screen of Kill",
 author = "johnspade - kleuser",
 description = "The plugin fades the screen to transparent blue for a second when you kill someone",
 version = "2.0",
 url = "http://johnspade.ru"
}

static const char g_sFeature[] = "BlueScreen";

public void VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_sFeature, BOOL);
}

public void OnPluginStart()
{
    HookEvent("player_death", Event_PlayerDeath);

    if(VIP_IsVIPLoaded())
    {
        VIP_OnVIPLoaded();
    }
}

public void OnPluginEnd()
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
    {
        VIP_UnregisterFeature(g_sFeature);
    }
}

void PerformFade(int client, int duration, const int color[4])
{
    if(IsPlayerAlive(client) && VIP_IsClientVIP(client) && VIP_IsClientFeatureUse(client, g_sFeature))
    {
        Handle message = StartMessageOne("Fade", client);

        PbSetInt(message, "duration", duration);
        PbSetInt(message, "hold_time", 0);
        PbSetInt(message, "flags", 0x0001);
        PbSetColor(message, "clr", color);

        EndMessage();
    }
}
public void Event_PlayerDeath(Handle event, const char[] name, bool dontBroadcast)
{
    PerformFade(GetClientOfUserId(GetEventInt(event, "attacker")), 600, {0, 0, 255, 90});
}
Есть же такой модуль готовый.
 

kleuser

Участник
Сообщения
1,838
Реакции
732
@Altaj, нет, там другое. он тоже выключен по умолчанию, я проверял.
хочется своего чуть-чуть)
 
Последнее редактирование:
A

Altaj

@Altaj, нет, там другое. он тоже выключен по умолчанию, я проверял.
хочется своего чуть-чуть)
Да нет. Я точно видел в какой-то теме такой плагин для вип. Не стал его ставить, потому что это у меня по умолчанию для всех включено.
С переходом на систему ресурсов, теперь многого не найдешь.
 

kleuser

Участник
Сообщения
1,838
Реакции
732
@Altaj, ну, в любом случае его я так понял не найти. Да и я уже сделал почти всю работу, перенес плагин для вип, и чуток поправил для нового синтаксиса(хз только правильно ли xD ). Так то всё работает у меня, просто он отключен по умолчанию и надо самому включать, вот и спросил тут как это поправить
 

DarklSide

Участник
Сообщения
931
Реакции
468
Всё сделал, вроде всё работает, но по умолчанию он выключен. Так вот, как бы сделать его включенным по умолчанию?
PHP:
/**
 *    Устанаваливает значение функции по-умолчанию.
 *    -
 * @param sFeatureName            Уникальное имя ф-и.
 * @param bStatus                Значение (true - Включена, false - Выключена).
 *    -
 * @noreturn
*/
native void VIP_SetFeatureDefStatus(const char[] sFeatureName, bool bStatus);
PHP:
public void VIP_OnFeatureRegistered(const char[] sFeatureName)
{
    if (StrEqual(sFeatureName, g_sFeature))
    {
        VIP_SetFeatureDefStatus(g_sFeature, true);
    }
}
vip_core.inc
 
Последнее редактирование:

kleuser

Участник
Сообщения
1,838
Реакции
732
@DarklSide, компелится норм но Native "VIP_SetFeatureDefStatus" was not found
что я делаю не так? плагин вообще отвалился.
если что у меня ядро 3.0
и я не шарю в коде, так балуюсь :D
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@kleuser, @DarklSide, @R1KO эту функцию ещё не ввёл, если не ошибаюсь. Как и форвард VIP_OnFeatureRegistered.
 

StateByte

Fullstack Software Engineer.
Сообщения
431
Реакции
622
@DarklSide, компелится норм но Native "VIP_SetFeatureDefStatus" was not found
что я делаю не так? плагин вообще отвалился.
если что у меня ядро 3.0
и я не шарю в коде, так балуюсь :D
Надо inc от 3.0 достать, вдруг там изменили эту функцию!
 

DarklSide

Участник
Сообщения
931
Реакции
468
@Kr1kuzya, Возможно.

GitHub - R1KO/VIP-Core at new-style - [VIP] Core 3.0 DEV #11.
PHP:
/**
 *   Добавляет новую VIP-функцию.
 *   -
 * @param sFeatureName           Уникальное имя ф-и.
 * @param ValType               Тип данных ф-и.
 * @param FeatureType           Тип ф-и.
 * @param Item_select_callback   Обратный вызов при смене статуса ф-и.
 * @param Item_display_callback   Обратный вызов при отображении пункта ф-и .
 * @param Item_draw_callback   Обратный вызов при отображении стиля пункта ф-и.
 * @param bDefStatus           Значение по-умолчанию (true - Включена, false - Выключена).
 *   -
 * @noreturn
*/

native void VIP_RegisterFeature(const char[]           sFeatureName,
                               VIP_ValueType           ValType                   = VIP_NULL,
                               VIP_FeatureType           FType                   = TOGGLABLE,
                               ItemSelectCallback       Item_select_callback   = INVALID_FUNCTION,
                               ItemDisplayCallback       Item_display_callback   = INVALID_FUNCTION,
                               ItemDrawCallback       Item_draw_callback       = INVALID_FUNCTION,
                               bool                   bDefStatus               = false);
 
Последнее редактирование:

DarklSide

Участник
Сообщения
931
Реакции
468
Пропусти не нужные параметры, либо вставь их дефолтные значения.
 

kleuser

Участник
Сообщения
1,838
Реакции
732
Я запутался :D
Так можно как-то включить по умолнанию модуль?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@kleuser, и так должен быть по умолчанию включен, если доступ прописан.
 
Сверху Снизу