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

romeo7

Участник
Сообщения
189
Реакции
93

Вложения

  • den_skinview.sp
    1.4 КБ · Просмотры: 10

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Тогда это попробуй. Мне кажется другого способа нет.
От души за помощь конечно,ну все так же осталось)
Ну я думаю способ то есть,так как такие как DEN),КАК ТО ЭТО СДЕЛАЛИ ЖЕ)
 

babka68

Участник
Сообщения
2,124
Реакции
956
Всем привет,может ли кто то дописать в этот плагин(исходник прикрепил) время проведенное игроком на сервере за CT/T/SPEC
Нашёл плагин Most Active / Time Played но я бы хотел вывести уже имеющее время у игроков из RankME
 

Вложения

  • rankme_hud_info.sp
    4.5 КБ · Просмотры: 9
Сообщения
81
Реакции
22
Ребят, помогите, если не сложно) Проблема со стоит в том, что воспроизводятся указанные в плагине .mp3 звуки только при убийстве с дефолтного ножа. Но когда установлены ножи от kgns (керимбит и прочие ) не воспроизводится указанный в плагине звук .mp3 Сервер csgo.
 

Вложения

  • knifekill.sp
    848 байт · Просмотры: 5

Nekro

Терра инкогнита
Сообщения
4,026
Реакции
2,260
Ребят, помогите, если не сложно) Проблема со стоит в том, что воспроизводятся указанные в плагине .mp3 звуки только при убийстве с дефолтного ножа. Но когда установлены ножи от kgns (керимбит и прочие ) не воспроизводится указанный в плагине звук .mp3 Сервер csgo.
C-подобный:
#include <sdktools_stringtables>
#include <sdktools_sound>

public Plugin myinfo =
{
    name = "Knife Kill Sound",
    version = "1.0",
}

public void OnPluginStart()
{
    HookEvent("player_death", Death);
}

public void OnMapStart()
{
    AddFileToDownloadsTable("sound/kaban.mp3");
    AddToStringTable(FindStringTable("soundprecache"), "*kaban.mp3");
}

public void Death(Handle hEvent, const char[] name, bool dontBroadcast)
{
    char sClassname[16];
    GetEventString(hEvent, "weapon", sClassname, sizeof(sClassname));
    if(StrContains(sClassname, "knife", false) != -1 || StrContains(sClassname, "bayonet", false) != -1)
    {
        int[] iClient = new int[MaxClients];
        int iTotal;

        for(int i = 1; i<=MaxClients; i++)
        {
            if(IsClientInGame(i))
            {
                iClient[iTotal++] = i;
            }
        }
        EmitSound(iClient, iTotal, "*kaban.mp3");
        PrintToChatAll("Работает нож");
    }
}
Пробуй
 

Вложения

  • knifekill.sp
    907 байт · Просмотры: 5
Последнее редактирование:

Dark_Legend

Добрая душа
Сообщения
9
Реакции
9
Всем привет,может ли кто то дописать в этот плагин(исходник прикрепил) время проведенное игроком на сервере за CT/T/SPEC
Нашёл плагин Most Active / Time Played но я бы хотел вывести уже имеющее время у игроков из RankME
А сам плагин RankMe хранит данные о том, сколько игрок провёл времени на сервере за определённую команду?
 

SHKIPPERBEAST2

Участник
Сообщения
119
Реакции
17
Подскажите, пожалуйста, как узнать сколько у клиента денег и сохранить эту информацию, а потом в случае реконнекта, выдать эти деньги? Игра CSGO
 

Jugheadbomb

CTFPlayer
Сообщения
168
Реакции
24
Подскажите, пожалуйста, как узнать сколько у клиента денег и сохранить эту информацию, а потом в случае реконнекта, выдать эти деньги? Игра CSGO
Code:
#include <sourcemod>
#include <clientprefs>

Cookie g_hMoney;

public void OnPluginStart()
{
    g_hMoney = new Cookie("money", "", CookieAccess_Private);

    HookEvent("player_disconnect", Event_PlayerDisconnect);
    HookEvent("player_team", Event_PlayerTeam);
}

public Action Event_PlayerDisconnect(Event hEvent, const char[] cName, bool bDontBroadcast)
{
    int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
    int iMoney = GetEntProp(iClient, Prop_Send, "m_iAccount");

    char cMoney[32];
    IntToString(iMoney, cMoney, sizeof(cMoney));

    g_hMoney.Set(iClient, cMoney);

    return Plugin_Continue;
}

public Action Event_PlayerTeam(Event hEvent, const char[] cName, bool bDontBroadcast)
{
    int iClient = GetClientOfUserId(hEvent.GetInt("userid"));

    char cMoney[32];
    g_hMoney.Get(iClient, cMoney, sizeof(cMoney));

    if (cMoney[0])
    {
        g_hMoney.Set(iClient, NULL_STRING);
        SetEntProp(iClient, Prop_Send, "m_iAccount", StringToInt(cMoney));
    }

    return Plugin_Continue;
}
Пробуйте
 

FokS

Участник
Сообщения
422
Реакции
52
Приветствую, может кто написать простенький плагин? Суть плагина - по завершению раунда пишет в чат: Этот раунд длился 01 мин. 30 сек.
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Приветствую, может кто написать простенький плагин? Суть плагина - по завершению раунда пишет в чат: Этот раунд длился 01 мин. 30 сек.
C-подобный:
Handle g_iTimer;
int g_iSec = 0;

public void OnPluginStart()
{
    HookEvent("round_start", round_start);
    HookEvent("round_end", round_end);
}

public Action round_start(Event event, const char[] name, bool dontBroadcast)
{
    delete g_iTimer;
    g_iTimer = CreateTimer(1.0, Timer, _, TIMER_REPEAT);
}

public Action Timer(Handle hTimer)
{
    g_iSec += 1;
}

public Action round_end(Event event, const char[] name, bool dontBroadcast)
{
    delete g_iTimer;
    if(g_iSec >= 60 && g_iSec < 120)
    {
        g_iSec -= 60;
        PrintToChatAll("Этот раунд длился 1 мин %i сек", g_iSec);
        g_iSec = 0;
    }
    else if(g_iSec >= 120 && g_iSec < 180)
    {
        g_iSec -= 120;
        PrintToChatAll("Этот раунд длился 2 мин %i сек", g_iSec);
        g_iSec = 0;
    }
    else if(g_iSec >= 180 && g_iSec < 240)
    {
        g_iSec -= 180;
        PrintToChatAll("Этот раунд длился 3 мин %i сек", g_iSec);
        g_iSec = 0;
    }
    else if(g_iSec >= 240 && g_iSec < 300)
    {
        g_iSec -= 240;
        PrintToChatAll("Этот раунд длился 4 мин %i сек", g_iSec);
        g_iSec = 0;
    }
    else if(g_iSec >= 300 && g_iSec < 360)
    {
        g_iSec -= 300;
        PrintToChatAll("Этот раунд длился 5 мин %i сек", g_iSec);
        g_iSec = 0;
    }
    else
    {
        PrintToChatAll("Этот раунд длился %i сек", g_iSec);
        g_iSec = 0;
    }
}
Держи, сделал как умею. Скоро @Grey83 напишет как сделать лучше 😄
 
Последнее редактирование:
  • Мне нравится
Реакции: FokS

Grey83

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

Vit_ amin

Добрая душа
Сообщения
1,504
Реакции
660
А еще проще получить время раунда отсюда
C-подобный:
    "cs_win_panel_round"
    {
        "show_timer_defend"    "bool"
        "show_timer_attack"    "bool"
        "timer_time"        "short"     // возвращает время раунда
       
        "final_event"        "byte"        //define in cs_gamerules.h
       
        "funfact_token"        "string"
        "funfact_player"    "short"
        "funfact_data1"        "long"
        "funfact_data2"        "long"
        "funfact_data3"        "long"
    }
 

Paranoiiik

хачю клиентмод
Сообщения
2,047
Реакции
1,490
А еще проще получить время раунда отсюда
C-подобный:
    "cs_win_panel_round"
    {
        "show_timer_defend"    "bool"
        "show_timer_attack"    "bool"
        "timer_time"        "short"     // возвращает время раунда
      
        "final_event"        "byte"        //define in cs_gamerules.h
      
        "funfact_token"        "string"
        "funfact_player"    "short"
        "funfact_data1"        "long"
        "funfact_data2"        "long"
        "funfact_data3"        "long"
    }
*Если в игре есть это событие
 
Сверху Снизу