|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Проблема с death_event
|
|
DESTROYER | Дата: Четверг, 26.03.2009, 22:54:04 | Сообщение # 1 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| О плагине: При заходе на сервер игроку показывается меню с выбором типа мультикилов. После выбора звука у каждова игрока проигрываются те типы мультикилов которые он выбрал. Суть вроди ясна. Теперь к проблеме. Проблема: выбрав определенный звук, и убив достаточное количество игроков, у игрока проигрывается не 1 звука 2 причем проигрывается 1-тот который он выбрал 2-тот который идет по умолчанию (если вдруг игрок проигнорировал меню) часть кода: Code public death_event(id) { new killer = read_data(1); new victim = read_data(2); kills[killer] += 1; kills[victim] = 0; deaths[killer] = 0; deaths[victim] += 1; for (new i = 0; i < 100; i++) { if (kills[killer] == levels[i]) { new name[33]; get_user_name(killer, name, 32); new players[32],num,o get_players(players,num) for(o = 0; o <= num; o++) { new ids = players[o] set_hudmessage(150, 0, 200, 0.05, 0.65, 1, 6.0, 5.0, 0.02, 5.0, 4) if (kills[killer] >= 27) { set_hudmessage(255, 0, 100, -1.0, 0.3, 1, 6.0, 6.0, 0.02, 5.0, 4) show_hudmessage(ids, "%s: IS WHICKED SICK!!!^n 6AJIE3HEHHO 3JIOu" , name); client_cmd(ids, "spk %s/whickedsick", soundspath[setpath[ids]]); } show_hudmessage(ids, messages[i], name); client_cmd(ids, "spk %s/%s", soundspath[setpath[ids]], soundsname[i]); } } if (deaths[victim] == levels[i]) { new name[33]; get_user_name(victim, name, 32); set_hudmessage(0, 100, 200, 0.05, 0.75, 2, 6.0, 5.0, 0.02, 5.0,5) if (deaths[victim] >= 19) { set_hudmessage(0, 100, 200, -1.0, 0.85, 1, 6.0, 6.0, 0.02, 5.0, 5) show_hudmessage(0, "%s 3A6bIJI KAK BKJIy4AETC9I 4uT", name); } show_hudmessage(0, dedmes[i], name); } } return PLUGIN_CONTINUE } Если непонятно я вложил скрипт Получилось решить проблему с помощью исключения (если игрок невыбрал звук) то вобще нечего небудет проигрываться... но всеравно как факт почемуже проигрывалось 2 раза?
пропиши (Abort;) в совей жизни
Сообщение отредактировал DESTROYER - Четверг, 26.03.2009, 23:04:50 |
|
| |
PAHANCS | Дата: Пятница, 27.03.2009, 10:11:36 | Сообщение # 2 |
Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| Не очень разбираюсь, но может попробуеш так : Code
public death_event(id) { new killer = read_data(1); new victim = read_data(2); kills[killer] += 1; kills[victim] = 0; deaths[killer] = 0; deaths[victim] += 1; for (new i = 0; i < 100; i++) { kills_killer(killer, i) deaths_victim(victim, i) } return PLUGIN_CONTINUE }
public kills_killer(killer, i) { if (kills[killer] == levels[i]) { new name[33]; get_user_name(killer, name, 32); new players[32],num,o get_players(players,num) for(o = 0; o <= num; o++) { new ids = players[o] set_hudmessage(150, 0, 200, 0.05, 0.65, 1, 6.0, 5.0, 0.02, 5.0, 4) if (kills[killer] >= 27) { set_hudmessage(255, 0, 100, -1.0, 0.3, 1, 6.0, 6.0, 0.02, 5.0, 4) show_hudmessage(ids, "%s: IS WHICKED SICK!!!^n 6AJIE3HEHHO 3JIOu" , name); client_cmd(ids, "spk %s/whickedsick", soundspath[setpath[ids]]); return PLUGIN_CONTINUE } show_hudmessage(ids, messages[i], name); client_cmd(ids, "spk %s/%s", soundspath[setpath[ids]], soundsname[i]); } } return PLUGIN_CONTINUE }
public deaths_victim(victim, i) { if (deaths[victim] == levels[i]) { new name[33]; get_user_name(victim, name, 32); set_hudmessage(0, 100, 200, 0.05, 0.75, 2, 6.0, 5.0, 0.02, 5.0,5) if (deaths[victim] >= 19) { set_hudmessage(0, 100, 200, -1.0, 0.85, 1, 6.0, 6.0, 0.02, 5.0, 5) show_hudmessage(0, "%s 3A6bIJI KAK BKJIy4AETC9I 4uT", name); return PLUGIN_CONTINUE } show_hudmessage(0, dedmes[i], name); } return PLUGIN_CONTINUE }
и мне кажется 2 сообщения одновременно не покажется.
PAHANCS
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |