AMX MOD X
Пятница, 19.04.2024, 18:41:14



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Топ каждый раунд
Топ каждый раунд
000000Дата: Понедельник, 20.07.2009, 13:59:20 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 1
Статус: Не в сети
Привет. Хочу сделать плагин, который в конце раунда высвечивал тройку лучших игроков за этот раунд.
Например:
Code
3 лучших:
1 первый - (кол-во фрагов)
2 второй - 2
3 третий - 1

Но не могу додуматься как это все сделать...
Как я понял сначало делаем захват конца раунда

Code

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_logevent("logevent_round_end", 2, "1=Round_End")    
}
public logevent_round_end(id)
{    
    new name[32]    
    get_user_name(id,name,31)    
    new frags=get_user_frags(id)    
       

а дальше полный тупик.....
а да и еще, чето не пойму вывел принт, провереть, а он вместо имени показывает имя сервера а не имя игрока, и фрагов всегда показывает 0, хотя проверял с ботами может он эти фраги не считает

Сообщение отредактировал 000000 - Понедельник, 20.07.2009, 23:22:22
 
PAHANCSДата: Вторник, 21.07.2009, 22:31:12 | Сообщение # 2
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Quote (000000)
вместо имени показывает имя сервера а не имя игрока

Дело в том что, logevent_round_end глобальный случай,он происходит для всех,
тебе в этом случае нужно будет делать примерно так:

Code

public logevent_round_end(i) {
  for(i=1; i<=get_maxplayers(); i++) {
   if(is_user_connected(i)) {
    new name[32], frags
    get_user_name(i, name,31)     
    frags=get_user_frags(i)   
    client_print(i, print_chat, "%s your frags is %i",name,frags)
   }
  }
}



PAHANCS
 
000000Дата: Вторник, 21.07.2009, 23:09:22 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 1
Статус: Не в сети
спб, работает)
А какая сделать чтоб он показывал сообщение не сколько всего фрагов, а сколько набранно именно в этом раунде?
 
PAHANCSДата: Среда, 22.07.2009, 18:23:48 | Сообщение # 4
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Quote (000000)
А какая сделать чтоб он показывал сообщение не сколько всего фрагов, а сколько набранно именно в этом раунде?

Вот код:

Code


#include amxmodx

new FragsId[33]
new bool:Restart = false

public plugin_init() {
  register_plugin("Show Frags", "1.0", "000000")
  register_event("DeathMsg","event_deathmsg","a")
  register_logevent("logevent_round_end", 2, "1=Round_End")
  register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
  register_event("TextMsg", "restart_in_console", "a", "2=#Game_will_restart_in_console")
}

public event_deathmsg(id) {
  id = read_data(2)
  if(is_user_connected(id)) {
   static name[32], frags
   get_user_name(id, name,31)
   if(get_user_frags(id) > FragsId[id])  
    frags = get_user_frags(id) - FragsId[id]
   else  
    frags = 0
   client_print(id, print_chat, "%s your frags in this round is %i",name,frags)
  }
}

public logevent_round_end(i) {
  for(i=1; i<=get_maxplayers(); i++) {
   if(is_user_alive(i)) {
    static name[32], frags
    get_user_name(i, name,31)
    if(get_user_frags(i) > FragsId[i])  
     frags = get_user_frags(i) - FragsId[i]
    else  
     frags = 0
    client_print(i, print_chat, "%s your frags in this round is %i",name,frags)
   }
  }
}

public event_round_start(i) {
  for(i=1; i<=get_maxplayers(); i++) {
   if(is_user_alive(i)) {
    if(Restart)  
     FragsId[i] = 0
    else
     FragsId[i] = get_user_frags(i)
   }
  }
  Restart = false
}

public restart_in_console(i) {
  Restart = true
  for(i=1; i<=get_maxplayers(); i++) {
   if(is_user_alive(i)) {
    static name[32], frags
    get_user_name(i, name,31)
    if(get_user_frags(i) > FragsId[i])  
     frags = get_user_frags(i) - FragsId[i]
    else  
     frags = 0
    client_print(i, print_chat, "%s your frags in this round is %i",name,frags)
   }
  }
}

Вот sma файл:

Прикрепления: ShowFrags.sma (1.6 Kb)


PAHANCS
 
000000Дата: Среда, 22.07.2009, 18:37:18 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 15
Репутация: 1
Статус: Не в сети
спс огромное :)
Не думал что так запутанно будет)
Дальше попробую сам доделать))
Спасибо еще раз)
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Топ каждый раунд
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024