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

Grey83

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

В твоём конкретном случае должно было быть так:
C-подобный:
new Float:var1[3];
if (reverse)
    var1 = angels;
else var1 = birds_angels[i];
DispatchKeyValueVector(bird, "angles", var1);
Но после этого исправления снова вылезет куча ошибок и предупреждений.

Декомпилировать имеет смысл, только если сам хорошо разбираешься в соурспавне.
Да и то чаще может оказаться так, что проще быстрее самому с нуля написать, чем править и чистить декомпил.
 

Seton

Участник
Сообщения
44
Реакции
41
@Seton, декомпилированный код в подавляющем количестве случаев непригоден к повторной компиляции без серьёзных чисток и правок кода.

В твоём конкретном случае должно было быть так:
C-подобный:
new Float:var1[3];
if (reverse)
    var1 = angels;
else var1 = birds_angels[i];
DispatchKeyValueVector(bird, "angles", var1);
Но после этого исправления снова вылезет куча ошибок и предупреждений.

Декомпилировать имеет смысл, только если сам хорошо разбираешься в соурспавне.
Да и то чаще может оказаться так, что проще быстрее самому с нуля написать, чем править и чистить декомпил.
Остальное я все подправил, просто пробую себя)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@Seton, кстати, почему "ангелы" и "птичьи_ангелы" - это векторные величины? 🤔
 

Seton

Участник
Сообщения
44
Реакции
41
@Seton, кстати, почему "ангелы" и "птичьи_ангелы" - это векторные величины? 🤔
Да все правильно, плагин создает летающих птиц на дасте)
Сообщения автоматически склеены:

Используется рандомайзер, по этому там два вида вектора
 

Grey83

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

Seton

Участник
Сообщения
44
Реакции
41
@Seton, я ктому, что там должны были быть "углы", а не "ангелы". 😁
Если я правильно понимаю тебя, то они используется выше, если это углы конечно)

C-подобный:
        reverse = GetRandomInt(1, 100) > 85;
        if (reverse)
        {
            new z;
            while (z < 3)
            {
                angels[z] = birds_angels[i][z];
                z++;
            }
            switch (angels[1])
            {
                case 0.0:
                {
                    angels[1] = 180.0;
                }
                case 1119092736.0:
                {
                    angels[1] = 270.0;
                }
                case 1132920832.0:
                {
                    angels[1] = 90.0;
                }
                default:
                {
                }
            }
        }
 

babka68

Участник
Сообщения
2,124
Реакции
956
Привет, ребят! Кто может написать небольшой плагин вот что бы убрать звук от падения То есть я знаю, есть вот Nofalldamage, там нет урона. И еще такой есть там нет урона и звука от падения. Вот мне чисто что бы не было звука при падении. Сервер Cs: Source Steam. Заранее благодарю.
попробуйте может будет работать на css Другое - [MemoryEx] - No FallDamage Sound
так же есть No Fall Damage
 

trekken

Участник
Сообщения
497
Реакции
182
Привет, кто может написать небольшой плагин который вместо обычного столбца "счёт" будет показывать общий дамаг, не средний, а общий дамаг
Screenshot_420.png
именно этот столбец надо заменить на общий дмг
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Привет, кто может написать небольшой плагин который вместо обычного столбца "счёт" будет показывать общий дамаг, не средний, а общий дамаг
именно этот столбец надо заменить на общий дмг
Попробуй:
int dmg[MAXPLAYERS+1];

public void OnPluginStart()
{
    HookEvent("player_hurt", PlayerHurt);
    HookEvent("round_start", RoundStart);
}

public Action RoundStart(Event hEvent const char[] sEvent, bool bdb)
{
    for (int i = 1; i <= MaxClients; i++)
    {
          if(IsClientInGame(i) && IsPlayerAlive(i))
          {
                 CS_SetClientContributionScore(i,0);
                 dmg[i] = 0;
          }
    }
}

public Action PlayerHurt(Event hEvent const char[] sEvent, bool bdb)
{ 
    int attacker = GetClientOfUserId(hEvent.GetInt("attacker"));
    if(attacker && !IsFakeClient(attacker))
    {
        dmg[attacker] += hEvent.GetInt("dmg_health") + hEvent.GetInt("dmg_armor");
        CS_SetClientContributionScore(attacker, dmg[attacker]);
    }
}
 

babka68

Участник
Сообщения
2,124
Реакции
956
Привет, ребят! Кто может написать небольшой плагин вот что бы убрать звук от падения То есть я знаю, есть вот Nofalldamage, там нет урона. И еще такой есть там нет урона и звука от падения. Вот мне чисто что бы не было звука при падении. Сервер Cs: Source Steam. Заранее благодарю.
C-подобный:
#include <sdktools_sound>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Block Damage Sound",
    author = "babka68",
    description = "Плагин блокирует 3 звука, при нанесении различного урона игроку",
    version = "1.0",
    url = "https://vk.com/zakazserver68"
};

public void OnPluginStart()
{
    AddNormalSoundHook(Block_Damage_Sound);
}

public Action Block_Damage_Sound(int clients[64], int &numClients, char sound[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    return strcmp(sound, "player/damage1.wav") && strcmp(sound, "player/damage2.wav") && strcmp(sound, "player/damage3.wav") ? Plugin_Continue:Plugin_Handled;
}
Попробуйте такой вариант, нашёл в css 34 данные 3 звука, так как было лень распаковывать vpk.
Как я понял, при разной величине урона используется 1 из этих 3х звуков, или вообще рандом, но есть нюанс, звук будет блокироваться так же при нанесении вам урона противником, а так же при шлепке администратора через админ меню, тестируйте вообщем.

P.S и по хорошему, указали бы версию игры
 

Вложения

  • Damage Sound.rar
    54 КБ · Просмотры: 7

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
C-подобный:
#include <sdktools_sound>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Block Damage Sound",
    author = "babka68",
    description = "Плагин блокирует 3 звука, при нанесении различного урона игроку",
    version = "1.0",
    url = "https://vk.com/zakazserver68"
};

public void OnPluginStart()
{
    AddNormalSoundHook(Block_Damage_Sound);
}

public Action Block_Damage_Sound(int clients[64], int &numClients, char sound[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    return strcmp(sound, "player/damage1.wav") && strcmp(sound, "player/damage2.wav") && strcmp(sound, "player/damage3.wav") ? Plugin_Continue:Plugin_Handled;
}
Попробуйте такой вариант, нашёл в css 34 данные 3 звука, так как было лень распаковывать vpk.
Как я понял, при разной величине урона используется 1 из этих 3х звуков, или вообще рандом, но есть нюанс, звук будет блокироваться так же при нанесении вам урона противником, а так же при шлепке администратора через админ меню, тестируйте вообщем.

P.S и по хорошему, указали бы версию игры
Почему в коллбеке переменные с объявленными массивами? А разве нельзя отследить урон через player_hurt и условие через attacker == -1?
 

Grey83

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

alexmy

Участник
Сообщения
284
Реакции
13
Всем привет. Вопрос такой, о более глобальных переменных. У меня есть два схожих плагина, в месте они будут конфликтовать. Есть что ни будь подобное, то что их будет блокировать по очереди в зависимости к примеру от условий? В принципе думаю, можно создать переменную и переключать её. Но всё же может есть что более разумно.
 

Palonez

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