Kako Poceti Sa Skriptanjem

Započeo markosimic, Jul 20, 2022, 21:40:54 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.



1. Kako pripremiti gamemode

Prvo sto trebate uraditi je da skinete gamemode, sto mozete uciniti na ovom linku http://files.sa-mp.com/samp037_svr_R2-1-1_win32.zip

Drugo sto trebate uraditi je da ocistite gamemode i pripremite ga za rad. Brisete sve iz filterscipts, gamemodes, include, npcmodes, scriptfiles i kreirate folder plugins.

Trece sto trebate uraditi je da posetite dokumentaciju, sobzirom da je official ugasena, mozete je pronaci na OMP-site : https://www.open.mp/docs
OMP-site sadrzi sve sto vam je bitno za ucenje, podesavanja, limite, etc...
Ukoliko ne znate Engleski molim vas da gore u desnom uglu izaberete jezik Bosanski kako bi vam sve bilo na ex-yu jeziku i preporuka je da prebacujete sa EN to EX-YU kako bi stekli znanje engleskog.

Cetvrto sto trebate uraditi je otvoriti server.cfg te ga podesiti. Sad jako je bitno znanje kako se barata sa server.cfg file jer je to konfiguracijski file servera. On se ne moze koristiti od drugog gamemod-a i jednsotavno morate nauciti kako da pisete tj upravljate server.cfg

Kada otvorite server.cfg mozete pronaci sledece :
[pawn]
echo Executing Server Config...
lanmode 0
rcon_password changeme
maxplayers 50
port 7777
hostname SA-MP 0.3 Server
gamemode0 grandlarc 1
filterscripts gl_actions gl_realtime gl_property gl_mapicon ls_elevator attachments skinchanger vspawner ls_mall ls_beachside
announce 0
chatlogging 0
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [%H:%M:%S]
language English
[/pawn]

Sada kako bih vas uputio dalje, trebate posetiti https://www.open.mp/docs/server/server.cfg te procuciti dokumentaciju...

Eh sada, ja cu vam predstaviti kako najosnovniji server.cfg treba izgledati u pripremi gamemod-a :
[pawn]
echo Executing Server Config...
lanmode 0
rcon_password 0011 //rcon lozinka
maxplayers 20 //broj slotova
port 7780 //vas port
hostname learn server // Vas naziv servera
gamemode0 learn-main // Stavite naziv kako ce se zvati vas gamemode
filterscripts // Ovde upisite nazive filterscripti koje koristite, u mom slucaju ne koristim i ne preporucujem koriscenje
plugins // Ovde dodajete plugine koje koristite, jednostavno ako koristite na windowsu ne morate staviti nista ili mozete .dll dok za linux, vecinom hosting ide .so i obavezno je.
announce 0
chatlogging 0
weburl https://nesto.domain // Ovde stavljate vasu domenu,tj vas website.
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0 // Maximalno NPC
logtimeformat [%H:%M:%S] // Format vremena
language Ex-Yu // Upisite jezik koji se koristi na serveru.
gamemodetext nas server // Ovde mozete zaobici pisanje code u skripti i dodati vas gamemodetext.
version v0.0.1 // Ovde mozete zaobici pisanje code u skripti i dodati koja je verzija vaseg gamemode.
playertimeout 60000 // Ovde mozete dodati koliko vremena ce proci u milisekundama do trenutka kada ce server izbaciti igraca zbog neuspesne konekcije tj upita servera za konekciju sa igracem.
timestamp 1 // Ovde mozete dodati timestamp i moja je preporuka za koriscenje ovoga.
[/pawn]

Sada kada smo podesili server.cfg idemo u analizu stvari, sta nam je sve potrebno i sta bi smo sve koristili da napravimo nas server. Pravac https://github.com/

Peto vreme je da skinemo libs koji su nam potrebni za rad. Ja koristim sledece i preporucujem da koristite sledece. Idemo redom

Posecujemo GitHub nalog Y_Less-a : https://github.com/Y-Less

Uzimamo prvo YSI pakete, koji su nam potrebni za razvoj gamemoda, mozete preuzet sa : https://github.com/pawn-lang/YSI-Includes/releases

Koristimo kroz ovaj primer YSI v5.06.1932. Ispod imate Assets i YSI-Includes.zip i kliknete na njega, skinete paket zatim taj paket ubacujemo.

Otvarate folder gde vam je gamemode, zatim otvarate pawno/includes i moja preporuka je da napravite jedan folder pod nazivom ysilib te sve iz YSI-Includes arhive sve ubacite u folder ysilib.

Sada skidamo dodatni paket, sscnaf : https://github.com/Y-Less/sscanf/releases
Sada skidamo dodatni paket, Streamer : https://github.com/samp-incognito/samp-streamer-plugin/releases
Sada skidamo dodatni paket, easydialog : https://github.com/Awsomedude/easyDialog/archive/refs/heads/master.zip
Sada skidamo dodatni paket, formatex : https://github.com/Y-Less/formatex/archive/refs/heads/master.zip
Sada skidamo dodatni paket, samp-distance : https://github.com/Y-Less/samp-distance/archive/refs/heads/master.zip

Plugine Streamer, sscanf2 osim sto ubacujete u pawno/includes takodje dodajete u folder plugins. Za sscanf2 morate preuzeti i .tar te uzeti .so ubacite u plugins.
Sesto skidamo jako bitan paket, a to je community-compiler : https://github.com/pawn-lang/compiler/releases/tag/v3.10.10

Potom sve iz arhive ubacujemo u pawno folder, replace i to je to.

Otvaramo u pawno folder i otvaramo settings i sve sto pise, uzmete i zamenite sa ovim :
[pawn]
[General]
FileAssoc=0
[Display]
WindowMax=1
WindowX=557
WindowY=268
WindowW=790
WindowH=485
Splitter=339
Font_Name=Courier New
Font_Size=10
ShowFuncList=1
[RunOpts]
CopyDir=\
ExeFile=pawncc.exe
Params=-r -w 203
[/pawn]

Sedmo otvaramo pawno napokon, pocinjemo sa new i sada krecemo zapravo da pripremimo skriptu za rad. Kako bih vam ustedeo vreme, napravio sam vam blanko skriptu.
[pawn]
//
#include <a_samp>

main()
{
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
}


public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    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 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 OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    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;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
[/pawn]

Zamenite vasu blanko skriptu sa ovom i sacuvajte onako kako ste nazvali vasu skriptu u gamemode0

Sada ubacujemo nase includes, idemo redom sta nam treba sve te dodajemo :
[pawn]
#include <ysilib\YSI_Storage\y_ini>
#include <ysilib\YSI_Coding\y_timers>
#include <ysilib\YSI_Visual\y_commands>
#include <ysilib\YSI_Coding\y_hooks>
#include <ysilib\YSI_Data\y_foreach>
#include <ysilib\YSI_Data\y_iterate>
#include <sscanf2>
#include <streamer>
[/pawn]

Nakon sto smo dodali sve nase includes, sacuvamo i uradimo compile gamemoda.
Osmo ponovo ulazimo u server.cfg i popunjamo plugins
[pawn]
plugins sscnaf streamer
[/pawn]

Deveto kako sada skriptati. Posetite dokumentaciju i proucite stvari. Jednostavno citajte, ako ne znate engleski prevedite preko google translate, hvatajte belekse u notepad i povezite stvari sami. Kada imate problem, pokusajte da razvijete sami osecaj za resenje, budite uporni. Ako ne uspete, google problem, upisite sta vam je error, warning. Ako ne znate engleski jednostavno uzmite i prevedite na balkanski. Ako vam neki termin nije jasan, uzmite ponovo i google dok ne skontate taj termin, znacenje istog. Krenite od simple kreiranja komande za vreme, za kreiranje automobila, krenite od toga da napravite poziciju spawna. Krenite od osnova. Zelis napraviti nesto ? Kreni od pocetka. Idemo redom. Kreces od sitnica, ne govori ja to znam. Ne znas. Pisi code samostalno, gledaj dokumentacije, proucavaj. Pitaj ljude da ti objasne, ali ne preko svog znanja i potencijala. Potencijal je ono znanje koje imas i zelis da ga ucinis bogatijim kako bi tebi bilo bolje, imas vece znanje. Ja cu vam dati jedan primer, posto se ovde koristi y_commands :
[pawn]
if(help)
    {
        SendClientMessage(playerid, 0xFF0000AA, "Write a short help message here.");
    }
    else
[/pawn]

Komandu pocinjete sa ovim, ja vam dajem zagonetku da skontate sta ovo radi, kako ovo radi i da zapravo iskoristite ovo pametno.

Deseto i poslednje, ovo vam je moja lista sa objasnjenjima, osnovnim stvarima prevedeno sa official foruma dok je postojao : https://balkan-samp.com/forum/index.php?topic=138030.0
Takodje preporuka je da pogledate i ovu temu, ovo sve sacuvate negde cisto da imate kompletnu listu svega moguces sta vam compiler moze izbaciti : https://balkan-samp.com/forum/index.php?topic=141653.0

Dodatak : Ako se pitate zasto nismo include ostale pakete, trenutno nisu potrebni. Radite osnovno i polako ukljucujte pakete. Umesto easydialog-a mozete koristiti i y_dialogs





DL : https://www.mediafire.com/file/zb81nhk25gm8obu/learn-server.rar/file
VirusScan : https://www.virustotal.com/gui/url/4a72f37f361133b9126cbacf050d5cec26e16737ee5e441b539ddfdea6d1e27d?nocache=1


Poslednja Izmena: Jul 25, 2022, 21:05:09 POSLE PODNE od Paradox.pwn
Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.