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

Someone

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

Andrey Vlaskov

Участник
Сообщения
5
Реакции
1
Кто сможешь написать плагин который будет изменять экономику за убийство оружиями для css, к примеру теже фармилки в csgo имеют актуальность только из-за того что они бустят экономику, смысл в плагине или конфиге указывать название оружия и кол во получаемых денег за убийство игрока, кто сможет сделать такое на ксс? Могу заказать в приват)
 

x330122

Участник
Сообщения
357
Реакции
152
Как убрать первые 5 символов в строке ?
 

Туник

Участник
Сообщения
1,281
Реакции
263
Подскажите по данному плагину, почему после установки его на сервер не отображает какая карта стоит?Просто до обновы работал нормально и можно было пускать игроков тупо по стим ид, сейчас работает только не видно на какой карте играют!!!

C-подобный:
#include <sourcemod>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "White List",
    author = "Tonki_Ton"
};

ArrayList hID;

public void OnPluginStart()
{
    hID = new ArrayList(ByteCountToCells(32));
}

public void OnMapStart()
{
    hID.Clear();

    char sFile[128];
    BuildPath(Path_SM, sFile, sizeof(sFile), "configs/whitelist.txt");

    File hFile = OpenFile(sFile, "r");

    if (hFile)
    {
        char sAuth[32];
        while (!hFile.EndOfFile() && hFile.ReadLine(sAuth, sizeof(sAuth)))
        {
            TrimString(sAuth);
            hID.PushString(sAuth);
        }
    }

    delete hFile;
}

public void OnClientPostAdminCheck(int iClient)
{
    char sAuth[32];
    GetClientAuthId(iClient, AuthId_Steam2, sAuth, sizeof(sAuth));

    if (hID.FindString(sAuth) == -1)
        KickClient(iClient, "Сервер закрыт");
}
 

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
Как убрать первые 5 символов в строке ?
Самый первый вариант , что пришел в голову, скопировать строку в строку начиная с 5 символа. Что-то типо этого.
strcopy(stroka,sizeof(stroka),stroka[5]);

P.S Писал с телефона, так что возможны ошибки, но суть должен был донести.
 

Wanderer

Шизофреник
Сообщения
171
Реакции
27
Здравствуйте,кто знает,можно ли сделать такое hud сообщение для CS:S v89 ?
SM 1.8
upload_2018-12-9_17-46-55.png
 
Последнее редактирование:

x330122

Участник
Сообщения
357
Реакции
152
Можно ли через extension убрать команду sm ?
 

temON4ik

Участник
Сообщения
65
Реакции
2
Ребят,подскажите , как можно отключить чат наблюдателям ?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@Wanderer, тот же вывод в HUD, просто шрифт белого цвета
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981

Wanderer

Шизофреник
Сообщения
171
Реакции
27
@Wanderer, ну а как тебе код показать?
Делаешь повторяющийся таймер и каждому игроку шлёшь вот такое:
PHP:
    SetHudTextParams(fPosX, fPosY, UPDATE_INTERVAL + 0.1, iColor[0], iColor[1], iColor[2], iColor[3], 0, 0.0, 0.1, 0.1);
    ShowHudText(client, channel, buffer);
SetHudTextParams · halflife · SourceMod Scripting API Reference
ShowHudText · halflife · SourceMod Scripting API Reference
Вот смотри,я хотел чтобы посередине показывался счет команд,как на скрине. Только не понимаю как твой код объединить с этим

C-подобный:
#include <sourcemod>
#pragma semicolon 1
new GetTeamScore();

public OnMapStart() CreateTimer(1.0, Timer_PrintHud, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);

public Action:Timer_PrintHud(Handle:hTimer) PrintHintTextToAll("Террористы - %d\nСпецназ - %d", GetTeamScore(2), GetTeamScore(3));
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@Wanderer, вообще надо бы примерно вот так:
PHP:
#pragma semicolon 1

#include <cstrike>

#define CHANNEL            3
#define UPDATE_INTERVAL    1.0        // HUD info update period in seconds
#define POS_X            -1.0    // position    (from left to right)
#define POS_Y            0.01    //             (from top to bottom)

public OnMapStart()
{
    CreateTimer(UPDATE_INTERVAL, Timer_PrintHud, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action:Timer_PrintHud(Handle:hTimer)
{
    static i, String:buffer[PLATFORM_MAX_PATH];
    Format(buffer, sizeof(buffer), "[Террористы vs  Спецназ  ]\n[ %02i ][ %02i ]", CS_GetTeamScore(CS_TEAM_T), CS_GetTeamScore(CS_TEAM_CT));
    for(i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
    {
        SetHudTextParams(POS_X, POS_Y, UPDATE_INTERVAL + 0.1, 191, 191, 191, 255, 0, 0.0, 0.1, 0.1);
        ShowHudText(i, CHANNEL, buffer);
    }
}
 
Последнее редактирование:

Wanderer

Шизофреник
Сообщения
171
Реакции
27
@Wanderer, вообще надо бы примерно вот так:
PHP:
#pragma semicolon 1

#include <cstrike>

#define CHANNEL            3
#define UPDATE_INTERVAL    1.0        // HUD info update period in seconds
#define POS_X            -1.0    // position    (from left to right)
#define POS_Y            0.01    //             (from top to bottom)

public OnMapStart()
{
    CreateTimer(UPDATE_INTERVAL, Timer_PrintHud, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action:Timer_PrintHud(Handle:hTimer)
{
    static i, String:buffer[PLATFORM_MAX_PATH];
    Format(buffer, sizeof(buffer), "[Террористы vs  Спецназ  ]\n[ %02i ][ %02i ]", CS_GetTeamScore(CS_TEAM_T), CS_GetTeamScore(CS_TEAM_CT));
    for(i = 0; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
    {
        SetHudTextParams(POS_X, POS_Y, UPDATE_INTERVAL + 0.1, 191, 191, 191, 255, 0, 0.0, 0.1, 0.1);
        ShowHudText(i, CHANNEL, buffer);
    }
}
L 12/10/2018 - 06:39:39: [SM] Exception reported: Client index 0 is invalid
L 12/10/2018 - 06:39:39: [SM] Blaming: 444.smx()
L 12/10/2018 - 06:39:39: [SM] Call stack trace:
L 12/10/2018 - 06:39:39: [SM] [0] IsClientInGame
L 12/10/2018 - 06:39:39: [SM] [1] Line 19, D:\Плагины для CSS\Компиляторы\Compilator 1.7.3\addons\sourcemod\scripting\444.sp::Timer_PrintHud()
 

Mensi1337

Участник
Сообщения
242
Реакции
16
L 12/10/2018 - 06:39:39: [SM] Exception reported: Client index 0 is invalid
L 12/10/2018 - 06:39:39: [SM] Blaming: 444.smx()
L 12/10/2018 - 06:39:39: [SM] Call stack trace:
L 12/10/2018 - 06:39:39: [SM] [0] IsClientInGame
L 12/10/2018 - 06:39:39: [SM] [1] Line 19, D:\Плагины для CSS\Компиляторы\Compilator 1.7.3\addons\sourcemod\scripting\444.sp::Timer_PrintHud()
Это замени
for(i = 0; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
на это
PHP:
for(i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
 

Mensi1337

Участник
Сообщения
242
Реакции
16
Ребят есть ли у кого плагин чтобы на сервере "маньяк" было у терористов 500 хп или 1000 ?
Попробуй
PHP:
#pragma semicolon 1
#include <cstrike>

public OnPluginStart()
{
    HookEvent("player_spawn", Spawn, EventHookMode_Post);
}

public Spawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    new team = GetClientTeam(client);
    if (IsPlayerAlive(client))
    {
        if (team == CS_TEAM_T)
        {
            SetEntProp(client, Prop_Send, "m_iHealth", 500);
        }
    }
}
 
Сверху Снизу