Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
usunięcie napisu w say
Temat rozp. pawlik, 30.12.2008 12:48
3 odpowiedzi w tym temacie
#1
Napisano 30.12.2008 12:48
Proszę o usunięcie napisu "Kiedy jestes tylko Ty i Twoj przeciwnik, mozesz go wyzwac na pojedynek nozowy pocierajac nozem o sciane.". Próbowałem sam, ale nie jestem "pro" w te klocki i wywalało mi błędy w logach. Za pomoc oczywiście "POMÓGŁ"
#2
Napisano 30.12.2008 12:51
Zobacz czy działa ;>
Załączone pliki
#3 Gość__*
Napisano 30.12.2008 12:52
#define PLUGINNAME "Automatic knife duel" #define VERSION "0.3" #define AUTHOR "JGHG" #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") require_module("fun") } 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")) 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, "Wyzwales %s na pojedynek nozowy! Oczekiwanie na odpowiedz %d sekund...", challenged_name, DECIDESECONDS) new menu[1024], keys = MENU_KEY_1 | MENU_KEY_2 format(menu, 1023, "%s wyzwal Cie na pojedynek nozowy!^n^nZgadzasz sie? Masz %d sekund na odpowiedz!^n^ny1w. OK,kosy!^ny2w. Pocaluj mnie w dupe! :(", challenger_name, DECIDESECONDS) show_menu(challenged, keys, menu, DECIDESECONDS, "JGHG's automatic knife duel") 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 nie odpowiedzial %s na jego wyzwanie...", 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, " ") } 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 nie zgodzil sie na wyzwanie %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 zgodzil sie na wyzwanie %s!", challenged_name, challenger_name) g_knifeArena = true give_item(g_challenger, "weapon_knife") give_item(g_challenged, "weapon_knife") engclient_cmd(g_challenger, "weapon_knife") engclient_cmd(g_challenged, "weapon_knife") } 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") return PLUGIN_CONTINUE } public event_roundend() { if (g_challenging || g_knifeArena) CancelAll() g_noChallengingForAWhile = true set_task(4.0, "NoChallengingForAWhileToFalse") 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") // 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") register_forward(FM_EmitSound, "forward_emitsound") 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") register_event("DeathMsg", "event_death", "a") register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_terwin") register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_ctwin") register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_rounddraw") #if defined DEBUG register_clcmd("0challenge", "challengefn", ADMIN_CFG, "<challenger> <challenged> - start knife duel challenge") #endif // defined DEBUG new Float:maptime = get_cvar_float("mp_timelimit") 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") }Najprościej można dać spację:
client_print(id, print_chat, " ")
#4
Napisano 30.12.2008 13:13
baku
PoMóGŁ
Close Topic.
L 12/30/2008 - 13:07:05: Function is not present (function "Announcement") (plugin "Automaticknifeduel.amxx") L 12/30/2008 - 13:07:05: [AMXX] Displaying debug trace (plugin "Automaticknifeduel.amxx") L 12/30/2008 - 13:07:05: [AMXX] Run time error 10: native error (native "set_task") L 12/30/2008 - 13:07:05: [AMXX] [0] text5eslqe.sma::plugin_init (linekur3k masz
PoMóGŁ
Close Topic.
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych