Hi.
El jött az ideje ennek is. Ez az elsõ Tutorialom, meglátjuk mi lesz belõle
Elõször is kezdjük a SAMP felépítését ( fájlok )
SAMP Windows Server 0.3emegnyitjuk a letöltött rar-t.
Találunk benne Betûrendben 7 db. Mappát.
Elsõnek: filterscripts - ebbe kerülnek a különbözõ scriptjeink, amit esetleg tesztelésre teszünk be, vagy csak nem akarjuk betenni a módba.
Második: gamemodes - Ide kerül a server módjának fájla. Fontos: A samp-server.exe CSAK a gmneve.AMX fájlt olvassa be, így a gmneve.PWN fájlra nincs szükségünk.
Harmadik: include - gl_ inc-k vannak benne, többnyire nem szükséges a scripteléshez.
Negyedik: npcmodes - Ebben a mappában gyülekeznek NPCink scriptjei. A Benne található RECORDINGS mappában pedig a felvett npc-k.
Ötödik: pawno - Itt találjuk a Pawno nevezetû programot, amivel kényelmesen scriptelhetünk, találunk még egy INCLUDES mappát is. E mappa nagyon fontos számunkra, mivel ebben van a pawno \"lelke\". Itt megtalálhatsz különbözõ .INC fájlokat, ezek nélkül ne fut a server, és a pawno se complitolja le a módunkat/scriptünket.
Hatodik: plugins - ide kerülnek a különféle pluginok. Fontos: Windows serveren nem kell mögé semmi , míg Linux serveren .so kell legyen a plugin kiterjesztése.
Hetedik: scriptfiles - többnyire a dini-s mentéssel kapcsolatos dolgok kerülnek ide.
Most jöjjenek a további filek.
announce.exe - enélkül nem indul el a server, azt a célt szolgálja, hogy hirdesse a servert ( megjeleníti a keresõben )
samp-npc.exe - ez csak akkor lényeges, ha van NPC-nk.
samp-server.exe - Ez a samp lelke, az indítófájl.
server.cfg - itt tudjuk beállítani a server fõbb tulajdonságait.
Jöjjön egy kis konfig.
Nézzük a SERVER.CFG tartalmát:
echo Executing Server Config...
lanmode 0 // lanmode: helyi hálózat, ha 0 akkor internet
rcon_password password // rcon jelszó - kedvedre változtathatod
maxplayers 500 // max játékosok száma - kedvedre változtathatod CSAK Házi Serveren! Hoston nem lehet változtatni.
port 7777 // server portja CSAK Házi Serveren! Hoston nem lehet változtatni.
hostname SA-MP 0.3 Server // ez lesz a servered neve - kedvedre változtathatod
gamemode0 grandlarc 1 // itt beállítjuk a módot - kedvedre változtathatod
filterscripts gl_actions gl_property gl_realtime gl_mapicon ls_elevator test_cmds ls_mall attachments // beírjuk a filterscripteket - kedvedre változtathatod
announce 0 // kiírja-e a keresõbe a servert, vagy sem - kedvedre változtathatod
query 1 // ne piszkáld
weburl www.sa-mp.com // keresõben megjelenõ weboldal, nyilván a sajátod. - kedvedre változtathatod
onfoot_rate 40 // ne bántsd
incar_rate 40 // ne bántsd
weapon_rate 40 // ne bántsd
stream_distance 300.0 // ne bántsd
stream_rate 1000 // ne bántsd
maxnpc 10 // max felcsatlakoztatható NPC - kedvedre változtathatod
logtimeformat [%H:%M:%S] // logolási formátum
+ hozzáadható sorok:
mapname // map nevét állíthatod
plugins // pluginokat tölthetsz be vele - Fontos: Windows simán , Linux pedig .so
Mostmár be tudod állítani a serveredet.
Miután beállítottad, elmented és megnyitod a samp-server.exe -t
ha megvolt beírod az ip-d a sampbe és kihozza a servered.
Router gondok: Ha routered van akkor csak te fogod látni a servert. Megoldás: port nyitása a routerben.
Router ipje: Start -> Futtatás -> cmd -> ipconfig
Szóval, elindítottad a servered, most már fel tudsz rá menni.
Jõjjön a Pawno Része.
Megnyitsz egy üres pawno-t ( server mappája/pawno/pawno.exe )
Ebben tudsz scriptelni.
Complitelni az F5 ös billlentyûvel tudsz, ha minden hibátlan: Ügyes vagy.
Most a kész .AMX fájl-t behelyezed a server mappálya/gamemodes -ba, ezután megnyitod a server.cfg -t és a gamemodes sorba beírod azt, ami a .amx elõtt áll.
Újraindítod a samp-server.exe -t és, ha mindent jól csínáltál: futni fog a seród.
Nézzünk egy példa scriptet:
Gyorsan összedobtam nektek egy rövid GameMódot, minden el van magyarázva, hogy az micsoda.
#include < a_samp > // SAMP függvénykönyvtár beágyazása
#include < zcmd > // ZCMD ICN beágyazása
#include < foreach > // Forearch INC
#define RED 0xff0000AA // Színkód definálása
#define red 0xff0000AA
new i_string [ 256 ] ; // max string
public OnGameModeInit ( )
{
UsePlayerPedAnims ( ) ; // ne mozogjon olyan hülyén XD
SetGameModeText ( \" Teszt GM \" ); // GM nevének állítása
SendRconCommand ( \" mapname Stunt Andreas \" ) ; // a SendRconCommand -al elküldünk neki egy parancsot, jelen esetben a map nevét írjuk át
SendRconCommand ( \" hostname Teszt Stunt Server \" ) ; // Szintén parncsot küldünk el neki, most a seró nevét állítjuk be
// Bármilyen parancsot elküldhetünk vele ami a server.cfg ben van, KIVÉVE: az RCON-t
AddPlayerClass ( 0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0 ) ; // Hozzáadunk egy Skint, ami a karakterválasztóban megjelenik
print(\"\\n--------------------------------------\");
print(\" Blank Filterscript by your name here\");
print(\"--------------------------------------\\n\");
return 1;
}
main ()
{
}
public OnGameModeExit ( )
{
return 1;
}
public OnPlayerConnect ( playerid )
{
PlayAudioStreamForPlayer ( playerid , \"link helye\" ) ; // elindítunk egy zenét
SetPVarInt ( playerid , \" ASZ \" , 0 ) ; // Adminszolinak adunk egy pvart - értéke 0 = ha belép nincs ASZben, ugyan ez Disconnectnél is
SetPVarInt ( playerid , \" GOD \" , 0 ); // GOD kap egy pvart
format( i_string , sizeof ( i_string ) , \"*** %s Csatlakozott a serverre. \" , pName ( playerid ) ) ; // üzenet formázása
SendClientMessageToAll (red , i_string ) ; // kiírása mindenkinek
return 1 ;
}
public OnPlayerDisconnect ( playerid )
{
format( i_string , sizeof ( i_string ) , \"*** %s Kilépett a serverrõl. \" , pName ( playerid ) ) ; // üzenet formázása
SendClientMessageToAll (red , i_string ) ; // elküldése mindenkinek
return 1 ;
}
public OnPlayerRequestClass ( playerid , classid ) // a karakterválasztó nézetei
{
StopAudioStreamForPlayer ( playerid ) ; // Megállítjuk a zenét
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 OnPlayerSpawn ( playerid ) // Spawnol a játékos
{
GivePlayerWeapon ( playerid , 36 , 999 ) ; // adunk neki fegyót
GivePlayerMoney ( playerid , 50000 ) ; // adunk neki pénzt
SendClientMessage ( playerid , RED , \" Sikeresen Spawnoltál \" ) ; // kiírunk neki egy üzenetet
SetPlayerColor ( playerid , RED ) ; // megváltoztatjuk a színét PIROSra
return 1 ;
}
public OnPlayerDeath( playerid, killerid, reason )
{
SendDeathMessage ( killerid , playerid ,reason ) ; // killist
SendClientMessage ( playerid , RED , \" Meghaltál, ez van xd \" ) ; // üzenet küldése, annak aki meghalt
SendClientMessage ( killerid , RED , \" Megöltél egy lámát... \" ) ; // üzenetet küld annak is, aki ölt
return 1 ;
}
public OnPlayerText( playerid, text[ ] )
{
return 1 ;
}
CMD:aszoli( playerid , params [] )
{
if ( IsPlayerAdmin ( playerid ) ) // lekérdezzük, hogy admin-e
{
if ( GetPVarInt ( playerid , \" ASZ \" ) == 0 ) // lekérdezzük, hogy szoliban van-e
{
SetPVarInt ( playerid , \" ASZ \" , 1 ); // ha nem, akkor beléptetjük
format( i_string , sizeof ( i_string ) , \"*** %s Adminszoliba lépett. \" , pName ( playerid ) ) ; // üzenet kiírása
SendClientMessageToAll (red , i_string ) ; // formázása
}
else if ( GetPVarInt ( playerid , \" ASZ \") == 1 ) // lekérdezzük, hogy szoliban van-e
{
SetPVarInt ( playerid , \" ASZ \" , 0 ) ; // ha igen, akkor elvesszük tõle
format ( i_string , sizeof ( i_string ) , \" *** %s Kilépett adminszoliból. \" , pName ( playerid ) ) ; //üzi kiírása, formázása
SendClientMessageToAll ( red , i_string ) ;
}
}
else SendClientMessage ( playerid , red ,\" Nem Vagy Admin! \" ) ; // ha nem admin, üzit ír neki
return 1; // visszatérünk
} // lezárjuk
CMD:fegyverek( playerid , params [ ] ) // csak akkor kap ha admin
{
if ( IsPlayerAdmin ( playerid ) )
{
GivePlayerWeapon ( playerid , 38 , 999 ) ; // adunk neki fegyót
GivePlayerWeapon ( playerid , 37 , 999 ) ;
GivePlayerWeapon ( playerid , 36 , 999 ) ; // lehet folytatni is
}
return 1 ;
}
CMD:god( playerid , params [ ] )
{
if ( IsPlayerAdmin ( playerid ) ) // lekérdezzük, hogy admin-e
{
if ( GetPVarInt ( playerid , \" GOD \" ) == 0 ) // lekérdezzük van-e godja
{
SetPVarInt ( playerid , \" GOD \" , 1 ); // ha nem, akkor adunk neki
SetPlayerHealth ( playerid , 99999 ) ;
}
else if ( GetPVarInt ( playerid , \" GOD \") == 1 ) // lekérdezzük, van- e godja
{
SetPVarInt ( playerid , \" GOD \" , 0 ); // elvesszük tõle a godot
SetPlayerHealth ( playerid , 100 ) ;
}
}
else SendClientMessage ( playerid , red ,\" Nem Vagy Admin! \" ) ; // ha nem admin, üzit ír neki
return 1; // visszatérünk
} // lezárjuk
public OnVehicleDeath(vehicleid)
{
DestroyVehicle( vehicleid ); // ha \"meghal\" ( felrobban a kocsi ) törli - respawnolja
SetVehicleToRespawn(vehicleid); // respawnolja a jármûvet
return 1;
}
stock pName( playerid ) // \"névlekérõ\"
{
static
PlayerName[ MAX_PLAYER_NAME ];
GetPlayerName( playerid, PlayerName, MAX_PLAYER_NAME ); // lekérjük a jétékos nevét, amit a késõbbiekben használunk.
return PlayerName;
}
Elõször is, itt a link:
http://www.solidfiles.com/d/05f8291478/Ezt az elöbb említett úton -> unrar -> elindítod, elindítjátok és mûködni fog a serveretek.
Ha Bármi problémád akad, nyugodtan írj PÜ-t, vagy írj ide a témába.
Köszönöm.
Üdvözlettel: DeaD
Sok Sikert
E: most nézem hogy Chuck is így írta le
, elnézést. Nem róla másoltam!