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

ElectricStalin

Участник
Сообщения
24
Реакции
0
Здравствуйте, появилась необходимость в простом антикемпинг плагине, не нужны никакие наказания, проверка АФК и т п. Просто на кемпера через n секунд должно включаться ВХ (m_bShouldGlow), а при начале движения выключался. Начал править этот, но даже с авторскими комментариями не совсем разобрался, слишком уж там много функций. Может кто-то уже сталкивался с чем-то подобным?
Заранее спасибо
 

wayLANder

Где AlmazON?
Сообщения
1,743
Реакции
577
Ребятушки, срочно нужна помощь.
Нужно написать плагин такого вида:
Есть сервера, допустим, на одной серверной, под одним айпи, с разными портами соответственно.
Максимальное количество слотов на сервере - 10.
На всех серверах установлено SourceTV, и, нужно сделать так, чтобы, допустим, если на каком-либо сервере нехватает игроков (меньше 10), можно написать в чате !go, и чтобы на все остальные сервера передавалось сообщение, включая наблюдателей в SourceTV, что на сервере (тут порт сервера) не хватает N игроков (где N - количество игроков, которых нехватает для полного сервера, 10 человек).
Еще нужно сделать ограничение на спам командой (1 раз в 30 сек для всех игроков).
Как только на сервере набралось 10 человек - плагин должен отключаться (писать команду !go уже нельзя).
Кто сможет помочь, платно либо бесплатно? :)
 

Анатолий))))))))

Участник
Сообщения
63
Реакции
4
ребят поправьте плагин
[SM] Call stack trace:
L 07/13/2017 - 00:32:05: [SM] [0] GetEntPropVector
L 07/13/2017 - 00:32:05: [SM] [1] Line 87, C:\Users\Анатолий\Desktop\sm\addons\sourcemod\scripting\resp_s.sp::RespawnTimer()
L 07/13/2017 - 00:32:06: [SM] Exception reported: Entity 381 (381) is invalid
L 07/13/2017 - 00:32:06: [SM] Blaming: resp_s.smx()
[SM] Call stack trace:
L 07/13/2017 - 00:25:28: [SM] [0] GetEntProp
L 07/13/2017 - 00:25:28: [SM] [1] Line 149, C:\Users\Анатолий\Desktop\sm\addons\sourcemod\scripting\resp_s.sp::InitRespawn()
L 07/13/2017 - 00:25:28: [SM] [2] Line 90, C:\Users\Анатолий\Desktop\sm\addons\sourcemod\scripting\resp_s.sp::RespawnTimer()
L 07/13/2017 - 00:25:29: [SM] Exception reported: Entity 28 (28) is invalid
L 07/13/2017 - 00:25:29: [SM] Blaming: resp_s.smx()
вот ошибки,помогите будьте любезны
и еще бы хотелось чтоб игрок мог поднять один раз,и чтоб у игрока которого подняли стояла защита секунды три
 

Вложения

  • resp_s.sp
    10 КБ · Просмотры: 19
Последнее редактирование:

Анатолий))))))))

Участник
Сообщения
63
Реакции
4
ребят помогите исправить ошибку плагина воскрешения
вот уже давали такой совет
--- Добавлено позже ---
@Анатолий)))))))), поменяй местами эти строки. исправит ошибки.
C-подобный:
GetEntPropVector(RespawningRagdoll[i], Prop_Send, "m_vecOrigin", ragpos);
if(!IsValidEntity(RespawningRagdoll[i])) return Plugin_Stop;
ребят помогите исправить ошибку плагина воскрешения
не помогло
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,805
Реакции
5,254

Вложения

  • resp_s.smx
    10.5 КБ · Просмотры: 9
  • resp_s.sp
    10 КБ · Просмотры: 25

Kruzya

Участник
Сообщения
12,974
Реакции
10,938
@Анатолий)))))))), давайте начнём с того, что Вы скинули неправильно сам текст ошибки, и ещё требуете фикс.
Ошибка всегда начинается с Exception reported, а у Вас она заканчивается этим.
 

Анатолий))))))))

Участник
Сообщения
63
Реакции
4
@Анатолий)))))))), давайте начнём с того, что Вы скинули неправильно сам текст ошибки, и ещё требуете фикс.
Ошибка всегда начинается с Exception reported, а у Вас она заканчивается этим.
ну сорри(
--- Добавлено позже ---
с 87 линией ошибки больше нет
[SM] Exception reported: Entity 9 (9) is invalid
L 07/15/2017 - 22:42:21: [SM] Blaming: resp_s.smx()
L 07/15/2017 - 22:42:21: [SM] Call stack trace:
L 07/15/2017 - 22:42:21: [SM] [0] GetEntProp
L 07/15/2017 - 22:42:21: [SM] [1] Line 150, C:\Users\Анатолий\Desktop\sm\addons\sourcemod\scripting\resp_s.sp::InitRespawn()
L 07/15/2017 - 22:42:21: [SM] [2] Line 89, C:\Users\Анатолий\Desktop\sm\addons\sourcemod\scripting\resp_s.sp::RespawnTimer()
а вот эта осталась
 
Последнее редактирование:

Reg1oxeN

Участник
Сообщения
417
Реакции
333
@Анатолий)))))))), так должно стать лучше
C-подобный:
stock Action:InitRespawn(client, ragdoll) {
    if(!IsPlayerAlive(client)) return Plugin_Handled;
    new deathplayer = GetClientIndexByRagdoll(ragdoll);
    if(deathplayer > 0 && IsClientInGame(deathplayer) && !IsPlayerAlive(deathplayer) && GetClientTeam(client) == GetClientTeam(deathplayer)) {
        new Float:ragpos[3], deaths=GetEntProp(deathplayer, Prop_Data, "m_iDeaths"), String:fex[128];
        GetEntPropVector(ragdoll, Prop_Send, "m_vecOrigin", ragpos);
        BreakRespawning(client);
        CS_RespawnPlayer(deathplayer);
        TeleportEntity(deathplayer, ragpos, NULL_VECTOR, NULL_VECTOR);
        RemoveEdict(ragdoll);
        PlayerRagdoll[deathplayer]=-1;
        if(deaths > 0) SetEntProp(deathplayer, Prop_Data, "m_iDeaths", deaths-1);
        SetEntProp(client, Prop_Data, "m_iFrags", GetEntProp(client, Prop_Data, "m_iFrags")+1);
        PrintToChat(client, "\x07FFFFFF✔\x07800000B\x078A2BE2rats\x07800000Κ\x07FFFFFF✔  \x07FBCEB1Вы подняли \x07E32636%N \x07FBCEB1 и получили фраг за это", deathplayer);
        GetConVarString(cv_soundpath, fex, sizeof(fex));
        EmitAmbientSound(fex, ragpos);
        SetEntityHealth(client, GetClientHealth(client)-GetConVarInt(cv_healthpay));
        CalculateRagdolls();
        if(GetConVarInt(cv_noblock_time) > 0) {
            TimeNoCollision[deathplayer]=GetConVarInt(cv_noblock_time);
            SetClientCollision(deathplayer, true);
        }
    }
    return Plugin_Handled;
}
 
Сверху Снизу