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

DZoneR

Участник
Сообщения
4
Реакции
0
Здрасте! Хочу плагин для режима Deathmatch CS:GO, который будет автоматически ставить рандомное условие для каждого одного раунда. Т.е. чтоб при смене карты одновременно менялось и ограничение. Ну типа в одном раунде ставиться допустим ножевой раунд, потом меняется карта и устанавливается другое ограничение, например онли-хедшоты, и т.д.
Желательно, чтоб можно было самому в конфиге делать разные ограничения.
Например:
В самом конфиге пишем название условие "Онли-хедшоты"
Далее ниже. Сообщение, которое выводит инфу в чат или на экране слева или на дисплее по середине, например "В этом раунде убить противника можно только в голову"
Под сообщением указываем шанс выпадение такого условия (необязательно)
Ещё ниже прописываем команды и моды, которые делают эти ограничения.

Возможно-ли такое реализовать???
 
Последнее редактирование:

Reg1oxeN

Участник
Сообщения
399
Реакции
314
@Webman, берутся модули, переименовываются у них расширения файлов, чтобы см не подхватывал их в загрузку.
затем кидаешь модули куда угодно. хоть в корень. хоть в отдельную папку.
парсишь своим ядром эти самые модули по расширению файлов и грузишь.

проще некуда.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Reg1oxeN, лол? СМ подгружает все файлы из подпапок, кроме disabled. У меня на серваке всё раскидано по подпапкам, и всё грузится.
vD7KnVl.png
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
подгружает все файлы из подпапок, кроме disabled
переименовываются у них расширения файлов
Если плагин не будет распознан, как плагин (вместо .smx - .xms, например), то и подгружать SM его не станет. Зато можно "парсить" по расширению и не беспокоиться о том, как переименуют имя файла.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Reg1oxeN, я вроде промолчал после сообщения @AlmazON. А так, код я понял. Никогда не пробовал таким образом грузить плагины, вот и не в курсе был.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Может кто знает, есть ли аналог "cl_connectmethod" в CS:GO ?
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
Здрасте! Хочу плагин для режима Deathmatch CS:GO, который будет автоматически ставить рандомное условие для каждого одного раунда. Т.е. чтоб при смене карты одновременно менялось и ограничение. Ну типа в одном раунде ставиться допустим ножевой раунд, потом меняется карта и устанавливается другое ограничение, например онли-хедшоты, и т.д.
Желательно, чтоб можно было самому в конфиге делать разные ограничения.
Например:
В самом конфиге пишем название условие "Онли-хедшоты"
Далее ниже. Сообщение, которое выводит инфу в чат или на экране слева или на дисплее по середине, например "В этом раунде убить противника можно только в голову"
Под сообщением указываем шанс выпадение такого условия (необязательно)
Ещё ниже прописываем команды и моды, которые делают эти ограничения.

Возможно-ли такое реализовать???
Да, но условия просто так не напишешь на листочке. Можно модульно сделать, тобишь ядро, и модули
 

EaglEs

Гуру пробития усилений
Сообщения
924
Реакции
192
Такой вопрос: у расширения steamtools сейчас другое имя (было steamtools.ext.dll, стало steamtools.ext.2.ep2v.dll). Warmod не хочет загружаться из-за этого, ибо ищет по старому названию... Как исправить?
 

EaglEs

Гуру пробития усилений
Сообщения
924
Реакции
192
@inklesspen, да компилится отлично, только со старым синтаксисом.
@R1KO, интересно, зачем автор поменял его имя?..
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
@Chaos_Engine, видимо компилил под разные движки и чтобы различать версии дал им разные имена. Открой sourcemod/bin/ там файлы sm для разных игр тоже лежат. Как пример
 

Rostu

Добрая душа
Сообщения
986
Реакции
622
Здравствуйте , как изменить размер текста в PrintHintText в том же Drapi show damage
 

Вложения

  • drapi_show_damage.sp
    27.3 КБ · Просмотры: 9

Felton

Участник
Сообщения
799
Реакции
59
C-подобный:
#include <sdkhooks>
#include <sdktools_functions>

new String:sWeapon[13];

public OnClientPostAdminCheck(client) SDKHook(client, SDKHook_OnTakeDamage, TakeDamage);

public Action:TakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
if (attacker && victim != attacker && attacker <= MaxClients)
{
GetClientWeapon(attacker, sWeapon, sizeof(sWeapon));
if (strcmp(sWeapon, "weapon_knife") == 0)
{
GetClientEyeAngles(attacker, damageForce);
GetClientEyeAngles(victim, damagePosition);
if (damageForce[1] < damagePosition[1])
{
if (damagePosition[1] - damageForce[1] < 70.0) return Plugin_Handled;
}
else if (damageForce[1] - damagePosition[1] < 50.0) return Plugin_Handled;
}
}
return Plugin_Continue;
}
Допишите пожалуйста этот плагин.Этот плагин - нельзя убить сзади ножом.Чтобы была зищита (имунитет) админов с флагом d

#include <sdkhooks>
#include <sdktools_functions>

new String:sWeapon[13];

public OnClientPostAdminCheck(client) SDKHook(client, SDKHook_OnTakeDamage, TakeDamage);

public Action:TakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
if (attacker && victim != attacker && attacker <= MaxClients)
{
GetClientWeapon(attacker, sWeapon, sizeof(sWeapon));
if (strcmp(sWeapon, "weapon_knife") == 0)
{
GetClientEyeAngles(attacker, damageForce);
GetClientEyeAngles(victim, damagePosition);
if (damageForce[1] < damagePosition[1])
{
if (damagePosition[1] - damageForce[1] < 70.0) return Plugin_Handled;
}
else if (damageForce[1] - damagePosition[1] < 50.0) return Plugin_Handled;
}
}
return Plugin_Continue;
}
 
Последнее редактирование:

DrizziT

Участник
Сообщения
17
Реакции
0
В общем есть плагин, Round End Sound с MyArena. Был без исходника, я декомпилировал плагин, получился исходник, (моя цель была просто убрать рекламу MyArena) но при компиляции в smx вылетало много ошибок. А в sourcepawn я еще новичок, и решить эти ошибки не могу :dntknw:. Хотелось бы чтобы кто то из опытных людей помог, если вдруг нечего делать. Буду очень благодарен.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
В общем есть плагин, Round End Sound с MyArena. Был без исходника, я декомпилировал плагин, получился исходник, (моя цель была просто убрать рекламу MyArena) но при компиляции в smx вылетало много ошибок. А в sourcepawn я еще новичок, и решить эти ошибки не могу :dntknw:. Хотелось бы чтобы кто то из опытных людей помог, если вдруг нечего делать. Буду очень благодарен.
К сожалению данный плагин проще написать с нуля, чем полностью его декомпилировать.
Вам в раздел "Требуется".
 

DrizziT

Участник
Сообщения
17
Реакции
0
Понял, спасибо
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
зищита (имунитет) админов с флагом d
PHP:
#include <sdkhooks>
#include <sdktools_functions>

new String:sWeapon[13], bool:gAdmin[MAXPLAYERS + 1];

public OnClientPostAdminCheck(client)
{
    SDKHook(client, SDKHook_OnTakeDamage, TakeDamage);
    gAdmin[client] = GetAdminFlag(GetUserAdmin(client), Admin_Ban);
}

public Action:TakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3])
{
    if (gAdmin[victim] && attacker && victim != attacker && attacker <= MaxClients)
    {
        if (weapon != -1) GetEdictClassname(weapon, sWeapon, sizeof(sWeapon));
        else GetClientWeapon(attacker, sWeapon, sizeof(sWeapon));
        if (strncmp(sWeapon, "weapon_knife", 12) == 0)
        {
            GetClientEyeAngles(attacker, damageForce);
            GetClientEyeAngles(victim, damagePosition);
            if (damageForce[1] < damagePosition[1])
            {
                if (damagePosition[1] - damageForce[1] < 70.0) return Plugin_Handled;
            }
            else if (damageForce[1] - damagePosition[1] < 50.0) return Plugin_Handled;
        }
    }
    return Plugin_Continue;
}
Оффтоп
 
Сверху Снизу