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

s777

Участник
Сообщения
449
Реакции
74
Не знаю, возможно или нет, нужен такой плагин: Когда в сообщении человека содержится знак вопроса (?) ему автоматически пишется сообщение от имени сервера "бла бла бла напишите !com для помощи", ну в таком роде
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Не знаю, возможно или нет, нужен такой плагин: Когда в сообщении человека содержится знак вопроса (?) ему автоматически пишется сообщение от имени сервера "бла бла бла напишите !com для помощи", ну в таком роде
C++:
public Action OnClientSayCommand(int client, const char[] command, const char[] args)
{
    if(args[0] == '?')
    {
        ReplyToCommand(client, "бла бла бла напишите !com для помощи");
        return Plugin_Handled;
    }
    
    return Plugin_Continue;
}
 
  • Мне нравится
Реакции: s777

s777

Участник
Сообщения
449
Реакции
74
C++:
public Action OnClientSayCommand(int client, const char[] command, const char[] args)
{
    if(args[0] == '?')
    {
        ReplyToCommand(client, "бла бла бла напишите !com для помощи");
        return Plugin_Handled;
    }
  
    return Plugin_Continue;
}
Спасибо, проверю позже
Сообщения автоматически склеены:

@iLoco Не работает, кхем.. Пишу любые сообщения со знаком вопроса - ноль реакции. Пишу только знак вопроса - мое соо не отправляется даже
 
Последнее редактирование:

magis1337

Участник
Сообщения
252
Реакции
23
есть плагин connect info playes выводит ник steam id ip игрока
Для админов виден ип а для игроков только ник и стим ид, кто-то может помочь, сделать для игроков тока ник писало без стим ID
#pragma semicolon 1
#include <sourcemod>

new bool:g_bIsAdmin[MAXPLAYERS+1];

public Plugin:myinfo =
{
name = "Connect_info",
author = "R1KO",
version = "2.0",
url = "Сообщество администраторов игровых серверов HLmod.ru"
};

public OnPluginStart() HookEvent("player_disconnect", Event_PlayerDisconnect);

public OnClientPostAdminCheck(iClient)
{
if (iClient > 0 && !IsFakeClient(iClient))
{
g_bIsAdmin[iClient] = GetUserAdmin(iClient) != INVALID_ADMIN_ID ? true:false;
PrintConnect(iClient, true);
}
}

public Event_PlayerDisconnect(Handle:hEvent, const String:sName[], bool:dontBroadcast)
{
if (!dontBroadcast) SetEventBroadcast(hEvent, true);
new iClient = GetClientOfUserId(GetEventInt(hEvent,"userid"));
if (iClient > 0 && !IsFakeClient(iClient)) PrintConnect(iClient, false);
}

stock PrintConnect(iClient, bool:IsConnect)
{
decl String:sAuth[32], String:sIp[32], String:sAdmMsg[255], String:sMsg[255];
GetClientAuthString(iClient, sAuth, sizeof(sAuth));
GetClientIP(iClient, sIp, sizeof(sIp));
FormatEx(sAdmMsg, sizeof(sAdmMsg), "\x03• \x01Игрок \x04%N \x01| \x04%s \x01| \x04%s \x01%s.", iClient, sAuth, sIp, (IsConnect) ? "подключился":"отключился");
FormatEx(sMsg, sizeof(sMsg), "\x03• \x01Игрок \x04%N \x01| \x04%s \x01%s.", iClient, sAuth, (IsConnect) ? "подключился":"отключился");

for(new i=1; i <= MaxClients; i++)
{
if(IsClientInGame(i)) PrintToChat(i, (g_bIsAdmin) ? sAdmMsg:sMsg);
}
}
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
969
Реакции
279
Привет народ
Может кто плагин малость переделать?
Эффект пальм от ws
Сделать что-то тип чтоб искры падали или еще что,не думаю что там много кода и это займет много времени.
А плагин будет полезен многим
Заранее всем спасибо
Можно даже копеечкой и скинуться)
Чтоб не покупать у таких как DEN
 

Вложения

  • smoke.sp
    1.6 КБ · Просмотры: 20

Туник

Участник
Сообщения
1,281
Реакции
264
Всем привет! Возможно ли реализовать плагин который будет кикать игроков если допустим они при входе не запустили клиент античита к примеру faceit. Плагин просто будет делать проверку на вкл античит, это реально сделать?
 

magis1337

Участник
Сообщения
252
Реакции
23
Есть свободные скриптера? которые могут принять заказ, нужно дописать маленький функционал к плагину
 

babka68

Участник
Сообщения
2,137
Реакции
978

babka68

Участник
Сообщения
2,137
Реакции
978
А еще обдерем Вас как липку )))
Каждый в праве решать,что ему подходит,а что нет.
Я предоставил вариант которым пользуюсь лично.
Если меня устраивает цена,я готов ее заплатить,если нет соответственно можно отказаться никто же никого насильно не заставляет
 

xtance

Участник
Сообщения
514
Реакции
744
В общем..


Каким образом делается эта уменьшающаяся зона? Мне подсказали люди, что это моделька.
Но изменять размер модели после спавна.. как? Проведя быстрые тесты выяснилось, да, вроде как entity уменьшается, но визуально нет, либо я что-то не так сделал.
И то, с помощью чего я хотел проверять, входит ли игрок в зону не работает после изменения размера SDKHook_StartTouch (хотя думаю можно unhook и снова hook, но звучит не круто)
И пользуясь случаем, буду благодарен за сферическую модель (делал сферу в Blender, но как покрасить не понял, в общем гораздо хуже чем на видео, я не моделлер😞)
 

iLoco

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


Каким образом делается эта уменьшающаяся зона? Мне подсказали люди, что это моделька.
Но изменять размер модели после спавна.. как? Проведя быстрые тесты выяснилось, да, вроде как entity уменьшается, но визуально нет, либо я что-то не так сделал.
И то, с помощью чего я хотел проверять, входит ли игрок в зону не работает после изменения размера SDKHook_StartTouch (хотя думаю можно unhook и снова hook, но звучит не круто)
И пользуясь случаем, буду благодарен за сферическую модель (делал сферу в Blender, но как покрасить не понял, в общем гораздо хуже чем на видео, я не моделлер😞)
Можно сделать просто белую сферу, а красить и предавать прозрачности на сервере через код
C++:
    SetEntityRenderMode(iEntity, RENDER_TRANSCOLOR);
    SetEntityRenderColor(iEntity, r, g, b, a);

Масштабировать можно через это (но это не точно)
C++:
int iScaleOfsset = GetEntSendPropOffs(ent, "m_flModelScale", true);
if(iScaleOfsset != -1)
{
    SetEntDataFloat(ent, iScaleOfsset, new_scale, true);
}

ИЛИ

AcceptEntityInput(ent, "SetScale", ent, ent, NEW_SCALE_FLOAT);
И то, с помощью чего я хотел проверять, входит ли игрок в зону не работает после изменения размера SDKHook_StartTouch (хотя думаю можно unhook и снова hook, но звучит не круто)
Не легче ли сделать модель не полой внутри и просто сделать хук на SDKHook_EndTouch , что бы дамажить игрока если он выходит из сфера. Но тогда есть шанс того, что изнутри не будет видно границ сферы...
 

xtance

Участник
Сообщения
514
Реакции
744
Не легче ли сделать модель не полой внутри и просто сделать хук на SDKHook_EndTouch , что бы дамажить игрока если он выходит из сфера. Но тогда есть шанс того, что изнутри не будет видно границ сферы...
Окраска почему-то не заработала. Может модель неправильная.
Зато заработал glow.
C-подобный:
static int iOffset = -1;
if ((iOffset = GetEntSendPropOffs(iEnt, "m_clrGlow")) == -1){
    LogError("m_clrGlow not found");
} else {
    SetEntData(iEnt, iOffset, 0, _, true);
    SetEntData(iEnt, iOffset + 1, 255, _, true);
    SetEntData(iEnt, iOffset + 2, 0, _, true);
    SetEntData(iEnt, iOffset + 3, 255, _, true);
}
И всё же никакие хуки SDK нормально не работают. Поскольку они за основу, от которой считать начало или конец соприкосновения, берут первые (настоящие) значения модельки.

20200319215009_1.jpg

Здесь видно что с увеличением Scale увеличивается свечение, а сама модель нет.
Видимо только ручками считать расстояние от игрока до центра модели.
 

iLoco

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

Посмотреть вложение 54278

Здесь видно что с увеличением Scale увеличивается свечение, а сама модель нет.
Видимо только ручками считать расстояние от игрока до центра модели.
Можно сделать хук по таймеру, который каждый цикл таймера будет определять дистанцию игрока к центру сферы (pos центра заранее знаем), и если дистанция между игроком и этой сферой < радиуса сферы, то дамажим игрока.
Как получать дистанция - хз, не шарю в векторах. Но может это поможет. GetVectorDistance · vector · SourceMod Scripting API Reference
Сообщения автоматически склеены:

Или план Б, не уменьшать сферу масштабом, а телепортировать её вниз, тем самым верхиние границы будут сужаться
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Можно сделать хук по таймеру, который каждый цикл таймера будет определять дистанцию игрока к центру сферы (pos центра заранее знаем), и если дистанция между игроком и этой сферой < радиуса сферы, то дамажим игрока.
Как получать дистанция - хз, не шарю в векторах. Но может это поможет. GetVectorDistance · vector · SourceMod Scripting API Reference
Сообщения автоматически склеены:

Или план Б, не уменьшать сферу масштабом, а телепортировать её вниз, тем самым верхиние границы будут сужаться
В план Б тогда уж конус
 

xtance

Участник
Сообщения
514
Реакции
744
Ребят, гениальный план. Ну, про конус.
Если надоест высчитывать дистанцию, так и сделаю.
Пока что таймером её высчитываю... Пошёл в Blender делать модельку
Всем спасибо
 

iLoco

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

j1ton

Участник
Сообщения
70
Реакции
5
Можно ли для плагина LVL Ranks сделать плагин, который будет показывать, что входит игрок, выходит игрок, входит новый игрок, показывает его страну и очки, как на hlstatsx
Игрок NIK подключился [123 очков, ISPANIA]
 

s777

Участник
Сообщения
449
Реакции
74
Можно ли для плагина LVL Ranks сделать плагин, который будет показывать, что входит игрок, выходит игрок, входит новый игрок, показывает его страну и очки, как на hlstatsx
Игрок NIK подключился [123 очков, ISPANIA]
нечто подобное в привате есть
 

WodiX

Участник
Сообщения
202
Реакции
29
Можно ли для плагина LVL Ranks сделать плагин, который будет показывать, что входит игрок, выходит игрок, входит новый игрок, показывает его страну и очки, как на hlstatsx
Игрок NIK подключился [123 очков, ISPANIA]
Это приватка напиши @Wend4r. Он помоему продаёт😁.
 
Сверху Снизу