4. Kompilacja plików .sma
Listopad 6th, 2007, Autor: Adrian, Kategorie: Bez kategoriiPliki w formacie .sma są to pliki źródłowe pluginów, aby można było uruchomić je na naszym serwerze należy je przekompilować na format .amxx, wyjaśniam niżej 3 sposoby jak to zrobić. Dodam że nie ważne którym sposobem przeprowadzamy kompilację, pluginy i będą działać na windows i linux, więc można sobie wybrać najwygodniejszy sposób.
I. Kompilacja przez webcompiler.
1. Wchodzimy na stronę webcompiler'a
2. Przy polu "Upload .sma file:" klikamy na przycisk "Przeglądaj..." i wybieramy plik .sma przeznaczony do przekompilowania.
3. Teraz klikamy na "Compile" i czekamy na załadowanie się następnej strony.
4. Po poprawnym przekompilowaniu powinien wyskoczyć nam napis "Your plugin successfully compiled!"i pod nim mamy link do ściągnięcia gotowego pliku .amxx.
II. Kompilowanie na Linux.
W przypadku gdy mamy serwer gier z amxmodX na windowsie, możemy kompilować pluginy bezpośrednio na nim.
1. Wrzucamy plik .sma do folderu amxmodx/scrippting/.
2. Teraz odpalamy compile.exe.
3. Po zakończeniu kompilowania kopiujemy gotowy plik .amxx z folderu amxmodx/scrippting/compiled/.
III. Kompilowanie na Linux.
W przypadku gdy mamy serwer gier z amxmodX na Linuksie, możemy kompilować pluginy bezpośrednio na nim.
1. Wrzucamy plik .sma do folderu amxmodx/scrippting/.
2. Jeżeli kompilujemy 1 raz należy nadać chmod +x dla pliku compile.sh.
3. Teraz odpalamy compile.sh.
4. Po zakończeniu kompilowania kopiujemy gotowy plik .amxx z folderu amxmodx/scrippting/compiled/.







[...] serwerze nale
#include
#include
#define PLUGIN "Mapcykl Matkojebca"
#define VERSION "1.0"
#define AUTHOR "graczu"
#define iloscm 3
new mapcycles[iloscm][3][] = {{"mapcycle-rano.txt", "08", "mapcykl poranny"}, {"mapcycle-dzien.txt", "13", "mapcykl dzienny"}, {"mapcycle-noc.txt", "23", "mapcykl nocny"}}
new cum, lastread[3]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /mapcycle", "cmdSayMapcycle", 0, "- wyswietla aktualny mapcykl")
get_localinfo("lastcnum", lastread, 2)
cum = str_to_num(lastread)
set_localinfo("lastcnum", "")
sprawdz_mapcycle()
return PLUGIN_CONTINUE
}
public sprawdz_mapcycle() {
new today_str[8], cmd[48]
get_time("%H",today_str,8)
new today = str_to_num(today_str)
for(new i = 0; i = str_to_num(mapcycles[i][1])){
cum = i
}
}
new currentfile[32]
get_cvar_string("mapcyclefile", currentfile, 31)
if(!equali(currentfile, mapcycles[cum][0])){
format(cmd, 48 ,"mapcyclefile %s", mapcycles[cum][0])
server_cmd(cmd)
log_amx("** Setting new mapcyclefile: %s - %s!", currentfile, mapcycles[cum][0])
new czytajplik[128], line[192], txtsize = 0
format(czytajplik, 127, "%s", mapcycles[cum][0])
new lineread = file_size(czytajplik, 1)
read_file(czytajplik, (lineread - 1), line, 191, txtsize)
if (txtsize > 1 && line[0] != ';') {
format(cmd, 48 ,"amx_nextmap %s", line)
server_cmd(cmd)
log_amx("** Setting new MAP NEXTMAP: %s!", line)
} else {
log_amx("** Setting new MAP NEXTMAP: ERROR LINE IS EMPTY!!")
}
} else {
log_amx("** Mapcyclefile: %s - %s!", currentfile, mapcycles[cum][0])
}
return PLUGIN_HANDLED
}
public cmdSayMapcycle(id){
client_print(id, print_chat, "* Aktualnie Gramy: %s, wcisnij TYLDE by zobaczyc liste map.", mapcycles[cum][2])
client_print(id, print_console, "************* Aktualna Rotacja Map:")
new line[192], lines = 0, txtsize = 0, i = 1
new czytajplik[128]
format(czytajplik, 127, "%s", mapcycles[cum][0])
if(file_exists(czytajplik)){
while ((lines = read_file(czytajplik, lines, line, 191, txtsize)) != 0) {
if (line[0] == ';') continue;
client_print(id, print_console, "* Pozycja: %i : %s", i, line)
i++
}
}
client_print(id, print_console, "**********************************")
}
public plugin_end()
{
new lastcycle[3]
num_to_str(cum, lastcycle, 2)
set_localinfo("lastcnum", lastcycle)
}
Dzięki. Pomogło