Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => FilterScripte, Include, Pluginovi za SA-MP => Filterskripte & include fajlovi => Temu započeo: Correlli poslato Novembar 04, 2010, 10:02:38 PRE PODNE

Naslov: [INC] Sustav surfanja
Poruka od: Correlli poslato Novembar 04, 2010, 10:02:38 PRE PODNE
Å ta je ovo?
Ovo je obični include fajl koji vam omogućava da stavite daske za surfanje na server i koristite ih. Može biti korisno ako želite malo zabave.


Video:
http://img716.imageshack.us/img716/2379/surfingsystem.mp4 (http://img716.imageshack.us/img716/2379/surfingsystem.mp4)


Zasluge:
- Y_Less (http://forum.sa-mp.com/member.php?u=29176) za foreach (http://y-less.pastebin.ca/1618846) & GetXYInFrontOfPlayer funkcije,
- ZeeX (http://forum.sa-mp.com/member.php?u=32869) za zcmd (http://forum.sa-mp.com/showthread.php?t=91354) procesor komandi.


Kako instalirati?
Lahko i jednostavno - skinite i stavite surfboard.inc u \pawno\include\ mapu i isto tako napravite i sa foreach.inc i zcmd.inc fajlom.
Otvorite skriptu i stavite ovo:
#include <foreach>
#include <zcmd>
#include <surfboard>

odma iza
#include <a_samp>
Daske za surfanje stavite u OnGameModeInit callback.
Primjer:
/*
CreateSurfboard(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz = 0.0);
*/
CreateSurfboard(1, 548.57208252, -1910.07702637, 0.0, 270.0, 0.0, 180.0);
CreateSurfboard(2, 546.25457764, -1909.92712402, 0.0, 270.0, 0.0, 180.0);
CreateSurfboard(3, 543.55535889, -1909.75854492, 0.0, 270.0, 0.0, 180.0);
CreateSurfboard(1, 540.91290283, -1909.6159668, 0.0, 270.0, 0.0, 180.0);
CreateSurfboard(3, 538.32940674, -1908.54333496, 0.0, 270.0, 0.0, 180.0);

Ove daske za surfanje su locirane kod obale Svete Marije (Santa Maria Beach). Evo vam i spawn kordinate:
542.57208252, -1912.07702637, 2.0


Funkcije:
CreateSurfboard
Sa ovom funkcijom možete staviti dasku za surfanje na server.
@modelid = Model-ID daske za surfanje - važeći modelID-ovi su 1, 2 i 3.
@Float: x = Početna X kordinata daske za surfanje.
@Float: y = Početna Y kordinata daske za surfanje.
@Float: z = Početna Z kordinata daske za surfanje.
@Float: rx = Početna X rotacija daske za surfanje.
@Float: ry = Početna Y rotacija daske za surfanje.
@Float: rz = Početna Z rotacija daske za surfanje.
vrati ID daske za surfanje koji počinje sa 0. Ako preÄ'ete MAX_SURFBOARDS defin onda će vam funkcija vratiti nevažeći ID a to je -1.
Primjer:
new
       gSurfboard = -1;

public OnGameModeInit()
{
   gSurfboard = CreateSurfboard(1, 548.57208252, -1910.07702637, 0.0, 270.0, 0.0, 180.0);
   return true;
}


DestroySurfboard
Sa ovom funkcijom možete ukloniti dasku za surfanje sa servera.
@sbid = ID daske za surfanje.
vrati true ako daska za surfanje postoji na serveru i false ako ne.
Primjer:
DestroySurfboard(gSurfboard);

IsSurfboardCreated
Sa ovom funkcijom možete provjeriti da li daska za surfanje postoji na serveru.
@sbid = ID daske za surfanje.
vrati true ako daska za surfanje postoji na serveru i false ako ne.
Primjer:
if(IsSurfboardCreated(gSurfboard)) printf("Daska za surfanje već postoji na serveru.");
else printf("Daska za surfanje NE postoji na serveru.");


StopSurfboard
Sa ovom funkcijom možete zaustaviti dasku za surfanje.
@sbid = ID daske za surfanje.
vrati true ako daska za surfanje postoji na serveru i false ako ne.
Primjer:
StopSurfboard(gSurfboard);

RespawnSurfboard
Sa ovom funkcijom možete re-spawnati dasku za surfanje.
@sbid = ID daske za surfanje.
vrati true ako daska za surfanje postoji na serveru i false ako ne.
Primjer:
RespawnSurfboard(gSurfboard);

SetSurfboardSpeed
Sa ovom funkcijom možete staviti brzinu daski za surfanje.
@sbid = ID daske za surfanje.
@surfspeed = Brzina koju želite staviti daski za surfanje.
vrati true ako daska za surfanje postoji na serveru i false ako ne.
Ako stavite brzinu koja je veća od MAX_SURFBOARD_SPEED onda će funkcija automatsko staviti brzinu koja je definirana sa MAX_SURFBOARD_SPEED.
Primjer:
Ovo će staviti brzinu daske za surfanje na 3.5:
SetSurfboardSpeed(gSurfboard, 3.5);
Ovo će staviti brzinu daske za surfanje na maksimum (koji je definiran sa MAX_SURFBOARD_SPEED):
SetSurfboardSpeed(gSurfboard);

IsPlayerAtSurfboard
Sa ovom funkcijom možete provjeriti da li je igrač blizu daske za surfanje.
@playerid = ID igrača.
@sbid = ID daske za surfanje.
vrati true ako je igrač blizu daske za surfanje i false ako nije.
Primjer:
if(IsPlayerAtSurfboard(playerid, gSurfboard)) printf("Igrač je blizu daske za surfanje sa ID-om %i.", gSurfboard);
else printf("Igrač NIJE blizu daske za surfanje sa ID-om %i.", gSurfboard);


IsPlayerAtAnySurfboard
Sa ovom funkcijom možete provjeriti da li je igrač blizu bilo koje daske za surfanje.
@playerid = ID igrača.
vrati ID daske za surfanje koji počinje sa 0 ako je igrač blizu bilo koje daske i -1 ako nije.
Primjer:
new
        gSurfboard = IsPlayerAtAnySurfboard(playerid);

if(gSurfboard != -1) printf("Igrač je blizu daske za surfanje sa ID-om %i.", gSurfboard);
else printf("Igrač nije blizu ni jedne daske za surfanje");



Defini:
#define MAX_SURFBOARDS (5)
#define MAX_SURFBOARD_SPEED (5.0)

MAX_SURFBOARDS - Maksimalni broj daski za surfanje koji dopušta skripti da ih stavi na server.
MAX_SURFBOARD_SPEED - Maksimalna brzina daske za surfanje. Ne bi smjela biti prevelika, jer inače ćete pasti sa daske za surfanje ako je brzina prevelika.


Kako dobiti kordinate za daske za surfanje?
Pokrenite server ili se konektajte na jedan i odiÄ'ite na poziciju gdje želite imati dasku za surfanje. Onda upotrijebite /save komandu i kad ste zavrÅ¡ili sa time onda otiÄ'ite u savedpositions.txt fajl i izvadite svoje kordinate (trebate samo x i y, najbolje je da stavite z kordinatu na 0.0 - level mora).
Stavite x rotaciju na 270.0 i y rotaciju na 0.0. Z rotacija je rotacija daske za surfanje.


Skini:
(http://nca.uwo.ca/headsetclinic/img/Download.png) (http://solidfiles.com/d/11b0/)


Ostalo:
Ako želite početi surfati, onda stanite pored daske za surfanje i koristite "/surf" komandu. Ako želite prestati sa surfanjem, onda koristite "/surf" komandu opet.

Koristite tipke sa strelicama (GORE, DOLE, LIJEVO i DESNO) da kontrolirate kretanje daske za surfanje.

Kad izbrišete zadnju dasku za surfanje sa servera onda će tajmer stati, tako da vi nemate nikakve brige i ne trebate ništa raditi. I kad opet dodate prvu dasku za surfanje na server, onda će se tajmer opet sam pokrenuti.

Ako padnete sa daske za surfanje, onda će se daska za surfanje automatsko re-spawnati. Isto tako će se automatsko respawnati ako daska za surfanje uleti u neki objekt (primjer - planina).



Nadam se da vam se sviÄ'a,
  Correlli
Naslov: Odg: [INC] Sustav surfanja
Poruka od: Rotcod poslato Novembar 04, 2010, 13:03:10 POSLE PODNE
Lepo od tebe Correlli posto nadjes vremena i za BS pored tvog moda! 100/10
Naslov: Odg: [INC] Sustav surfanja
Poruka od: Aleksandar? poslato Novembar 04, 2010, 13:49:24 POSLE PODNE
perfektno :)
Naslov: Odg: [INC] Sustav surfanja
Poruka od: TiXoR_ poslato Novembar 04, 2010, 14:39:45 POSLE PODNE
Odlično!
Naslov: Odg: [INC] Sustav surfanja
Poruka od: gonss poslato Novembar 04, 2010, 14:52:06 POSLE PODNE
Odlicno odradjeno nema sta, ali malo je nerealno jer nema talasa, a ja nisam video da neko surf ovako na moru
Ipak tesko je napraviti i svaka ti cast 10/10
Naslov: Odg: [INC] Sustav surfanja
Poruka od: ceLL_ poslato Novembar 04, 2010, 14:56:09 POSLE PODNE
Sjuper-odlicno :D

Pa ti kad ovakve stvari objavljujes.... Sta ce tek na modu sve biti....  ??? Nesmem ni da zamislim :D
Naslov: Odg: [INC] Sustav surfanja
Poruka od: MaTiJa poslato Novembar 04, 2010, 23:53:04 POSLE PODNE
Dobra stvar :P Zanimljivo je ono kad se pokupiti tamo pa se jurite i tako :D
Naslov: Odg: [INC] Sustav surfanja
Poruka od: Correlli poslato Novembar 05, 2010, 19:32:15 POSLE PODNE
Stavio sam novu verziju. Popravio sam jedan bug i dodao par novih funkcija (StopSurfboard, RespawnSurfboard, SetSurfboardSpeed) - više informacija u prvom postu.
Naslov: Odg: [INC] Sustav surfanja
Poruka od: SlicK poslato Novembar 05, 2010, 20:05:11 POSLE PODNE
Svaka cast! Svida mi se mozda stavim na svoj server!
Naslov: Odg: [INC] Sustav surfanja
Poruka od: ceLL_ poslato Novembar 05, 2010, 20:11:16 POSLE PODNE
Citat: â–º|Slick|Crack|â—,, poslato Novembar 05, 2010, 20:05:11 POSLE PODNE
Svaka cast! Svida mi se mozda stavim na svoj server!

Slazem se... Ali znas kakvih ljudi ima! Odma ce da kazu da ti je server prepun FilterScripti! Kako si sve skinuo na gotovo itd....   




Naslov: Odg: [INC] Sustav surfanja
Poruka od: Aleksandar? poslato Novembar 05, 2010, 20:13:33 POSLE PODNE
ovo nije FS :D tako da ne mogu to da kazu xD
Naslov: Odg: [INC] Sustav surfanja
Poruka od: ceLL_ poslato Novembar 05, 2010, 20:17:11 POSLE PODNE
Citat: ‎(à¥"_à¥") - ČιѕÑ,σ яÑ"кяÑ"αÑ,ινησ - (à¥"_à¥") poslato Novembar 05, 2010, 20:13:33 POSLE PODNE
ovo nije FS :D tako da ne mogu to da kazu xD

A lol.... :D To je to slicno.! xD
Naslov: Odg: [INC] Sustav surfanja
Poruka od: Correlli poslato Novembar 05, 2010, 20:29:59 POSLE PODNE
Citat: Marjan_DeFox poslato Novembar 05, 2010, 20:11:16 POSLE PODNE
Odma ce da kazu da ti je server prepun FilterScripti! Kako si sve skinuo na gotovo itd....  

Pa zašto misliš da objavljujem ovdje skripte? Pa naravno da ih ljudi koriste. Pusti druge neka govore šta žele.
Naslov: Odg: [INC] Sustav surfanja
Poruka od: MR.Data poslato Novembar 05, 2010, 21:02:10 POSLE PODNE
Lux je ovo tovja scripta?


Hahaha koj lik da je to njegova scripta hahahahahahahahahahahha!
Naslov: Odg: [INC] Sustav surfanja
Poruka od: ceLL_ poslato Novembar 06, 2010, 01:17:23 PRE PODNE
Super je ovoo..... ;)
Naslov: Odg: [INC] Sustav surfanja
Poruka od: Rotcod poslato Novembar 06, 2010, 09:02:26 PRE PODNE
Za ovo i onaj tornado moj maleni edit vidim mesto u svom serveru ...
Naslov: Odg: [INC] Sustav surfanja
Poruka od: mafica poslato Novembar 06, 2010, 16:21:16 POSLE PODNE
xD..Kako Crazy stvar..:D
Naslov: Odg: [INC] Sustav surfanja
Poruka od: makelele poslato Novembar 06, 2010, 18:44:40 POSLE PODNE
super stvar :D
Naslov: Odg: [INC] Sustav surfanja
Poruka od: Correlli poslato Novembar 18, 2010, 18:33:36 POSLE PODNE
Na ovo sam zaboravio. Pojavlja se problem ako netko surfa i neki igrač pokuša da surfa na istoj toj daski za surfanje.

Ovo možete popraviti i sami:
stock IsSurfboardOccupied(sbid)
{
if(sbid < 0 || sbid > MAX_SURFBOARDS || !IsSurfboardCreated(sbid)) return INVALID_PLAYER_ID;
foreach(Player, u)
{
if((GetPVarInt(u, "surfboardID") - 1) == sbid) return u;
}
return INVALID_PLAYER_ID;
}


i dodajte ovu kodu u /surf komandu (poslije if-stejtmenta koji provjerava da li je igrač blizu koje daske za surfanje):
new
isOccupied = IsSurfboardOccupied(sbid);
if(isOccupied != INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFFFFFFFF, "(surfing) Someone is already surfing on this surfboard!");
/* Ostala koda za početak surfanja. */