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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@alexmy, если есть исходники, то слить в один, а там уже разбираться с конфликтом будет значительно проще.
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Не вариант, он выгружает на всю карту. Проще использовать сторонний плагин создать глобальную переменную и с помощью sm_cvar менять.
С чего бы он выгружался на всю карту? Его можно загрузить также через sm plugins load
 

alexmy

Участник
Сообщения
284
Реакции
13
@alexmy, если есть исходники, то слить в один, а там уже разбираться с конфликтом будет значительно проще.
Я думал об этом, но они оба большие не хочется как-то. Если даже у тебя нет особо идей, придется тогда создать общую переменную и переключать от условий.
Сообщения автоматически склеены:

С чего бы он выгружался на всю карту? Его можно загрузить также через sm plugins load
unload и load лучше использовать в OnMapStart, чем в прямой игре. Это не подходит.
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
unload и load лучше использовать в OnMapStart, чем в прямой игре. Это не подходит.
В зависимости от того, что прописано в исходнике, некоторые код можно перезапускать только в определенный момент, т.к. в нем есть зависимости от некоторых событий к примеру тот же OnMapStart, а есть код который в любое время в любом месте можно выгружать и загружать
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@Palonez, OnMapStart() для плагина вызывается в момент его загрузки, кстати.
 

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Всем привет!
Ребята может кто накидает простенький плагин,чтоб удалялось авп каждый раунд?
Или чтоб как то,у игрока каждый раунд,появлялось какое то одно оружия,а остальное все удалялось.
Заранее благодарю!
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Всем привет!
Ребята может кто накидает простенький плагин,чтоб удалялось авп каждый раунд?
Или чтоб как то,у игрока каждый раунд,появлялось какое то одно оружия,а остальное все удалялось.
Заранее благодарю!
C-подобный:
#include <cstrike>
public void OnPluginStart()
{
    HookEvent("player_spawn", EventSpawn);
}

public Action EventSpawn(Event hEvent, const chat sEvent, bool bdb)
{
    int client = GetClientOfUserId(hEvent.GetInt("userid"));
    if(client && IsClientInGame(client) && !IsFakeClient(client))
    {
//        int ent = GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY;
//        if(ent != -1)
//        {
//            char buff[32];
//            GetEntityClassname(ent, buff, sizeof(buff));
//            if(!strcmp(buff, "weapon_awp"))
//            {
//                CS_DropWeapon(client, ent, true, false);
//                RemoveEntity(ent);
//            }
//        } удалять AWP
        for(int i = 0; i <= 4 ; i++)
        {
           if(GetPlayerWeaponSlot(client, i) != -1)
           {
                CS_DropWeapon(client, i, true, false);
                RemoveEntity(i);          //удалять все оружия в инвентаре
           }
        }
        GetItem(knife, client);
        GetItem(glock, client);
    }
}

void GetItem(char[] item, int client)
{
    float pos[3];
    char buff[32];
    GetClientAbsOrigin(client, pos);
    Format(buff, sizeof(buff), "weapon_%s", item);
    int i = CreateEntityByName(buff);
    if(i < 1) return;
    DispatchKeyValueVector(i, "origin", pos);
    DispatchKeyValue(i, "spawnflags", "1");
    DispatchSpawn(i);
}
Или чтоб как то,у игрока каждый раунд,появлялось какое то одно оружия,а остальное все удалялось.
Какое оружие?
 
Последнее редактирование:

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
C-подобный:
public void OnPluginStart()
{
    HookEvent("player_spawn", EventSpawn);
}

public Action EventSpawn(Event hEvent, const chat sEvent, bool bdb)
{
    int client = GetClientOfUserId(hEvent.GetInt("userid"));
    if(client && IsClientInGame(client) && !IsFakeClient(client))
    {
        int ent = GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY;
        if(ent != -1)
        {
            char buff[32];
            GetEntityClassname(ent, buff, sizeof(buff));
            if(!strcmp(buff, "weapon_awp"))
            {
                CS_DropWeapon(client, ent, true, false);
                RemoveEntity(ent);
            }
        }
    }
}

Какое оружие?
ну допустим нож и глок чтоб появлялся.
Ну мне нужно было главное чтоб авп удалялось каждый раунд.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
@BossKotoriiNeSmok, а сейчас разве не так?
CS_SwitchTeam · cstrike · SourceMod Scripting API Reference - вроде перемещает, но не убивает.
В твоем же случае в плагине ChangeClientTeam · clients · SourceMod Scripting API Reference (должно убивать и перемещать)
Если я конечно не перепутал. Давно не пишу.

Снимок экрана 2022-09-13 в 21.59.55.png


Снимок экрана 2022-09-13 в 22.03.15.png

Костыль:
Странно, добавь перед функции переноса игрока ForcePlayerSuicide(id игрока) и подключи библиотеку <sdktools_functions>
 
Последнее редактирование:

MagoG

Хочу быть как truyn
Сообщения
896
Реакции
608
@Drumanid, мнение независимого эксперта: у меня всё убивает, а потом переводит спокойно, без всяких фиксов)
 

BossKotoriiNeSmok

Участник
Сообщения
976
Реакции
189
@BossKotoriiNeSmok, а сейчас разве не так?
CS_SwitchTeam · cstrike · SourceMod Scripting API Reference - вроде перемещает, но не убивает.
В твоем же случае в плагине ChangeClientTeam · clients · SourceMod Scripting API Reference (должно убивать и перемещать)
Если я конечно не перепутал. Давно не пишу.


Костыль:
Странно, добавь перед функции переноса игрока ForcePlayerSuicide(id игрока) и подключи библиотеку <sdktools_functions>
Была старая версия, извиняюсь :c
Сообщения автоматически склеены:

Почему ругается?(
C-подобный:
L 09/15/2022 - 02:04:04: [SM] Blaming: allchat.smx
L 09/15/2022 - 02:04:04: [SM] Call stack trace:
L 09/15/2022 - 02:04:04: [SM]   [1] BfReadByte
L 09/15/2022 - 02:04:04: [SM]   [2] Line 94, C:\Users\rodya\Desktop\compile\addons\sourcemod\scripting\allchat.sp::Hook_UserMessage
Плагин прикрепил
 

Вложения

  • allchat.sp
    5 КБ · Просмотры: 9
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Была старая версия, извиняюсь :c
Сообщения автоматически склеены:

Почему ругается?(
C-подобный:
L 09/15/2022 - 02:04:04: [SM] Blaming: allchat.smx
L 09/15/2022 - 02:04:04: [SM] Call stack trace:
L 09/15/2022 - 02:04:04: [SM]   [1] BfReadByte
L 09/15/2022 - 02:04:04: [SM]   [2] Line 94, C:\Users\rodya\Desktop\compile\addons\sourcemod\scripting\allchat.sp::Hook_UserMessage
Плагин прикрепил
Куда ошибку посеял? (Строка перед [SM] Blaming...)
Без описания наверное понимаю в чем может заключаться ошибка, если игра CS:GO.

Более подробно в этой теме можешь почитать: Ругается на BfReadByte
 

BossKotoriiNeSmok

Участник
Сообщения
976
Реакции
189
Куда ошибку посеял? (Строка перед [SM] Blaming...)
Без описания наверное понимаю в чем может заключаться ошибка, если игра CS:GO.

Более подробно в этой теме можешь почитать: Ругается на BfReadByte
нету ничо :C по поводу темы, нихере не понял, поменял как в теме написано, не компилится теперь
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@BossKotoriiNeSmok, а как на счёт вот этих переменных?
C-подобный:
"sv_allchat" = "1" game notify
 - Players can receive all other players' text chat, team restrictions apply
"sv_talk_enemy_dead" = "1" ( def. "0" ) game replicated
 - Dead players can hear all dead enemy communication (voice, chat)
"sv_talk_enemy_living" = "0" game replicated
 - Living players can hear all living enemy communication (voice, chat)
 

BossKotoriiNeSmok

Участник
Сообщения
976
Реакции
189
@BossKotoriiNeSmok, а как на счёт вот этих переменных?
C-подобный:
"sv_allchat" = "1" game notify
 - Players can receive all other players' text chat, team restrictions apply
"sv_talk_enemy_dead" = "1" ( def. "0" ) game replicated
 - Dead players can hear all dead enemy communication (voice, chat)
"sv_talk_enemy_living" = "0" game replicated
 - Living players can hear all living enemy communication (voice, chat)
стоит sv_allchat 1, но живые не видят сообщения мертвых, а мне нужно чтобы еще соообщения и все команды видели
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
нету ничо :C по поводу темы, нихере не понял, поменял как в теме написано, не компилится теперь
Невнимательно прочитал и так и не сказал что за игра.

Если CS:GO - работать не будет.
@Palonez же писал, правда поста не вижу, может приснилось..

Можно опять же костыль написать, чтобы чат мертвых живым показывало - это уже совсем другая история.
 

BossKotoriiNeSmok

Участник
Сообщения
976
Реакции
189
Невнимательно прочитал и так и не сказал что за игра.

Если CS:GO - работать не будет.
@Palonez же писал, правда поста не вижу, может приснилось..

Можно опять же костыль написать, чтобы чат мертвых живым показывало - это уже совсем другая история.
Напиши пожалуйста :3
 
Сверху Снизу