Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » Плагины (вопрос | ответ) » Как сделать чтобы определенная функция выключилась через...
Как сделать чтобы определенная функция выключилась через...
runetov
Дата: Понедельник, 20.08.2012, 12:19 | Сообщение # 1
офлайн

  • Сообщения: 283
  • Награды: 8
  • Замечания:
 
Как сделать чтобы я купил бессмертие и он выключился через 10 сек.
Или Я купил невидимость и он выключился через 15 сек.


Code
#include <amxmodx>   
#include <fun>   
#include <cstrike>   
#include <engine>   
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>
#include <colorchat>
//#include <dhudmessage>
#pragma tabsize 0

new timer;

public plugin_init()   
{
   register_clcmd("menu","menus");
   register_clcmd("say /menu","menus");   
   register_clcmd("say_team /menu", "menus");
   register_plugin("menu", "1.0", "***volf***")
     
   //Цены на предметы
   register_cvar("shop_7_cost", "10000")
   register_cvar("shop_3_cost", "11000")
   register_cvar("shop_4_cost", "12000")
   register_cvar("shop_2_cost", "2500")
   register_cvar("shop_1_cost", "5000")
   register_cvar("shop_9_cost", "10000")
   register_cvar("shop_11_cost", "3000")
   register_cvar("shop_6_cost", "4000")
   register_cvar("shop_10_cost", "16000")
   register_cvar("shop_5_cost", "8000")
   register_cvar("shop_12_cost", "5000")
   register_cvar("shop_8_cost", "10000")
}

public Spawn_player(id)
{
   if(is_user_alive(id) && is_user_connected(id))
   {
    set_user_godmode(id, 0)
   }
}

public menus(id)
{     
     new msg[222]
       
     new name[32]
     get_user_name(id, name, 31)
     new money = cs_get_user_money(id)
       
       
     formatex(msg, charsmax(msg), "\yПродвинутый Магазин^n\dby ***volf***\w^n\wПривет: \r%s\w|\r$ %d^n\dСтраница:", name, money)
     new menu = menu_create(msg,"menus_handler")   
       
       
       
       
     if(cs_get_user_money(id)< get_cvar_num("shop_3_cost"))
     formatex(msg, charsmax(msg), "\d[Купить] Бессмертие \r%d \y$", get_cvar_num("shop_3_cost"))
     else
     formatex(msg, charsmax(msg), "\r[\wКупить\r] \wБессмертие \r%d \y$", get_cvar_num("shop_3_cost"))
     menu_additem(menu, msg, "3")
       
     if(cs_get_user_money(id)< get_cvar_num("shop_4_cost"))
     formatex(msg, charsmax(msg), "\d[Купить] Невидимость \r%d \y$",get_cvar_num("shop_4_cost"))
     else
     formatex(msg, charsmax(msg), "\r[\wКупить\r] \wНевидимость \r%d \y$",get_cvar_num("shop_4_cost"))
     menu_additem(menu, msg, "4")
       
       
       
     get_cvar_num("shop_12_cost"))
     menu_additem(menu, msg, "12")
       
       
       
       
     menu_setprop(menu, MPROP_NEXTNAME, "Дальше")
     menu_setprop(menu, MPROP_BACKNAME, "Назад")
     menu_setprop(menu, MPROP_EXITNAME, "Выход")
     menu_display(id,menu, 0)
       
}

public menus_handler( id, menu, item )   
{   
      if( item == MENU_EXIT )   
      {   
          menu_destroy( menu );   
          return PLUGIN_HANDLED;   
      }   
      new data[6], iName[64];   
      new access, callback;   
         
      menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );   
      new key = str_to_num( data );   
      switch( key )   
      {   
      
    case 3:   
          {   
     if(cs_get_user_money(id)< get_cvar_num("shop_3_cost"))
     {
      client_print(id,print_center, "У тебя мало денег!")
     }
     else
     {
      cs_set_user_money(id,cs_get_user_money(id) - get_cvar_num("shop_3_cost"))
        
      [color=red]set_user_godmode(id,1)
      timer = 20;
      set_task(1.0,"godmodes",0,_,_,"b")
      [/color]
      ColorChat(id, NORMAL, "^4[Knife Shop] ^3Ты купил Бессмертие")                    
     }
    }
    case 4:
    {
     if(cs_get_user_money(id)< get_cvar_num("shop_4_cost"))
     {
      client_print(id,print_center, "У тебя мало денег!")
     }
     else
     {
      cs_set_user_money(id,cs_get_user_money(id) - get_cvar_num("shop_4_cost"))
        
        
      [color=red]set_user_rendering(id,kRenderFxNone, 0,0,0, kRenderTransAdd,3);
      timer = 40;
      set_task(1.0,"invis",0,_,_,"b")[/color]
        
      ColorChat(id, NORMAL, "^4[Knife Shop] ^3Ты купил Невидимость")
     }   

    }
   }
     
   return PLUGIN_HANDLED
}

[color=red]public godmodes(id)
{
   client_print(id, print_center, "Бессмертие исчезнет через %d секунд", timer)

   if(timer <= 0){
   remove_task(id)
   set_user_godmode(id,0)
   }
   timer--
}

public invis(id)
{
   client_print(id, print_center, "Невидимость исчезнет через %d секунд", timer)

   if(timer <= 0){
   remove_task(id)
   set_user_rendering(id,kRenderFxNone,500,500,500, kRenderNormal,16);
   }
   timer--
}[/color]

stock print_col_chat(const id, const input[], any:...)   
{   
      new count = 1, players[32];   
      static msg[191];   
      vformat(msg, 190, input, 3);   
      replace_all(msg, 190, "!g", "^4"); // Green Color   
      replace_all(msg, 190, "!y", "^1"); // Default Color
      replace_all(msg, 190, "!t", "^3"); // Team Color   
      if (id) players[0] = id; else get_players(players, count, "ch");   
      {   
          for ( new i = 0; i < count; i++ )   
          {   
              if ( is_user_connected(players[i]) )   
              {   
                  message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]);   
                  write_byte(players[i]);   
                  write_string(msg);   
                  message_end();   
              }   
          }   
      }   
}

Добавлено (20.08.2012, 12:19)
---------------------------------------------
runetov, Все разобрался можно удалять тему!




Сообщение отредактировал runetov - Понедельник, 20.08.2012, 11:02
 
493284988936
Дата: Понедельник, 07.01.2013, 19:11 | Сообщение # 2
офлайн

  • Сообщения: 73
  • Награды: 2
  • Замечания:
 
Говно-код какой-то у тебя.
Даёшь бессмертие.
Ставишь set_task на 10
и в тело функции оффайешь.
Знаю объяснил плохо вообщим смотри что-то вроде этого.
case 3:
{
if(cs_get_user_money(id)< get_cvar_num("shop_3_cost"))
{
client_print(id,print_center, "У тебя мало денег!")
}
else
{
cs_set_user_money(id,cs_get_user_money(id) - get_cvar_num("shop_3_cost"))

set_user_godmode(id,1)
ColorChat(id, NORMAL, "^4[Knife Shop] ^3Ты купил Бессмертие")
set_task(9.0,"off_god",id)
}
}
public off_god(id){
set_user_godmode(id,0)
}
Как-то так
И я повторюсь говно-код меняй то-что ты сделал можно уложить в код 2 раза меньше!


Сёрф сборка http://perfect-soft.su/forum/14-1998-1
Skype: swimup-pro
 
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » Плагины (вопрос | ответ) » Как сделать чтобы определенная функция выключилась через...
  • Страница 1 из 1
  • 1
Поиск: