Страница 1 из 2 1 2 >
# 1 Тема: Ножевой раунд
PahanS
Пользователь

Avatar пользователя




Рейтинг: 2

новичек

Сообщений: 2
Откуда: Россия
Зарегистрирован: 31 Января 2011, 07:13:28
Пол: Не определен
Статус: offline
Опубликовано 31 Января 2011, 07:18:29
чуваки, помогите с ножевым раундом!
я его все как надо устанавливаю, на серваке он вылазит, только по странному!
не дает запрос на подтверждение махаться на ножах!
в чем проблема??!!smiley
 
^ наверх ^
# 2  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 31 Января 2011, 11:40:42
Не понял? Ножевой раунд в начале карты? Или Automatic knife duel?


--------------------
^ наверх ^
# 3  
PahanS
Пользователь

Avatar пользователя




Рейтинг: 2

новичек

Сообщений: 2
Откуда: Россия
Зарегистрирован: 31 Января 2011, 07:13:28
Пол: Не определен
Статус: offline
Опубликовано 31 Января 2011, 13:30:04
да дуэль. не так выразился...
 
^ наверх ^
# 4  
moloko
Пользователь

Avatar пользователя

2020

Рейтинг: 4660

Форумский чувак

Сообщений: 3492
Откуда: Россия
Зарегистрирован: 17 Декабря 2010, 00:12:12
Пол: Мужской
Статус: offline
ICQ статус Нету
Опубликовано 31 Января 2011, 13:55:47
#define PLUGINNAME "Automatic knife duel"
#define VERSION "0.3"
#define AUTHOR "JGHG"
/*
Copyleft 2005
Plugin topic: http://www.amxmodx.org/forums/viewtopic.php?p=91239


AUTOMATIC KNIFE DUEL
====================
Where I come from, if you cut the wall repeteadly with your knife it means you're challenging your last opponent to a knife duel. ;-)

I decided to automate this process.

If only you and another person on the opposite team remain in the round, you can hit a wall (or another object) with your knife, THREE TIMES in fast succession.
By this action you challenge your opponent to a knife duel. The person you challenge gets a menu where he can accept/decline your
challenge. The challenged person has 10 seconds to decide his mind, else the challenge is automatically declined, and the menu should be closed automatically.

Should a knife duel start, it works out pretty much like a round of Knife Arena: you can only use the knife (and the C4!).
As soon as the round ends the Knife Arena mode is turned off.

/JGHG


VERSIONS
========
050421 0.3 You must now slash with your knife three times in fast succession to challenge someone.
050208 0.2 Fixed seconds display.
Bots should now respond correctly and a little human like. They will mostly accept challenges. ;-)
Small fixes here and there. :-)
050208 0.1 First version - largely untested
*/

#include <amxmodx>
#include <fakemeta>
#include <fun>

#define DEBUG

#if defined DEBUG
#include <amxmisc>
#endif // defined DEBUG

#define MENUSELECT1 0
#define MENUSELECT2 1
#define TASKID_CHALLENGING 2348923
#define TASKID_BOTTHINK 3242321
#define DECIDESECONDS 10
#define ALLOWED_WEAPONS 2
#define KNIFESLASHES 3 // the nr of slashes within a short amount of time until a challenge starts...
// Globals below
new g_allowedWeapons[ALLOWED_WEAPONS] = {CSW_KNIFE, CSW_C4}
new g_MAXPLAYERS
new bool:g_challenging = false
new bool:g_knifeArena = false
new bool:g_noChallengingForAWhile = false
new g_challengemenu
new g_challenger
new g_challenged
new g_challenges[33]
// Globals above

public plugin_modules()
{
require_module("fakemeta"smiley
require_module("fun"smiley
}

public forward_emitsound(const PIRATE, const Onceuponatimetherewasaverysmall, noise[], const Float:turtlewhoateabiggerturtleand, const Float:afterthatthesmallturtlegot, const veryveryverybig, const theend) {
if (g_noChallengingForAWhile || g_knifeArena || g_challenging || PIRATE < 1 || PIRATE > g_MAXPLAYERS || !is_user_alive(PIRATE) || !equal(noise, "weapons/knife_hitwall1.wav"smiley)
return FMRES_IGNORED

new team = get_user_team(PIRATE), otherteam = 0, matchingOpponent = 0
// Make sure exactly one person on each team is alive.
for (new i = 1; i <= g_MAXPLAYERS; i++) {
if (!is_user_connected(i) || !is_user_alive(i) || PIRATE == i)
continue
if (get_user_team(i) == team) {
// No fun.
return FMRES_IGNORED
}
else {
if (++otherteam > 1) {
// No fun.
return FMRES_IGNORED
}
matchingOpponent = i
}
}

if (matchingOpponent == 0)
return FMRES_IGNORED

if (++g_challenges[PIRATE] >= KNIFESLASHES) {
Challenge(PIRATE, matchingOpponent)
if (is_user_bot(matchingOpponent)) {
new Float:val = float(DECIDESECONDS)
if (val < 2.0)
val = 2.0
remove_task(TASKID_BOTTHINK)
set_task(random_float(1.0, float(DECIDESECONDS) - 1.0), "BotDecides", TASKID_BOTTHINK)
}
g_challenges[PIRATE] = 0
}
else
set_task(1.0, "decreaseChallenges", PIRATE)

//client_print(PIRATE, print_chat, "Your challenges: %d", g_challenges[PIRATE])

return FMRES_IGNORED
}

public decreaseChallenges(id) {
if (--g_challenges[id] < 0)
g_challenges[id] = 0
}

public BotDecides() {
if (!g_challenging)
return

if (random_num(0,9) > 0)
Accept()
else {
DeclineMsg()
}
g_challenging = false
remove_task(TASKID_CHALLENGING)
}

Challenge(challenger, challenged) {
g_challenger = challenger
g_challenged = challenged
g_challenging = true
new challenger_name[32], challenged_name[32]
get_user_name(challenger, challenger_name, 31)
get_user_name(challenged, challenged_name, 31)

client_print(challenger, print_chat, "Вы вызвали %s на дуэль! Ждите ответа %d секунд...", challenged_name, DECIDESECONDS)

new menu[1024], keys = MENU_KEY_1 | MENU_KEY_2
format(menu, 1023, "%s Вызвал дуэль на ножах!^n^nЧто делать? У вас %d секунд на ответ!^n^n\y1\w. Я согласен!^n\y2\w. Я против!", challenger_name, DECIDESECONDS)
show_menu(challenged, keys, menu, DECIDESECONDS, "JGHG's automatic knife duel"smiley
set_task(float(DECIDESECONDS), "timed_toolate", TASKID_CHALLENGING)
}

public timed_toolate() {
if (g_challenging) {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
client_print(0, print_chat, "%s не ответил %s's дуэль не состоится...", challenged_name, challenger_name)
CancelAll()
}
}

public client_putinserver(id) {
set_task(25.0, "Announcement", id)

return PLUGIN_CONTINUE
}

public Announcement(id) {
client_print(id, print_chat, "Для вызова противника на дуэль при 1vs1 бейте стену ножом."smiley
}

public challenged_menu(id, key) {
switch (key) {
case MENUSELECT1: {
// Accept
Accept()
}
case MENUSELECT2: {
// Decline
DeclineMsg()
}
}
g_challenging = false
remove_task(TASKID_CHALLENGING)

return PLUGIN_HANDLED
}

DeclineMsg() {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
client_print(0, print_chat, "%s не согласился %s's дуэль не состоится...", challenged_name, challenger_name)
}

Accept() {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)

client_print(0, print_chat, "%s согласился %s's дуэль началась!", challenged_name, challenger_name)
g_knifeArena = true
give_item(g_challenger, "weapon_knife"smiley
give_item(g_challenged, "weapon_knife"smiley
engclient_cmd(g_challenger, "weapon_knife"smiley
engclient_cmd(g_challenged, "weapon_knife"smiley
}

public event_holdwpn(id) {
if (!g_knifeArena || !is_user_alive(id))
return PLUGIN_CONTINUE

new weaponType = read_data(2)

for (new i = 0; i < ALLOWED_WEAPONS; i++) {
if (weaponType == g_allowedWeapons[i])
return PLUGIN_CONTINUE
}

engclient_cmd(id, "weapon_knife"smiley

return PLUGIN_CONTINUE
}

public event_roundend() {
if (g_challenging || g_knifeArena)
CancelAll()
g_noChallengingForAWhile = true
set_task(4.0, "NoChallengingForAWhileToFalse"smiley

return PLUGIN_CONTINUE
}

public NoChallengingForAWhileToFalse() {
g_noChallengingForAWhile = false
}

CancelAll() {
if (g_challenging) {
g_challenging = false
// Close menu of challenged
if (is_user_connected(g_challenged)) {
new usermenu, userkeys
get_user_menu(g_challenged, usermenu, userkeys) // get user menu

// Hmm this ain't working :-/
if (usermenu == g_challengemenu) // Close it!
show_menu(g_challenged, 0, "blabla"smiley // show empty menu
}
}
if (g_knifeArena) {
g_knifeArena = false
}
remove_task(TASKID_BOTTHINK)
remove_task(TASKID_CHALLENGING)
}

public event_death() {
if (g_challenging || g_knifeArena)
CancelAll()

return PLUGIN_CONTINUE
}

#if defined DEBUG
public challengefn(id, level, cid) {
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED

new challenger[64], challenged[64]
read_argv(1, challenger, 63)
read_argv(2, challenged, 63)

console_print(id, "challenger: %s, challenged: %s", challenger, challenged)

new r = str_to_num(challenger)
new d = str_to_num(challenged)
Challenge(r, d)
if (is_user_bot(d))
Accept()

return PLUGIN_HANDLED
}
#endif // defined DEBUG

public plugin_init() {
register_plugin(PLUGINNAME, VERSION, AUTHOR)
register_event("CurWeapon", "event_holdwpn", "be", "1=1"smiley
register_forward(FM_EmitSound, "forward_emitsound"smiley
g_MAXPLAYERS = get_maxplayers()

g_challengemenu = register_menuid("JGHG's automatic knife duel"/*"You are challenged"*/)
register_menucmd(g_challengemenu, MENU_KEY_1 | MENU_KEY_2, "challenged_menu"smiley

register_event("DeathMsg", "event_death", "a"smiley
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_terwin"smiley
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_ctwin"smiley
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_rounddraw"smiley

#if defined DEBUG
register_clcmd("0challenge", "challengefn", ADMIN_CFG, "<challenger> <challenged> - start knife duel challenge"smiley
#endif // defined DEBUG

new Float:maptime = get_cvar_float("mp_timelimit"smiley
if (maptime == 0.0)
maptime = 15.0

new Float:anntime = 60.0 * 5.0 // 5 minutes
if (maptime < 5.0)
anntime = maptime / 3.0

set_task(anntime, "Announcement", 0, "", 0, "b"smiley
}



исходник automatic_knife_duel.sma


--------------------
^ наверх ^
# 5  
moloko
Пользователь

Avatar пользователя

2020

Рейтинг: 4660

Форумский чувак

Сообщений: 3492
Откуда: Россия
Зарегистрирован: 17 Декабря 2010, 00:12:12
Пол: Мужской
Статус: offline
ICQ статус Нету
Опубликовано 31 Января 2011, 13:56:40
забыл добавить - это русская версия!


--------------------
^ наверх ^
# 6  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 31 Января 2011, 14:44:31
Фил ну ты и залечил.
Пахан, вот рабочий плагин.
Прикрепленные файлы
Для просмотра вложения зарегистрируйтесь



--------------------
^ наверх ^
# 7  
Sonne16
Пользователь

Avatar пользователя




Рейтинг: 510

Форумский чувак

Сообщений: 490
Откуда: Россия
Зарегистрирован: 10 Ноября 2009, 12:57:54
Пол: Не определен
Статус: offline
Опубликовано 05 Февраля 2011, 22:49:37
Добавьте спойлер http://forums.0pk.ru/viewtopic.php?id=1500!


--------------------
^ наверх ^
# 8  
Admin
Супер Администратор

Avatar пользователя



Рейтинг: 110601

Администратор

Сообщений: 14299
Откуда: Россия
Зарегистрирован: 22 Декабря 2008, 15:03:48
Пол: Мужской
Статус: offline
ICQ статус 9188335
Опубликовано 05 Февраля 2011, 22:55:47
Sonne16 написал:
Добавьте спойлер http://forums.0pk.ru/viewtopic.php?id=1500!


зачем он тебе??
 
^ наверх ^
# 9  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 07 Февраля 2011, 07:34:58
Чтобы прятать сообщения, подобные посту Яна, где он выложил исходник плагина.


--------------------
^ наверх ^
# 10  
Sonne16
Пользователь

Avatar пользователя




Рейтинг: 510

Форумский чувак

Сообщений: 490
Откуда: Россия
Зарегистрирован: 10 Ноября 2009, 12:57:54
Пол: Не определен
Статус: offline
Опубликовано 07 Февраля 2011, 14:34:33



--------------------
^ наверх ^
# 11  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 07 Февраля 2011, 18:26:57
Смайлы где берешь.


--------------------
^ наверх ^
# 12  
Admin
Супер Администратор

Avatar пользователя



Рейтинг: 110601

Администратор

Сообщений: 14299
Откуда: Россия
Зарегистрирован: 22 Декабря 2008, 15:03:48
Пол: Мужской
Статус: offline
ICQ статус 9188335
Опубликовано 07 Февраля 2011, 21:32:51
worldoftanks
 
^ наверх ^
# 13  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 07 Февраля 2011, 22:59:25
ясно, бля я скачал ее давненько, думал такая игруха как бы сингл а она оказывается через нэт играется smiley


--------------------
^ наверх ^
# 14  
Admin
Супер Администратор

Avatar пользователя



Рейтинг: 110601

Администратор

Сообщений: 14299
Откуда: Россия
Зарегистрирован: 22 Декабря 2008, 15:03:48
Пол: Мужской
Статус: offline
ICQ статус 9188335
Опубликовано 07 Февраля 2011, 23:06:16
TRiX написал:
ясно, бля я скачал ее давненько, думал такая игруха как бы сингл а она оказывается через нэт играется smiley


и забил, да?)))
 
^ наверх ^
# 15  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 07 Февраля 2011, 23:36:14
естественно


--------------------
^ наверх ^
# 16  
Sonne16
Пользователь

Avatar пользователя




Рейтинг: 510

Форумский чувак

Сообщений: 490
Откуда: Россия
Зарегистрирован: 10 Ноября 2009, 12:57:54
Пол: Не определен
Статус: offline
Опубликовано 08 Февраля 2011, 14:28:24
Полония автору предыдущего поста.


--------------------
^ наверх ^
# 17  
Admin
Супер Администратор

Avatar пользователя



Рейтинг: 110601

Администратор

Сообщений: 14299
Откуда: Россия
Зарегистрирован: 22 Декабря 2008, 15:03:48
Пол: Мужской
Статус: offline
ICQ статус 9188335
Опубликовано 08 Февраля 2011, 14:51:51
за что?? smileysmiley
 
^ наверх ^
# 18  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 08 Февраля 2011, 16:38:51
За то что забил на его любимую игрушку, возможно. smiley


--------------------
^ наверх ^
# 19  
Admin
Супер Администратор

Avatar пользователя



Рейтинг: 110601

Администратор

Сообщений: 14299
Откуда: Россия
Зарегистрирован: 22 Декабря 2008, 15:03:48
Пол: Мужской
Статус: offline
ICQ статус 9188335
Опубликовано 08 Февраля 2011, 16:57:06
ты прав как всегда
 
^ наверх ^
# 20  
TRiX
Пользователь

Avatar пользователя



Рейтинг: 6079

Форумский чувак

Сообщений: 5653
Откуда: Казахстан
Зарегистрирован: 25 Января 2011, 21:50:59
Пол: Мужской
Статус: offline
Опубликовано 09 Февраля 2011, 17:15:41
smiley


--------------------
^ наверх ^
Страница 1 из 2 1 2 >
Перейти на форум:
  Тему просматривают
Гостей: 3
На сайте нет зарегистрированных пользователей