AMX MOD X
Пятница, 09.01.2026, 20:53:44



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

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

  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: slogic, AlMod  
Всем кто из /top5 дать H флажок
ahaДата: Воскресенье, 18.05.2008, 22:32:00 | Сообщение # 1
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Помогите сделать так чтобы при респавне у игроков кто из /top5 давался h флажок .
Мудрил тут чтото но не получал положительного результата ..

#include <amxmodx>
#include <fakemeta>
#include <csx>

public plugin_init()
{
register_plugin("def", "0.1", "def");
register_event("ResetHUD", "reset", "b")
}

public reset(id)
{
new stats[8]
new hits[8]
get_user_stats(id, stats, hits)

new name[33]
get_user_name(id, name, 32)

new flags = read_flags("h")
new flags2 = read_flags("z")

if(stats[0] =< 5)
{
set_user_flags(id,flags)
console_print(0,"TTT")
}
else
{
set_user_flags(id,flags2)
console_print(0,"ZZZ")
}
}

 
max_ripДата: Понедельник, 19.05.2008, 12:34:16 | Сообщение # 2
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
я думаю это надо делать не в амхх, а с базой работать. Сделать небольшой скриптик для мускуля и там уже мудрить.
 
slogicДата: Понедельник, 19.05.2008, 17:13:20 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Вообще лучше делать это при подключении игрока, в client_putinserver().

Выдать флаг нужно так: set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H)

 
ahaДата: Понедельник, 19.05.2008, 18:15:44 | Сообщение # 4
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Ок понятно , но как определить id на каком месте в /rank'e , если допустим он на 1,2 ли 3 месте то дать ему флаг H
 
DaTaДата: Понедельник, 19.05.2008, 20:50:06 | Сообщение # 5
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
наверно это тебе поможет csstats.inc:
Code
/* Gets overall stats which are stored in file on server
* and updated on every respawn or user disconnect.
* Function returns the position in stats by diff. kills to deaths. */
native get_user_stats(index,stats[8],bodyhits[8]);
 
ahaДата: Понедельник, 19.05.2008, 22:23:20 | Сообщение # 6
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Както у меня не получается всегда plugin дает H флажок, не зависимо от позицыи в /rank'e ... Прошу помощи те кто повыше.
 
slogicДата: Вторник, 20.05.2008, 15:18:34 | Сообщение # 7
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (aha)
Ок понятно , но как определить id на каком месте в /rank'e , если допустим он на 1,2 ли 3 месте то дать ему флаг H

Я думал с этим ты как раз разобрался, используя код
Code
if(stats[0] =< 5)

Судя по http://www.amxmodx.org/funcwiki.php?go=func&id=914 там вообще нет ранга.

А судя по statsx.sma

Code
iRankPos = get_user_stats(id, izStats, izBody)

эта функция и возхвращает ранг игрока, а массив stats вообще впустую используется :D
 
ahaДата: Вторник, 20.05.2008, 16:26:53 | Сообщение # 8
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Ну во как бы работает :

#include <amxmodx>
#include <csx>

public plugin_init()
{
register_plugin("def", "0.1", "def");
}

public client_putinserver(id)
{
new izStats[8], izBody[8]
new iRankPos

iRankPos = get_user_stats(id, izStats, izBody)

if(iRankPos & 1)
{
set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H)

console_print(0,"TTT")
}
else
{
set_user_flags(id, get_user_flags(id) | ADMIN_USER)

console_print(0,"ZZZ")
}
}

когда ты на 1 месте в ранке дается H флажок :]
а как например сделать чтобы флажок довался от 1 до 10 места в ранке ?

Хотя нет ... запарился с user.ini

Сообщение отредактировал aha - Вторник, 20.05.2008, 16:42:12
 
DaTaДата: Вторник, 20.05.2008, 17:42:23 | Сообщение # 9
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
че это за проверка первого бита?
Code
iRankPos = get_user_stats(id, izStats, izBody)

if(iRankPos & 1)

наверно нужно так
Code
if(iRankPos == 1)

а для

Quote (aha)
флажок довался от 1 до 10 места в ранке

Code
if(iRankPos && iRankPos <= 10)

или правильнее
Code
if(1 <= iRankPos <= 10)


Сообщение отредактировал DaTa - Вторник, 20.05.2008, 17:55:05
 
JokerДата: Вторник, 20.05.2008, 20:30:50 | Сообщение # 10
Генерал-майор
Группа: Пользователи
Сообщений: 375
Репутация: 5
Статус: Не в сети
А теперь полный код в студию! :D
Очень полезно заманивать игроков на сервер :)


One death is a Tragedy
One million is a Statistic...
 
ahaДата: Среда, 21.05.2008, 00:36:10 | Сообщение # 11
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
#include <amxmodx>
#include <fakemeta>
#include <csx>
#include <amxmisc>

#define HUD_INTERVAL 1.0

public plugin_init()
{
register_plugin("def", "0.1", "def");
}

public client_putinserver(id)
{
set_task(1.0, "get_flag_h", id)
}

public client_disconnect(id)
{
remove_task(id)
}

public get_flag_h(id)
{

if((get_user_flags(id) & ADMIN_KICK))
return PLUGIN_HANDLED

new izStats[8], izBody[8]
new iRankPos

iRankPos = get_user_stats(id, izStats, izBody)

if(iRankPos <= 10)
{
set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H)

set_task(HUD_INTERVAL, "ShowHUD", id)

}
else
{
// console_print(0,"Ne4ego nedajotsa tak kak on ne na 1 meste")
}

}

public ShowHUD(id)
{

set_hudmessage(50, 50, 50, -1.0, 0.0, 0, 6.0, 12.0, 0.1, 0.2, 3)
show_hudmessage(id, "Ti imeesh H flazok ..")

set_task(HUD_INTERVAL, "ShowHUD", id)

}

Сообщение отредактировал aha - Среда, 21.05.2008, 00:39:38
 
DaTaДата: Среда, 21.05.2008, 02:26:57 | Сообщение # 12
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Quote (aha)
if(iRankPos <= 10) {

если игрок не будет входить в топ, то get_user_stats будет возвращать 0, т.е. нужно делать дополнительную проверку
Code
if(iRankPos && iRankPos <= 10)
 
ahaДата: Четверг, 22.05.2008, 17:25:39 | Сообщение # 13
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Сделал cvar amx_topx "10" можно менять до какова места будет даватся флажок (вроде работает), в вот
как бы сделать такой вот cvar amx_flags "t" , чтобы я мог через серверную consol'ь менять флажок каторый будет даватся ?
 
JokerДата: Четверг, 22.05.2008, 17:32:04 | Сообщение # 14
Генерал-майор
Группа: Пользователи
Сообщений: 375
Репутация: 5
Статус: Не в сети
Можно сделать, что бы через квару ставить не один, а несколько флажков.

One death is a Tragedy
One million is a Statistic...
 
ahaДата: Четверг, 22.05.2008, 17:41:35 | Сообщение # 15
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Ну я почти это и имел ввиду :]
 
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

AMX Mod X Russian Community © 2006-2026