Chciałem połączyć oba mody w klasie CoD, niby wszystko gra, kompiluje się, klasa działa, ale nie do końca. Podczas działania "speciala" powinna wysyłać od wrogów okręgi a tego nie robi ;< Pomoże ktoś?
#include <amxmodx> #include <amxmisc> #include <codmod> #include <engine> #include <hamsandwich> #include <cstrike> #include <fun> #include <fakemeta> #include <fakemeta_util> #include <specialconst> #include <colorchat> new gSpriteWhite; new gPcvarRadius = 600; new gPcvarBright = 192; new const nazwa[] = "Zawodowiec"; new const opis[] = "4int(+1% do szybkosci strzelania). Special: Widzi okregi wychodzace z przeciwnikow."; new const bronie = (1<<CSW_M4A1); new const zdrowie = 20; new const kondycja = 5; new const inteligencja = 0 new const wytrzymalosc = 0; new cvar_ilosc_special; new bool:ma_klase[33]; new ma_special[33]; new bool:special_uzyty[33]; new msg_bartime; public plugin_init() { register_plugin(nazwa, "1.0", "Eustachy8"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("ResetHUD", "ResetHUD", "abe"); cvar_ilosc_special = register_cvar("special_ilosc", "2"); register_clcmd("special", "class_special_used"); msg_bartime = get_user_msgid("BarTime") register_event("CurWeapon","eventCurWeapon", "b"); } public plugin_precache() { precache_model("sprites/white.spr"); gSpriteWhite = precache_model("sprites/white.spr") } public cod_class_enabled(id) { new ilosc_special = get_pcvar_num(cvar_ilosc_special); ma_klase[id] = true; ma_special[id] = ilosc_special; special_uzyty[id] = false; } public cod_class_disabled(id) { ma_klase[id] = false; ma_special[id] = 0; special_uzyty[id] = false; } public eventCurWeapon(id) { if(!ma_klase[id]) return PLUGIN_HANDLED; new iWeapon = get_user_weapon(id); new iEnt; static Float:fSpeedMultiplier; if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0) fSpeedMultiplier = 0.01 else fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0); if(iWeapon == CSW_M4A1) { iEnt = fm_find_ent_by_owner(-1, "weapon_m4a1", id) set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 ); set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 ); } return PLUGIN_HANDLED; } // SPECIAL public class_special_used(id) { if(!is_user_connected(id)) return; if(!ma_klase[id]) return; if(!ma_special[id]) { ColorChat(id, GREEN, "Wykorzystales juz speciale."); return; } if(special_uzyty[id]) { ColorChat(id, GREEN, "Special jest juz wlaczony."); return; } ma_special[id] -= 1; special_uzyty[id] = true; ColorChat(id, GREEN, "Special on."); set_bartime(id, 10); set_task(2.0, "daredevil_esploop", id, _, _, "b") set_task(10.0, "WylaczSpecial", id); ShowAmmo(id); } public daredevil_esploop(id) { if (!special_uzyty[id]) { return; } static players[33], playerCount, player static idRing, ringOrigin[3], i, j static radius, brightness radius = gPcvarRadius brightness =gPcvarBright for ( j = 0; j < playerCount; j++ ) { idRing = players[j] if ( !idRing == id ) { return; } if ( get_user_origin(idRing, ringOrigin) ) { return; } message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, ringOrigin, id) write_byte(TE_BEAMCYLINDER) // 21 write_coord(ringOrigin[0]) write_coord(ringOrigin[1]) write_coord(ringOrigin[2] + 16) write_coord(ringOrigin[0]) write_coord(ringOrigin[1]) write_coord(ringOrigin[2] + radius) write_short(gSpriteWhite) write_byte(0) // startframe write_byte(1) // framerate write_byte(6) // life write_byte(8) // width write_byte(1) // noise write_byte(100) // r write_byte(100) // g write_byte(255) // b write_byte(brightness) // brightness write_byte(0) // speed message_end() } } // SPECIAL public WylaczSpecial(id) { special_uzyty[id] = false; ColorChat(id, GREEN, "Special off"); } public set_bartime(id, czas) { message_begin(MSG_ONE, msg_bartime, _, id); write_short(czas); message_end(); } public ResetHUD(id) { new ilosc_special = get_pcvar_num(cvar_ilosc_special); ma_special[id] = ilosc_special; special_uzyty[id] = false; ShowAmmo(id); } ShowAmmo(id) { new ilosc_special = get_pcvar_num(cvar_ilosc_special); new ammo[51] formatex(ammo, 50, "Liczba speciali: %i/%i",ma_special[id], ilosc_special) message_begin(MSG_ONE, get_user_msgid("StatusText"), {0,0,0}, id) write_byte(0) write_string(ammo) message_end() } // +special by Eustachy8
Załączone pliki
Użytkownik Eustachy8 edytował ten post 01.04.2012 10:40