Automatske kapije

Za verzije SAMP-a 0.2x i nize
Ukoliko koristite zastarele verzije sampa, predlazem vam da ih update sa ovog linka SA:MP, ali ukoliko zaista zelite da koristite te verzije, sledi deo tutoriala namenjen za iste. Na pocetku naravno morate imati definisan #include 

stock IsPlayerInRangeOfPoint(playerid, Float:radius, Float:X, Float:Y, Float:Z) {   new Float:px,Float:py,Float:pz; GetPlayerPos(playerid,px,py,pz); return ( ( ((px-X)*(px-X))+((py-Y)*(py-Y))+((pz-Z)*(pz-Z)) ) >= radius*radius ); }
 * 1) if !defined IsPlayerInRangeOfPoint
 * 1) endif

Prvi koraci
Moracete dodati ovo na pocetak skripte

//Moze biti ubaceno bilo gde u skripti jedini uslov je da se nalazi iznad mesta koriscenja new mygate;

Ovo cete staviti pod callback OnGameModeInit. U skripti to trazite kao public OnGameModeInit

mygate = CreateObject(object_ID, closed_X, closed_Y, closed_Z, closed_rad_X, closed_rad_Y, closed_rad_Z);//razmaci izmedju = su obavezni

Kreiranje automatskih kapija
Na pocetku, stavicemo timer pod public OnGameModeInit koji ce pozvati vasu kapiju na zadan broj milisekundi.

SetTimer("CheckGate",1000,true);

Kada smo kreirali timer stavljamo sta ce se desavati kada se odbrojavanje u timeru zavrsi (callback). Dodajemo forward iznad callbacka koji sledi. forward CheckGate public CheckGate {   new mygate_status; for(new i;i<MAX_PLAYERS;i++) {       if(!IsPlayerConnected(i)) continue; if(IsPlayerInRangeOfPoint(i,10.0,closed_X,closed_Y,closed_Z))mygate_status=1; }   if(mygate_status)MoveObject(mygate, open_X, open_Y, open_Z,Moving Speed); else MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed); }

U publicu CheckGate, namesteno je da se kapija automatski otvori kada je igrac u njenoj blizini, i takodje zatvori posle odredjenog vremena.