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

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
Всем доброго времени суток, подскажите пожалуйста, почему я всегда получаю 0 вместо корректного числа!

Пример кода:
int iTime = 7200;
int iTest = 2/iTime;
PrintToChatAll("%i", iTest);
Я почему-то всегда получаю 0, хотя если вывести все отдельно то работает корректно
Потому что если 2/7200 = float число 0.00027777777 а вы вывод делаете int (%i)
Так будет корректно
Пример кода:
int iTime = 7200;
int iTest = iTime/2;
PrintToChatAll("%i", iTest);
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Потому что если 2/7200 = float число 0.00027777777 а вы вывод делаете int (%i)
Так будет корректно
Пример кода:
int iTime = 7200;
int iTest = iTime/2;
PrintToChatAll("%i", iTest);
Спасибо, помогло. ТОлько сейчас дошло что я 2 делил на 7200, а не 7200 на 2. Еще раз спасибо!!
 

Yurka_Bear

Участник
Сообщения
61
Реакции
4
Здравствуйте. Помогите с плагином пожалуйста, он не работает.
L 01/20/2024 - 20:06:20: Error log file session closed.
L 01/20/2024 - 20:06:20: SourceMod error session started
L 01/20/2024 - 20:06:20: Info (map "gg_tokyo_museum_v34") (file "errors_20240120.log")
L 01/20/2024 - 20:06:20: [SM] Native "HookEvent" reported: Game event "cs_win_panel_round" does not exist
L 01/20/2024 - 20:06:20: [SM] Displaying call stack trace for plugin "gungame_assist.smx":
L 01/20/2024 - 20:06:20: [SM] [0] Line 36, gungame_assist.sp::OnPluginStart()
 

Вложения

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

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Здравствуйте. Помогите с плагином пожалуйста, он не работает.
L 01/20/2024 - 20:06:20: Error log file session closed.
L 01/20/2024 - 20:06:20: SourceMod error session started
L 01/20/2024 - 20:06:20: Info (map "gg_tokyo_museum_v34") (file "errors_20240120.log")
L 01/20/2024 - 20:06:20: [SM] Native "HookEvent" reported: Game event "cs_win_panel_round" does not exist
L 01/20/2024 - 20:06:20: [SM] Displaying call stack trace for plugin "gungame_assist.smx":
L 01/20/2024 - 20:06:20: [SM] [0] Line 36, gungame_assist.sp::OnPluginStart()
Я так понимаю плагин ставите на CSS v34, а там нет такого события как "cs_win_panel_round". + вы не скинули исходник, так что тут в принципе помочь больше нечем
 

babka68

Участник
Сообщения
2,124
Реакции
956
Здравствуйте. Помогите с плагином пожалуйста, он не работает.
L 01/20/2024 - 20:06:20: Error log file session closed.
L 01/20/2024 - 20:06:20: SourceMod error session started
L 01/20/2024 - 20:06:20: Info (map "gg_tokyo_museum_v34") (file "errors_20240120.log")
L 01/20/2024 - 20:06:20: [SM] Native "HookEvent" reported: Game event "cs_win_panel_round" does not exist
L 01/20/2024 - 20:06:20: [SM] Displaying call stack trace for plugin "gungame_assist.smx":
L 01/20/2024 - 20:06:20: [SM] [0] Line 36, gungame_assist.sp::OnPluginStart()
попробуйте так
 

Вложения

  • gungame_assist.sp
    8.7 КБ · Просмотры: 4

Yurka_Bear

Участник
Сообщения
61
Реакции
4
Работает, спасибо! Еще просьба будет небольшая. Можете сделать, чтоб уровень давался автоматом, когда достигнешь нужное колич. очков? А то там надо команду прописывать, когда набрал очки.
 

babka68

Участник
Сообщения
2,124
Реакции
956
Работает, спасибо! Еще просьба будет небольшая. Можете сделать, чтоб уровень давался автоматом, когда достигнешь нужное колич. очков? А то там надо команду прописывать, когда набрал очки.
наверное так и задумано, что бы можно было обменивать
C-подобный:
Изначально этот мод был предназначен для сценариев событий GunGame. Портирован на SourceMod. Полностью переписан, фактически исходный код из оригинала не использовался и даже не просматривался.
Это мой первый плагин для SourceMod. Поэтому, пожалуйста, оставляйте комментарии к моему коду.
Очки помощи работают следующим образом:
Вы зарабатываете очки в процентах от урона, нанесенного другим игрокам.
Вы зарабатываете эти очки только в том случае, если игрок, которому вы нанесли урон, не убит вами, за любые другие способы смерти начисляются очки.
Вы можете обменять очки за уровень, используя !redeem "sm_redeem" и !respawn "sm_respawn" для возрождения.
По умолчанию вы не можете выкупить гранату или нож, вы можете добавить дополнительное оружие в черный список.
При смерти игрока каждому игроку, нанесшему урон мертвому игроку, отправляется сообщение, в котором сообщается, сколько очков вы заработали, кто умер и сколько у вас осталось.
 

Yurka_Bear

Участник
Сообщения
61
Реакции
4
наверное так и задумано, что бы можно было обменивать
C-подобный:
Изначально этот мод был предназначен для сценариев событий GunGame. Портирован на SourceMod. Полностью переписан, фактически исходный код из оригинала не использовался и даже не просматривался.
Это мой первый плагин для SourceMod. Поэтому, пожалуйста, оставляйте комментарии к моему коду.
Очки помощи работают следующим образом:
Вы зарабатываете очки в процентах от урона, нанесенного другим игрокам.
Вы зарабатываете эти очки только в том случае, если игрок, которому вы нанесли урон, не убит вами, за любые другие способы смерти начисляются очки.
Вы можете обменять очки за уровень, используя !redeem "sm_redeem" и !respawn "sm_respawn" для возрождения.
По умолчанию вы не можете выкупить гранату или нож, вы можете добавить дополнительное оружие в черный список.
При смерти игрока каждому игроку, нанесшему урон мертвому игроку, отправляется сообщение, в котором сообщается, сколько очков вы заработали, кто умер и сколько у вас осталось.
Да, я понимаю. Но хотелось бы переделать. Чтоб автоматом давался уровень, когда набрал нужное количество бонусов, вот и попросил.
 

babka68

Участник
Сообщения
2,124
Реакции
956
Да, я понимаю. Но хотелось бы переделать. Чтоб автоматом давался уровень, когда набрал нужное количество бонусов, вот и попросил.
тогда от этого плагина по-моему толком ничего не останется, наверное проще написать под ваши нужды новый, нужно смотреть инклуд gungame и смотреть что да как
 

Yurka_Bear

Участник
Сообщения
61
Реакции
4
тогда от этого плагина по-моему толком ничего не останется, наверное проще написать под ваши нужды новый, нужно смотреть инклуд gungame и смотреть что да как
Понял вас. Еще раз спасибо за помощь.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Привет, ребят. Помогите, кто может. Надо добавить в код плагина проверку на ботов, что бы ботам не выдавала автоматически вип статус. (сервер cs source steam)

C-подобный:
#pragma semicolon 1
//#pragma newdecls required

#include <sourcemod>
#include <vip>

public void OnClientPutInServer(int client)
{
    CreateTimer(3.0, TimerCheckVip, client);
}

public Action TimerCheckVip(Handle timer, int client)
{
    if(client && !IsClientVip(client))
    {
        SetVipUsersGroups(client, "", 60, "", true);
    }
}
C-подобный:
#include <sourcemod>
#include <vip>

public void OnClientPutInServer(int client)
{
    CreateTimer(3.0, TimerCheckVip, client);
}

public Action TimerCheckVip(Handle timer, int client)
{
    if(!IsFackeClient(client) && !IsClientVip(client))
    {
        SetVipUsersGroups(client, "", 60, "", true);
    }
}
 

danil253467

💘Italo-Disco & Neon One Love💘
Сообщения
90
Реакции
52
error 017: undefined symbol "IsFackeClient"
Сообщения автоматически склеены:


а понял лишняя c
Сообщения автоматически склеены:


в общем ботам перестала выдавать мне выдала но в логах еrror

L 01/21/2024 - 20:19:54: [SM] Call stack trace:
L 01/21/2024 - 20:19:54: [SM] [0] IsFakeClient
L 01/21/2024 - 20:19:54: [SM] [1] Line 11, D:\DISK D\MyFiles\scripting\sm_autovip.sp::TimerCheckVip
L 01/21/2024 - 20:19:54: [SM] Exception reported: Client 11 is not connected
L 01/21/2024 - 20:19:54: [SM] Blaming: sm_autovip.smx
L 01/21/2024 - 20:19:54: [SM] Call stack trace:
L 01/21/2024 - 20:19:54: [SM] [0] IsFakeClient
L 01/21/2024 - 20:19:54: [SM] [1] Line 11, D:\DISK D\MyFiles\scripting\sm_autovip.sp::TimerCheckVip
L 01/21/2024 - 20:19:56: [SM] Exception reported: Client index 2 is invalid
L 01/21/2024 - 20:19:56: [SM] Blaming: vip.smx
L 01/21/2024 - 20:19:56: [SM] Call stack trace:
L 01/21/2024 - 20:19:56: [SM] [0] ThrowNativeError
L 01/21/2024 - 20:19:56: [SM] [1] Line 1490, vip.sp::Native_SetVipUsersGroups
L 01/21/2024 - 20:19:56: [SM] [3] SetVipUsersGroups
L 01/21/2024 - 20:19:56: [SM] [4] Line 13, D:\DISK D\MyFiles\scripting\sm_autovip.sp::TimerCheckVip
C-подобный:
#include <vip>

public void OnClientPutInServer(int client)
{
    CreateTimer(3.0, TimerCheckVip, client);
}

public Action TimerCheckVip(Handle timer, int client)
{
    if(client > 0 && client <= MaxClients && !IsFakeClient(client) && !IsClientVip(client))
    {
        SetVipUsersGroups(client, "", 60, "", true);
    }
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
чтобы ботам не выдавала автоматически вип статус
...
Client 11 is not connected
C-подобный:
#pragma semicolon 1

#include <vip>

#pragma newdecls required

public void OnClientPutInServer(int client)
{
    if(!IsFakeClient(client)) CreateTimer(3.0, TimerCheckVip, GetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE);
}

public Action TimerCheckVip(Handle timer, int client)
{
    if((client = GetClientOfUserId(client)) && IsClientInGame(client) && !IsClientVip(client))
        SetVipUsersGroups(client, "", 60, "", true);

    return Plugin_Stop;
}
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
спасибо error логи ушли но появилась такая вещь вот вип я себе удалил перезапустили сервер захожу смотрю в таб клан тега нет что вип а должен потом захожу в саму вип и там только чат тег из всех флагов то есть все флаги пропали потом смотрю и пропал пункт управления випкой потом выхожу полностью из клиента игры захожу обратно потом на сервер и все на месте может подскажешь или подскажите почему так стало
расставьте знаки препинания, ничего не понятно. Кто куда, зачем, почему
 
Сверху Снизу