Русское сообщество по скриптингу

spawnprotection / Нужна попомщь  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

spawnprotection / Нужна попомщь

Сообщение DeIIyTaT » 02 янв 2019, 19:38

Есть плагин spawnprotection , как бы сделать так когда воскрешаешься через админку то защита бы не работала, или во время защиты сам не можешь не кого убить ! или сделать проверку на начала раунда чтобы защита работала только если новый раунд !
Ото админы по серидине раунда воскрешаются и их некто не может убить 10 секунд . как бы исправить данную проблему ! Спасибо за понимание !
Код: Выделить всё
//----------------------------------------------------------//
#include <amxmodx>
#include <amxmisc>
#include <fun>
//----------------------------------------------------------//
public plugin_init()
{
   register_plugin("Spawn Protection", "7.0", "Peli") // Plugin Information
   register_concmd("amx_sptime", "cmd_sptime", ADMIN_CVAR, "1 through 10 to set Spawn Protection time") // Concmd (Console Command) for the CVAR time
   register_concmd("amx_spmessage", "cmd_spmessage", ADMIN_CVAR, "1 = Turn Spawn Protection Message on , 0 = Turn Spawn Protection message off") // Concmd for the CVAR message
   register_concmd("amx_spshellthickness", "cmd_spshellthickness", ADMIN_CVAR, "1 through 100 to set Glow Shellthickness") // Concmd for the shellthickness
   register_cvar("sv_sp", "1") // Cvar (Command Variable) for the plugin on/off
   register_cvar("sv_sptime", "10") // Cvar for controlling the message time (1-10 seconds)
   register_cvar("sv_spmessage", "1") // Cvar for controlling the message on/off
   register_cvar("sv_spshellthick", "100") // Cvar for controlling the glow shell thickness
   register_event("ResetHUD", "sp_on", "be")
   register_clcmd("fullupdate", "clcmd_fullupdate")
}
//----------------------------------------------------------//
public client_disconnect(id)
{
   remove_task(id)
   return PLUGIN_HANDLED
}
//----------------------------------------------------------//
public cmd_sptime(id, level, cid) // This is the function for the cvar time control
{
   if(!cmd_access(id, level, cid, 2))
   return PLUGIN_HANDLED

   new arg_str
[3]
   read_argv(1, arg_str, 3)
   new arg = str_to_num(arg_str)

   if(arg > 10 || arg < 1)
   {
      client_print(id, print_chat, "Установите время защиты на респе от 1 до 10 секунд!")
      return PLUGIN_HANDLED
   
}

   else if (arg > 0 || arg < 11)
   {
      set_cvar_num("sv_sptime", arg)
      client_print(id, print_chat, "Вы установили время защиты на респе %d секунд(ы).", arg)
      return PLUGIN_HANDLED
   
}
   return PLUGIN_CONTINUE
}
//----------------------------------------------------------//
public cmd_spmessage(id, level, cid) // This is the function for the cvar message control
{
   if (!cmd_access(id, level, cid, 2))
   {
      return PLUGIN_HANDLED
   
}

   new sp[3]
   read_argv(1, sp, 2)

   if (sp[0] == '1')
   {
      set_cvar_num("amx_spmessage", 1)
   }

   else if (sp[0] == '0')
   {
      set_cvar_num("amx_spmessage", 0)
   }

   else if (sp[0] != '1' || sp[0] != '0')
   {
      console_print(id, "Usage : amx_spmessage 1 = Включить | 0 = Выключить")
      return PLUGIN_HANDLED
   
}

   return PLUGIN_HANDLED
}
//----------------------------------------------------------//
public cmd_spshellthickness(id, level, cid)
{
   if(!cmd_access(id, level, cid, 2))
   return PLUGIN_HANDLED

   new arg_str
[3]
   read_argv(1, arg_str, 3)
   new arg = str_to_num(arg_str)

   if(arg > 100 || arg < 1)
   {
      client_print(id, print_chat, "Установите толщину и силу свечения во время защиты (от 1 до 100)")
      return PLUGIN_HANDLED
   
}

   else if (arg > 0 || arg < 101)
   {
      set_cvar_num("sv_spshellthickness", arg)
      client_print(id, print_chat, "Вы установили толщину и силу свечения на %d пункта(ов)", arg)
      return PLUGIN_HANDLED
   
}
   return PLUGIN_CONTINUE
}
//----------------------------------------------------------//
public sp_on(id) // This is the function for the event godmode
{
   if(get_cvar_num("sv_sp") == 1)
   {
      set_task(0.1, "protect", id)
   }

   return PLUGIN_CONTINUE
}
//----------------------------------------------------------//
public protect(id) // This is the function for the task_on godmode
{
   new Float:SPTime = get_cvar_float("sv_sptime")
   new SPSecs = get_cvar_num("sv_sptime")
   new FTime = get_cvar_num("mp_freezetime")
   new SPShell = get_cvar_num("sv_spshellthick")
   set_user_godmode(id, 1)

   if(get_user_team(id) == 1)
   {
      set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, SPShell)
   }

   if(get_user_team(id) == 2)
   {
      set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, SPShell)
   }

   if(get_cvar_num("sv_spmessage") == 1)
   {
      set_hudmessage(255, 1, 1, -1.0, -1.0, 0, 6.0, SPTime+FTime, 0.1, 0.2, 4)
      show_hudmessage(id, "Защита на респе включена на %d секунд(ы)", SPSecs)
   }

   set_task(SPTime+FTime, "sp_off", id)
   return PLUGIN_HANDLED
}
//----------------------------------------------------------//
public sp_off(id) // This is the function for the task_off godmode
{
   new SPShell = get_cvar_num("sv_spshellthick")
   if(!is_user_connected(id))
   {
      return PLUGIN_HANDLED
   
}

   else
   
{
      set_user_godmode(id, 0)
      set_user_rendering(id, kRenderFxGlowShell, 0, 0,0, kRenderNormal, SPShell)
      return PLUGIN_HANDLED
   
}

   return PLUGIN_HANDLED
}
//----------------------------------------------------------//
public clcmd_fullupdate(id)
{
   return PLUGIN_HANDLED
}
//----------------------------------------------------------//
 
Мой проект CSSURF.RU | SURF Сервера с RPG
amx-x.ru - Вы красавчики спасибо что вы есть ! :thumbs_up
Аватара пользователя
DeIIyTaT
 
Сообщения: 66
Зарегистрирован: 29 авг 2014, 13:53
Благодарил (а): 13 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
html,php

Re: spawnprotection / Нужна попомщь  [Решено]

Сообщение DeIIyTaT » 03 янв 2019, 00:32

вот сам сделал !
Код: Выделить всё
//----------------------------------------------------------//
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
//----------------------------------------------------------//
public plugin_init()
{
   
register_plugin("Spawn Protection""8.0""CSSURF.RU"// Plugin Information
   
register_concmd("amx_sptime""cmd_sptime"ADMIN_CFG "1 through 10 to set Spawn Protection time"// Concmd (Console Command) for the CVAR time
   
register_concmd("amx_spmessage""cmd_spmessage"ADMIN_CFG "1 = Turn Spawn Protection Message on , 0 = Turn Spawn Protection message off"// Concmd for the CVAR message
   
register_concmd("amx_spshellthickness""cmd_spshellthickness"ADMIN_CFG "1 through 100 to set Glow Shellthickness"// Concmd for the shellthickness
   
register_cvar("sv_sp""1"// Cvar (Command Variable) for the plugin on/off
   
register_cvar("sv_sptime""10"// Cvar for controlling the message time (1-10 seconds)
   
register_cvar("sv_spmessage""1"// Cvar for controlling the message on/off
   
register_cvar("sv_spshellthick""80"// Cvar for controlling the glow shell thickness
   
register_event("ResetHUD""sp_on""be")
   
register_clcmd("fullupdate""clcmd_fullupdate")
   
RegisterHam(Ham_TakeDamage"player""player_TakeDamage"0)
}
//----------------------------------------------------------//
public client_disconnect(id)
{
   
remove_task(id)
   return 
PLUGIN_HANDLED
}
//----------------------------------------------------------//
public player_TakeDamage(victiminflictorattackerFloat:damagedamagetype)

{
        if(
get_user_godmode(attacker))
        {
                
SetHamParamFloat(40);
        }
}
//----------------------------------------------------------//
public cmd_sptime(idlevelcid// This is the function for the cvar time control
{
   if(!
cmd_access(idlevelcid2))
   return 
PLUGIN_HANDLED

   
new arg_str[3]
   
read_argv(1arg_str3)
   new 
arg str_to_num(arg_str)

   if(
arg 10 || arg 1)
   {
      
client_print(idprint_chat"Установите время защиты на респе от 1 до 10 секунд!")
      return 
PLUGIN_HANDLED
   
}

   else if (
arg || arg 11)
   {
      
set_cvar_num("sv_sptime"arg)
      
client_print(idprint_chat"Вы установили время защиты на респе %d секунд(ы)."arg)
      return 
PLUGIN_HANDLED
   
}
   return 
PLUGIN_CONTINUE
}
//----------------------------------------------------------//
public cmd_spmessage(idlevelcid// This is the function for the cvar message control
{
   if (!
cmd_access(idlevelcid2))
   {
      return 
PLUGIN_HANDLED
   
}

   new 
sp[3]
   
read_argv(1sp2)

   if (
sp[0] == '1')
   {
      
set_cvar_num("amx_spmessage"1)
   }

   else if (
sp[0] == '0')
   {
      
set_cvar_num("amx_spmessage"0)
   }

   else if (
sp[0] != '1' || sp[0] != '0')
   {
      
console_print(id"Usage : amx_spmessage 1 = Включить | 0 = Выключить")
      return 
PLUGIN_HANDLED
   
}

   return 
PLUGIN_HANDLED
}
//----------------------------------------------------------//
public cmd_spshellthickness(idlevelcid)
{
   if(!
cmd_access(idlevelcid2))
   return 
PLUGIN_HANDLED

   
new arg_str[3]
   
read_argv(1arg_str3)
   new 
arg str_to_num(arg_str)

   if(
arg 100 || arg 1)
   {
      
client_print(idprint_chat"Установите толщину и силу свечения во время защиты (от 1 до 100)")
      return 
PLUGIN_HANDLED
   
}

   else if (
arg || arg 101)
   {
      
set_cvar_num("sv_spshellthickness"arg)
      
client_print(idprint_chat"Вы установили толщину и силу свечения на %d пункта(ов)"arg)
      return 
PLUGIN_HANDLED
   
}
   return 
PLUGIN_CONTINUE
}
//----------------------------------------------------------//
public sp_on(id// This is the function for the event godmode
{
   if(
get_cvar_num("sv_sp") == 1)
   {
      
set_task(0.1"protect"id)
   }

   return 
PLUGIN_CONTINUE
}
//----------------------------------------------------------//
public protect(id// This is the function for the task_on godmode
{
   new 
Float:SPTime get_cvar_float("sv_sptime")
   new 
SPSecs get_cvar_num("sv_sptime")
   new 
FTime get_cvar_num("mp_freezetime")
   new 
SPShell get_cvar_num("sv_spshellthick")
   
set_user_godmode(id1)

   if(
get_user_team(id) == 1)
   {
      
set_user_rendering(idkRenderFxGlowShell25500kRenderNormalSPShell)
   }

   if(
get_user_team(id) == 2)
   {
      
set_user_rendering(idkRenderFxGlowShell00255kRenderNormalSPShell)
   }

   if(
get_cvar_num("sv_spmessage") == 1)
   {
      
set_hudmessage(25511, -1.0, -1.006.0SPTime+FTime0.10.24)
      
show_hudmessage(id"Защита от урона включена на %d секунд^nВы не можете нанести урон 10 секунд"SPSecs)
   }

   
set_task(SPTime+FTime"sp_off"id)
   return 
PLUGIN_HANDLED
}
//----------------------------------------------------------//
public sp_off(id// This is the function for the task_off godmode
{
   new 
SPShell get_cvar_num("sv_spshellthick")
   if(!
is_user_connected(id))
   {
      return 
PLUGIN_HANDLED
   
}

   else
   {
      
set_user_godmode(id0)
      
set_user_rendering(idkRenderFxGlowShell00,0kRenderNormalSPShell)
      return 
PLUGIN_HANDLED
   
}

   return 
PLUGIN_HANDLED
}
//----------------------------------------------------------//
public clcmd_fullupdate(id)
{
   return 
PLUGIN_HANDLED
}
//----------------------------------------------------------//
 
Мой проект CSSURF.RU | SURF Сервера с RPG
amx-x.ru - Вы красавчики спасибо что вы есть ! :thumbs_up
Аватара пользователя
DeIIyTaT
 
Сообщения: 66
Зарегистрирован: 29 авг 2014, 13:53
Благодарил (а): 13 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
html,php


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15