cod, pb i jesli podejrzewasz jakis inny plugin to tez wrzuc.
Wklej też plugins.ini
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Pare moich prac:
- Mój github, na którym znajdują się jakieś pluginy: https://github.com/r...98/AMXX_Plugins
- losowy vip dla X osób: https://amxx.pl/topi...vip-dla-x-osób/
- strzał w głowe jeśli ktoś nie ma hełmu = śmierć https://amxx.pl/topi...nie-masz-hełmu/
- load error 17 invalid file format or version https://amxx.pl/topi...mat-or-version/
- blokada wiadomosciu typu auto-help https://amxx.pl/topi...anie-auto-help/
- info po smierci - o pace, o graczach (zautomatyzowane) https://amxx.pl/topi...enie-na-respie/
- naprawa fatal error 100 - cannot read from file https://amxx.pl/topi...-from-file-xxx/
- de_rats_1337 buyzone fix https://amxx.pl/topi...37-buyzone-fix/
- moj stary cod mod, kilka jego wersji https://amxx.pl/topi...-paczki-modeli/
- kara za kampienie na respie https://amxx.pl/topi...własnej-strefy/
Napisane przez Rivit w 19.11.2021 11:48
Napisane przez Rivit w 13.05.2021 19:13
Napisane przez Rivit w 12.04.2021 20:22
Hmmm, gra nie warta świeczki.
Najczęściej najlepszym pomysłem jest zmniejszenie częstotliwości odświeżania huda (set_task). Ja często dawałem, żeby co sekundę się odświeżało (należy wtedy dostosować długosć wyświetlania wiadomości hud (któryś parametr set_hudmessage)), bo osobiście uwazam, że odświeżanie np co 0.1s nie ma sensu.
Jeszcze co widze w tym kawałku to można porobić 'else ify', ale to znikoma optymalizacja
Napisane przez Rivit w 04.03.2021 17:17
Napisane przez Rivit w 24.02.2021 19:55
Mało informacji... jaka wersja silnika
Zainteresuj sie tym. Poczytaj o ReUnion, ogarniesz szybko
https://github.com/AMXX-pl/BasePack
Napisane przez Rivit w 13.02.2021 18:08
Wydaje mi sie ze juz robiłem komus to na forum. Wystarczyło (z tego co pamiętam) opóźnić wczytywanie.
Zamień cały public client_authorized na to:
public client_authorized(index) { set_task(2.0, "delayed_client_authorized", index); } public delayed_client_authorized(index){ if(!is_user_connected(index)){ return; } get_user_rank(index, true); toggle_hud(index, true); }
Napisane przez Rivit w 02.02.2021 10:06
Napisane przez Rivit w 02.02.2021 10:05
Napisane przez Rivit w 02.02.2021 10:03
Napisane przez Rivit w 31.01.2021 23:14
Posiadam błąd z client_authorized(id); przy kompilowaniu, co mam zrobić aby dzialalo?
Edit: Jednak są takie błędy:
jail_mafiozo.sma(0) : error 075: input line too long (after substitutions)jail_mafiozo.sma(5) : error 013: no entry point (no public functions)Zerowej linijki nie ma, a 5 to #include <fun>(Przepraszam ze post pod postem ale gdy edytuje post jest jakiś Database error)
Masz złe kodowanie znaków w pliku. Ustaw jakieś UTF8 bez BOM
Nie komplikuje sie to vIp.sma chcialem poprawić linie 527 ale znajść jej nie moge. jak na wersje 12.3.0.2 to marny ten vip.
Załóż nowy temat na forum z potrzebnymi informacjami, bo nie da się na podstawie tych informacji nic wywnioskować.
Napisane przez Rivit w 25.01.2021 21:48
Napisane przez Rivit w 25.01.2021 12:20
Napisane przez Rivit w 15.01.2021 23:33
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#include <zombieplague>
#include <xs>
//Uncomment this if your server is running ZP50 and above.
//#define UseZP50
#if defined UseZP50
#tryinclude <zp50_core>
#tryinclude <zp50_items>
#tryinclude <zp50_ammopacks>
#tryinclude <zp50_class_survivor>
#else
#tryinclude <zombieplague>
#endif
new bool:bIsAlive[33], iGas[33], SprSmoke, iMaxClients, iItem
#define JpPower 400
#define JpUp 200.0
#define MaxGas 20
#define ClassnameJp "n4d_jetpack"
#define ModelJp "models/zs/p_jp2.mdl"
#define SoundFly "zs/fly2.wav"
#define SoundBlow "zs/blow.wav"
#define ItemName "ML_JETPACK"
#define ItemCost 50
new bool:kupil[33]
public plugin_precache()
{
SprSmoke = precache_model("sprites/smoke.spr")
precache_model(ModelJp)
precache_sound(SoundFly)
precache_sound(SoundBlow)
}
public plugin_init()
{
register_plugin(ItemName, "0.0.1", "wbyokomo")
RegisterHam(Ham_Spawn, "player", "OnSpawnPost", 1)
RegisterHam(Ham_Killed, "player", "OnKilled")
register_forward(FM_ClientDisconnect, "OnClientDisconnect")
register_think(ClassnameJp, "OnThinkJetPack")
iMaxClients = get_maxplayers()
#if defined UseZP50
iItem = zp_items_register(ItemName, ItemCost)
#else
iItem = zp_register_extra_item(ItemName, ItemCost, ZP_TEAM_HUMAN)
#endif
register_clcmd("say /jp","CmdBuyJetPack")
register_dictionary("zombie_plague.txt")
}
//this forward is from CSBot_Init API by PRoSToTeM@, see http://forums.alliedmods.net/showpost.php?s=3faa8633e3e2573157f4cd48fbd4e19e&p=2080292&postcount=15
public CSBot_Init(id)
{
RegisterHamFromEntity(Ham_Spawn, id, "OnSpawnPost", 1)
RegisterHamFromEntity(Ham_Killed, id, "OnKilled")
}
public OnClientDisconnect(id)
{
bIsAlive[id] = false
ResetJetPack(id)
}
public OnSpawnPost(id)
{
if(!is_user_alive(id)) return;
bIsAlive[id] = true
}
public OnKilled(id)
{
bIsAlive[id] = false
ResetJetPack(id)
}
public OnThinkJetPack(ent)
{
if(ent < 1) return;
static id; id = entity_get_edict(ent, EV_ENT_owner);
if(!(1<=id<=iMaxClients)) return;
if(!bIsAlive[id]) return;
static button; button = entity_get_int(id, EV_INT_button);
if((iGas[id] > 0) && (button & IN_DUCK) && (button & IN_JUMP))
{
static Float:Velocity[3], Float:Origin[3]
velocity_by_aim(id, JpPower, Velocity)
Velocity[2] = JpUp
entity_set_vector(id, EV_VEC_velocity, Velocity)
entity_get_vector(ent, EV_VEC_origin, Origin)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, Origin, 0)
write_byte(TE_BEAMFOLLOW)
write_short(id)
write_short(SprSmoke)
write_byte(2)
write_byte(7)
write_byte(128)
write_byte(32)
write_byte(8)
write_byte(192)
message_end()
iGas[id]--
if(iGas[id] > 5) emit_sound(id, CHAN_WEAPON, SoundFly, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
else emit_sound(id, CHAN_WEAPON, SoundBlow, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}
else
{
if((iGas[id] < MaxGas) && !(button & IN_DUCK) && !(button & IN_JUMP))
{
iGas[id]++
}
}
entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.1)
}
public client_authorized(id)
{
kupil[id] = false;
}
public CmdBuyJetPack(id)
{
if(!bIsAlive[id]) return PLUGIN_HANDLED;
#if defined UseZP50
if(zp_core_is_zombie(id)) return PLUGIN_HANDLED;
if(zp_class_survivor_get(id)) return PLUGIN_HANDLED;
#else
if(zp_get_user_zombie(id)) return PLUGIN_HANDLED;
if(zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
if(zp_get_user_survivor(id)) return PLUGIN_HANDLED;
if(kupil[id]) return PLUGIN_HANDLED;
#endif
static iAP
#if defined UseZP50
iAP = zp_ammopacks_get(id)
#else
iAP = zp_get_user_ammo_packs(id)
#endif
if(iAP < ItemCost) return PLUGIN_HANDLED;
if(IsPlayerHasJetPack(id)) return PLUGIN_HANDLED;
CreateJetPack(id)
#if defined UseZP50
zp_ammopacks_set(id, iAP-ItemCost)
#else
zp_set_user_ammo_packs(id, iAP-ItemCost)
#endif
client_print(id, print_chat, "[ZP] Kupiles JetPack, like a Boss. Przytrzymaj SKOK+KUCANIE aby poleciec.")kupil[id] = true;
return PLUGIN_HANDLED;
}
#if defined UseZP50
public zp_fw_items_select_pre(id, item, ignorecost)
{
if(item != iItem) return ZP_ITEM_AVAILABLE;
if(zp_core_is_zombie(id)) return ZP_ITEM_DONT_SHOW;
if(IsPlayerHasJetPack(id)) return ZP_ITEM_NOT_AVAILABLE;
return ZP_ITEM_AVAILABLE;
}
public zp_fw_items_select_post(id, item, ignorecost)
{
if(item != iItem) return;
CreateJetPack(id)
client_print(id, print_chat, "[ZP] You just bought a JetPack, fly like a BOSS. Hold JUMP+DUCK to fly.")
}
public zp_fw_core_infect_post(id)
{
ResetJetPack(id)
}
public zp_fw_core_cure_post(id)
{
ResetJetPack(id)
}
#else
public zp_extra_item_selected(id, item)
{
if(item == iItem)
{
if(IsPlayerHasJetPack(id)) return ZP_PLUGIN_HANDLED;
CreateJetPack(id)
client_print(id, print_chat, "[ZP] You just bought a JetPack, fly like a BOSS. Hold JUMP+DUCK to fly.")
}
return PLUGIN_CONTINUE;
}
public zp_user_infected_post(id)
{
ResetJetPack(id)
}
public zp_user_humanized_post(id)
{
ResetJetPack(id)
}
#endif
CreateJetPack(id)
{
new ent = create_entity("info_target")
if(ent < 1) return;
new Float:Origin[3]
entity_get_vector(id, EV_VEC_origin, Origin)
entity_set_string(ent, EV_SZ_classname, ClassnameJp)
entity_set_model(ent, ModelJp)
entity_set_origin(ent, Origin)
entity_set_int(ent, EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(ent, EV_ENT_aiment, id)
entity_set_int(ent, EV_INT_solid, SOLID_NOT)
entity_set_size(ent, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0})
entity_set_edict(ent, EV_ENT_owner, id)
entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.1)
}
RemovePlayerJetPack(id)
{
new ent = -1
while((ent = find_ent_by_class(ent, ClassnameJp)))
{
if(entity_get_edict(ent, EV_ENT_owner) != id) continue;
entity_set_float(ent, EV_FL_nextthink, 0.0)
remove_entity(ent)
}
}
IsPlayerHasJetPack(id)
{
new ent = -1
new bHasJP = 0
while((ent = find_ent_by_class(ent, ClassnameJp)))
{
if(entity_get_edict(ent, EV_ENT_owner) == id)
{
bHasJP = 1
break;
}
}
return bHasJP;
}
ResetJetPack(id)
{
iGas[id] = MaxGas
RemovePlayerJetPack(id)
}
Nie chce działać, możesz dać zamiast limitu na jedną mapę, to żeby po rundzie jetpack zniknął dla gracza?
Polecam kod wstawiać w załącznik oraz nie cytować długich wiadomości, bo przegląda się to tragicznie.
Napisane przez Rivit w 15.01.2021 19:06
Rozumiem że jedynym wyznacznikiem osoby która ma zostać przetransportowana jest status?
Tego nie wiem, można jeszcze po modelu postaci sprawdzić. Tak mi tera do gowy przyszło.
A co jeśli status mają również osoby które są tzw. przysłowiowym serwerowym VIPem a nie tym trybowym, z mapy?
A no widzisz, będzie dokładnie tak jak mówisz
Napisane przez Rivit w 15.01.2021 18:23
Ciekawe, pograłbym w sumie na takim czymś
Popatrz jak generator vipa to robi:
public plugin_init(){ register_message(get_user_msgid("ScoreAttrib"), "VipStatus"); } public VipStatus(){ new id=get_msg_arg_int(1); if(is_user_alive(id) && g_Vip[id]){ set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4); } }
można pobrać drugi argument i sprawdzić czy & 4 daje coś większego od zera. Nie mam pojęcia tylko w którym to momencie sie odpala ta message, ale powinna na początku rundy