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

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@rokfestr, покажите итоговый код.
И вообще, ошибка начинается со слов Exception reported, а не заканчивается ими.
 

rokfestr

Участник
Сообщения
340
Реакции
63
@rokfestr, покажите итоговый код.
И вообще, ошибка начинается со слов Exception reported, а не заканчивается ими.
C-подобный:
public Action:GrabSearch(Handle:timer, any:client)
{
    PrintCenterText(client, "%t", "Searching"); // Tell client the plugin is searching for a target
    if( client > 0 &&
        IsClientInGame(client) &&
        IsPlayerAlive(client) &&
        g_Status[client][Grab] &&
        !g_Grabbed[client])
    {
        // Init variables
        new Float:clientloc[3], Float:clientang[3];
        GetClientEyePosition(client, clientloc);
        GetClientEyeAngles(client, clientang);
        
        // Grab search traceray
        TR_TraceRayFilter(clientloc, clientang, MASK_ALL, RayType_Infinite, TraceRayGrabEnt); // Create a ray that tells where the player is looking
        g_Targetindex[client][Grab] = TR_GetEntityIndex(); // Set the seekers targetindex to the person he picked up
        
        // Found a player or object
        if(g_Targetindex[client][Grab] > 0 && IsValidEntity(g_Targetindex[client][Grab]))
        {
            // Init variables
            new Float:targetloc[3];
            GetEntityOrigin(g_Targetindex[client][Grab], targetloc); // Find the target's xyz coordinate
            g_Distance[client][1] = GetVectorDistance(targetloc, clientloc); // Tell plugin the distance between the two to maintain
            if( g_Targetindex[client][Grab] > 0 &&
                g_Targetindex[client][Grab] <= MaxClients &&
                IsClientInGame(g_Targetindex[client][Grab]) &&
                CanUserTarget(GetUserAdmin(client), GetUserAdmin(g_Targetindex[client][Grab])))
            {
                g_MaxSpeed[client] = GetEntPropFloat(client, Prop_Send, "m_flMaxspeed");
                g_Grabbed[g_Targetindex[client][Grab]] = true; // If target is a player, tell plugin player is being grabbed
                SetEntPropFloat(g_Targetindex[client][Grab], Prop_Send, "m_flMaxspeed", 0.01); // Slow grab target
            }
            
            // Call grab forward
            new ret;
            Call_StartForward(FwdClientGrab);
            Call_PushCell(client);
            Call_Finish(ret);
            if(ret)
            {
                Action_Drop(client);
                return Plugin_Stop;
            }
            
            // Finish grabbing
            EmitSoundFromOrigin(g_cvarSound[Grab], targetloc); // Emit sound from the entity being grabbed
            CreateTimer(0.05, Grabbing, client, TIMER_REPEAT); // Start a repeating timer that will reposition the target in the grabber's crosshairs
            return Plugin_Stop; // Stop the search timer
        }
    }
    else
    {
        Action_Drop(client);
        return Plugin_Stop; // Stop the timer
    }
    return Plugin_Continue;
}
 

Вложения

  • hookgrabrope.sp
    72.1 КБ · Просмотры: 2

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@rokfestr, ОМГ
в CanUserTarget() нужно подставлять UserID игрока, а не его AdminID, как это сделал ты
должно быть просто CanUserTarget(client, g_Targetindex[client][Grab])
 

rokfestr

Участник
Сообщения
340
Реакции
63
@rokfestr, ОМГ
в CanUserTarget() нужно подставлять UserID игрока, а не его AdminID, как это сделал ты
должно быть просто CanUserTarget(client, g_Targetindex[client][Grab])
Чет не до конца понял, типо так сделать?
C-подобный:
            if( g_Targetindex[client][Grab] > 0 &&
                g_Targetindex[client][Grab] <= MaxClients &&
                IsClientInGame(g_Targetindex[client][Grab]) &&
                CanUserTarget(client, g_Targetindex[client][Grab]))
--- Добавлено позже ---
Если в таком варианте то не работает иммунитет
 
Последнее редактирование:

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154
Ребят может кто-нибудь сделать Fork плагина Local Bans?
Убрать вывод сообщения "Disconnect:" в информации о бане.
Сделать так чтобы игрока сразу банило, а ни через 2-3 секунды...
И самое главное пофиксить sm_unban, ибо он вообще не работает! Я себя банил, потом прописывал команду на unban в rcon консоли, все равно... Заходишь на сервер и тебя кикает через 3 секунды и пишет информацию о бане...
Я когда пытался компилировать плагин (хотел изменить перевод), там была какая-то ошибка: "iClient"
R1KO если ты видишь это, пофикси пожалуйста. Куда не писал тебе, ты не отвечаешь.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
Убрать вывод сообщения "Disconnect:" в информации о бане.
Невыполнимо. Эту строчку пишет сам клиент.

И самое главное пофиксить sm_unban, ибо он вообще не работает!
Работает. Сам юзаю по сей день локал баны. TF2.
 

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154
Невыполнимо. Эту строчку пишет сам клиент.


Работает. Сам юзаю по сей день локал баны. TF2.
Не знаю, я баню себя навсегда или же на определенное время, потом в пишу консольке sm_unban STEAM_0:1:119711013. И меня все равно не пускает на сервер...
 

Kruzya

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

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154
@Wightjeck, так Стим надо в кавычках писать. Движок распознает : как разделитель аргументов. Вот у Вас и не работает, потому что двоеточия превращаются в пробелы для плагина.
Писал в кавычках...
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Wightjeck, Вы в консоль сервера смотрели в этот момент или в ответ ркон команды?
В ответ он ничего не напишет, зато напишет в консоли самого сервера.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Ампутаге, входит в поставку SM в виде команды sm_cvar. Чем не устраивает?
Если надо залочить на определённом значении, не давая ничему изменять, можно воспользоваться Cvar Protect
 

Ампутаге

Участник
Сообщения
84
Реакции
8
@Ампутаге, входит в поставку SM в виде команды sm_cvar. Чем не устраивает?
Если надо залочить на определённом значении, не давая ничему изменять, можно воспользоваться Cvar Protect
Я же чётко написал, что нужен именно скрипт. Про sm_cvar и даааже sm_rcon я знаю.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Ампутаге, если надо чисто заблокировать изменение переменной, выставив ей определённое значение, подойдёт указанный Cvar Protect.
А так, скрипт:
PHP:
#include <sourcemod>

public void OnPluginStart() {
  FindConVar("sv_cheats").SetString("0");
  // копируем и вставляем строку выше сюда, просто изменяя значения.
}
Но он не отслеживает, будет ли в дальнейшем изменяться переменная. А плагин по ссылке выше - отслеживает и возвращает обратно значение.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@R1w3d, если у человека CS:S или другая игра - не поможет.
 

wightjeck

Костыли заказывали?
Сообщения
472
Реакции
154

Вложения

  • LocalBans fix.rar
    35.9 КБ · Просмотры: 5

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Wightjeck, так бы и сказали, что у Вас новая ревизия движка.
LocalBans заносит баны с AuthID, который пишется в status. Потому если там пишется новый формат ([U:1:xxxxx]), то именно в этом формате Стим для sm_unban писать и надо.
 
Сверху Снизу