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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
Стим: "STEAM_0:0:11101" "[U:1:22202]"
а какой смысл в этой информации?
достаточно же просто ссылки на профиль (правда я себе в плагине для своего сервера этот профиль в MoTD открывал, а не в чат ссыль на него писал)
42334815C42847242774D05009B3E391E02FD254

Айпишник уже несколько раз менялся с момента создания скрина, кстати.
Сейчас у меня 42 уровень и 446 игр на акке :ab:
Вот сам плагин: Grey83/SourceMod-plugins

Кстати, в TF2 MoTD работает?
 
Последнее редактирование:

AlexPa1

Участник
Сообщения
292
Реакции
54
Доброе утро, а как сделать эффект перезарядки ультимейта в WC:Source mod? Где можно найти событие перезарядки что бы прикрутить к ниму эффект.
P.s пишите в лс если кто то сделает за вознаграждение.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@alex123pavlov, где-то в таймере, я полагаю.
Точнее можно будет сказать когда я увижу код :ab:
 

AlexPa1

Участник
Сообщения
292
Реакции
54
Последнее редактирование:

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
436

AlexPa1

Участник
Сообщения
292
Реакции
54
Как убрать стандартные значения хп брони денег с экрана? что бы не видно было?
 

AlexPa1

Участник
Сообщения
292
Реакции
54
WCS_OnAbilityCld(client)
ты о чем ?
Например: получения уровня, название расы, кол-во золота и т.п
--- Добавлено позже ---
Хотел сделать всем ауру из VIP_AURA вырез чуть чуть код, оставил таймер, сам TE_SetupBeamRingPoint с настройками но выходит ошибка.
C-подобный:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>

#include <clientprefs>

new VIP_ToggleState:g_bHasAura[MAXPLAYERS+1];
new Handle:g_hKv, Handle:g_hTimer[MAXPLAYERS+1];
new g_BeamSprite, g_HaloSprite;


public OnMapStart()
{
    g_BeamSprite = PrecacheModel("materials/sprites/blueflare1.vmt");
    g_HaloSprite = PrecacheModel("materials/sprites/glow08.vmt");
    decl String:buffer[256];
    if (g_hKv != INVALID_HANDLE) CloseHandle(g_hKv);
}

public OnClientDisconnect(iClient)
{
    g_bHasAura[iClient] = DISABLED;
    g_hTimer[iClient] = INVALID_HANDLE;
}

public OnPlayerSpawn(iClient, iTeam, bool:bIsVIP)
{
    if(bIsVIP && g_bHasAura[iClient])
    {
        SetClientAura(iClient);
    }
}

SetClientAura(iClient)
{
    if(g_hTimer[iClient] == INVALID_HANDLE) g_hTimer[iClient] = CreateTimer(0.1, Timer_Beacon, iClient, TIMER_REPEAT);
}

public Action:Timer_Beacon(Handle:hTimer, any:iClient)
{
    if(IsClientInGame(iClient) && IsPlayerAlive(iClient) && g_bHasAura[iClient] == ENABLED)
    {
        static Float:fVec[3];
        GetClientAbsOrigin(iClient, fVec);
        fVec[2] += 10;
        TE_SetupBeamRingPoint(fVec, 50.0, 60.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.1, 10.0, 0.0, 155 155 155 255, 10, 0);
        TE_SendToAll();
        return Plugin_Continue;
    }
    else
    {
        g_hTimer[iClient] = INVALID_HANDLE;
    }
    return Plugin_Stop;
}
C-подобный:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <vip_core>
#include <clientprefs>

public Plugin:myinfo =
{
    name = "[VIP] AURA",
    author = "R1KO & Pheonix (˙·٠●Феникс●٠·˙)",
    version = "1.0.1",
    url = "zizt.ru"
};

#define VIP_AURA_M            "AURA_M"
#define VIP_AURA                "AURA"

new g_iClientColor[MAXPLAYERS+1][4];
new VIP_ToggleState:g_bHasAura[MAXPLAYERS+1];
new Handle:g_hKv, Handle:g_hTimer[MAXPLAYERS+1], Handle:g_hmenu, Handle:g_hCookie;
new g_BeamSprite, g_HaloSprite;

public OnPluginStart()
{
    g_hCookie = RegClientCookie("VIP_AURA", "VIP_AURA", CookieAccess_Public);
}

public OnMapStart()
{
    g_BeamSprite = PrecacheModel("materials/sprites/blueflare1.vmt");
    g_HaloSprite = PrecacheModel("materials/sprites/glow08.vmt");
    decl String:buffer[256];
    if (g_hKv != INVALID_HANDLE) CloseHandle(g_hKv);
    g_hKv = CreateKeyValues("Aura_Colors");
    BuildPath(Path_SM, buffer, 256, "data/vip/modules/aura_colors.ini");
    if (!FileToKeyValues(g_hKv, buffer)) SetFailState("Couldn't parse file %s", buffer);
    g_hmenu = CreateMenu(AuraMenuHandler);
    SetMenuExitBackButton(g_hmenu, true);
    SetMenuTitle(g_hmenu, "Цвет ауры\n ");
    KvRewind(g_hKv);
    if (KvGotoFirstSubKey(g_hKv))
    {
        do
        {
            if (KvGetSectionName(g_hKv, buffer, 256))
            {
                AddMenuItem(g_hmenu, buffer, buffer);
            }
        }
        while (KvGotoNextKey(g_hKv));
    }
    KvRewind(g_hKv);
}

public VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(VIP_AURA_M, _, SELECTABLE, Open_aura, OnDisplayItem, OnDrawItem);
    VIP_RegisterFeature(VIP_AURA, BOOL, _, ToggleItemCallback, OnDisplayItem_f);
    VIP_HookClientSpawn(OnPlayerSpawn);
}

public VIP_OnVIPClientLoaded(iClient)
{
    if(VIP_IsClientFeatureUse(iClient, VIP_AURA))
    {
        g_bHasAura[iClient] = ENABLED;
        decl String:sInfo[64];
        GetClientCookie(iClient, g_hCookie, sInfo, 64);
        if(sInfo[0])
        {
            GetRGBAFromString(sInfo, g_iClientColor[iClient]);
            return;
        }
    }
    for(new i=0; i < 4; i++) g_iClientColor[iClient][i] = 255;
}

public bool:Open_aura(iClient, const String:sFeatureName[])
{
    DisplayMenu(g_hmenu, iClient, MENU_TIME_FOREVER);
    return false;
}

public AuraMenuHandler(Handle:hMenu, MenuAction:action, iClient, Item)
{
    switch(action)
    {
        case MenuAction_Cancel:
        {
            if(Item == MenuCancel_ExitBack) VIP_SendClientVIPMenu(iClient);
        }
        case MenuAction_Select:
        {
            decl String:sInfo[64];
            GetMenuItem(hMenu, Item, sInfo, 64);
            KvRewind(g_hKv);
            if (KvJumpToKey(g_hKv, sInfo, false))
            {
                KvGetColor(g_hKv, "color", g_iClientColor[iClient][0],  g_iClientColor[iClient][1],  g_iClientColor[iClient][2],  g_iClientColor[iClient][3]);
                KvRewind(g_hKv);
                PrintToChat(iClient, " \x03Вы изменили цвет ауры на \x04%s", sInfo);
                FormatEx(sInfo, 64, "%i %i %i %i", g_iClientColor[iClient][0],  g_iClientColor[iClient][1],  g_iClientColor[iClient][2],  g_iClientColor[iClient][3]);
                SetClientCookie(iClient, g_hCookie, sInfo);
            }
            else PrintToChat(iClient, "Failed to use \"%s\"!.", sInfo);
            DisplayMenu(g_hmenu, iClient, MENU_TIME_FOREVER);
        }
    }
}

public OnDrawItem(iClient, const String:sMenuOptionName[], style)
{
    return VIP_GetClientFeatureStatus(iClient, VIP_AURA) != ENABLED ? ITEMDRAW_DISABLED:style;
}

public bool:OnDisplayItem(iClient, const String:sFeatureName[], String:sDisplay[], maxlen)
{
    strcopy(sDisplay, maxlen, "Цвет ауры");
    return true;
}

public Action:ToggleItemCallback(iClient, const String:sFeatureName[], VIP_ToggleState:OldStatus, &VIP_ToggleState:NewStatus)
{
    g_bHasAura[iClient] = NewStatus;
    if(NewStatus == ENABLED) SetClientAura(iClient);
    return Plugin_Continue;
}

public bool:OnDisplayItem_f(iClient, const String:sFeatureName[], String:sDisplay[], maxlen)
{
    FormatEx(sDisplay, maxlen, "Аура [%s]", VIP_IsClientFeatureUse(iClient, VIP_AURA) ? "Включено":"Выключено");
    return true;
}

public OnClientDisconnect(iClient)
{
    g_bHasAura[iClient] = DISABLED;
    g_hTimer[iClient] = INVALID_HANDLE;
}

public OnPlayerSpawn(iClient, iTeam, bool:bIsVIP)
{
    if(bIsVIP && g_bHasAura[iClient])
    {
        SetClientAura(iClient);
    }
}

SetClientAura(iClient)
{
    if(g_hTimer[iClient] == INVALID_HANDLE) g_hTimer[iClient] = CreateTimer(0.1, Timer_Beacon, iClient, TIMER_REPEAT);
}

public Action:Timer_Beacon(Handle:hTimer, any:iClient)
{
    if(IsClientInGame(iClient) && IsPlayerAlive(iClient) && g_bHasAura[iClient] == ENABLED)
    {
        static Float:fVec[3];
        GetClientAbsOrigin(iClient, fVec);
        fVec[2] += 10;
        TE_SetupBeamRingPoint(fVec, 50.0, 60.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.1, 10.0, 0.0, g_iClientColor[iClient], 10, 0);
        TE_SendToAll();
        return Plugin_Continue;
    }
    else
    {
        g_hTimer[iClient] = INVALID_HANDLE;
    }
    return Plugin_Stop;
}
upload_2018-8-7_3-33-6.png
 
Последнее редактирование:

backedelk031

Участник
Сообщения
35
Реакции
7
CSGO
SM 1.9
Нужен плагин который в конце матча будет спамить в чат след. карту.
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
@backedelk031, чем не устраивает изменить значение этого квараи пусть СМ сам об этом пишет периодически в чат
1)timeleft а не nextma
2)Карта не всегда известна заранее, будет показывать "определится голосованием"
 

AlexPa1

Участник
Сообщения
292
Реакции
54
Хотел сделать время перезарядки на экране ульты
C-подобный:
public int WCS_OnUltimateCld(client)
{
    if (client > 0)
    {
        SendHudMessage(client, 10,    -1.0, -0.7, 0xffd700FF, 0xffffffFF, 2, 0.1, 5.1, 1.0, 5.0, "Ultimate: %f");
    }
}
C-подобный:
public OnPluginStart()
{
    HookEvent("round_start", Event_RoundStart);
}

public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
    int WCS_OnUltimateCld(client);
    {
        SendHudMessage(client, 10,    -1.0, -0.7, 0xffd700FF, 0xffffffFF, 2, 0.1, 5.1, 1.0, 5.0, "Ultimate: %f");
    }
}
Скажите что я сделал не так? Какую мануал прочитать чтобы разобраться с этим заданием?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
вообще-то должно быть SendHudMessage(client, 10, -1.0, -0.7, 0xffd700FF, 0xffffffFF, 2, 0.1, 5.1, 1.0, 5.0, "Ultimate: %f", some_float_value);
ещё попробуй поменять канал с 10-го на какой-нибудь другой
и что за эффект под номером 2?
 

AlexPa1

Участник
Сообщения
292
Реакции
54
вообще-то должно быть SendHudMessage(client, 10, -1.0, -0.7, 0xffd700FF, 0xffffffFF, 2, 0.1, 5.1, 1.0, 5.0, "Ultimate: %f", some_float_value);
ещё попробуй поменять канал с 10-го на какой-нибудь другой
и что за эффект под номером 2?
upload_2018-8-8_20-52-43.png

Какой код из двух правильный из моих выше?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@alex123pavlov, 2-й - точно неправильный
--- Добавлено позже ---
вместо some_float_value нужно было подставлять свою переменную
 

AlexPa1

Участник
Сообщения
292
Реакции
54
@alex123pavlov, 2-й - точно неправильный
--- Добавлено позже ---
вместо some_float_value нужно было подставлять свою переменную
Нету вообще переменой у меня в 1 варианте, это весь код который есть в 1 варианте:ab:
И вот еще что "OnUltimateCld() вызывается, когда откатывается ульта, а не при каждом тике таймера" А я пытаюсь добиться при каждом тике.

Можно сделать так: Ульта не активна то на экране написано ult off а кто откатилась то ult on, можно так?
 

smxnet

Участник
Сообщения
80
Реакции
4
ку, помогите по плагину как правильно убрать текст что пишет в чате, когда остаются по 1 игроку в команде срабатывает маяк, и пишет в чат что типо маяк включен итд, как это дело вырезать отсюда??? Надо чтобы все было без текста .
вот сделал попробуй отпиши потом будет писать текст в чат или нет я просто код закомментировал на счет текста в чат вроде не должно писать замени свой вот этим
 

Вложения

  • hungergamesbeacon.smx
    17.1 КБ · Просмотры: 7
Сверху Снизу