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
 

mikijak - zdjęcie

mikijak

Rejestracja: 09.08.2013
Aktualnie: Nieaktywny
Poza forum Ostatnio: 07.03.2017 20:31
-----

#610693 Plugin HUD

Napisane przez Wielkie Jol w 29.01.2014 15:53

/* Plugin generated by AMXX-Studio
By spiderman, requested by spiderman
*/
#include <amxmodx>
#include <amxmisc>
#include <csx>
#define PLUGIN "Ranga"
#define VERSION "1.0"
#define AUTHOR "spiderman"
#define TASK 666
#define FORUM "ANDRZEJ"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
}
public client_connect(id)
{
    if(is_user_bot(id))
        return
    
    new param[1]
    param[0] = id
    
    set_task(1.0,"rank",TASK+id,param,1,"b")
}
public client_disconnect(id)
    if(task_exists(TASK+id))
    remove_task(TASK+id)

public rank(param[])
{
    new id = param[0]
    
    static stats[8], body[8], rankpos, rankmax
    get_user_stats(id, stats, body)
    rankpos = get_user_stats(id, stats, body);
    
    rankmax = get_statsnum();
    new ranga[30]
    
    if ( stats[0] >= 0 && stats[0] <= 29)
        format(ranga,29,"Lamus")
    else if ( stats[0] >= 30 && stats[0] <= 59)
        format(ranga,29,"Poczatkujacy")
    else if ( stats[0] >= 60 && stats[0] <= 119)
        format(ranga,29,"Wiesniak")
    else if ( stats[0] >= 120 && stats[0] <= 209)
        format(ranga,29,"Sierota")
    else if ( stats[0] >= 210 && stats[0] <= 324)
        format(ranga,29,"Kox")
    else if ( stats[0] >= 325 && stats[0] <= 499)
        format(ranga,29,"Cherlak")
    else if ( stats[0] >= 500 && stats[0] <= 729)
        format(ranga,29,"Kozak")
    else if ( stats[0] >= 730 && stats[0] <= 999)
        format(ranga,29,"Snajper")
    else if ( stats[0] >= 100 && stats[0] <= 1399)
        format(ranga,29,"Macho")
    else if ( stats[0] >= 1400 && stats[0] <= 1849)
        format(ranga,29,"Rambo")
    else if ( stats[0] >= 1850 && stats[0] <= 2299)
        format(ranga,29,"Terminator")
    else if ( stats[0] >= 2300 && stats[0] <= 2899)
        format(ranga,29,"Joker")
    else if ( stats[0] >= 2900 && stats[0] <= 3549)
        format(ranga,29,"Morfeusz")
    else if ( stats[0] >= 4200 && stats[0] <= 4999)
        format(ranga,29,"Wybraniec")
    else if ( stats[0] >= 5000 && stats[0] <= 5899)
        format(ranga,29,"Killer")
    else if ( stats[0] >= 5900 && stats[0] <= 6899)
        format(ranga,29,"Multi Killer")
    else if ( stats[0] >= 6900 && stats[0] <= 7999)
        format(ranga,29,"Owner")
    else if ( stats[0] >= 8000 && stats[0] <= 9299)
        format(ranga,29,"Cziter")
    else if ( stats[0] >= 9300 && stats[0] <= 1999)
        format(ranga,29,"Vip TeamKielce")
    else if ( stats[0] >= 1000 )
        format(ranga,29,"GM TeamKielce")
    if(get_user_flags(id) & ADMIN_LEVEL_H){
        set_hudmessage(0, 255, 0, 0.15, 0.55)
        ShowSyncHudMsg(id, CreateHudSyncObj(), "[Forum: %s]^n[Ranga: %s]^n[Rank: %d/%d]^n[VIP: TAK]",FORUM, ranga, rankpos, rankmax )
    }
    if(!(get_user_flags(id) & ADMIN_LEVEL_H)){
        set_hudmessage(0, 255, 0, 0.15, 0.55)
        ShowSyncHudMsg(id, CreateHudSyncObj(), "[Forum: %s]^n[Ranga: %s]^n[Rank: %d/%d]^n[VIP: NIE]",FORUM, ranga, rankpos, rankmax )
    }
}

  • +
  • -
  • 1


#673098 [ROZWIĄZANE] Plugin pokazujący czas otworzenia cel.

Napisane przez XXL w 02.12.2014 18:03

 

Definiujemy funkcję w jail api - get_roundtime_left()  według wzoru

https://forums.allie...t=87020?t=87020

 

W jail_api zamieniamy funkcję Otworz_cele na tą

public OtworzCele()
{
for(new i=0; i<sizeof(g_Buttons); i++)
{
if(!pev_valid(g_Buttons[i]) || !g_Buttons[i])
continue;
ExecuteHam(Ham_Use, g_Buttons[i], 0, 0, 2, 1.0);
ColorChat(0, GREEN, "[CELE]^x01 Cele zostaly otwarte: %d", get_roundtime_left());
log_amx("Cele zostaly otwarte o %d", get_roundtime_left())
}
} 

 

Dlaczego jak tak robię to wywala mi error

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

jail_api_jailbreak.sma(2204) : error 017: undefined symbol "g_round_start"

1 Error.
Could not locate output file jail_api_jailbreak.amxx (compile failed).

  • +
  • -
  • 1


#293791 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 08.09.2011 14:53

Witam :)

Jako iż mi się nudzi :D postanowiłem zmienić wygląd HUD w swoim bf2 ;](podpatrzone z coda) efekt jest fajny i miły dla oka :D

nowy HUD wygląda tak:
Dołączona grafika


Instrukcja dla 1.0.7 / 1.1.0

bf2rank.sma
Szukamy
#if defined KOLOROWY_SAY
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
#else
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
#endif


dodajemy pod tym to
new gHUD;
//Task
#define TASK_HUD 9897


aby wyglądało to tak
#if defined KOLOROWY_SAY
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
#else
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
#endif
new gHUD;
//Task
#define TASK_HUD 9897


następnie szukamy
  
#if defined KOLOROWY_SAY
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
#else
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
#endif.


dodajemy pod tym to
gHUD = CreateHudSyncObj();

aby to wyglądało tak
  
#if defined KOLOROWY_SAY
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
#else
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
#endif
gHUD = CreateHudSyncObj();


Szukamy dalej
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");


Zastepujemy to tym
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");
RegisterHam(Ham_Killed, "player", "Ham_Death_Player", 1);


Zapisujemy Plik ;)

ham.inl

Szukamy
  
set_task(0.1, "DisplayHUD", id);


Zastepujemy to tym

if(!task_exists(id+TASK_HUD))
{
set_task(0.1, "DisplayHUD", id+TASK_HUD, _, _, "b");
}


Szukamy
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}


Zastepujemy to tym
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}

public Ham_Death_Player(id)
{
if(!is_user_connected(id))
return HAM_IGNORED;

RemoveHUD(id)

return HAM_IGNORED;
}


Zapisujemy Plik :P

forwards.inl

Szukamy
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

if (!get_pcvar_num(gPcvarWymus))
{
client_cmd(id,"hud_centerid 0");
client_cmd(id,"cl_shadows 0");
set_task(20.0, "Announcement", id);
}
else
{
set_task(20.0, "Announcement", id);
}
}


Zamieniamy na to
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

if (!get_pcvar_num(gPcvarWymus))
{
client_cmd(id,"hud_centerid 0");
client_cmd(id,"cl_shadows 0");
set_task(20.0, "Announcement", id);
}
else
{
set_task(20.0, "Announcement", id);
}

RemoveHUD(id);
}


Szukamy
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
}


Zamieniamy na to
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
RemoveHUD(id);
}


Zapisujemy Plik :P

hud.inl

Szukamy
public DisplayHUD(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) ) return;
if ( !is_user_alive(id) || is_user_bot(id) ) return;

static HUD[64];

if ( !gStatsLoaded[id] )
{
formatex(HUD, charsmax(HUD), "[BF2] Wczytuje Dane...");
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Ranga: %s", totalkills[id], nextrankxp, gRankName[rank]);
}
else
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Odznaki: %d Ranga: %s", totalkills[id], nextrankxp, numofbadges[id], gRankName[rank]);
}
}

message_begin(MSG_ONE_UNRELIABLE, gmsgStatusText, _, id);
write_byte(0);
write_string(HUD);
message_end();
}


Zamieniamy na to
public DisplayHUD(id)
{
id -= TASK_HUD;

if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) )
return;
if ( !is_user_alive(id) || is_user_bot(id) )
return;

if(!is_user_connected(id))
{
remove_task(id+TASK_HUD);
return;
}

set_hudmessage(227, 96, 8, 0.05, 0.15, 0, 0.0, 0.3, 0.0, 0.0, 3)
if ( !gStatsLoaded[id] )
{
ShowSyncHudMsg(id, gHUD,"[%s] Wczytuje Dane...", gPluginName)
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nZabicia: %d/%d", gPluginName, gRankName[rank], totalkills[id], nextrankxp)
}
else
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nIlosc Odznak: %d^nZabicia: %d/%d", gPluginName, gRankName[rank], numofbadges[id], totalkills[id], nextrankxp)
}
}
}

public RemoveHUD(id)
{
remove_task(id+TASK_HUD);
}


Zapisujemy Plik :P

i kompilujemy teraz sma bf2 ;)

Instrukcja dla 1.5.3 / 1.5.5

bf2rank.sma
Szukamy
//Message sending variables
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;


dodajemy pod tym to
new gHUD;
//Task
#define TASK_HUD 9897


aby wyglądało to tak
//Message sending variables
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
new gHUD;
//Task
#define TASK_HUD 9897


następnie szukamy
    //Message sending.
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");


dodajemy pod tym to
gHUD = CreateHudSyncObj();

aby to wyglądało tak
    //Message sending.
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
gHUD = CreateHudSyncObj();


Szukamy dalej
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");


Zastepujemy to tym
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");
RegisterHam(Ham_Killed, "player", "Ham_Death_Player", 1);


Zapisujemy Plik ;)

ham.inl

Szukamy
  
set_task(0.1, "DisplayHUD", id);


Zastepujemy to tym

if(!task_exists(id+TASK_HUD))
{
set_task(0.1, "DisplayHUD", id+TASK_HUD, _, _, "b");
}


Szukamy
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}


Zastepujemy to tym
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}

public Ham_Death_Player(id)
{
if(!is_user_connected(id))
return HAM_IGNORED;

RemoveHUD(id)

return HAM_IGNORED;
}


Zapisujemy Plik :P

forwards.inl

Szukamy
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

set_task(20.0, "Announcement", id);
}


Zamieniamy na to
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

set_task(20.0, "Announcement", id);
RemoveHUD(id);
}


Szukamy
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
}


Zamieniamy na to
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
RemoveHUD(id);
}


Zapisujemy Plik :P

hud.inl

Szukamy
public DisplayHUD(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) ) return;
if ( !is_user_alive(id) || is_user_bot(id) ) return;

static HUD[64];

if ( !gStatsLoaded[id] )
{
formatex(HUD, charsmax(HUD), "[BF2] Wczytuje Dane...");
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Ranga: %s", totalkills[id], nextrankxp, gRankName[rank]);
}
else
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Odznaki: %d Ranga: %s", totalkills[id], nextrankxp, numofbadges[id], gRankName[rank]);
}
}

message_begin(MSG_ONE_UNRELIABLE, gmsgStatusText, _, id);
write_byte(0);
write_string(HUD);
message_end();
}


Zamieniamy na to
public DisplayHUD(id)
{
id -= TASK_HUD;

if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) )
return;
if ( !is_user_alive(id) || is_user_bot(id) )
return;

if(!is_user_connected(id))
{
remove_task(id+TASK_HUD);
return;
}

set_hudmessage(227, 96, 8, 0.05, 0.15, 0, 0.0, 0.3, 0.0, 0.0, 3)
if ( !gStatsLoaded[id] )
{
ShowSyncHudMsg(id, gHUD,"[%s] Wczytuje Dane...", gPluginName)
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nZabicia: %d/%d", gPluginName, gRankName[rank], totalkills[id], nextrankxp)
}
else
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nIlosc Odznak: %d^nZabicia: %d/%d", gPluginName, gRankName[rank], numofbadges[id], totalkills[id], nextrankxp)
}
}
}

public RemoveHUD(id)
{
remove_task(id+TASK_HUD);
}


Zapisujemy Plik :P

i kompilujemy teraz sma bf2 ;)
  • +
  • -
  • 31


#287283 [AMXX] Diagnozowanie problemów z pluginami

Napisane przez R3X w 23.08.2011 22:54

Diagnozowanie problemów z pluginami

Zdecydowana większość problemów z pluginami zostawia po sobie wyraźne ślady. Ich odnalezienie i interpretacja to połowa sukcesu w walce z niedziałającym dodatkiem.

1. Stan pluginu
Podstawową informacją o pluginie jest to czy się w ogóle załadował. Najłatwiej to sprawdzić wpisując w konsoli:

amx_showrcon amxx list


Efektem będzie listing podobny do tego:
Dołączona grafika

Wszystkie pluginy mają status running, więc wszystkie zostały poprawnie załadowane. No i pozytywnie :)
Innym, równie dobrym statusem jest debug, to jest takie running, ale przygotowane na błędy

Mniej przyjemniej jest kiedy ilość przeczytanych pluginów nie zgadza się z ilością załadowanych. Częsty problemem jest status bad load
Dołączona grafika
Oznacza to tyle, że w katalogu plugins/ nie ma wskazanego w plugins.ini pliku.
(W skrajnych przypadkach plik może istnieć, ale nie uprawniać serwera do odczytu. Ustawienie chmodu 644 załawiłoby sprawę.)

Inny kiepskim przypadkiem jest status error. Pojawia się wtedy, gdy przetwarzanie pluginu zostanie przerwane, np. za pomocą funkcji set_fail_state
Dołączona grafika
jeśli komunikat jest niejasny, niezrozumiały jedynym wyjściem jest zajrzenie do źródła pluginu i sprawdzenie przyczyny

Rzut okiem i mam winowajcę
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	if(5 > 2)
		set_fail_state("nie chce mi sie");
}
W tym przypadku to tylko głupi żart programisty, zwykle problemy są o wiele poważniejsze.

Jest jeszcze stan paused i stopped, są one związane z komendą amx_pausecfg w plikach konfiguracyjnych oraz funkcją (un)pause() w pluginach. W takim przypadku należy sprawdzić wszystkie wczytanie configi, zwykle są to: amxx.cfg z configs, server.cfg z cstrike/ i configs/maps/NAZWAMAPY_LUB_PREFIX.cfg oraz upewnić się, że żaden plugin nie zatrzymuje naszego niedziałającego dodatku.


2. Logi
Gdy mamy pewność, że plugin został załadowany przyszedł czas na szperanie w plikach. Logi, czyli zapisy czynności, są zapisywane w folderze addons/amxmodx/logs/.

Logi zwyczajne są nazywane w formacie L<RRRRMMDD>.log a logi błędów error_<RRRRMMDD>.log. Informacje o problemach mogą się pojawić i w jednych i w drugich. Zgłoszone błędy całkowicie wyjaśniają powód problemów tylko kiedy plugin ma status debug. Aby wymusić ten stan należy w plugins.ini dopisać debug po nazwie pluginu, np.
test.amxx debug
W stanie running komunikaty są okrojone i nie lokalizują konkretnie źródła błędu, natomiast w debugu mamy informacje o ścieżce wywołania, czyli co i w której linijce po kolei się wykonywało zanim wystąpił problem. Ścieżka sięga ostatniej funkcji wywołanej przez moduł.

3. Komendy nie reagują
Problem występuje zwykle, kiedy 2 pluginy dostarczają takie same komendy. W tej sytuacji zwycięzca bierze wszystko: pierwszy plugin na liście plugins.ini przetworzy komendę i zablokuje ją, przez co żaden inny plugin nie zostanie nawet o niej poinformowany. Rozwiązaniem jest zmiana kolejności ładownia albo zmiana nazw komendy. Istnieją pluginy, które blokują więcej komend niż przetwarzają, np. blokują wszyskie komendy say z / na początku. Takie pluginy powinny znajdować się na samym końcu listy.
  • +
  • -
  • 19


#214639 Server Shutting Down.

Napisane przez mgr inż. Pavulon w 10.02.2011 23:16

Błąd przy wysyłaniu jakiegoś eventu w jakimś pluginie. Nie da się z tych logów określić z którego. Jedynie możesz wyłączać kolejno pluginy aż błędy znikną.
  • +
  • -
  • 1


#611971 By Cypis - Wojna na granaty dla więźniów.

Napisane przez Wielkie Jol w 01.02.2014 22:46

Zabawa do Cypisa, więźniowie po 30 sekundach od rozpoczęcia zabawy zabijają się granatami, życzenie ma ostatni żywy, podczas zabawy jest włączona grawitacja 500.

Załączone pliki


  • +
  • -
  • 7


#636068 JailBreak

Napisane przez .Etc w 02.05.2014 14:07

Paczka JailBreak by Cypis + kilka modyfikacji 

 

opis
Jest to paczka na 'silniku' cypisa z kilkoma moimi poprawkami, nie koniecznie profesjonalnymi ;) Z tego co pamiętam paczka sypie logami ( nie mam serwera żeby sprawdzić ) ale nie crashuje
Amx mod x - 1.8.1 linux
 
Modyfikacje, dodatkowe pluginy:

  • Zmiany w menu
  • Zmiana HUD
  • Info o wejściu VIP'a na serwer w tutorze, nowe modele vipa + sklep dla nich
  • Sklep z nowymi broniami / modelami / dzwiękami
  • System pkt. 'respekt' dla sklepu + możliwość kupiwania pkt. w menu
  • Wypadająca kasa, lewitujące bronie, freezer zamiast smok'a itd.
  • Czapki z submodelami
  • Zmiany w ostatnim życzeniu
  • Ogarnięcie duszka i fd przy dodatkowych modelach vip'a
  • Proste modyfikacje typu: tm zamiast timeleft, godz zamiast thetime itd.

Zabawy:

  • Wojna na granaty
  • Sniper Day
  • Kill Day
  • Ganiany 
  • Chowany
  • Zombie Day
  • Dzieci Wojny
  • Ninja Day
  • Wojna Gangów 
  • Zabij Gejusa

Życzenia:

  • Losowa broń ( + bezruch )
  • Freeday
  • Duszek
  • Rambomode
  • Solówka ( 13 broni do wyboru )
  • 4 pkt Respektu
  • Święto - dzień bez broni ( Strażnicy na drugi dzień nie mogą podnieść broni )

      + masa rzeczy o których nie pamiętam a zostały zmienione, dodane
screenshot

Spoiler

komendy
Nie pamiętam wszystkich komend raczej wszytko jest w menu ( zbindowanym pod V )
 
/menu - główne menu serwera
/cele - po 30s więźniowie mogą sie zbuntować i otworzyć cele
/ruletka - losujemy nagrody
/oddaj - menu oddawanias prowadzenia ( Strażnik )
/czapki - menu czapek
/sklep /sklepvip - jak sama nazwa wskazuje ;)
 

komendy admina
/a - podręczne menu 
/ball - spawnowanie piłki
/kursor - szybkie kickowanie / slajowanie graczy
/ozyw - spawnowanie nieżywych graczy
 
cvary
amxx.cfg

Spoiler
 
 
plugins.ini
Spoiler

plugins-jb.ini

Spoiler

 
download
Jak to się mówi, tego nie da się opisać - to trzeba przeżyć, zapraszam do pobierania  :crazy:

 

Sounds, models, sprites etc.

http://www30.zippysh...44865/file.html

 

Addons

http://www34.zippysh...80402/file.html

 

 




#642172 Plugin zmieniający model broni osobny dla CT i TT na flage.

Napisane przez Pomager'ek w 07.06.2014 01:17

CT i TT oddzielenie na flage :D

 

#define FLAGA ADMIN_LEVEL_A << tu zmieniasz flagi

 

Kilka flag:

 

ADMIN_ALL - wszystkie
ADMIN_IMMUNITY
- flaga "a"
ADMIN_RESERVATION - flaga "b"
ADMIN_KICK - flaga "c"
ADMIN_BAN - flaga "d"
ADMIN_SLAY - flaga "e"
ADMIN_MAP - flaga "f"
ADMIN_CVAR - flaga "g"
ADMIN_CFG - flaga "h"
ADMIN_CHAT - flaga "i" *
ADMIN_VOTE - flaga "j"
ADMIN_PASSWORD - flaga "k"
ADMIN_RCON - flaga "l"
ADMIN_LEVEL_A - flaga "m"
ADMIN_LEVEL_B - flaga "n"
ADMIN_LEVEL_C - flaga "o"
ADMIN_LEVEL_D - flaga "p"
ADMIN_LEVEL_E - flaga "q"
ADMIN_LEVEL_F - flaga "r"
ADMIN_LEVEL_G - flaga "s"
ADMIN_LEVEL_H - flaga "t"
ADMIN_MENU - flaga "u"
ADMIN_ADMIN - flaga "y"
ADMIN_USER - flaga "z"Flagi dodatkowe :
ADMIN_FLAG_V - flaga "v"
ADMIN_FLAG_W - flaga "w"
ADMIN_FLAG_X - flaga "x"

Załączone pliki




#317222 JailBreak: Mikrofon

Napisane przez LucKy_skiLL w 03.11.2011 13:38

opis
Plugin pozwala Strażnikom (CT) na włączenie lub wyłączenie mikrofonów dla Więźniów (TT) na serwerach JailBreak. Plugin jest pod ten mod: http://amxx.pl/topic...lbreak-extreme/

instalacja
Plik jb_mikrofon.amxx wrzuć do ../addons/amxmodx/plugins

komendy
/mikro - włącza menu mikrofonu
/mikrofon - włącza menu mikrofonu

Załączone pliki


  • +
  • -
  • 5


#1081 Autoresponder/Advertiser + tag [ you]

Napisane przez bicek w 11.02.2008 22:45

Autoresponder/Advertiser

Opis:
Plugin który spamuje co jakiś czas na czacie say, przydatny przy reklamie forum lub informowaniu graczy na serwerze...
Dołączona grafika

Instalacja:
Plik ad_manager.amxx wrzucamy do addons/amxmodx/plugins
ad_manager.sma wrzucamy do addons/amxmodx/scripting
a advertisements.ini do addons/amxmodx/configs
standardowo do pliku addons/amxmodx/configsplugins.ini dopisujemy:
ad_manager.amxx

Konfiguracja:
otwieramy plik advertisements.ini dopisujemy nasze informacje które chcemy aby plugin pokazywał np.
!t amxx.pl !n polski support !g AMX Mod X
taki wpis w grze będzie wyglądał tak: amx.pl polski support AMX Mod X
Kolory:
!t - kolor drużyny, dla tt czerwony, dla ct niebieski i dla specra biały
!g - po prostu zielony
!n - standardowy kolor w say

[uwaga="Abes Mapper"]

Wersja z działającą komendą zrobiona przez DarkGL

[you]

Dołączona grafika

Proszę moda o dodanie do 1 posta.


Załączony plik  ad_manager.amxx   16 KB  1392 Ilość pobrań

Załączony plik  ad_manager.sma   9,06 KB  5614 Ilość pobrań
  ad_manager.amxx
[/uwaga]

Załączone pliki




#192122 Kompilacja lokalna

Napisane przez Abes Mapper w 27.11.2010 19:13

Kompilacja lokalna

Czytając posty zauważyłem, że trochę ludzi ma problemy z kompilacją lokalną mimo iż jest tutorial.

Piszę ten poradnik w tym dziale aby pokazał się w spisie artykułów.
Jest jeszcze inny sposób kompilacji lokalnej ( Kompilacja lokalna - AMXX.pl: Support AMX Mod X - by R3X ) ale to tak jakby dla tych, którzy programują, robią coś w PAWN.

Ten sposób (o ile można to nazwać innym sposobem) jest łatwiejszy i szybszy.

1. Pobieramy plik z załącznika w zależności od naszego systemu operacyjnego
2. Rozpakowujemy byle gdzie
3. Wchodząc w folder scripting mamy różne pliki/foldery. Opiszę najważniejsze potrzebne do kompilacji
  • include - tutaj wklejamy wszystkie pliki .inc np.: colorchat.inc
  • Podstawowe sma - tutaj wkleiłem kody źródłowe z podstawowych pluginów (nie chciałem żebyście tracili czas na ich dodatkowym kompilowaniu)
  • compiled - w tym folderze znajdą się wszystkie skompilowane przez nas pluginy (folder utworzy się podczas pierwszej kompilacji)
  • compile.exe - program który odpalamy aby skompilować kod źródłowy
4. Teraz jak kompilować?
Nic prostrzego.
Plik .sma (czyli nasz kod źródłowy) wklejamy do głównego katalogu scripting tam gdzie jest compile.exe
Po wklejeniu uruchamiamy właśnie ten plik compile.exe i nasze pliki zaczną się kompilować.
Skompilowane pluginy znajdą się w folderze compiled

Jeżeli niektóre pluginy (np.: bf2, pokemod) mają dodatkowe foldery z plikami .inl to wklejamy je (foldery) do głównego katalogu scripting

Dodaję plik colorchat.inc
Jest wymagany przy kompilacji niektórych pluginów

Załączone pliki


  • +
  • -
  • 32


#547665 Czas Online

Napisane przez góruś w 05.06.2013 08:50

W kolejnej wersji dodany będzie panel administratora, z możliwościami resetowania rankingu, ustawieniu kilku opcji oraz łatwiejsze zarządzanie szablonem.


  • +
  • -
  • 18


#547664 Czas Online

Napisane przez Misiaczek ;c w 05.06.2013 08:46

Czas Online v2.1.0
by MisieQ & byCZUS
 

Opis



 
Witajcie ;)
 
Wraz z byCZUS prezentujemy wam Czas Online Adminów oraz Graczy na serwerze :)
 
Co plugin robi?
Zlicza czas jaki admin/gracz spędza na serwerze i zapisuje to do bazy danych, dodatkowo zapisuje sie pierwsze połączenie admina/gracza z serwerem jak i kiedy ostatnio grał ;)
 

Konfiguracja



Całą konfiguracje zmieniamy w pliku sma 
 
Konfiguracja danych do połączenia z MySQL
 

new sqlConfig[ ][ ] = {
	"localhost",
	"root",
	"",
	"database"
}

Instalacja



 
AMXX
Instalacja Pluginów AMXX
 
PHP:
Skrypt PHP wgrywamy normalnie na serwer www i uzupełniamy dane w pliku config.php
 

Demo



Czas Online Demo
 

Lista Zmian



2.1.0

  • Lekka poprawka zapytania SQL (Podziękowanie dla [/size]GwynBleidD
  • Wieksza korekta znaków w SQL_PrepareString
  • Dodanie Headera i Fotera w statach WWW
  • Usunięto różnice w zapisie godziny mędzy serwerem BD a serwerem Gry
  • Dodano sprawdzanie HLTV i Botów

2.0.0

  • Zmieniona nazwa Pluginu
  • Napisany od nowa plugin (byCZUS)
  • Napisany od nowa interfejs www

1.2.3

  • Poprawka zliczania czasu online :P
  • Poprawka numeracji w SMA :P

1.2.2

  • Poprawka SMA pluginu :) już erroru nie ma ;P

1.2.1

  • Poprawka pliku srodek.php (Paginacji dokładnie)

1.2:

  • Dodanie #define FLAGA
  • Poprawka zapytania SQL
  • Przepisanie skryptu PHP

1.1:

  • Poprawki błędów z SQL

1.0:

  • Napisanie pluginu ;)

Pobieranie



Wersja 2.1.0
Załączony plik  Czas Online.rar   289,7 KB  1645 Ilość pobrań

 
Wersja 2.0.0
Załączony plik  Czas Online.rar   289,91 KB  552 Ilość pobrań


  • +
  • -
  • 58


#450538 JailBreak Mod 1.0.6a by Cypis [Aktualizacja]

Napisane przez Cypis' w 23.08.2012 16:52

Jest to jailbreak napisany przez zemnie, ale też w niektórych częściach ktoś mi pomógł ;)

Podziękowania dla:
DarkGL - za pomoc przy static :P
Fili:P - za grafikę do broni

Co on ma w sobie:

  • Zablokowanie dhud
  • Zablokowanie motd
  • Zablokowanie latarki dla TT
  • Zablokowanie kupowania bron
  • Podmienienie napisów w cs
  • Modele pieści, palki i rękawic
  • Usunięcie modelów zabitych graczy
  • Jeżeli prowadzący strzela w przycisk to włącza go
  • Możliwość zablokowania brania broni z automatów i leczenia się
  • Podmienienie dźwięków noża
  • Zredukowano obrażenia od noża o 60%
  • Menu wyboru broni w CT
  • Możliwość zablokowania/odblokowania mikrofonu dla TT
  • Inne menu wyboru Teamów
  • Możliwość wybierania zabaw przez prowadzącego
  • Łatwość dodawania zabaw i życzeń (osobnymi pluginami)
  • Automatyczne otwieranie cel w FD
  • Menu dla prowadzącego "czy dać życzenie dla ostatniego więźnia"
  • Możliwość dawania duszka i fd danym więźniom
  • Żywi nie słyszą martwych
  • Pokazuje na HUD który jest dzień i kto jest prowadzącym
  • Wyświetla na HUD kto jest poszukiwanym

Komendy:


Komendy ogólne:
say /menu - główne menu
say /czasgry - pokazuje czas gry przegranej na serwerze

Komendy dla Więźnia:
say /lr - menu z życzeniami dla ostatniego więźnia

Komendy dla Strażnika:
say /oddaj - menu do oddawania prowadzenia
say /obsluga - jak jestes prowadzacym i nie daleś ostatniemu wieźniowi życzenia to po wpisaniu tego wyskoczy ci ponowanie menu z obsluga
say /guns - menu wyboru broni

+revision - służy do przeszukiwania wieźniów

Komendy dla Admina:
jail_addct "< steamid > / <nick>" - służy do banowania graczy tych ktorych nie ma na serwerze żeby niemogli dojsc do CT (flaga - "d")
jail_delct "< steamid > / <nick>" - służy do odbanowywania graczy żeby mogli dojsc do CT (flaga - "d")
jail_menuban - menu banowania obecnych graczy co sa na serwerze żeby nie mogli dojsc do CT (flaga - "d")

+adminvoice - gdy admin mówi mutuje resztę (flaga - "d")

Komendy dla H@:
jail_cele - służy do tego, aby było można otworzyć cele przyciskiem z menu (flaga - "l")


Obsluga jail_cele:
Spoiler


Cvary:

jail_tt_mikro "0" //Ustawia czy mikro dla TT ma byc od poczatku rundy wlaczone (1) lub wylaczone (0) (Standardowo 0)

jail_tt_to_ct "5" //Ustawiamy ile TT ma przypadać na 1 CT (Standardowo 5)

jail_ct_steam "0" //Ustawiamy czy tylko steam moze dojsc do CT (Standardowo 0)

jail_ct_time "60" //Ustawiamy ile gracz ma przegrac zeby mogl dojsc do CT (Standardowo 60min)

Cvary są dopisane do jailbreak.cfg w confings w "paczce"

Instalacja:

Kopiujemy zawartość folderu cstrike z JailBreak.rar do folderu cstrike na serwerze.

Nic nie trzeba dopisywać do plugins.ini!

Natywy i forwardy (tylko dla developerów)
Spoiler


Changelog:
Spoiler


DEBUG:
Spoiler


Plany:

  • Usunięcie korzystania z cs_player_models_api.amxx
  • Dodanie cvarów / natywów / forwardów na prośby userów
  • Naprawienie bugów

Download:
Załączony plik  JailBreak.rar   3,92 MB  16331 Ilość pobrań


Jak znajdziecie jakiś bugi w kodzie to piszcie w temacie spróbuje naprawić
I jeżeli macie jakiś propozycje to też piszcie ;)

Załączone pliki


  • +
  • -
  • 90


#640481 [ROZWIĄZANE] Szukam pluginu dzięki któremu pisze, w say gdy CT zabije TT

Napisane przez Oddaj Wiertarke w 27.05.2014 15:12

#include <amxmodx>
#include <amxmisc>
#include <ColorChat>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "AMXX.Pl"

new nazwa_gracza[33][35];

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event("DeathMsg", "DeathMsg", "a");
}
public client_authorized(id)
{
	get_user_name(id, nazwa_gracza[id], 34);
}
public DeathMsg(){
	new Attacker = read_data(1);
	new Victim = read_data(2);
	if(get_user_team(Attacker)==2)
	{
		for(new id=0;id<=32;id++)
		{
			if(is_user_connected(id))
			{
			ColorChat(id,GREEN,"[JailBreak]^3Strażnik ^4%s ^3zabił więźnia ^4%s",nazwa_gracza[Attacker], nazwa_gracza[Victim]);
			}
		}
	}
}

Teraz powinno być ok, po prostu wiadomość "docierała" do graczy którzy nie byli podłączeni/nie było ich. Jeżeli to nie pomaga, to już nie mam pomysłu na to.


  • +
  • -
  • 1