Započeo xSpirit
•17. Avg. 2012.• Zaključano[Savjet] PoÄetak skriptanja
2,570
pregleda
12
postova
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
179
Postovi:
13
Teme:
Pridružio se:Mar. 2012
17. Avg. 2012.
Evo ovo je moj prvi tut, ne budite oÅ¡tri 😄
ZnaÄi svi smo mi bili jednom prvi puta na SAMPu i htjeli otvoriti svoj server, ali kada ste skinuli onaj "samp server" sa sa-mp stranice niste znali niÅ¡ta. Uglavnom sada ću ovim drugim poÄetnicima to probati Å¡to jednostavnije objasniti. Samo da vam na poÄetku napomenem, ukoliko ne znate engleski, nemojte se niti truditi uÄiti skriptati...
ZnaÄi trebate skinuti sa official sa-mp stranice SA-MP 0.3e Windows Server. Kada extractate tu datoteku, dobiti ćete neke mape te joÅ¡ neke stvari. Otvorite server.cfg sa notepadom i dobiti ćete podatke koje morate promjeniti da biste naÅ¡timali svoj server:
Za poÄetak promjenite Rcon_password u željenu rcon lozinku (viÅ¡e kasnije), hostname u željeno ime servera te gamemode u ime gamemoda kojeg ćete koristiti. To bi trebalo ispasti ovako:
Ostale stvari će te skužiti sami kasnije. Dakle idemo dalje... Otiđite u pawno folder te na aplikaciju pawno kliknite desnim klikom te run as administrator. Kliknite ctrl + n te će vam se otvoriti nova skripta. Izgledati će ovako:
UpiÅ¡ite F5 i odaberite ime gamemoda koje ste predhodno upisali. Klikom na F5 compilate mod u .amx file koji vam je potreban za pokretanje servera (ne treba uopće .pwn file kao Å¡to mnogi misle da je potreban). Sada možete pokrenuti kućni server klikom na samp-server. Otvoriti će vam se neki crni prozor te će pisati u njemu neÅ¡to. Njega nemojte gasiti te otiÄ‘ite u svoj samp client te u port stavite :7777 (toÄno tako) i možete ući u svoj server (naravno neće imati komandi nikakvih ali ćete ih lako kasnije dodati)...
Prve 3 linije možete obrisati i staviti neÅ¡to svoje. Sve Å¡to se nalazi iza // je komentar te on ne utjeÄe na skriptu. TakoÄ‘er možete staviti tekst izmeÄ‘u /* i */ Å¡to je korisno kada trebate recimo samo na neko vrijeme ukloniti neku mapu iz moda ali predugo traje da na svaki red upisujete //.
Umjesto ta 3 reda stavite npr ovo:
Sada namjestite spawn. U kodu nađite ovo:
public OnGameModeInit()
Ovaj SetGameModeText je mod servera kojeg možete vidjeti na sa-mp clientu.
AddPlayerClass daje serveru spawn informacije tj. više o njemu možete vidjeti ovdje.
Idemo dalje...
Mnogi poÄetnici grjeÅ¡e u koriÅ¡tenju strcmpa za komande te ga koriste umjesto jednostavnijeg ZCMD-a, ali evo u strcmpu ću raditi sada... Prvu komandu koju napravite je /help i samim time zadate sebi neke komande koje trebate dalje raditi.
U gamemodu nađite "public OnPlayerCommandText" te ćete dobiti ovo:
Umjesto /mycommand stavite ime svoje komande, u ovom sluÄaju /help. IzbriÅ¡ite ovaj ispod dio te stavite ovako (ispod objaÅ¡njenje svega):
ZnaÄi SendClientMessage znaÄi da ovome igraÄu koji je upisao /help Å¡alje poruku. Playerid oznaÄava kojem igraÄu Å¡aljete poruku (playerid oznaÄava onoga koji je upisao komandu), a ovo 0xFFFFFF oznaÄava boju. Boje su iste kao i HTML boje samo Å¡to umjesto # stavljate 0x.
Sada znate osnove skriptanja, ono najosnovnije. Sada preporuÄam da uzmete jedan gamemod i pregledate njegove funkcije, komande itd. Možda vam na poÄetku neće biti jasno ali pregledajte malo bolje, upoznajte se sa "kompjuterskom logikom" itd. Kada mislite da ste nauÄili neÅ¡to (nakon 2 tjedna do mjesec dana), probajte napraviti svoju dm skriptu. Za poÄetak niÅ¡ta osobito, reg/log sistem u dialogu, osnovne komande, admin i vip sistem. Malo vježbajte na tom DM modu te kada ga zavrÅ¡ite (ako ste zaljubljenik u RP) možete prjeći na RP skripte. Napravite sliÄno kao i sa DM skriptom, samo u RP stilu sve radite. Mnogi u poÄetku skriptanja grjeÅ¡e, traže tutoriale na netu, ali samo prekopiraju i niÅ¡ta ne proÄitaju. Barem proÄitajte a ako želite baÅ¡ razumjeti ono Å¡to Äitate preporuÄam da pregledate samp wiki stranicu: http://wiki.sa-mp.com/wiki/Main_Page . Tu ćete naću razne callbackove, funkcije, pa Äak i neke tutoriale, koji će vam vjerovatno viÅ¡e objasniti nego ovi drugi sa interneta. Ukoliko vam doÄ‘e 10ak errora kod compilanja, nemojte odustati... pogledajte na internetu dalje kako su drugi rjeÅ¡avali takve stvari i rjeÅ¡iti će te. Ukoliko ste baÅ¡ zabrljali, onda izbriÅ¡iti ono Å¡ta ste zadnje radili i probajte ispoÄetka na drugaÄiji naÄin.
Eto nadam se da sam bar jednom skripteru pomogao (ako ima joÅ¡ neki ovakav tutoral, ispriÄavam se ali nisam vidio.. ovo sam sve sam sada pisao)...
Ukoliko imate prijedlog, primjedbu recite u odgovoru i urediti ću.
ZnaÄi svi smo mi bili jednom prvi puta na SAMPu i htjeli otvoriti svoj server, ali kada ste skinuli onaj "samp server" sa sa-mp stranice niste znali niÅ¡ta. Uglavnom sada ću ovim drugim poÄetnicima to probati Å¡to jednostavnije objasniti. Samo da vam na poÄetku napomenem, ukoliko ne znate engleski, nemojte se niti truditi uÄiti skriptati...
ZnaÄi trebate skinuti sa official sa-mp stranice SA-MP 0.3e Windows Server. Kada extractate tu datoteku, dobiti ćete neke mape te joÅ¡ neke stvari. Otvorite server.cfg sa notepadom i dobiti ćete podatke koje morate promjeniti da biste naÅ¡timali svoj server:
echo Executing Server Config...
lanmode 0
rcon_password changeme
maxplayers 32
port 7777
hostname SA-MP 0.3 Server
gamemode0 grandlarc 1
filterscripts baseaf gl_actions gl_property gl_realtime gl_mapicon ls_elevator
announce 0
query 1
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0Za poÄetak promjenite Rcon_password u željenu rcon lozinku (viÅ¡e kasnije), hostname u željeno ime servera te gamemode u ime gamemoda kojeg ćete koristiti. To bi trebalo ispasti ovako:
echo Executing Server Config...
lanmode 0
rcon_password balkansamp
maxplayers 32
port 7777
hostname Moj Server
gamemode0 MyServer
filterscripts baseaf gl_actions gl_property gl_realtime gl_mapicon ls_elevator
announce 0
query 1
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0Ostale stvari će te skužiti sami kasnije. Dakle idemo dalje... Otiđite u pawno folder te na aplikaciju pawno kliknite desnim klikom te run as administrator. Kliknite ctrl + n te će vam se otvoriti nova skripta. Izgledati će ovako:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;UpiÅ¡ite F5 i odaberite ime gamemoda koje ste predhodno upisali. Klikom na F5 compilate mod u .amx file koji vam je potreban za pokretanje servera (ne treba uopće .pwn file kao Å¡to mnogi misle da je potreban). Sada možete pokrenuti kućni server klikom na samp-server. Otvoriti će vam se neki crni prozor te će pisati u njemu neÅ¡to. Njega nemojte gasiti te otiÄ‘ite u svoj samp client te u port stavite :7777 (toÄno tako) i možete ući u svoj server (naravno neće imati komandi nikakvih ali ćete ih lako kasnije dodati)...
Prve 3 linije možete obrisati i staviti neÅ¡to svoje. Sve Å¡to se nalazi iza // je komentar te on ne utjeÄe na skriptu. TakoÄ‘er možete staviti tekst izmeÄ‘u /* i */ Å¡to je korisno kada trebate recimo samo na neko vrijeme ukloniti neku mapu iz moda ali predugo traje da na svaki red upisujete //.
Umjesto ta 3 reda stavite npr ovo:
/*--------------------------------------------------------------------------------
---------------------------------Moj prvi gamemod--------------------------
--------------------------------Verzija: v.0.1---------------------------------
--------------------Skripter i maper: xSpirit--------------------------------
---------------------------------------------------------------------------------*/
Sada namjestite spawn. U kodu nađite ovo:
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}Ovaj SetGameModeText je mod servera kojeg možete vidjeti na sa-mp clientu.
AddPlayerClass daje serveru spawn informacije tj. više o njemu možete vidjeti ovdje.
Idemo dalje...
Mnogi poÄetnici grjeÅ¡e u koriÅ¡tenju strcmpa za komande te ga koriste umjesto jednostavnijeg ZCMD-a, ali evo u strcmpu ću raditi sada... Prvu komandu koju napravite je /help i samim time zadate sebi neke komande koje trebate dalje raditi.
U gamemodu nađite "public OnPlayerCommandText" te ćete dobiti ovo:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}Umjesto /mycommand stavite ime svoje komande, u ovom sluÄaju /help. IzbriÅ¡ite ovaj ispod dio te stavite ovako (ispod objaÅ¡njenje svega):
if (strcmp("/help", cmdtext, true, 5) == 0)
{
SendClientMessage(playerid,0xFFFFFF,"|-------------KOMANDE NA SERVERU------------------|");
SendClientMessage(playerid,0xFFFFFF,"/admins, /gamemasters, /attempt, /me, /do, /s, /c");
SendClientMessage(playerid,0xFFFFFF,"/w, /new, /report, /animations, /levelup");
SendClientMessage(playerid,0xFFFFFF,"|---------------------------------------------------|");
}
return 1;
}ZnaÄi SendClientMessage znaÄi da ovome igraÄu koji je upisao /help Å¡alje poruku. Playerid oznaÄava kojem igraÄu Å¡aljete poruku (playerid oznaÄava onoga koji je upisao komandu), a ovo 0xFFFFFF oznaÄava boju. Boje su iste kao i HTML boje samo Å¡to umjesto # stavljate 0x.
Sada znate osnove skriptanja, ono najosnovnije. Sada preporuÄam da uzmete jedan gamemod i pregledate njegove funkcije, komande itd. Možda vam na poÄetku neće biti jasno ali pregledajte malo bolje, upoznajte se sa "kompjuterskom logikom" itd. Kada mislite da ste nauÄili neÅ¡to (nakon 2 tjedna do mjesec dana), probajte napraviti svoju dm skriptu. Za poÄetak niÅ¡ta osobito, reg/log sistem u dialogu, osnovne komande, admin i vip sistem. Malo vježbajte na tom DM modu te kada ga zavrÅ¡ite (ako ste zaljubljenik u RP) možete prjeći na RP skripte. Napravite sliÄno kao i sa DM skriptom, samo u RP stilu sve radite. Mnogi u poÄetku skriptanja grjeÅ¡e, traže tutoriale na netu, ali samo prekopiraju i niÅ¡ta ne proÄitaju. Barem proÄitajte a ako želite baÅ¡ razumjeti ono Å¡to Äitate preporuÄam da pregledate samp wiki stranicu: http://wiki.sa-mp.com/wiki/Main_Page . Tu ćete naću razne callbackove, funkcije, pa Äak i neke tutoriale, koji će vam vjerovatno viÅ¡e objasniti nego ovi drugi sa interneta. Ukoliko vam doÄ‘e 10ak errora kod compilanja, nemojte odustati... pogledajte na internetu dalje kako su drugi rjeÅ¡avali takve stvari i rjeÅ¡iti će te. Ukoliko ste baÅ¡ zabrljali, onda izbriÅ¡iti ono Å¡ta ste zadnje radili i probajte ispoÄetka na drugaÄiji naÄin.
Eto nadam se da sam bar jednom skripteru pomogao (ako ima joÅ¡ neki ovakav tutoral, ispriÄavam se ali nisam vidio.. ovo sam sve sam sada pisao)...
Ukoliko imate prijedlog, primjedbu recite u odgovoru i urediti ću.
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
179
Postovi:
13
Teme:
Pridružio se:Mar. 2012
17. Avg. 2012.
...Р৸illipS... wrote on August 17, 2012, 8:11 am:
Dobro,razumem ja tvoj trud i sve ali strcmp na mod od 0 😕 Nikako,ili zmcd ili ycmd !
ma znam ja to nego su svi na poÄetku tvrdoglavi pa idu na strcmp... Kad se vratim kući (sutra) editat ću i stavit zcmd uz ovo...
Street Runner
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
18
Postovi:
3
Teme:
Pridružio se:Avg. 2012
17. Avg. 2012.
Lijepo ti je ovo, a na strcmp sam napravio 2 moda od nule i svi su uspjeli nisu imali warninga ni errora niti je crashao server, jest jednom slucajno je zastario sistem komandi, pa sam to prebacio na fs 😄
Hustler
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
83
Postovi:
8
Teme:
Pridružio se:Avg. 2012
17. Avg. 2012.
Data64.dll wrote on August 17, 2012, 10:08 am:
Lijepo ti je ovo, a na strcmp sam napravio 2 moda od nule i svi su uspjeli nisu imali warninga ni errora niti je crashao server, jest jednom slucajno je zastario sistem komandi, pa sam to prebacio na fs 😄
To je jako neoptimizovan mod.
@Autor - Odlican tut,mozes svaki dan da dodas po nesto,nego od pogresnog dela si krenuo,trebao si prvo chat,pa /me ,/b komande....
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
937
Postovi:
22
Teme:
Pridružio se:Mar. 2011
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
918
Postovi:
33
Teme:
Pridružio se:Jan. 2012
17. Avg. 2012.
Dobar tut ja sam sam pocetnik i ja se ne razumijem u to include zmcd dini i to nego sam cuo od nekih skriptera da je zcmd najbolji pa radim na zmcd,a imam i dini i YSI i ima li dje tutove za ovo da naucim nesto o ovim includama?
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
179
Postovi:
13
Teme:
Pridružio se:Mar. 2012
17. Avg. 2012.
Data64.dll wrote on August 17, 2012, 10:08 am:
Lijepo ti je ovo, a na strcmp sam napravio 2 moda od nule i svi su uspjeli nisu imali warninga ni errora niti je crashao server, jest jednom slucajno je zastario sistem komandi, pa sam to prebacio na fs 😄
nevalja strcmp.. ovo sam stavio kao Å¡to sam rekao samo radi toga Å¡to su poÄetnici tvrdoglavi pa koriste strcmp (priznajem jesam i ja, al nakon Å¡to sam probao zcmd nisam koristio strcmp uopće xD
Jednom prilikom sam negdje proÄitao da su na poÄetku moda ZCMD i YCMD jednaki, možda je samo malo ZCMD brži, ali Å¡to server ima viÅ¡e komandi, to se YCMD viÅ¡e isplati (meÄ‘utim teži je a ja se držim svejedno ZCMDa xD)
btw. ovo sam napravio Äisto zbog ove teme jer ovi neki poÄetnici u sampu traže skriptera za server a nemaju ni 0 postova pa kao nude vlasnika...Mislim 1 ili 2 su Äovika u ciloj temi ponudila kao novac za nagradu... Pa neka ljudi nauÄe bar osnove pa naprave jednostavan mod ili neÅ¡to a ne ovako tražit skriptera ili navodno editan mod (a editano ime samo) pa radit server i davat milijune na poÄetku...
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,362
Postovi:
35
Teme:
Pridružio se:Jun 2010
17. Avg. 2012.
Mrzim kad priÄaju o optimizaciji i misle da se to rjeÅ¡ava koriÅ¡tenjem ZCMD-a !!!
OT:
Pohvala za trud. 🙂
Ima par greÅ¡aka al ću ti navest samo jednu. 😁
bi išlo ovako
ili
OT:
Pohvala za trud. 🙂
Ima par greÅ¡aka al ću ti navest samo jednu. 😁
if (strcmp("/help", cmdtext, true, 10) == 0)bi išlo ovako
if (strcmp("/help", cmdtext, true, 5) == 0)ili
if(!strcmp(cmdtext, "/help", true, 5))Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
179
Postovi:
13
Teme:
Pridružio se:Mar. 2012
18. Avg. 2012.
K4 wrote on August 17, 2012, 6:46 pm:
Mrzim kad priÄaju o optimizaciji i misle da se to rjeÅ¡ava koriÅ¡tenjem ZCMD-a !!!
OT:
Pohvala za trud. 🙂
Ima par greÅ¡aka al ću ti navest samo jednu. 😁
bi išlo ovako
ili
OT:
Pohvala za trud. 🙂
Ima par greÅ¡aka al ću ti navest samo jednu. 😁
if (strcmp("/help", cmdtext, true, 10) == 0)bi išlo ovako
if (strcmp("/help", cmdtext, true, 5) == 0)ili
if(!strcmp(cmdtext, "/help", true, 5))e hvala, ispravio sam... zaboravim da treba taj broj minjat, kako ne koristim srcmp xD
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava