Администратор Райан Posted August 24, 2020 Администратор Share Posted August 24, 2020 (edited) Очень простой плагин, стреляющий искрами из под ваших ног! Использовать его смогут только админы. Он прекрасно работает в L4D2, и это только визуальный эффект. Он никак не влияет на геймплей. Полезный бинд: bind mwheelup sm_explode Различные демо: Демонстрация на примере Counter-Strike: Source Список изменений: Версия от 16.09.2022 - Добавлены отсутствующие строки перевода explode.zip - Версия от 16.09.2022 explode.sp explode.smx Edited September 15, 2022 by Райан Добавил новую версию и список изменений (see edit history) 0 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Guest Чат Бот Posted September 24, 2020 Share Posted September 24, 2020 мне жаль, чувак, но такие плагины просто жалкие... 0 Quote Link to comment Share on other sites More sharing options...
Администратор Райан Posted September 24, 2020 Author Администратор Share Posted September 24, 2020 Привет, @Чат Бот, Ты же знаешь, что крутые ребята, которые пишут невероятные плагины, когда учились тоже писали именно такую чушь? И скорее всего, они сами понимали что это чушь, и публиковали ее, потом читали критику, такую как твоя, и учились на ней. Все мы так поступаем! Написание плагинов, как и шитье или вязание - это ремесло. И тебе нужно работать над ремеслом, чтобы хорошо им овладеть. И твой первый плагин "Чушь", это не причина, чтобы отказываться от продолжения обучения! 0 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Администратор Райан Posted April 29, 2021 Author Администратор Share Posted April 29, 2021 Если понадобится этот плагин, он включен в следующую сборку: 0 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Администратор Райан Posted July 11, 2022 Author Администратор Share Posted July 11, 2022 Плагин обновлен, скомпилирован на версии Sourcemod 1.11, я постарался устранить предупреждения связанные с: for( new i = 1; i <= MaxClients; i++) warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk. Полностью код теперь выглядит следующим образом: #include <sourcemod> #include <sdktools> #pragma semicolon 1 #define EXPLODE_PLUGIN_VERSION "0.1" #define SOUND_BOOM "ambient/explosions/explode_8.wav" public Plugin:myinfo = { name = "Explode", author = "chundo", description = "Explode a player", version = "0.1", url = "http://www.mefightclub.com/" }; new g_fire; new g_HaloSprite; new g_ExplosionSprite; new Handle:g_cvarExplodeMode = INVALID_HANDLE; new Handle:g_cvarExplodeRadius = INVALID_HANDLE; public OnPluginStart() { LoadTranslations("explode.phrases"); CreateConVar("sm_explode_version", EXPLODE_PLUGIN_VERSION, "Explode version.", FCVAR_NONE | FCVAR_NOTIFY); g_cvarExplodeMode = CreateConVar("sm_explode_mode", "0", "Sets who explosions will hurt. 0 = target only, 1 = team only, 2 = everyone", FCVAR_NONE); g_cvarExplodeRadius = CreateConVar("sm_explode_radius", "600", "Sets who explosions will hurt. 0 = target only, 1 = team only, 2 = everyone", FCVAR_NONE); RegAdminCmd("sm_explode", Command_Explode, ADMFLAG_SLAY, "Explode a player"); AutoExecConfig(false); } public OnMapStart() { g_fire = PrecacheModel("materials/sprites/fire2.vmt"); g_HaloSprite = PrecacheModel("materials/sprites/halo01.vmt"); g_ExplosionSprite = PrecacheModel("sprites/sprite_fire01.vmt"); PrecacheSound(SOUND_BOOM, true); } public Action:Command_Explode(client, args) { if (args < 1) { ReplyToCommand(client, "[SM] Usage: sm_explode <#userid|name>"); return Plugin_Handled; } decl String:arg[65]; GetCmdArg(1, arg, sizeof(arg)); decl String:target_name[MAX_TARGET_LENGTH]; decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml; if ((target_count = ProcessTargetString( arg, client, target_list, MAXPLAYERS, COMMAND_FILTER_ALIVE, target_name, sizeof(target_name), tn_is_ml)) <= 0) { ReplyToTargetError(client, target_count); return Plugin_Handled; } for (new i = 0; i < target_count; i++) { PerformExplode(client, target_list[i]); } ShowActivity2(client, "[SM] ", "%t %s", "Exploded", target_name); return Plugin_Handled; } public PerformExplode(client, target) { new mode = GetConVarInt(g_cvarExplodeMode); new radius = GetConVarInt(g_cvarExplodeRadius); LogAction(client, target, "\"%L\" slayed \"%L\"", client, target); decl Float:location[3]; GetClientAbsOrigin(target, location); new color[4] = { 188, 220, 255, 200 }; EmitAmbientSound(SOUND_BOOM, location, client, SNDLEVEL_RAIDSIREN); TE_SetupExplosion(location, g_ExplosionSprite, 10.0, 1, 0, radius, 5000); TE_SendToAll(); TE_SetupBeamRingPoint(location, 10.0, float(radius), g_fire, g_HaloSprite, 0, 10, 0.6, 10.0, 0.5, color, 10, 0); TE_SendToAll(); location[2] += 10; EmitAmbientSound(SOUND_BOOM, location, client, SNDLEVEL_RAIDSIREN); TE_SetupExplosion(location, g_ExplosionSprite, 10.0, 1, 0, radius, 5000); TE_SendToAll(); ForcePlayerSuicide(target); if (mode > 0) HurtOtherPlayers(target, radius, (mode == 1)); } public HurtOtherPlayers(target, radius, bool:teamonly) { new Float:vec[3]; GetClientAbsOrigin(target, vec); for( new i = 1; i <= MaxClients; i++) { if (!IsClientInGame(i) || !IsPlayerAlive(i) || target == i || (teamonly && GetClientTeam(i) != GetClientTeam(target))) continue; new Float:pos[3]; GetClientEyePosition(i, pos); new Float:distance = GetVectorDistance(vec, pos); if (distance > radius) continue; new damage = 220; damage = RoundToFloor(damage * (radius - distance) / radius); SlapPlayer(i, damage, false); TE_SetupExplosion(pos, g_ExplosionSprite, 0.05, 1, 0, 1, 1); TE_SendToAll(); } } Counter-strike Source 2022.07.11 - 13.07.31.14.DVR.mp4 explode.zip 0 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Администратор Райан Posted September 15, 2022 Author Администратор Share Posted September 15, 2022 Я обнаружил ошибку. Суть в том, если команду прописать на игрока, которого нет на сервере, или мы ошибемся в его нике, то в логи мы получим следующий текст: L 09/15/2022 - 20:12:22: [SM] Blaming: explode.smx L 09/15/2022 - 20:12:22: [SM] Call stack trace: L 09/15/2022 - 20:12:22: [SM] [0] ReplyToCommand L 09/15/2022 - 20:12:22: [SM] [1] Line 106, commandfilters::ReplyToTargetError L 09/15/2022 - 20:12:22: [SM] [2] Line 61, D:\sm111\addons\sourcemod\scripting\explode.sp::Command_Explode L 09/15/2022 - 20:12:38: [SM] Exception reported: Language phrase "No matching client" not found (arg 4) 1 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Администратор Райан Posted September 15, 2022 Author Администратор Share Posted September 15, 2022 40 минут назад, Райан сказал: L 09/15/2022 - 20:12:22: [SM] Blaming: explode.smx L 09/15/2022 - 20:12:22: [SM] Call stack trace: L 09/15/2022 - 20:12:22: [SM] [0] ReplyToCommand L 09/15/2022 - 20:12:22: [SM] [1] Line 106, commandfilters::ReplyToTargetError L 09/15/2022 - 20:12:22: [SM] [2] Line 61, D:\sm111\addons\sourcemod\scripting\explode.sp::Command_Explode L 09/15/2022 - 20:12:38: [SM] Exception reported: Language phrase "No matching client" not found (arg 4) Исправлено, добавлены отсутствующие строки перевода. explode.zip 1 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.