Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » AMX Скриптинг CS 1.6 (вопрос | ответ) » Nice Killer (хочу сделать награду)
Nice Killer
Almaz
Дата: Четверг, 11.07.2013, 18:20 | Сообщение # 1
офлайн

  • Сообщения: 6
  • Награды: 0
  • Замечания:
 
Доброго всем времени суток!
Лучшему игроку раунда, хочу сделать награду.
Обращаюсь опять к вам , т.к не справляюсь.

Примеру вознаградить некой суммой денег.

Код
cs_set_user_money(id, cs_get_user_money(id) - 4000)


Код
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>

enum _:score
{
       frags,
       Float:dmg,
       hs
}

new niceP[33]

[score]new hudsync

public plugin_init()
{
       register_plugin( "aga", "1.0", "Got Milk?")

       RegisterHam(Ham_TakeDamage, "player", "hook_TakeDamage")
       register_event("DeathMsg", "Event_DeathMessage", "a")
       register_logevent("event_round_end", 2, "1=Round_End")
       register_event("HLTV", "event_round_start", "a", "1=0", "2=0");

       hudsync = CreateHudSyncObj()
}

public event_round_end ()
{
       new Players[32], num, tmpf, Float:tmpd, tmpid
       get_players( Players, num )

       for( new i; i < 32; i++)
       {
          if ( niceP [i][frags]> tmpf )
          {
             tmpid = i
             tmpf = niceP
             [frags]tmpd = niceP
          [dmg]}
          else if ( niceP [frags]== tmpf && niceP [dmg]> tmpd)
          {
             tmpid = i
             tmpf = niceP
             [frags]tmpd = niceP
          [dmg]}
       }

       if ( tmpf > 0 )
       {
          new name[32], msg[1024];
          get_user_name(tmpid, name, 31);

          format( msg, charsmax(msg), "Лучшим стрелком этого раунда     
оказался^n!!! %s !!!^nСделав %d фрага(ов) и %d урона", name, tmpf,     
floatround(tmpd, floatround_round) )

          set_hudmessage(255, 0, 0, -1.0, 0.17, 0, 5.0)
          ShowSyncHudMsg(0, hudsync, msg)
       }
}

public hook_TakeDamage(Victim, inflictor, Attacker, Float:damage, damagebits)
{
       if( inflictor == Attacker )
          niceP [Attacker][dmg]+= damage
       else
       {
          static classname[32]
          pev (inflictor, pev_classname, classname, 31)
          if( equal (classname, "grenade") )
             niceP [Attacker][dmg]+= damage
       }

       if ( get_pdata_int(Victim, 75, 5) == HIT_HEAD )
          niceP[Attacker][hs]++

       return HAM_IGNORED
}

public Event_DeathMessage()
       niceP[read_data(1)][frags]++

public event_round_start ( )     
       for (new i; i < 32; i++)
          for ( new j; j < 3; j++)
             niceP [j]= 0

public client_disconnect(id)
       for ( new j; j < 3; j++)
          niceP [id]= 0[/j][/i]


Сообщение отредактировал Almaz - Четверг, 11.07.2013, 18:24
 
KILLER7x7
Дата: Пятница, 12.07.2013, 04:39 | Сообщение # 2
офлайн

  • Сообщения: 94
  • Награды: 4
  • Замечания:
 
Almaz, если я правильно понял то вот!!!

За комментарии не судите!
//Подключаем Модуль CStrike для функции cs_set_user_money (выдача $)
Код
#include <cstrike>
 
// делаем переменную (для удобства)
 
Код
register_cvar("money_bonus", "4000")

//Вот награда у виде $     
Код
cs_set_user_money(tmpid, max(0, cs_get_user_money(tmpid) + get_cvar_num("money_bonus")))
 
 //Добавляем количество бонусов лучшему (чтоб остальные видели, так называемый стимул)

Код
format( msg, charsmax(msg), "Лучшим стрелком этого раунда оказался^n!!! %s !!!format( msg, charsmax(msg),  
"Лучшим стрелком этого раунда оказался^n!!! %s !!!
^nСделав %d фрага(ов) и %d урона!!!^n и получает %d $ бонуса!!!", name, tmpf,
   floatround(tmpd, floatround_round), get_cvar_num("money_bonus") )

Прикрепления: nice_killer.sma(2.5 Kb)


killer7x7_ua





Сообщение отредактировал KILLER7x7 - Пятница, 12.07.2013, 04:55
 
Almaz
Дата: Вторник, 30.07.2013, 09:05 | Сообщение # 3
офлайн

  • Сообщения: 6
  • Награды: 0
  • Замечания:
 
KILLER7x7,  Спасибо большое! smile

Добавлено (30.07.2013, 09:05)
---------------------------------------------
Ошибки в логах , порой сервер слетает.
KILLER7x7

Код
L 07/30/2013 - 08:41:06:  [AMXX]Displaying debug trace (plugin "nice_killer.amxx")
L 07/30/2013 - 08:41:06:  [AMXX]Run time error 4: index out of bounds  
L 07/30/2013 - 08:41:06:     [AMXX][0] nice_killer.sma::hook_TakeDamage (line 67)
L 07/30/2013 - 08:42:36:  [CSTRIKE]Player out of range (0)
L 07/30/2013 - 08:42:36:  [AMXX]Displaying debug trace (plugin "nice_killer.amxx")
L 07/30/2013 - 08:42:36:  [AMXX]Run time error 10: native error (native "cs_get_user_money")
L 07/30/2013 - 08:42:36:     [AMXX][0] nice_killer.sma::event_round_end (line 57)
 
KILLER7x7
Дата: Вторник, 30.07.2013, 20:33 | Сообщение # 4
офлайн

  • Сообщения: 94
  • Награды: 4
  • Замечания:
 
Almaz, попробуй поднять в списке плагинов повыше.

killer7x7_ua



 
493284988936
Дата: Среда, 31.07.2013, 18:18 | Сообщение # 5
офлайн

  • Сообщения: 73
  • Награды: 2
  • Замечания:
 
Написано же где ошибки
 L 07/30/2013 - 08:41:06:     [AMXX][0] nice_killer.sma::hook_TakeDamage (line 67) Строка 67
 L 07/30/2013 - 08:42:36:     [AMXX][0] nice_killer.sma::event_round_end (line 57)Строка 57


Сёрф сборка http://perfect-soft.su/forum/14-1998-1
Skype: swimup-pro
 
Almaz
Дата: Воскресенье, 04.08.2013, 12:09 | Сообщение # 6
офлайн

  • Сообщения: 6
  • Награды: 0
  • Замечания:
 
493284988936, не помогло

Добавлено (01.08.2013, 18:10)
---------------------------------------------
KILLER7x7, ответ тебе точнее , не помогло.

Добавлено (04.08.2013, 12:09)
---------------------------------------------
KILLER7x7, Спасибо за помощь по скайпу , выручил!

 
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » AMX Скриптинг CS 1.6 (вопрос | ответ) » Nice Killer (хочу сделать награду)
  • Страница 1 из 1
  • 1
Поиск: