AMX MOD X
Пятница, 19.04.2024, 09:30:34



Приветствую Вас Гость | RSS
[ Главная ] [ Give user health - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Give user health
Give user health
defaultNick8433Дата: Среда, 10.06.2009, 00:05:37 | Сообщение # 1
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Написал сплагин,который делает:когда у игрока 30 хп,у игрока начинает биться сердце,ему вызывается меню с вопросом,восстановить здоровье или нет,хочу чтобы вы проверили правильность написание,и будет работать этот плагин или нет
Code
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "Give HP Player,if you health=30"
#define AUTHOR "defaultnick"
#define VERSION "1.0"

new message[256]
new give_money
new menu
new const g_heart[]="sound/heart.wav"

public plugin_precache()
{
   precache_sound(g_heart)
}
public plugin_init()
{
   register_plugin(PLUGIN,AUTHOR,VERSION)
   give_money=register_cvar("give_moneys","4000")
   menu=menu_create("\rBbI }I{eJIauTe BOCTAHOBuTb 3goPoBbe 3a 4000$?","func_menu")
   menu_additem(menu,"\yga")
   menu_additem(menu,"\gHET")
}
public give_player_hp(id)
{
   new hp=get_user_health(id)
   if(hp<=30)
   client_cmd(id,g_heart)
   menu_display(id,menu)
   return PLUGIN_CONTINUE
}
public func_menu(id,menu,key)
{
   key++
   if(key==1)
   {
   new money=cs_get_user_money(id)
           new cost=get_pcvar_num(give_money)
   if(money<cost)
   return PLUGIN_HANDLED
   formatex(message,255,"^x04Y Bac HegoCTaTo4HO cpegCTB gJI9I BOCCTAHOBJIEHu9I HP!",id)
   cs_get_user_money(id)-get_pcvar_num(give_money)
   set_user_health(id,100)
           }
   if(key==2)
   {
   menu_cancel(id)
           }  
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Среда, 10.06.2009, 00:06:39
 
VladimirokДата: Среда, 10.06.2009, 02:30:27 | Сообщение # 2
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
А что самому протестировать невозможно?

Нашол несколько ошибок, которые указывают на недостаточное знание языка и команд на стороне клиента :)

client_cmd(id,g_heart) - вот здесь мы вообще что делаем?). Хотим проиграть звук на стороне клиента. Должно быть так: client_cmd(id, "spk %s", g_heart)

Вот здесь:

Code
public func_menu(id,menu,key)   
{   
     key++   
     if(key==1)   
     {   
     new money=cs_get_user_money(id)   
             new cost=get_pcvar_num(give_money)   
     if(money<cost)   
     return PLUGIN_HANDLED   
     formatex(message,255,"^x04Y Bac HegoCTaTo4HO cpegCTB gJI9I BOCCTAHOBJIEHu9I HP!",id)   
     cs_get_user_money(id)-get_pcvar_num(give_money)   
     set_user_health(id,100)   
             }   
     if(key==2)   
     {   
     m enu_cancel(id)   
             }    
}

Здесь будет происходить следующее:

Когда клиент выберет первый пункт меню, то если у него недостаточно денег на востоновление то ничего не произойдет (даже ничего не напишеться).

Должно быть вот так:

Code
public func_menu(id,menu,key)   
{   
     key++   
     if(key==1)   
     {   
        new money=cs_get_user_money(id)   
        new cost=get_pcvar_num(give_money)   
        if(money<cost)
        {
           formatex(message,255,"^x04Y Bac HegoCTaTo4HO cpegCTB gJI9I BOCCTAHOBJIEHu9I HP!",id)   
           return PLUGIN_HANDLED
        }
           else
        {
           cs_get_user_money(id)-get_pcvar_num(give_money)   
           set_user_health(i d,100)
        }
     }   
     if(key==2)   
     {   
        menu_cancel(id)   
     }
}

И я не уверен что это будет работать именно в тот момент когда у игрока отнимаються(добавляються) жизни public give_player_hp(id).

Вообще нада использовать register_event("DamageMsg", "PlayerHit", "a")

Сообщение отредактировал Vladimirok - Среда, 10.06.2009, 02:31:08
 
defaultNick8433Дата: Среда, 10.06.2009, 07:44:29 | Сообщение # 3
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Quote
client_cmd(id, "spk %s", g_heart)
%)
Вот это я опозорился
Да я знаю как пишется,просто я ночью плагин писал,башка не работала


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Give user health
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024