Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

SzyjaN - zdjęcie

SzyjaN

Rejestracja: 18.11.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 21.12.2014 14:00
-----

Moje tematy

Edycja rozgrzewki w dd2_final

21.06.2012 11:54

Witam.
Testowałem u siebie plugin dd2_final i wraz ze znajomymi zauważyłem, że lepiej będzie, jeśli podczas rozgrzewki gracze będą posiadali tylko noże. Czy jest ktoś w stanie wytłumaczyć mi, gdzie, i w jaki sposób to zmienić? Domyślam się, że to użycie funkcji strip_user_weapons, ale nie mam zbytnio pomysłu, jak jej użyć w tym przypadku. Za pomoc oczywiście +


#include <amxmodx>
#include <cstrike>
new tt, ct, plimit, pchange, prestart, pinforma;
new SayText, SyncHudObj;
new tag[] = "!t[DD2]";
public plugin_init() {
register_plugin("DD2", "1.6", "byQQ");

register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0");

register_message(get_user_msgid("TextMsg"), "message_TextMsg");

plimit = register_cvar("rr_limit", "20");
pchange = register_cvar("rr_change", "1");
prestart = register_cvar("rr_restart", "1");
pinforma = register_cvar("rr_plainfo", "1");

SyncHudObj = CreateHudSyncObj();
SayText = get_user_msgid("SayText");

if(get_pcvar_num(prestart))
WymusRes(60);
}
public WymusRes(czas) {
new param[1]; param[0] = czas;
set_task(1.0, "WyswietlRes", _, param, 1);
}
public event_RoundStart() {
new limit = get_pcvar_num(plimit);
new sumka = ct+tt;
new pozos = limit - (ct+tt);

if(sumka >= limit) {
if(ct == tt) {
msg(0, "%s!g Mamy remis, runda rozstrzygajaca", tag);
return;
}

if(get_pcvar_num(pchange)) ZamianaTeam();

set_cvar_num("sv_restart", 3);
set_cvar_num("amx_reloadadmins", 1);
if(tt > ct) msg(0, "%s!g Wygrali Terrorysci %d/%d", tag, tt, ct);
else msg(0, "%s!g Wygrali Anty Terrorysci %d/%d", tag, ct, tt);
if(get_pcvar_num(prestart)) WymusRes(50);
ct = tt = 0;
} else {
msg(0, "%s!g Restart mapy za %d rund%s", tag, pozos, (pozos == 1) ? "e" : (pozos < 5) ? "y" : "");

if(get_pcvar_num(pinforma)) ZwrocNajlepszego();
}
}
public message_TextMsg(const MsgId, const MsgDest, const MsgEntity) {
static message[32]; get_msg_arg_string(2, message, charsmax(message));

if(equal(message, "#Game_will_restart_in")) { Wyzeruj(); }
else if(equal(message, "#Terrorists_Win") || equal(message, "#Target_Bombed")) { tt++; }
else if(equal(message, "#CTs_Win")) { ct++; }
}
public ZamianaTeam() {
new players[32], num;
get_players(players, num);

for(new i = 0; i < num; i++) {
cs_set_user_team(players[i], cs_get_user_team(players[i]) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT);
}
msg(0, "%s!g Zamieniam druzyny!", tag);
}
public Wyzeruj() ct = tt = 0;
public ZwrocNajlepszego() {
new players[32], num;
get_players(players, num);

new fragi, dedy, top[4];
for(new i = 0; i < num; i++) {
new id = players[i];
if(!is_user_connected(id) || is_user_hltv(id)) continue;

fragi = get_user_frags(id);
dedy = get_user_deaths(id);

new suma = fragi*2 - dedy;

if(suma > top[3]) {
top[0] = fragi; // Fragi najlepszego
top[1] = dedy; // Dedy najlepszego
top[2] = id; // ID najlepszego
top[3] = top[0]*2 - top[1]; // Bilans do dalszego porownania
}
}

if(!top[2]) return;

new name[33]; get_user_name(top[2], name, 32);

msg(0, "%s!g Najlpeszym graczem jest !t%s (%d/%d)", tag, name, top[0], top[1]);
}
public WyswietlRes(param[])
{
set_hudmessage(0, 255, 0, 0.65, 0.75, 0, 0.0, 1.0, 0.0, 0.0);
ShowSyncHudMsg(0, SyncHudObj, "=== Rozgrzewka ===^n[Pozostaly czas: %d]", param[0]);

param[0]--;

if(param[0] >= 0) { set_task(1.0, "WyswietlRes", _, param, 1); }
else {
set_cvar_num("sv_restartround", 1);
Wyzeruj();
}
}
stock msg(const id, const string[], {Float, Sql, Resul,_}:...) {

new msgs[191], players[32], count = 1;
vformat(msgs, sizeof msgs - 1, string, 3);

replace_all(msgs,190,"!g","^4");
replace_all(msgs,190,"!y","^1");
replace_all(msgs,190,"!t","^3");

if(id) players[0] = id;
else get_players(players,count,"ch");

new index;
for (new i = 0 ; i < count ; i++)
{
index = players[i];
message_begin(MSG_ONE_UNRELIABLE, SayText, _, index);
write_byte(index);
write_string(msgs);
message_end();
}
}

Zombie Plague by SzyjaN

15.06.2012 20:26

Zombie Plague Mod


Wersja Amxx - 1.8.0 lub nowsze
Metamod - 1.19.0.0

Paczka zawiera w sobie jedną z najnowszych wersji pluginu Zombie Plague (5.0.6), prawie całkowicie spolszczoną.

plugins-zp50_ammopacks:
; ZP 5.0 / Module Version
; -----------------------

; Engine
zm_vip.amxx	; VIP
zp50_core.amxx  
zp_countdown_zp5.0.amxx  ; odliczanie do infekcji

; APIs
amx_settings_api.amxx
cs_player_models_api.amxx
cs_teams_api.amxx
cs_maxspeed_api.amxx
cs_weap_models_api.amxx
cs_weap_restrict_api.amxx
cs_ham_bots_api.amxx

; Classes
zp50_class_zombie.amxx
zp50_class_human.amxx
zp50_class_nemesis.amxx
zp50_class_survivor.amxx

; Zombie Classes
zp50_class_zombie_classic.amxx  ; Zwykly zarazony
zp_zclass_witch2.amxx	; Witch
zp_zclass_infecter_zombie.amxx  ; Samobojca
zp_zclass_lockerz.amxx	; Elektryczny
zp50_class_zombie_leech.amxx   ; Wampir
zp_zombie_respawn.amxx	; Umarly
zp_zclass_hunter_zombie.amxx   ; Hunter
; Human Classes
zp50_class_wojskowy.amxx   ; Wojskowy
zp50_class_human_classic.amxx   ; US Marine
zp50_class_human_raptor.amxx   ; Szturmowiec
zp50_class_kaskader.amxx   ; Kaskader

; This must come before game modes for armor protection to work properly
zp50_human_armor.amxx

; Game Modes Manager
zp50_gamemodes.amxx

; Game Modes
zp50_gamemode_infection.amxx  
zp50_gamemode_multi.amxx
zp50_gamemode_swarm.amxx  
zp50_gamemode_nemesis.amxx
zp50_gamemode_survivor.amxx  
zp50_gamemode_plague.amxx  
zp50_gamemode_armageddon.amxx

; Items Manager
zp50_items.amxx
zp50_items_ammopacks.amxx

; Extra Items
zp50_item_weapons.amxx
zp50_item_nightvision.amxx
zp50_item_antidote.amxx
zp50_item_zombie_madness.amxx
zp50_item_infection_bomb.amxx
; Admin
zp50_admin_commands.amxx
zp50_admin_menu.amxx
zp50_admin_models.amxx

; Buying
zp50_buy_menus.amxx
zp50_buy_zones.amxx

; Rewards
zp50_rewards_ammopacks.amxx
zp50_rewards_frags_hp.amxx

; Deathmatch
zp50_deathmatch.amxx
zp50_random_spawn.amxx
zp50_spawn_protection.amxx

; Zombie/Human Features
zp50_zombie_features.amxx
zp50_zombie_sounds.amxx
zp50_zombie_damage.amxx
zp50_human_ammo.amxx

; Custom Features
zp50_flashlight.amxx
zp50_nightvision.amxx
zp50_leap.amxx
zp50_painshockfree.amxx
zp50_knockback.amxx
zp50_weapon_drop_strip.amxx

; Effects
zp50_effects_infect.amxx
zp50_effects_cure.amxx
zp50_effects_lighting.amxx
zp50_ambience_effects.amxx
zp50_ambience_sounds.amxx

; Gameplay / Other
zp50_main_menu.amxx
zp50_objective_remover.amxx
zp50_gameplay_fixes.amxx
zp50_team_scoring.amxx
zp50_hud_info.amxx
zp50_serverbrowser_info.amxx
zp50_ammopacks.amxx

; Custom grenades
zp50_grenade_fire.amxx
zp50_grenade_frost.amxx
zp50_grenade_flare.amxx

; ZP 4.3 Subplugin Compatibility
zp50_zp43_compat.amxx
; Subplugins
zp_extra_human_armor.amxx   ; extra item - armor
zp_informer.amxx	 ; Info o pozostalym czasie do przetrwania dla ludzi / ilosci ludzi dla zombie
zp_knife_knockback_new.amxx  ; odrzut z kosy
zp_extra_lasermine.amxx   ; extra item - laser miny
zp_zkill_bomb_v1-2.amxx   ; extra item - zabijajaca bomba
Kit_damage.amxx	; extra item - ocaleniec
zm_vip_extra_playeraura.amxx  ; extra item tylko dla vipow - aura dla gracza
zm_vip_extra_adv_antidotegun.amxx ; extra item tylko dla vipow - antidotegun
zp_class_limiter.amxx   ; limit wyboru okreslonej klasy
zm_vip_extra_unlimited_clip.amxx ; extra item - ammo bez przeladowania
zm_vip_extra_weapons.amxx  ; extra item tylko dla vipow - wieksze dmg z roznych broni
zp_extra_invisible.amxx   ; extra item - niewidzialnosc
zp_addon_show_health.amxx  ; pokazywanie hp nemesisa/survivora
zp_corpse.amxx	; wysysanie HP z cial zmarlych
zp_addon_ldp.amxx	; ochrona przed niszczeniem laserow przez ludzi
zp_extra_regeneration.amxx  ; extra item - regeneracja
zp_addon_classes_in_chat.amxx  ; opisy typu [zombie], [human] przy nickach w chacie

Pluginy, które nie zostały opisane, są po prostu bazowymi pluginami tego moda (tak została wykonana ta wersja).
W paczce znajduje się plik tekstowy z opisem wszystkich plików zombie, jego treść:

cvary - zawiera cvary, które trzeba dopisać do amxx.cfg, oraz pluginy, które trzeba dopisać do plugins.ini, aby wszystko działało sprawnie
cstrike/klasy - plik, w którym można edytować opis klas ludzi/zombie (komenda na serwerze - /klasy)
cstrike/vip - plik, w którym można edytować opis przywilejów VIP'a (komenda na serwerze - /vip)
cstrike/addons/amxmodx/configs/ltm_cvars - cvary i ustawienia laser miny
cstrike/addons/amxmodx/configs/new_weapons - plik, w którym można podmieniać modele broni
cstrike/addons/amxmodx/configs/vips - tu dodajemy VIPów
cstrike/addons/amxmodx/configs/zm_vip - ustawienia VIP'a
cstrike/addons/amxmodx/configs/plugins-zp50_ammopacks - plik z pluginami zombie
cstrike/addons/amxmodx/configs/zombieplague.cfg - ustawienia dmg/ammo packów/long jumpów/oświetlenia itd.
cstrike/addons/amxmodx/configs/zombieplague.ini - ustawienia modeli/flag admina/dźwięków/efektów pogodowych/odrzutu
cstrike/addons/amxmodx/configs/zp_extraitems - ustawienia extra itemów
cstrike/addons/amxmodx/configs/zp_humanclasses - ustawienia klas ludzi
cstrike/addons/amxmodx/configs/zp_zombieclasses - ustawienia klas zombie

Jest także plik o nazwie 'cvary', zawiera on cvary, które trzeba przekopiować do amxx.cfg, a także kilka dodatkowych pluginów, które co prawda nie są ściśle związane z zombie modem, jednak urozmaicają i polepszają jakość rozgrywki.
//////////////////////////////////////////////////////////////	
////////////////////////****CVARY****/////////////////////////
////////////////////////DO amxx.cfg///////////////////////////
//////////////////////////////////////////////////////////////
zp_knife_knock 1	;default - 1 (on)
zp_knife_power 9	;power of Knockback , default - 10
zp_knife_jump 300   ;jump with knife , default - 300
zp_knife_sound 1	;knife sound on - off , default - 1 (on)
zp_knife_survivor 1 ;knife for survivor on - off , default - 1 (on)
Bullet_Damage_Mode 0
Bullet_Damage_Distance 600
Bullet_Damage_ShowWalls 1
Bullet_Show_Spec 1
Bullet_Hs_Mode 0
Color_RGB_Victim :
//( DEFAULT = 255000000 )
//kolory RGB DLA OBRYWAJĄCEGo
Color_RGB_Attacker
//( DEFAULT = 000255000 )
//DLA ATAKUJĄCEGO
Color_RGB_Ourself
//( DEFAULT = 255102021 )
//kiedy sam siebie z granata uderzysz
//////////////////////////////////////////////////////////////	
//////////////////////****PLUGINY****/////////////////////////
//////////////////////DO plugins.ini//////////////////////////
//////////////////////////////////////////////////////////////
bullet_damage.amxx ; pokazywanie dmg
galileo.amxx  ; vote na mapy
opisy.amxx  ; opisy klas po wpisaniu /klasy
parachute.amxx  ; spadochrony dla wszystkich
GHW_Weapon_Replacement.amxx ; podmiana modeli broni
peel.amxx  ; spolszczone napisy
poprawne_rate.amxx ; wymuszenie rate i interpu
Z racji, że jest to paczka Zombie Moda, nie należy do najlżejszych (ponad 40mb po rozpakowaniu).

Download: Zippyshare.com - Zombie Plague by SzyjaN.rar

Siła wybuchu bomby

12.06.2012 15:59

Witam. Czy jest możliwa zmiana siły wybuchu/zasięgu bomby? I jeśli tak, w jaki sposób można tego dokonać?

Poszukiwania stabilnego/pewnego hostingu

11.06.2012 16:07

Witam. Planuję postawić serwer, jednak mod, który chcę na ten serwer wgrać, będzie dość wymagający (około 90 pluginów i nie jest to CoD). Miałem już sporo serwerów w różnych hostingach, ale z czasem oferty się pozmieniały i jest teraz większa konkurencja wśród firm, a co za tym idzie, ciekawsze propozycje dla osób, które chcą kupować serwery.
Zastanawiam się nad kilkoma hostingami, ale nie mogę znaleźć żadnych pewnych informacji o żadnym z nich. Konkretniej myślę o firmach takich jak:
GameSol
NetShoot
1shoot1kill
ProGamers
Gry.Wilan

Ceny mniej więcej znam, jednak interesują mnie inne, dość ważne fakty:
- Czy serwer uruchomi się sam w przypadku crashu (dawniej w niektórych hostingach tak było, w niektórych nie, nie wiem, jak jest teraz)
- Pomoc obsługi (głównie chodzi mi o czas reakcji oraz jakość tej pomocy tj. czy obsługa zna się na rzeczy)
- Pingi - Nie wymagam idealnych, wystarczą w granicach 30-50ms, ważny jest dla mnie fakt, czy w hostingach nie ma nagłych 'skoków' tych pingów do znacznie wyższych wartości (miałem już kilka nieprzyjemnych sytuacji dawniej i wolałbym tego uniknąć)
- Stabilność - Czy serwer wytrzyma spore obciążenia i, czy nie będą one wywoływać lagów lub spowolnionej pracy serwa (np. przy zmianie mapy)
- Dodatki - FD/HLTV/Bazy danych - Czy są dostępne, i jeśli tak - czy są darmowe, lub też czy cena jest adekwatna do ich jakości
- Promocje/Współpraca - Czy są atrakcyjne dla potencjalnego klienta (To mnie interesuje tak 'dodatkowo', jeśli na przyszłość miałbym w zamiarze wykupić więcej, niż 1 serwer)
- Serwery testowe - Czy jest możliwość darmowego przetestowania, czy wszystko będzie działać, jak należy

Oczywiście - Mogę zainteresować się też innymi hostingami, ale ważne jest dla mnie opisanie wszystkich powyższych
Z góry dziękuję za wskazówki/prezentacje, oczywiście każdą pomoc nagrodzę + ;)

Drobna zmiana w SuperHero Mod

11.06.2012 14:21

Witam. Przerabiam lekko pod swoje wymogi zagraniczny mod - superhero, jednak w jednym miejscu napotkałem mały problem. Dotyczy on usunięcia jednej części ze zdania, które wyświetla się po dodaniu komuś XP przez admina, lub też po kupieniu XP za pomocą komendy.

new xp = str_to_num(arg2)

new cmd[32], arg[32]
new bool:giveXP = false
read_argv(0, cmd, charsmax(cmd))
read_argv(1, arg, charsmax(arg))

if ( equali(cmd, "amx_shaddxp") ) giveXP = true

new name2[32], authid2[32]
get_user_name(id, name2, charsmax(name2))
get_user_authid(id, authid2, charsmax(authid2))

if ( arg[0] == '@' ) {
new players[32], inum
if ( equali("T", arg[1]) ) {
copy(arg[1], charsmax(arg)-1, "TERRORIST")
}

if ( equali("ALL", arg[1]) ) {
get_players(players, inum)
}
else {
get_players(players, inum, "eg", arg[1])
}

if ( !inum ) {
console_print(id, "No clients in such team")
return PLUGIN_HANDLED
}

new user
for ( new a = 0; a < inum; a++ ) {
user = players[a]
if ( giveXP ) localAddXP(user, xp)
else gPlayerXP[user] = xp
displayPowers(user, false)
}

show_activity(id, name2, "%s %d XP graczowi %s", giveXP ? "dodal" : "set", xp, arg[1])

console_print(id, "[SH] %s %d XP on %s players", giveXP ? "Added" : "Set", xp, arg[1])

log_amx("[SH] ^"%s<%d><%s><>^" %s %d XP graczowi %s", name2, get_user_userid(id), authid2, giveXP ? "added" : "set", xp, arg[1])
}
else {
new player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
if ( !player ) return PLUGIN_HANDLED

if ( giveXP ) localAddXP(player, xp)
else gPlayerXP[player] = xp
displayPowers(player, false)

new name[32], authid[32]
get_user_name(player, name, charsmax(name))
get_user_authid(player, authid, charsmax(authid))

show_activity(id, name2, "%s %d XP graczowi %s", giveXP ? "dodal" : "set", xp, name)

console_print(id, "[SH] Client ^"%s^" has been %s %d XP", name, giveXP ? "given" : "set to", xp)

log_amx("[SH] ^"%s<%d><%s><>^" %s %d XP on ^"%s<%d><%s><>^"", name2, get_user_userid(id), authid2, giveXP ? "added" : "set", xp, name, get_user_userid(player), authid)
}

return PLUGIN_HANDLED
}


Konkretnie chodzi mi o tą linię:
show_activity(id, name2, "%s %d XP graczowi %s", giveXP ? "dodal" : "set", xp, arg[1])
Chciałbym usunąć z niej pierwszą część, tj. "id", gdyż po prostu paskudnie to wygląda, gdy w chacie wyświetla się wiadomość typu "GRACZ nazwa serwera dodał graczowi xxxx XP"
Niestety, samo skasowanie powoduje błąd przy kompilacji "argument type mismatch <argument 1>"
Proszę więc o pomoc, najlepiej w postaci wyjaśnienia, jak sobie z takim problemem poradzić.