Witam
Czy da się dodać spadochron do klasy bez żadnych modyfikacji?
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.
|
Napisano 27.12.2014 11:35
Da radę
przykładowa klasa
#include <amxmodx> #include <amxmisc> #include <codmod> new const nazwa[] = "test"; new const opis[] = "test"; new const bronie = (1<<CSW_P228); new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); }
Dodajesz
#include <fakemeta> #include <engine>
pod tym
new bool:has_parachute[33] new para_ent[33] new pDetach, pFallSpeed, pEnabled
dalej dajesz public gdzie rejestrujesz uzywanie modelu
public plugin_precache() precache_model("models/parachute.mdl")
w public plugin_init dajesz
register_plugin("Parachute", "1.3", "KRoT@L/JTP10181") // edited by ^^KaMaZZ~.^ pEnabled = register_cvar("sv_parachute", "1" ) pFallSpeed = register_cvar("parachute_fallspeed", "100") pDetach = register_cvar("parachute_detach", "1") register_event("ResetHUD", "newSpawn", "be") register_event("DeathMsg", "death_event", "a") //Setup jtp10181 CVAR new cvarString[256], shortName[16] copy(shortName,15,"chute") register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY) get_cvar_string("jtp10181",cvarString,255) if (strlen(cvarString) == 0) { formatex(cvarString,255,shortName) set_cvar_string("jtp10181",cvarString) } else if (contain(cvarString,shortName) == -1) { format(cvarString,255,"%s,%s",cvarString, shortName) set_cvar_string("jtp10181",cvarString) } }
i na końcu reszta możesz na końcu pluginu dać
public newSpawn(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } has_parachute[id] = true; } public death_event() { new id = read_data(2) parachute_reset(id) } parachute_reset(id) { if(para_ent[id] > 0) { if (is_valid_ent(para_ent[id])) remove_entity(para_ent[id]) } if (is_user_alive(id)) fm_set_user_gravity(id, 1.0) has_parachute[id] = false para_ent[id] = 0 } public client_PreThink(id) { if (!get_pcvar_num(pEnabled)) return if (!is_user_alive(id) || !has_parachute[id]) return new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0 new Float:frame new button = get_user_button(id) new oldbutton = get_user_oldbutton(id) new flags = get_entity_flags(id) if (para_ent[id] > 0 && (flags & FL_ONGROUND)) { if (get_pcvar_num(pDetach)) { if (fm_get_user_gravity(id) == 0.1) fm_set_user_gravity(id, 1.0) if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) { entity_set_int(para_ent[id], EV_INT_sequence, 2) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.0) return } frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 254.0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } else { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } return } if (button & IN_USE) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if (velocity[2] < 0.0) { if(para_ent[id] <= 0) { para_ent[id] = create_entity("info_target") if(para_ent[id] > 0) { entity_set_string(para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(para_ent[id], EV_ENT_aiment, id) entity_set_edict(para_ent[id], EV_ENT_owner, id) entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(para_ent[id], "models/parachute.mdl") entity_set_int(para_ent[id], EV_INT_sequence, 0) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } if (para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) fm_set_user_gravity(id, 0.1) velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.4) entity_set_int(para_ent[id], EV_INT_sequence, 1) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (para_ent[id] > 0) { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } } else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } } stock Float:fm_get_user_gravity(index) { new Float:gravity; pev(index, pev_gravity, gravity); return gravity; } stock fm_set_user_gravity(index, Float:gravity = 1.0) { set_pev(index, pev_gravity, gravity); return 1; }
za chwile dodam jak powinien kod wygladać ... gotowy
#include <amxmodx> #include <amxmisc> #include <codmod> #include <fakemeta> #include <engine> new bool:has_parachute[33] new para_ent[33] new pDetach, pFallSpeed, pEnabled new const nazwa[] = "test"; new const opis[] = "test"; new const bronie = (1<<CSW_P228); new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; public plugin_precache() precache_model("models/parachute.mdl") public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_plugin("Parachute", "1.3", "KRoT@L/JTP10181") // edited by ^^KaMaZZ~.^ pEnabled = register_cvar("sv_parachute", "1" ) pFallSpeed = register_cvar("parachute_fallspeed", "100") pDetach = register_cvar("parachute_detach", "1") register_event("ResetHUD", "newSpawn", "be") register_event("DeathMsg", "death_event", "a") //Setup jtp10181 CVAR new cvarString[256], shortName[16] copy(shortName,15,"chute") register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY) get_cvar_string("jtp10181",cvarString,255) if (strlen(cvarString) == 0) { formatex(cvarString,255,shortName) set_cvar_string("jtp10181",cvarString) } else if (contain(cvarString,shortName) == -1) { format(cvarString,255,"%s,%s",cvarString, shortName) set_cvar_string("jtp10181",cvarString) } } register_plugin("Parachute", "1.3", "KRoT@L/JTP10181") // edited by ^^KaMaZZ~.^ pEnabled = register_cvar("sv_parachute", "1" ) pFallSpeed = register_cvar("parachute_fallspeed", "100") pDetach = register_cvar("parachute_detach", "1") register_event("ResetHUD", "newSpawn", "be") register_event("DeathMsg", "death_event", "a") //Setup jtp10181 CVAR new cvarString[256], shortName[16] copy(shortName,15,"chute") register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY) get_cvar_string("jtp10181",cvarString,255) if (strlen(cvarString) == 0) { formatex(cvarString,255,shortName) set_cvar_string("jtp10181",cvarString) } else if (contain(cvarString,shortName) == -1) { format(cvarString,255,"%s,%s",cvarString, shortName) set_cvar_string("jtp10181",cvarString) } } i na końcu reszta możesz na końcu pluginu dać public newSpawn(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } has_parachute[id] = true; } public death_event() { new id = read_data(2) parachute_reset(id) } parachute_reset(id) { if(para_ent[id] > 0) { if (is_valid_ent(para_ent[id])) remove_entity(para_ent[id]) } if (is_user_alive(id)) fm_set_user_gravity(id, 1.0) has_parachute[id] = false para_ent[id] = 0 } public client_PreThink(id) { if (!get_pcvar_num(pEnabled)) return if (!is_user_alive(id) || !has_parachute[id]) return new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0 new Float:frame new button = get_user_button(id) new oldbutton = get_user_oldbutton(id) new flags = get_entity_flags(id) if (para_ent[id] > 0 && (flags & FL_ONGROUND)) { if (get_pcvar_num(pDetach)) { if (fm_get_user_gravity(id) == 0.1) fm_set_user_gravity(id, 1.0) if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) { entity_set_int(para_ent[id], EV_INT_sequence, 2) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.0) return } frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 254.0) { remove_entity(para_ent[id]) para_ent[id] = 0 } } else { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } return } if (button & IN_USE) { new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) if (velocity[2] < 0.0) { if(para_ent[id] <= 0) { para_ent[id] = create_entity("info_target") if(para_ent[id] > 0) { entity_set_string(para_ent[id],EV_SZ_classname,"parachute") entity_set_edict(para_ent[id], EV_ENT_aiment, id) entity_set_edict(para_ent[id], EV_ENT_owner, id) entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW) entity_set_model(para_ent[id], "models/parachute.mdl") entity_set_int(para_ent[id], EV_INT_sequence, 0) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } if (para_ent[id] > 0) { entity_set_int(id, EV_INT_sequence, 3) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, 1.0) entity_set_float(id, EV_FL_framerate, 1.0) fm_set_user_gravity(id, 0.1) velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed entity_set_vector(id, EV_VEC_velocity, velocity) if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) { frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0 entity_set_float(para_ent[id],EV_FL_fuser1,frame) entity_set_float(para_ent[id],EV_FL_frame,frame) if (frame > 100.0) { entity_set_float(para_ent[id], EV_FL_animtime, 0.0) entity_set_float(para_ent[id], EV_FL_framerate, 0.4) entity_set_int(para_ent[id], EV_INT_sequence, 1) entity_set_int(para_ent[id], EV_INT_gaitsequence, 1) entity_set_float(para_ent[id], EV_FL_frame, 0.0) entity_set_float(para_ent[id], EV_FL_fuser1, 0.0) } } } } else if (para_ent[id] > 0) { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } } else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) { remove_entity(para_ent[id]) fm_set_user_gravity(id, 1.0) para_ent[id] = 0 } } stock Float:fm_get_user_gravity(index) { new Float:gravity; pev(index, pev_gravity, gravity); return gravity; } stock fm_set_user_gravity(index, Float:gravity = 1.0) { set_pev(index, pev_gravity, gravity); return 1; }
Trzeba kompliowac lokalnie bo w kompilatorze amxx nie ma chyba jakieś biblioteki
http://amxx.pl/topic...ilacja-lokalna/
Jesli nie ogarniesz pporadnika to poproś o kompliacje w odpowiednim dziale
Użytkownik TheMarkerxD edytował ten post 27.12.2014 11:41
Napisano 27.12.2014 13:40
Napisano 27.12.2014 13:42
amxbans_core.amxx amxbans_main.amxx ;RegisterSystemDatatTansferor.amxx RegisterSystem.amxx ; AMX Mod X plugins ; Admin Base - Always one has to be activated ;admin.amxx ; admin base (required for any admin-related) ;admin_sql.amxx ; admin base - SQL version (comment admin.amxx) ; Basic admincmd.amxx ; basic admin console commands adminhelp.amxx ; help command for admin console commands adminslots.amxx ; slot reservation multilingual.amxx ; Multi-Lingual management ; Menus menufront.amxx ; front-end for admin menus cmdmenu.amxx ; command menu (speech, settings) plmenu.amxx ; players menu (kick, ban, client cmds.) ;telemenu.amxx ; teleport menu (Fun Module required!) mapsmenu.amxx ; maps menu (vote, changelevel) pluginmenu.amxx ; Menus for commands/cvars organized by plugin ; Chat / Messages adminchat.amxx ; console chat commands antiflood.amxx ; prevent clients from chat-flooding the server scrollmsg.amxx ; displays a scrolling message imessage.amxx ; displays information messages adminvote.amxx ; vote commands ; Map related ;nextmap.amxx ; displays next map in mapcycle ;mapchooser.amxx ; allows to vote for next map timeleft.amxx ; displays time left on map ; Configuration pausecfg.amxx ; allows to pause and unpause some plugins statscfg.amxx ; allows to manage stats plugins via menu and commands ; Counter-Strike ;restmenu.amxx ; restrict weapons menu statsx.amxx ; stats on death or round end (CSX Module required!) ;miscstats.amxx ; bunch of events announcement for Counter-Strike ;stats_logging.amxx ; weapons stats logging (CSX Module required!) ; Enable to use AMX Mod plugins ;amxmod_compat.amxx ; AMX Mod backwards compatibility layer ; TUTAJ dopisuj samodzielnie zainstalowane pluginy: ; +---------------------------------------------------------------------------+ ; | W Panelu Administracyjnym mozesz zainstalowac dodatkowe pluginy. -==- | ; | Prosimy aby zainstalowane "recznie" pluginy dopisywac powyzej tej tabeli! | ; +---------------------------------------------------------------------------+ ; Pluginy zainstalowane z poziomu panelu: ; PaintBall paintballgun.amxx paintballmod.amxx paintballnade.amxx ; Modyfikacje wytrzymalosc_perku.amxx cod_adminmenu.amxx ;cod_shop.amxx ; Zmiana modeli i dzwięków: GHW_Weapon_Replacement.amxx afkkicker2.amxx unbanmenu.amxx admin_spec_esp.amxx aimbotdetect.amxx autobh.amxx ad_manager.amxx c4timer.amxx ultimate_ss.amxx fast_fix_hashsign.amxx admin_freelook.amxx galileo.amxx hpk.amxx join_leave.amxx ptb.amxx adminchat.amxx OddajPerk_wytrzymalosc.amxx prefixy_cod.amxx ne_unlimitedammo.amxx asysta_i_zemsta.amxx
CoD Nowy
perk zwiększający wytrzymałość pekuNapisany przez Rafii , 05.03.2024 cod nowy |
|
|
|||
|
CoD Nowy
Modele KlasyNapisany przez Puni07 , 11.02.2024 cod nowy |
|
|
||
CoD Nowy
Problem z dywizjąNapisany przez Puni07 , 08.02.2024 cod nowy |
|
|
|||
CoD Nowy
Misjedodac exp Napisany przez Anonimowy09 , 08.01.2024 cod nowy |
|
|
|||
CoD Nowy
Broń z cso do klasy postaciNapisany przez Voltia , 12.02.2023 cod nowy |
|
|
0 użytkowników, 0 gości, 0 anonimowych