Dodanie do klasy brak rozrzutu w broniach
Emil_wymiatacz 08.09.2012
Zauważyłem że nie ma nigdzie poradniku jak dodać do klasy brak rozrzutu w broniach, więc ja napiszę jak dodać.
Zaczynamy
1. Wymagane:
2. Pod:
Dodać:
3. Do:
Dodać:
4. I na koniec klasy dodać:
Całość będzie wyglądać tak:
Myślę że pomogłem
Jak coś źle zrobiłem to pisać.
Zaczynamy
1. Wymagane:
#include <fakemeta>
2. Pod:
#include <fakemeta>
Dodać:
new bool:ma_klase[33];
3. Do:
public plugin_init()
Dodać:
register_forward(FM_PlayerPreThink, "PreThink"); register_forward(FM_UpdateClientData, "UpdateClientData", 1)
4. I na koniec klasy dodać:
public PreThink(id) { if(ma_klase[id]) set_pev(id, pev_punchangle, {0.0,0.0,0.0}) } public UpdateClientData(id, sw, cd_handle) { if(ma_klase[id]) set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0}) }
Całość będzie wyglądać tak:
#include <amxmodx>
#include <codmod>
#include <fakemeta>
new bool:ma_klase[33];
new const nazwa[] = "Rozrzutowiec";
new const opis[] = "Posiada brak rozrzutu w broniach";
new const bronie = 1<<CSW_M4A1
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
public plugin_init()
{
register_plugin(nazwa, "1.0", "AUTHOR");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_forward(FM_PlayerPreThink, "PreThink");
register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
ma_klase[id] = false;
public PreThink(id)
{
if(ma_klase[id])
set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}
public UpdateClientData(id, sw, cd_handle)
{
if(ma_klase[id])
set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})
}
Myślę że pomogłem
Jak coś źle zrobiłem to pisać.
Kewin. (ZeZ)
11.06.2013
Bo, źle robisz!
Wy sie nie nauczycie, od razu wrzucac plikow .sma?!
Magic..
22.12.2013
Dzięki bardzo Drago36 ale znalazłem na no-racional więc to samo prawie jest ok .
link : http://amxx.pl/topic...e-2#entry593291
Użytkownik Magic.. edytował ten post 22.12.2013 09:31
ByQ_Pl
01.01.2014
A zamiast całkowitego to np. zmniejszenie "O POŁOWE" ??
Jak ten perk, ogranicznik rozrzutu ;D
RasiaQ
01.01.2014
To wtedy wygląda to tak
Biblioteki:
#include <fakemeta>
Zmienna:
new ma_klase[33];
W plugin_init()
register_forward(FM_CmdStart, "CmdStart");
Jeśli nie masz to dodajesz :
public cod_class_enabled(id) { ma_klase[id] = true; } public cod_perk_disabled(id) { ma_klase[id] = false; }
I na koniec .sma
public CmdStart(id, uc_handle) { if(ma_klase[id] && get_uc(uc_handle, UC_Buttons) & IN_ATTACK) { new Float:punchangle[3] pev(id, pev_punchangle, punchangle) for(new i=0; i<3;i++) punchangle[i]*=0.9; set_pev(id, pev_punchangle, punchangle) } }
Tops 12.01.2016
sry ale nie daje sie kompilikowac
Welcome to the AMX Mod X 1.8.1-300 Compiler.Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Teamcodclass_ReciolMaster.sma(1) : error 010: invalid function or declarationcodclass_ReciolMaster.sma(24) : error 021: symbol already defined: "ma_klase"2 Errors.Could not locate output file codclass_ReciolMaster.amxx (compile failed).
kod sma.
#include <amxmodx>
#include <amxmisc>#include <codmod>#include <engine>#include <hamsandwich>#include <fakemeta>new bool:ma_klase[33];new const nazwa[] = "Reciol Master ";new const opis[] = "Posiada 3 skoki, 2 miny, eleminator rozrzutu i wlasny model gracza ";new const bronie = (1<<CSW_M4A1)|(1<<CSW_DEAGLE)|(1<<CSW_P90);new const zdrowie = 25;new const kondycja = 30;new const inteligencja = 30;new const wytrzymalosc = 30;new const modelMiny[] = "models/QTM_CodMod/mine.mdl"new sprite_blast_miny;new ilosc_min_gracza[33];new skoki[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("mine", "player", "DotykMiny");register_event("HLTV", "NowaRunda_Miny", "a", "1=0", "2=0");RegisterHam(Ham_Spawn, "player", "fwSpawn_Miny", 1);register_forward(FM_CmdStart, "fwCmdStart_MultiJump");RegisterHam( Ham_Spawn, "player", "fwSpawn_ModelGracza" );register_forward(FM_PlayerPreThink, "PreThink");register_forward(FM_UpdateClientData, "UpdateClientData", 1)}public plugin_precache(){precache_model(modelMiny);sprite_blast_miny = precache_model("sprites/dexplo.spr");static szModel[ ] = "models/player/reciol_master/reciol_master.mdl";precache_model( szModel );}public client_disconnect(id){new entMiny = find_ent_by_class(0, "mine");while(entMiny > 0){if(entity_get_edict(entMiny, EV_ENT_owner) == id)remove_entity(entMiny);entMiny = find_ent_by_class(entMiny, "mine");}}public cod_class_enabled(id){if(!(get_user_flags(id) & ADMIN_LEVEL_G)){client_print(id, print_chat, "[Reciol Master ] Nie masz uprawnien, aby uzywac tej klasy.")return COD_STOP;}ilosc_min_gracza[id] = 3;ma_klase[id] = true;return COD_CONTINUE;}public cod_class_disabled(id){ma_klase[id] = false;}public cod_class_skill_used(id){if (!ilosc_min_gracza[id]){client_print(id, print_center, "Wykorzystales juz wszystkie miny!");}else{ilosc_min_gracza[id]--;new Float:origin[3];entity_get_vector(id, EV_VEC_origin, origin);new ent = create_entity("info_target");entity_set_string(ent ,EV_SZ_classname, "mine");entity_set_edict(ent ,EV_ENT_owner, id);entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);entity_set_origin(ent, origin);entity_set_int(ent, EV_INT_solid, SOLID_BBOX);entity_set_model(ent, modelMiny);entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});drop_to_floor(ent);set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50);}}public fwSpawn_Miny(id){if(is_user_alive(id))ilosc_min_gracza[id] = 3;}public DotykMiny(ent, id){if(!is_valid_ent(ent))return;new attacker = entity_get_edict(ent, EV_ENT_owner);if (get_user_team(attacker) != get_user_team(id)){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_miny);write_byte(32);write_byte(20);write_byte(0);message_end();new entlist[33];new numfound = find_sphere_class(ent,"player", 90.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, 70.0, 0.8, ent, (1<<24));}remove_entity(ent);}}public NowaRunda_Miny(){new entMiny = find_ent_by_class(-1, "mine");while(entMiny > 0){remove_entity(entMiny);entMiny = find_ent_by_class(entMiny, "mine");}}public fwCmdStart_MultiJump(id, uc_handle){if(!is_user_alive(id) || !ma_klase[id])return FMRES_IGNORED;new flags = pev(id, pev_flags);if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]){skoki[id]--;new Float:velocity[3];pev(id, pev_velocity,velocity);velocity[2] = random_float(265.0,285.0);set_pev(id, pev_velocity,velocity);}else if(flags & FL_ONGROUND)skoki[id] = 3;return FMRES_IGNORED;}public fwSpawn_ModelGracza( id ){if( !is_user_alive( id ) || !ma_klase[ id ] )return;engfunc( EngFunc_SetClientKeyValue, id, engfunc( EngFunc_GetInfoKeyBuffer, id ), "model", "reciol_master" );}public PreThink(id){if(ma_klase[id])set_pev(id, pev_punchangle, {0.0,0.0,0.0})}public UpdateClientData(id, sw, cd_handle){if(ma_klase[id])set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})}