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

Paranoiiik

хачю клиентмод
Сообщения
1,527
Реакции
956
А еще проще получить время раунда отсюда
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"
    }
*Если в игре есть это событие
 

BossKotoriiNeSmok

Голос из армии
Сообщения
649
Реакции
120
МОжно ли как то пофиксить баг, когда ставить низкий скин, чтобы и положение у всех низкое было? просто он после прыжка на 1-2 секунды положение низкое, и потом обратно стандартное
 

Голос_в_ночи

Племяш Габена
Сообщения
291
Реакции
27
1) Подскажите, как изменить цвета в чате, когда происходит голосование?
"[SM] Игрок Ник проголосовал за Карта"
Нашел, что это прописано в файле перевода ядра sm "core.phrases.txt", но подставив {цвет}, не работает.
"Voted For"
{
"ru" "Игрок {1} проголосовал за {2}"
}
2) И знаю, что можно красить плагины в файлах перевода, символом "BEL", но в каких случаях это возможно? Т.е. нужен какой-то инклуд colors в плагине?
3) Нужен плагин, который будет писать в конце карты, в чате 3 раза (строки): "{default}Следующая карта {green}название карты". Если возможно, то дописать nextmap
Игра CSS OB sm 1.10
 
Последнее редактирование:

SIRIUS

♿___DejaVu
Сообщения
484
Реакции
229
Подскажите, как изменить цвета в чате, когда происходит голосование?
"[SM] Игрок Ник проголосовал за Карта"
Нашел, что это прописано в файле перевода ядра sm "core.phrases.txt", но подставив {цвет}, не работает.
"Voted For"
{
"ru" "Игрок {1} проголосовал за {2}"
}
И знаю, что можно красить плагины в файлах перевода, символом "BEL", но в каких случаях это возможно? Т.е. нужен какой-то инклуд colors в плагине?
Через "alt+0+1". "alt+0+2" и т.д., или пишешь 01, выделяешь, нажимаешь плагины - конвертер - "HEX -> ACXII"
1623396480143.png

687474703a2f2f6374726c762e637a2f73686f74732f323031352f30332f30382f4d6c77642e706e67.png
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,950
Реакции
2,905
@SIRIUS, он же написал, что КСС, а ты ему цвета из КСГО.
 

Felton

Участник
Сообщения
775
Реакции
56
Доброго времени суток.Игра Counter-Strike Source v.34.Подправьте плагин если не сложно.Хотел прописать в admin_overrides "CFG" флаг b для этого плагина.А какую команду прописать не пойму.
C-подобный:
/* BunnyHop
* Author: Soccerdude
* Description: Gives players the ability to jump higher
*/
#include <sourcemod>
#include <sdktools>

#pragma semicolon 1

// Declare offsets

new VelocityOffset_0;
new VelocityOffset_1;
new BaseVelocityOffset, bool:acces[MAXPLAYERS+1];

// Declare convar handles

new Handle:hPush;
new Handle:hHeight;

public Plugin:myinfo =
{
  name = "BunnyHop",
  author = "Soccerdude",
  description = "Gives players the ability to jump higher",
  version = "1.0.1",
  url = "http://sourcemod.net/"
};

public OnPluginStart()
{
  PrintToServer("----------------|         BunnyHop Loading        |---------------");
  // Hook Events
  HookEvent("player_jump",PlayerJumpEvent);
  // Find offsets
  VelocityOffset_0=FindSendPropOffs("CBasePlayer","m_vecVelocity[0]");
  if(VelocityOffset_0==-1)
    SetFailState("[BunnyHop] Error: Failed to find Velocity[0] offset, aborting");
  VelocityOffset_1=FindSendPropOffs("CBasePlayer","m_vecVelocity[1]");
  if(VelocityOffset_1==-1)
    SetFailState("[BunnyHop] Error: Failed to find Velocity[1] offset, aborting");
  BaseVelocityOffset=FindSendPropOffs("CBasePlayer","m_vecBaseVelocity");
  if(BaseVelocityOffset==-1)
    SetFailState("[BunnyHop] Error: Failed to find the BaseVelocity offset, aborting");
  // Create cvars
  hPush=CreateConVar("bunnyhop_push","1.0","The forward push when you jump");
  hHeight=CreateConVar("bunnyhop_height","1.0","The upward push when you jump");
  // Create config
  AutoExecConfig();
  // Public cvar
  CreateConVar("bunnyhop_version","1.0.1","[BunnyHop] Current version of this plugin",FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_UNLOGGED|FCVAR_DONTRECORD|FCVAR_REPLICATED|FCVAR_NOTIFY);
  PrintToServer("----------------|         BunnyHop Loaded         |---------------");
}

public OnClientPostAdminFilter(client)
{
    new AdminId:aid = GetUserAdmin(client);
    if (aid != INVALID_ADMIN_ID)
    {
        if (GetAdminFlag(aid, Admin_Ban, Access_Effective))
            acces[client] = true;
    }
}

public OnClientDisconnect_Post(client) acces[client] = false;

public PlayerJumpEvent(Handle:event,const String:name[],bool:dontBroadcast)
{
  new index=GetClientOfUserId(GetEventInt(event,"userid"));
  if (acces[index])
  {
      new Float:finalvec[3];
      finalvec[0]=GetEntDataFloat(index,VelocityOffset_0)*GetConVarFloat(hPush)/2.0;
      finalvec[1]=GetEntDataFloat(index,VelocityOffset_1)*GetConVarFloat(hPush)/2.0;
      finalvec[2]=GetConVarFloat(hHeight)*50.0;
      SetEntDataVector(index,BaseVelocityOffset,finalvec,true);
  }
}
 

Ganter1234

Нубик
Сообщения
334
Реакции
138
Доброго времени суток.Игра Counter-Strike Source v.34.Подправьте плагин если не сложно.Хотел прописать в admin_overrides "CFG" флаг b для этого плагина.А какую команду прописать не пойму.
C-подобный:
/* BunnyHop
* Author: Soccerdude
* Description: Gives players the ability to jump higher
*/
#include <sourcemod>
#include <sdktools>

#pragma semicolon 1

// Declare offsets

new VelocityOffset_0;
new VelocityOffset_1;
new BaseVelocityOffset, bool:acces[MAXPLAYERS+1];

// Declare convar handles

new Handle:hPush;
new Handle:hHeight;

public Plugin:myinfo =
{
  name = "BunnyHop",
  author = "Soccerdude",
  description = "Gives players the ability to jump higher",
  version = "1.0.1",
  url = "http://sourcemod.net/"
};

public OnPluginStart()
{
  PrintToServer("----------------|         BunnyHop Loading        |---------------");
  // Hook Events
  HookEvent("player_jump",PlayerJumpEvent);
  // Find offsets
  VelocityOffset_0=FindSendPropOffs("CBasePlayer","m_vecVelocity[0]");
  if(VelocityOffset_0==-1)
    SetFailState("[BunnyHop] Error: Failed to find Velocity[0] offset, aborting");
  VelocityOffset_1=FindSendPropOffs("CBasePlayer","m_vecVelocity[1]");
  if(VelocityOffset_1==-1)
    SetFailState("[BunnyHop] Error: Failed to find Velocity[1] offset, aborting");
  BaseVelocityOffset=FindSendPropOffs("CBasePlayer","m_vecBaseVelocity");
  if(BaseVelocityOffset==-1)
    SetFailState("[BunnyHop] Error: Failed to find the BaseVelocity offset, aborting");
  // Create cvars
  hPush=CreateConVar("bunnyhop_push","1.0","The forward push when you jump");
  hHeight=CreateConVar("bunnyhop_height","1.0","The upward push when you jump");
  // Create config
  AutoExecConfig();
  // Public cvar
  CreateConVar("bunnyhop_version","1.0.1","[BunnyHop] Current version of this plugin",FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_UNLOGGED|FCVAR_DONTRECORD|FCVAR_REPLICATED|FCVAR_NOTIFY);
  PrintToServer("----------------|         BunnyHop Loaded         |---------------");
}

public OnClientPostAdminFilter(client)
{
    new AdminId:aid = GetUserAdmin(client);
    if (aid != INVALID_ADMIN_ID)
    {
        if (GetAdminFlag(aid, Admin_Ban, Access_Effective))
            acces[client] = true;
    }
}

public OnClientDisconnect_Post(client) acces[client] = false;

public PlayerJumpEvent(Handle:event,const String:name[],bool:dontBroadcast)
{
  new index=GetClientOfUserId(GetEventInt(event,"userid"));
  if (acces[index])
  {
      new Float:finalvec[3];
      finalvec[0]=GetEntDataFloat(index,VelocityOffset_0)*GetConVarFloat(hPush)/2.0;
      finalvec[1]=GetEntDataFloat(index,VelocityOffset_1)*GetConVarFloat(hPush)/2.0;
      finalvec[2]=GetConVarFloat(hHeight)*50.0;
      SetEntDataVector(index,BaseVelocityOffset,finalvec,true);
  }
}
Замени 60 строчку Admin_Ban на Admin_Generic (должно сработать)
 

Andrey Morozov

Участник
Сообщения
4
Реакции
0
@✖ FokS ✖, примерно так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_sound>
#include <sdktools_stringtables>

bool
    bCSGO;
float
    fPos[3];
char
    sCvarPath[PLATFORM_MAX_PATH],
    sSound[PLATFORM_MAX_PATH];

public void OnPluginStart()
{
    bCSGO = GetEngineVersion() == Engine_CSGO;

    ConVar cvar = CreateConVar("sm_defused_sound", "ui/achievement_earned.wav", "", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_Sound);
    cvar.GetString(sCvarPath, sizeof(sCvarPath));

    HookEvent("bomb_begindefuse", Event_Defuse);
    HookEvent("bomb_defused", Event_Defused, EventHookMode_PostNoCopy);
}

public void CVarChanged_Sound(ConVar cvar, const char[] oldVal, const char[] newVal)
{
    cvar.GetString(sCvarPath, sizeof(sCvarPath));

    int len = strlen(sCvarPath) - 4;
    if(len < 1 || strcmp(sCvarPath[len], ".mp3", false) && strcmp(sCvarPath[len], ".wav", false))
        sCvarPath[0] = sSound[0] = 0;
    else AddSound();
}

public void OnMapStart()
{
    if(sCvarPath[0]) AddSound();
}

stock void AddSound()
{
    FormatEx(sSound, sizeof(sSound), "sound/%s", sCvarPath);
    AddFileToDownloadsTable(sSound);

    if(bCSGO)
    {
        FormatEx(sSound, sizeof(sSound), "*%s", sCvarPath);
        AddToStringTable(FindStringTable("soundprecache"), sSound);
        return;
    }

    FormatEx(sSound, sizeof(sSound), "%s", sCvarPath);
    PrecacheSound(sSound, true);
}

public void Event_Defuse(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(client && IsClientInGame(client)) GetClientAbsOrigin(client, fPos);
}

public void Event_Defused(Event event, const char[] name, bool dontBroadcast)
{
    if(sSound[0]) EmitAmbientSound(sSound, fPos);
}
а можно сделать когда поставил бобму, чтобы воспроизводился звук??
 

Grey83

Ленивая и невнимательная жопа
Сообщения
4,950
Реакции
2,905
@Andrey Morozov, вместо "bomb_defused" ловишь событие завершения установки ("bomb_planted") и воспроизводишь звук.
Там даже не нужно ловить событие "bomb_begindefuse", потому что в "bomb_planted" уже есть нужные координаты.
 

Felton

Участник
Сообщения
775
Реакции
56
Добрый день.Можно запелить плагин когда допустим идёт голосование за смену карты все игроки замораживаются(ну типа паузы на сервере) и должны все проголосовать и потом продолжается игра после гососования т.е всех размораживает.Игра Counter-Strike Source v.34(старый синтаксис)mp_roundtime 10. mp_timelimit 30 если это нужно.Голосование начинается за 2 минуты до конца карты.
 

Nekro

Терра инкогнита
Сообщения
1,994
Реакции
737
Добрый день.Можно запелить плагин когда допустим идёт голосование за смену карты все игроки замораживаются(ну типа паузы на сервере) и должны все проголосовать и потом продолжается игра после гососования т.е всех размораживает.Игра Counter-Strike Source v.34(старый синтаксис)mp_roundtime 10. mp_timelimit 30 если это нужно.Голосование начинается за 2 минуты до конца карты.
Не думаю, что это проблема, но отчего не перейти на новый синтаксис? У меня на 34 стоит 11 см и всё отлично. А если в момент голосования идёт окончание раунда или установили бомбу ?
 

Felton

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

Nekro У тебя в момент голосования все замораживаются?На новом синтаксе?(а на старом это не возможно?)​

Забыл добавить DeathMatch V.34
И пока миссия на карте не закончена карта не поменяется но это не суть.mp_timelimit 30 за 2 минуты до окончания начинается голосование.
 
Последнее редактирование:

Felton

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

Nekro

Ну я не понял ход твоей мысли.Конкретики мало.А по существу 0(ноль)
Люди не хотят или пропускают голосование поэтому и возник вопрос .
Может есть альтернатива?Другой плагин?Я так понял что у тебя на 34 стоит 11 см и всё отлично.Как ты написал.Значит у тебя все ок!
Надо срочно переходть на 11 см) иначе ни как?Да?))
 
Последнее редактирование:

Truyn

Цынитель
Сообщения
1,010
Реакции
333
Буду благодарен если кто то его переделает под discord крузи (там уведомления привязаны к другому ядру дискорда)
 

Вложения

  • shavit-bash2.sp
    79.4 КБ · Просмотры: 5

ICHIGO

Участник
Сообщения
43
Реакции
6
Здравствуйте
Просьба переписать плагин.
Что нужна изменить:
Убрать задержку в TAB (Когда зажимаешь TAB И отпускаешь еще где то 1 секунду показывает меню).
Убрать строчку "следущая карта , Игроков играют , время ".
Убрать команду "sm_tabhud" и сделать ее в меню sm_settings .
Надеюсь на вашу помощь!!!!
 

Вложения

  • TabHud.sp
    6 КБ · Просмотры: 5

BossKotoriiNeSmok

Голос из армии
Сообщения
649
Реакции
120
Можете сделать плагин для AWP, выдача дигла с 1 пулей в основе и в запасе 999 пуль?
 

Felton

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

Grey83

Доброго времени суток. Сори за на зойливостьНужна помощ.
 
Сверху