Jaké jsou možnosti?
- Online přes oficiální stánky amxmodx.org
Jedná se o jednoduchou webovou službu, nalezneme ji na adrese http://amxmodx.org/webcompiler.cgi
Můžeme buď nahrát přímo *.sma soubor, nebo vložit do okna kód, který chceme zkompolovat.
Nevýhodou tohoto kompileru je fakt, že není možné kompilovat pluginy, které využívají vlastní include soubory (např. colorchat). - Lokálně přes AMXX Studio
Osobně tento způsob považuji za efektivnější, jelikož je možné kompilovat rychleji a takřka jakýkoliv plugin. Mnoho z vás ale neví jak vůbec udělat, aby AMXX Studio umělo kompilovat pluginy, protože pokud si stáhnete AMXX Studio přímo z oficiálních stránek, neobsahuje kompiler. Proto jsem si pro vás nachystal balíček, který obsahuje i kompiler a některé includes.
Stačí pak pouze archiv rozbalit do libovolné složky a následně upravit cestu v configu, který se nachází v */AMXX studio/config/Settings.ini
Vypadá takto:Kód: Vybrat vše
[Editor]
MakeBaks=1
DontLoadFilesTwice=1
Auto-Indent=1
UnindentClosingBrace=1
UnindentEmptyLine=0
Disable_AC=0
Disable_CT=0
AutoDisable=1500
AutoHideCT=1
IndentOpeningBrace=1
IndentStyle=0
IndentSomethingElse=
[Pawn-Compiler]
Path=D:\AMXX studio\kompiler\amxxpc.exe
Args=
DefaultOutput=D:\AMXX studio\compiled plugins\
[CPP-Compiler]
Path=
Args=
DefaultOutput=
[Half-Life]
Filename=
Params=
AMXXListen=
[FTP]
Host=
Port=21
Username=
Password=
DefaultDir=
Passive=1
[Proxy]
ProxyType=0
Host=
Port=8080
Username=
Password=
[Misc]
DefaultPluginName=New Plug-In
DefaultPluginVersion=1.0
DefaultPluginAuthor=LUKAS
SaveNotesTo=0
CPUSpeed=5
LangDir=
ShowStatusbar=1
WindowState=0
Nás budou zajímat pouze tyto dva řádkyKód: Vybrat vše
Path=D:\AMXX studio\kompiler\amxxpc.exe
Kód: Vybrat vše
DefaultOutput=D:\AMXX studio\compiled plugins\
Upravíme cestu tak, aby odpovídala adresáři, kam jsme rozbalili archiv. Pro vysvětlení, pokud jsem si rozbalil archiv do složky fakaheda na disku C, tak budou oba řádky vypadat takto:Kód: Vybrat vše
Path=C:\fakaheda\AMXX studio\kompiler\amxxpc.exe
Kód: Vybrat vše
DefaultOutput=C:\fakaheda\AMXX studio\compiled plugins\
Uložíme a vyzkoušíme zkompilovat nějaký plugin. Můžeme vyzkoušet překompilovat zdrojové kódy pluginu free look. Ve složce kompiler najdeme soubor free look.sma a otevřeme. Doporučuji nastavit AMXX studio jako výchozí program pro všechny soubory s příponou *.sma (Pravým na soubor, otevřít v programu, procházet, najdeme složku AMXX studio a v ní zvolíme AMXX_Studio.exe).
Otevře se nám takovýto kód:Kód: Vybrat vše
#include <amxmodx>
#include <orpheu>
#include <fakemeta>
#define PLUGIN_NAME "Admin Free Look"
#define PLUGIN_AUTHOR "Jim"
#define PLUGIN_VERSION "1.0"
new CvarAdminFreelook;
new CvarAdminFreeLookFlag;
new CvarForceChaseCam;
new CvarForceCamera;
new PlayerTeam;
const m_iTeam = 114;
const TEAM_UNASSIGNED = 0;
const TEAM_SPECTATOR = 3;
public plugin_init()
{
register_plugin( PLUGIN_NAME, PLUGIN_AUTHOR, PLUGIN_VERSION );
CvarAdminFreelook = register_cvar( "amx_adminfreelook", "1" );
CvarAdminFreeLookFlag = register_cvar( "amx_adminfreelookflag", "d" );
CvarForceChaseCam = get_cvar_pointer( "mp_forcechasecam" );
CvarForceCamera = get_cvar_pointer( "mp_forcecamera" );
new OrpheuFunction:Observer_FindNextPlayer = OrpheuGetFunction( "Observer_FindNextPlayer", "CBasePlayer" );
OrpheuRegisterHook( Observer_FindNextPlayer, "OnObserver_FindNextPlayer_Pre" , OrpheuHookPre );
OrpheuRegisterHook( Observer_FindNextPlayer, "OnObserver_FindNextPlayer_Post", OrpheuHookPost );
}
public OnObserver_FindNextPlayer_Pre( const player, const bool:searchDown, const playerNameToSearch[] )
{
if( get_pcvar_num( CvarAdminFreelook ) )
{
new forceChaseCam = get_pcvar_num( CvarForceChaseCam );
new forceCamera = get_pcvar_num( CvarForceCamera );
if( ( forceChaseCam || forceCamera ) && get_user_flags( player ) & get_pcvar_flags( CvarAdminFreeLookFlag ) )
{
PlayerTeam = get_pdata_int( player, m_iTeam );
set_pdata_int( player, m_iTeam, TEAM_SPECTATOR );
}
}
}
public OnObserver_FindNextPlayer_Post( const player, const bool:searchDown, const playerNameToSearch[] )
{
if( PlayerTeam != TEAM_UNASSIGNED )
{
set_pdata_int( player, m_iTeam, PlayerTeam );
PlayerTeam = TEAM_UNASSIGNED;
}
}
Všimněte si druhého řádku, zde se nachází právě incluce třetí strany, takže bychom tento plugin přes webcompiler nezkompilovali. Jak přidávat includes se dočteme na konci, nyní je potřeba pouze otestovat kompiler. Ten spustíme zelenou šipkou v horním panelu (na obrázku podbarvena žlutě)Spoiler: zobrazit
Pokud vše proběhlo správně, v dolním ohně vyskočí takováto hláška:Kód: Vybrat vše
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team
Header size: 484 bytes
Code size: 1080 bytes
Data size: 808 bytes
Stack/heap size: 16384 bytes; estimated max. usage=42 cells (168 bytes)
Total requirements: 18756 bytes
Done.
Jedná se o log, který zaznamenává průběh kompilace, pokud kompilátor narazí na nějaký problém, zobrazí se právě v tomto okně.
Zkompilovaný plugin nalezneme ve složce compiled plugins v kořenovém adresáři AMXX Studia.
Jak přidat include do kompilátoru?
U každého pluginu, který nějaký include potřebuje, ho vždy autor přiloží. Jedná se o soubor *.inc. jediné co je potřeba, tak vložit tento soubor do složky *\AMXX studio\kompiler\include.