|
Всем кто из /top5 дать H флажок
|
|
| aha | Дата: Воскресенье, 18.05.2008, 22:32:00 | Сообщение # 1 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 370
Статус: Не в сети
| Помогите сделать так чтобы при респавне у игроков кто из /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
Статус: Не в сети
| я думаю это надо делать не в амхх, а с базой работать. Сделать небольшой скриптик для мускуля и там уже мудрить.
|
| |
|
|
| slogic | Дата: Понедельник, 19.05.2008, 17:13:20 | Сообщение # 3 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Вообще лучше делать это при подключении игрока, в client_putinserver(). Выдать флаг нужно так: set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H)
|
| |
|
|
| aha | Дата: Понедельник, 19.05.2008, 18:15:44 | Сообщение # 4 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 370
Статус: Не в сети
| Ок понятно , но как определить id на каком месте в /rank'e , если допустим он на 1,2 ли 3 месте то дать ему флаг H
|
| |
|
|
| DaTa | Дата: Понедельник, 19.05.2008, 20:50:06 | Сообщение # 5 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| наверно это тебе поможет 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
Статус: Не в сети
| Както у меня не получается всегда plugin дает H флажок, не зависимо от позицыи в /rank'e ... Прошу помощи те кто повыше.
|
| |
|
|
| slogic | Дата: Вторник, 20.05.2008, 15:18:34 | Сообщение # 7 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (aha) Ок понятно , но как определить id на каком месте в /rank'e , если допустим он на 1,2 ли 3 месте то дать ему флаг H Я думал с этим ты как раз разобрался, используя код Судя по http://www.amxmodx.org/funcwiki.php?go=func&id=914 там вообще нет ранга. А судя по statsx.sma Code iRankPos = get_user_stats(id, izStats, izBody) эта функция и возхвращает ранг игрока, а массив stats вообще впустую используется
|
| |
|
|
| aha | Дата: Вторник, 20.05.2008, 16:26:53 | Сообщение # 8 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 370
Статус: Не в сети
| Ну во как бы работает : #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
Статус: Не в сети
| че это за проверка первого бита? Code iRankPos = get_user_stats(id, izStats, izBody)
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
Статус: Не в сети
| А теперь полный код в студию! Очень полезно заманивать игроков на сервер
One death is a Tragedy One million is a Statistic...
|
| |
|
|
| aha | Дата: Среда, 21.05.2008, 00:36:10 | Сообщение # 11 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 370
Статус: Не в сети
| #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
Статус: Не в сети
| Quote (aha) if(iRankPos <= 10) { если игрок не будет входить в топ, то get_user_stats будет возвращать 0, т.е. нужно делать дополнительную проверку Code if(iRankPos && iRankPos <= 10)
|
| |
|
|
| aha | Дата: Четверг, 22.05.2008, 17:25:39 | Сообщение # 13 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 370
Статус: Не в сети
| Сделал cvar amx_topx "10" можно менять до какова места будет даватся флажок (вроде работает), в вот как бы сделать такой вот cvar amx_flags "t" , чтобы я мог через серверную consol'ь менять флажок каторый будет даватся ?
|
| |
|
|
| Joker | Дата: Четверг, 22.05.2008, 17:32:04 | Сообщение # 14 |
 Генерал-майор
Группа: Пользователи
Сообщений: 375
Статус: Не в сети
| Можно сделать, что бы через квару ставить не один, а несколько флажков.
One death is a Tragedy One million is a Statistic...
|
| |
|
|
| aha | Дата: Четверг, 22.05.2008, 17:41:35 | Сообщение # 15 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 370
Статус: Не в сети
| Ну я почти это и имел ввиду :]
|
| |
|
|