Bład przy kopmlikacji
mEliSa 20.11.2011
Witam ! zrobiłem 3 klasy i mam problem z komplikacją :
#include <amxmodx> #include <amxmisc> #include <codmod> #include <engine> #include <hamsandwich> new const nazwa[] = "Elektryk"; new const opis[] = "Masz 3 blyskawice, ktore zadaja 50 DMG. (uzycie E )"; new const bronie = (1<<CSW_P228)|(1<<CSW_M4A1); new const zdrowie = 40; new const kondycja = 8; new const inteligencja = 0; new const wytrzymalosc = 30; new sprite_blast; new ilosc_rakiet_gracza[33]; new poprzednia_rakieta_gracza[33]; public plugin_init() { register_plugin(nazwa, "1.0", "piterka"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("ResetHUD", "ResetHUD", "abe"); } public cod_class_enabled(id) { ColorChat(id, GREEN, "Klasa %s zostala stworzona przez www.cs-...pl ", nazwa); ma_klase[id] = true; ResetHUD(id); } public plugin_precache() { sprite = precache_model("sprites/lgtning.spr"); precache_sound(gszSound); } public cod_class_enabled(id) { ilosc_blyskawic[id] = 3; ma_klase[id] = 1; return COD_CONTINUE; } public cod_class_disabled(id) { ma_klase[id] = 0; ilosc_blyskawic[id] = 0; } public cod_class_skill_used(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; if(!ilosc_blyskawic[id]) { return PLUGIN_HANDLED; } new ofiara, body; get_user_aiming(id, ofiara, body); if(is_user_alive(ofiara)){ if(get_user_team(ofiara) == get_user_team(id)) { return PLUGIN_HANDLED; } if(poprzednia_blyskawica[id]+5.0>get_gametime()) { client_print(id,print_chat,"Blyskawicy mozesz uzyc raz na 5 sek."); return PLUGIN_HANDLED; } poprzednia_blyskawica[id] = floatround(get_gametime()); ilosc_blyskawic[id]--; puscBlyskawice(id, ofiara, 50.0, 0.5); } return PLUGIN_HANDLED; } stock Create_TE_BEAMENTS(startEntity, endEntity, iSprite, startFrame, frameRate, life, width, noise, red, green, blue, alpha, speed) { message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_BEAMENTS ) write_short( startEntity ) // start entity write_short( endEntity ) // end entity write_short( iSprite ) // model write_byte( startFrame ) // starting frame write_byte( frameRate ) // frame rate write_byte( life ) // life write_byte( width ) // line width write_byte( noise ) // noise amplitude write_byte( red ) // red write_byte( green ) // green write_byte( blue ) // blue write_byte( alpha ) // brightness write_byte( speed ) // scroll speed message_end() } puscBlyskawice(id, ofiara, Float:fObrazenia = 55.0, Float:fCzas = 1.0){ //Obrazenia new ent = create_entity("info_target"); entity_set_string(ent, EV_SZ_classname, "blyskawica"); cod_inflict_damage(id, ofiara, fObrazenia, 1.0, ent, DMG_SHOCK); remove_entity(ent); //Piorun Create_TE_BEAMENTS(id, ofiara, sprite, 0, 10, floatround(fCzas*10), 150, 5, 200, 200, 200, 200, 10); //Dzwiek emit_sound(id, CHAN_WEAPON, gszSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); emit_sound(ofiara, CHAN_WEAPON, gszSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); } public ResetHUD(id) { if(ma_klase[id] == 1) { ilosc_blyskawic[id] = 3; } }
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <fakemeta> #include <engine> #include <hamsandwich> #include <xs> #include <colorchat> #define AUTHOR "SAMURAI & kisiel96 & DarkGL" // dziekuje w tym miejscu DarkGL za pomoc <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cwaniak.gif' class='bbc_emoticon' alt=':]' /> /* ***** KONFIGURACJA ***** */ #define ILOSC_WORKOW_GRACZA 10 #define ODDAJWORKI /* ***** KONFIGURACJA ***** */ #define PALLET_MINS Float:{ -27.260000, -22.280001, -22.290001 } #define PALLET_MAXS Float:{ 27.340000, 26.629999, 29.020000 } #define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2) #define fm_remove_entity(%1) engfunc(EngFunc_RemoveEntity, %1) #define fm_drop_to_floor(%1) engfunc(EngFunc_DropToFloor,%1) new g_class[] = "amxx_pallets"; new phealth; new losuj; new bool:ma_klase[33]; new ilosc_workow_gracza[33]; new max_ilosc_workow_gracza[33]; new tryb[33]; new const nazwa[] = "Pomagier"; new const opis[] = "Moze ukladac worki z piaskiem (10 workow). Im ma wiecej inteligencji, tym worki sa mocniejsze"; new const bronie = 1<<CSW_M249 | 1<<CSW_DEAGLE; new const zdrowie = 30; new const kondycja = 5; new const inteligencja = 0; new const wytrzymalosc = 30; public plugin_init() { register_plugin(nazwa, "1.0", "AUTHOR"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); phealth = register_cvar("pomagier_health","250"); register_event("ResetHUD", "ResetHUD", "abe"); register_event("HLTV","event_newround", "a","1=0", "2=0"); register_forward(FM_PlayerPreThink, "PlayerPreThink") register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1) register_forward(FM_CmdStart,"fwd_CmdStart") } public cod_class_enabled(id) { ColorChat(id, GREEN, "Klasa %s zostala stworzona przez www.cs-...pl ", nazwa); ma_klase[id] = true; ResetHUD(id); } public plugin_natives() { register_native("cod_get_user_class_sandbag", "PobierzIlosc", 1); register_native("cod_get_user_class_max_sandbag", "PobierzIloscMax", 1); } public plugin_precache() { precache_model("models/pallet_with_bags.mdl"); precache_model("models/pallet_with_bags2.mdl"); } public cod_class_enabled(id) { #if defined PREMIUM if(!(get_user_flags(id) & ADMIN_LEVEL_H)) { ColorChat(id, GREEN, "[Pomagier] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } #endif ma_klase[id] = true; ilosc_workow_gracza[id] = ILOSC_WORKOW_GRACZA; max_ilosc_workow_gracza[id] = ILOSC_WORKOW_GRACZA; tryb[id] = 0; return COD_CONTINUE; } public cod_class_disabled(id) { ma_klase[id] = false; } public ResetHUD(id) { ilosc_workow_gracza[id] = ILOSC_WORKOW_GRACZA; tryb[id] = 0; } public cod_class_skill_used(id) { switch(tryb[id]) { case 0: { client_print(id, print_center, "Tryb stawiania workow"); tryb[id] = 1; } case 1: { client_print(id, print_center, "Tryb usuwania workow"); tryb[id] = 2; } case 2: { client_print(id, print_center, "Tryb strzelania"); tryb[id] = 0 } } } public PlayerPreThink(id) { if(!is_user_connected(id) || !is_user_alive(id)) { return FMRES_IGNORED; } if(!is_user_alive(id)) { return FMRES_IGNORED; } if(!ma_klase[id]) { return FMRES_IGNORED; } switch(tryb[id]) { case 1: { set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK); return FMRES_HANDLED; } case 2: { set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK); return FMRES_HANDLED; } } return FMRES_HANDLED; } public UpdateClientData_Post(id, sendweapons, cd_handle) { if(!is_user_connected(id) || !is_user_alive(id)) { return FMRES_IGNORED; } if(!is_user_alive(id)) { return FMRES_IGNORED; } if(!ma_klase[id]) { return FMRES_IGNORED; } switch(tryb[id]) { case 1: { set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 ); } case 2: { set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 ); } } return FMRES_HANDLED; } public fwd_CmdStart(id, uc_handle, seed) { if(!is_user_connected(id) || !is_user_alive(id)) { return FMRES_IGNORED; } if(!is_user_alive(id)) { return FMRES_IGNORED; } if(!ma_klase[id]) { return FMRES_IGNORED; } new buttons = get_uc(uc_handle, UC_Buttons) new oldbuttons = get_user_oldbutton(id); if((buttons & IN_ATTACK) || !(oldbuttons & IN_ATTACK)) { return FMRES_IGNORED; } switch(tryb[id]) { case 1: { PostawWorek(id); set_uc(uc_handle, UC_Buttons, buttons & ~IN_ATTACK); return FMRES_HANDLED; } case 2: { UsunWorek(id); set_uc(uc_handle, UC_Buttons, buttons & ~IN_ATTACK); return FMRES_HANDLED; } } return FMRES_IGNORED; } public PostawWorek(id) { if(!ilosc_workow_gracza[id]) { client_print(id, print_center, "Nie mozesz postawic juz wiecej workow z piaskiem! Przywrocono tryb strzelania"); tryb[id] = 0; return PLUGIN_CONTINUE; } if(is_user_alive(id)) { new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_wall")); set_pev(ent,pev_classname,g_class); losuj = random(2); switch(losuj) { case 0: { engfunc(EngFunc_SetModel,ent,"models/pallet_with_bags.mdl"); } case 1: { engfunc(EngFunc_SetModel,ent,"models/pallet_with_bags2.mdl"); } } static Float:xorigin[3]; get_user_hitpoint(id,xorigin); if(engfunc(EngFunc_PointContents,xorigin) == CONTENTS_SKY) { client_print(id, print_center, "Nie mozesz tu postawic workow! Przywrocono tryb strzelania"); tryb[id] = 0; return PLUGIN_HANDLED; } static Float:p_mins[3], Float:p_maxs[3]; p_mins = PALLET_MINS; p_maxs = PALLET_MAXS; xorigin[2] += 30.0; if(!checkBagsPlace(xorigin, p_mins, p_maxs)) { client_print(id, print_center, "Nie mozesz tu postawic workow! Przywrocono tryb strzelania"); tryb[id] = 0; return PLUGIN_HANDLED; } xorigin[2] -= 30.0 engfunc(EngFunc_SetSize, ent, p_mins, p_maxs); set_pev(ent, pev_mins, p_mins); set_pev(ent, pev_maxs, p_maxs ); set_pev(ent, pev_absmin, p_mins); set_pev(ent, pev_absmax, p_maxs ); engfunc(EngFunc_SetOrigin, ent, xorigin); set_pev(ent,pev_solid,SOLID_BBOX); set_pev(ent,pev_movetype,MOVETYPE_FLY); new Float:p_cvar_health = get_pcvar_float(phealth)+float(cod_get_user_intelligence(id, 1, 1, 1)); set_pev(ent,pev_health,p_cvar_health); set_pev(ent,pev_takedamage,DAMAGE_YES); static Float:rvec[3]; pev(id,pev_v_angle,rvec); rvec[0] = 0.0; set_pev(ent,pev_angles,rvec); fm_drop_to_floor(ent); ilosc_workow_gracza[id]--; return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } public UsunWorek(id) { new ent, body, class[32]; get_user_aiming(id, ent, body); if(ilosc_workow_gracza[id] == max_ilosc_workow_gracza[id]) { client_print(id, print_center, "Nie postawiles jeszcze zadnego worka z piaskiem! Przywrocono tryb strzelania"); tryb[id] = 0; return PLUGIN_CONTINUE; } if(pev_valid(ent) && ilosc_workow_gracza[id] != max_ilosc_workow_gracza[id]) { pev(ent, pev_classname, class, 31); if (equal(class, g_class)) { fm_remove_entity(ent); #if defined ODDAJWORKI ilosc_workow_gracza[id]++; #endif return PLUGIN_CONTINUE; } else { client_print(id, print_center, "Wyceluj w worek! Przywrocono tryb strzelania"); tryb[id] = 0; return PLUGIN_CONTINUE; } } else { client_print(id, print_center, "Wyceluj w worek! Przywrocono tryb strzelania"); tryb[id] = 0; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public event_newround() { remove_allpalletswbags(); } bool:checkBagsPlace(Float: fOrigin[3],Float: fMins[3],Float: fMaxs[3]) { new Float:fOriginTmp[3] xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMins[0]; fOriginTmp[1] += fMaxs[1]; fOriginTmp[2] += fMaxs[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMaxs[0]; fOriginTmp[1] += fMaxs[1]; fOriginTmp[2] += fMaxs[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMins[0]; fOriginTmp[1] += fMins[1]; fOriginTmp[2] += fMaxs[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMaxs[0]; fOriginTmp[1] += fMins[1]; fOriginTmp[2] += fMaxs[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMins[0]; fOriginTmp[1] += fMaxs[1]; fOriginTmp[2] += fMins[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMaxs[0]; fOriginTmp[1] += fMaxs[1]; fOriginTmp[2] += fMins[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMins[0]; fOriginTmp[1] += fMins[1]; fOriginTmp[2] += fMins[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) fOriginTmp[0] += fMaxs[0]; fOriginTmp[1] += fMins[1]; fOriginTmp[2] += fMins[2]; if(!traceTo(fOrigin,fOriginTmp)) { return false; } xs_vec_copy(fOrigin,fOriginTmp) return true; } bool:traceTo(const Float:fFrom[3],const Float:fTo[3]) { new tr = create_tr2(); engfunc(EngFunc_TraceLine, fFrom, fTo,DONT_IGNORE_MONSTERS, 0, tr); new Float:fFrac; get_tr2(tr, TR_flFraction, fFrac); free_tr2(tr); return (fFrac == 1.0); } stock get_user_hitpoint(id, Float:hOrigin[3]) { if (!is_user_alive(id)) return 0; new Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3]; new Float:fTemp[3]; pev(id, pev_origin, fOrigin); pev(id, pev_v_angle, fvAngle); pev(id, pev_view_ofs, fvOffset); xs_vec_add(fOrigin, fvOffset, fvOrigin); engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp); xs_vec_mul_scalar(feOrigin, 9999.9, feOrigin); xs_vec_add(fvOrigin, feOrigin, feOrigin); engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id); global_get(glb_trace_endpos, hOrigin); return 1; } stock remove_allpalletswbags() { new pallets = -1; while((pallets = fm_find_ent_by_class(pallets, g_class))) fm_remove_entity(pallets); } public PobierzIlosc(id) { if(ma_klase[id]) return ilosc_workow_gracza[id] return 0; } public PobierzIloscMax(id) { if(ma_klase[id]) return max_ilosc_workow_gracza[id] return 0; } //////END OF FILE//////
#include <amxmodx> #include <amxmisc> #include <codmod> #include <engine> #include <hamsandwich> #include <fakemeta> new const nazwa[] = "Skoczek"; new const opis[] = "Ma autoBH, dwie rakietki"; new const bronie = (1<<CSW_ELITE)|(1<<CSW_M4A1); new const zdrowie = 35; new const kondycja = 15; new const inteligencja = 0; new const wytrzymalosc = 0; new sprite_blast; new ilosc_rakiet_gracza[33]; new poprzednia_rakieta_gracza[33]; new ma_klase[33]; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_touch("rocket", "*" , "DotykRakiety"); RegisterHam(Ham_Spawn, "player", "fwSpawn_Rakiety", 1); register_forward(FM_PlayerPreThink, "fwPrethink_AutoBH"); } public cod_class_enabled(id) { ColorChat(id, GREEN, "Klasa %s zostala stworzona przez www.cs-...pl ", nazwa); ma_klase[id] = true; ResetHUD(id); } public plugin_precache() { sprite_blast = precache_model("sprites/dexplo.spr"); precache_model("models/rpgrocket.mdl"); } public client_disconnect(id) { new entRakiety = find_ent_by_class(0, "rocket"); while(entRakiety > 0) { if(entity_get_edict(entRakiety, EV_ENT_owner) == id) remove_entity(entRakiety); entRakiety = find_ent_by_class(entRakiety, "rocket"); } } public cod_class_enabled(id) { ilosc_rakiet_gracza[id] = 2; ma_klase[id] = true; } public cod_class_disabled(id) { ma_klase[id] = false; } public cod_class_skill_used(id) { if (!ilosc_rakiet_gracza[id]) { client_print(id, print_center, "Wykorzystales juz wszystkie rakiety!"); } else { if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime()) { client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!"); } else { if (is_user_alive(id)) { poprzednia_rakieta_gracza[id] = floatround(get_gametime()); ilosc_rakiet_gracza[id]--; new Float: Origin[3], Float: vAngle[3], Float: Velocity[3]; entity_get_vector(id, EV_VEC_v_angle, vAngle); entity_get_vector(id, EV_VEC_origin , Origin); new Ent = create_entity("info_target"); entity_set_string(Ent, EV_SZ_classname, "rocket"); entity_set_model(Ent, "models/rpgrocket.mdl"); vAngle[0] *= -1.0; entity_set_origin(Ent, Origin); entity_set_vector(Ent, EV_VEC_angles, vAngle); entity_set_int(Ent, EV_INT_effects, 2); entity_set_int(Ent, EV_INT_solid, SOLID_BBOX); entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY); entity_set_edict(Ent, EV_ENT_owner, id); VelocityByAim(id, 1000 , Velocity); entity_set_vector(Ent, EV_VEC_velocity ,Velocity); } } } } public fwSpawn_Rakiety(id) { if(is_user_alive(id)) ilosc_rakiet_gracza[id] = 2; } public DotykRakiety(ent) { if (!is_valid_ent(ent)) return; new attacker = entity_get_edict(ent, EV_ENT_owner); new Float:fOrigin[3]; entity_get_vector(ent, EV_VEC_origin, fOrigin); new iOrigin[3]; for(new i=0;i<3;i++) iOrigin[i] = floatround(fOrigin[i]); message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin); write_byte(TE_EXPLOSION); write_coord(iOrigin[0]); write_coord(iOrigin[1]); write_coord(iOrigin[2]); write_short(sprite_blast); write_byte(32); write_byte(20); write_byte(0); message_end(); new entlist[33]; new numfound = find_sphere_class(ent, "player", 190.0, entlist, 32); for (new i=0; i < numfound; i++) { new pid = entlist[i]; if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid)) continue; cod_inflict_damage(attacker, pid, 55.0, 0.9, ent, (1<<24)); } remove_entity(ent); } public fwPrethink_AutoBH(id) { if(!ma_klase[id]) return PLUGIN_CONTINUE if (pev(id, pev_button) & IN_JUMP) { new flags = pev(id, pev_flags) if (flags & FL_WATERJUMP) return FMRES_IGNORED; if ( pev(id, pev_waterlevel) >= 2 ) return FMRES_IGNORED; if ( !(flags & FL_ONGROUND) ) return FMRES_IGNORED; new Float:velocity[3]; pev(id, pev_velocity, velocity); velocity[2] += 250.0; set_pev(id, pev_velocity, velocity); set_pev(id, pev_gaitsequence, 6); } return FMRES_IGNORED; }
mEliSa 20.11.2011
dzięki saper dziala lecz elektryk nie ;/
Użytkownik Hiroshima edytował ten post 20.11.2011 18:15