Pacino`s simple gate creator
Evo da vam predstavim svoj prvi include. Radio sam ga negdje oko sat vremena, nisam ga bas testirao, ali objekti rade normalno. Ovo je ujedno i moj prvi include. Ocekujte jos vise kako budem napredovao :D
Funkcije:
AddGate(id,modelid,Float:pocetnaX,Float:pocetnaY,Float:pocetnaZ, Float:pocetnaRotX, Float:pocetnaRotY, Float:pocetnaRotZ,Float:otvorenaX,Float:otvorenaY,Float:otvorenaZ,Float:brzina);
MoveGate(id);
DestroyGate(id);
Kao object streamer sam stavio Incognitov plugin Streamer (http://solidfiles.com/d/09460/).
Primjer:
/*
URADIO:
Irfan Pacino | Irfan Šarić
15.6.2011
*/
#define FILTERSCRIPT
#include <a_samp>
#include <pdyn>
#include <zcmd>
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Pacino`s simple gate creator sample");
print("--------------------------------------\n");
AddGate(2, 969, 2463.7678222656, -1663.2216796875, 12.310663223267, 0, 0, 90, 2463.7678222656, -1663.2216796875, 2.0, 5.0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, -1, "Koristi /port da se portas do kapije i /test da otvoris/zatvoris kapiju!");
return 1;
}
//===============================================[ZCMD]==============================================
CMD:test(playerid, params[])
{
MoveGate(2);
SendClientMessage(playerid, -1, "Pomjerio si kapiju!");
return 1;
}
CMD:port(playerid, params[])
{
SetPlayerPos(playerid, 2465.7678222656, -1665.2216796875, 12.310663223267);
return 1;
}
Mozete birati koliko cete maksimalno kapija sa
#defineMAX_KAPIJE
u include fajlu.
Download - PASTEBIN (http://pastebin.com/Q1F6cvRt)
Nemojte mi zamjeriti ovo je moj prvi include :D
To znaci da i nije optimiziran.
Include je tako uradjen da se kapija zatvara pomocu samo jednog callbacka PomjeriKapiju(id), gdje se kapija zatvara ako je otvorena, a ako je zatvorena ona se otvara
uu jebeno,poslje cu testat
Sada te neću blamirati da ne ispadne. Ali samo ću ti napomenuti...
Tvoj kod..
forward StvoriKapiju(id,modelid,Float:pocetnaX,Float:pocetnaY,Float:pocetnaZ,Float:pocetnaRotX,Float:pocetnaRotY,Float:pocetnaRotZ,Float:otvorenaX,Float:otvorenaY,Float:otvorenaZ,Float:brzina);
public StvoriKapiju(id,modelid,Float:pocetnaX,Float:pocetnaY,Float:pocetnaZ,Float:pocetnaRotX,Float:pocetnaRotY,Float:pocetnaRotZ,Float:otvorenaX,Float:otvorenaY,Float:otvorenaZ,Float:brzina)
kao i
forward PomjeriKapiju(id);
public PomjeriKapiju(id)
glu*ost opet, koristi 'stock' jer stock može imati optimalan argument public ne može.. Malo googlaj i Äitaj o PAWNCC kompajler-u i shvatit ćeÅ¡ Å¡to ti želim reći.. Ne koristiÅ¡ nikakav timer da trebaÅ¡ public
Eto ti dokaz da loše skriptaš.
A sada da ne bi ispalo da blamiram svaku tvoj skriptu, nemam niÅ¡ta protiv tebe ( stvarno nemam ) nego jednostavno ne bi htio da drugi ljudi koji su poÄetnici da gledaju tvoje skripte i da uÄe iz njih jer će loÅ¡e uÄiti, svi smo mi radili ovakve greÅ¡ke ( mislim i na sebe naravno ) ali sam i ja primao ovakve savjete i shvaćao ih dobronamjerne za razliku od tebe. Ovo samo shvati kao da ti dajem prijateljski savjet za bolje skriptanje ;)
InaÄe jako mi se sviÄ'a skripta tj. jako lijepa ideja koja je loÅ¡e izvedena ali kao Å¡to si i sam rekao prvi INC tako da je u redu samo ti kažem općenito.
Pa ovo je include, mozda on ne koristi ovu funkciju u tajmer, al sto ako neko drugi zeli da je koristi u tajmeru? Ne bi mogao jer mu funkcija ne bi bila kompatibilna
OT: korsti engleske termine za funckije
Citat: [BU] Gigi_Falcone poslato Jun 15, 2011, 19:48:20 POSLE PODNE
Pa ovo je include, mozda on ne koristi ovu funkciju u tajmer, al sto ako neko drugi zeli da je koristi u tajmeru? Ne bi mogao jer mu funkcija ne bi bila kompatibilna
Možeš koristiti u timeru... Primjer
NekaFNC(playerid,bool:da) // npr. zamislimo da je ovaj kod u INC file -u
{
if(da == true)
{
// neki effect
SCM(playerid,boja,"Neka poruka");
}
else if(da == false)
{
// neki effect
SCM(playerid,boja,"Neka poruka");
}
return true;
}
forward LocalTimer(playerid);
public LocalTimer(playerid) // zamislimo da je ovaj timer u mod-u
{
NekaFNC(playerid,true);
return true;
}
Testiraj, radit će iako mislim da nisi mislio na to nego si krivo shvatio šta sam ja htio reći... ;)
mislio sam na direktno pozivanje funkcije kao tajmer sa SetTimerEx
Citat: [BU] Gigi_Falcone poslato Jun 15, 2011, 19:56:10 POSLE PODNE
mislio sam na direktno pozivanje funkcije kao tajmer sa SetTimerEx
Pa da ali ne razumijem zaÅ¡to bi to neko trebao na naredbi i ako to treba mislim da takav sigurno neće koristiti neÄiji sustav nego će imati svoj...
Ili jednostavno je mogao napraviti
#if defined i staviti da skripter bira hoće stock ili public ali opet meni je beskorisno koristiti public u ovoj skripti
Mislim realno, onda bi za svaki INC mogli tako reći zar ne?
Zato ostajem pri tome da je trebao koristiti stock :)
Kada se prave skripte kao sto su include-ovi, koje ce obicno skidati i koristiti skripteri koji pocinju da uce jezik, smatram da bi skripta trebala biti univerzalna i kompatibilna sa funkcijama u kojima moze biti iskoristena, tipa SetTimerEx.
A i nije toliko velika razlika izmedju publica i stocka, tj konkretno u ovom slucaju ne bi predstavljala nikakav problem, vec bi i omogucavala koriscenje vise funkcija.
Citat: [BU] Gigi_Falcone poslato Jun 15, 2011, 20:04:00 POSLE PODNE
Kada se prave skripte kao sto su include-ovi, koje ce obicno skidati i koristiti skripteri koji pocinju da uce jezik, smatram da bi skripta trebala biti univerzalna i kompatibilna sa funkcijama u kojima moze biti iskoristena, tipa SetTimerEx.
A i nije toliko velika razlika izmedju publica i stocka, tj konkretno u ovom slucaju ne bi predstavljala nikakav problem, vec bi i omogucavala koriscenje vise funkcija.
Slažem se s tobom do nekog dijela, prije bi se složio s tim u sluÄaju plugin-ova i hook plugin sa INC-om ali nema veze. Nije mi bila poanta blamirati nego samo dati savjet. A iskreno kakvih danas sve mogućnosti ima u SA:MP-u ( s obzirom na proÅ¡lost ) teÅ¡ko je da ćeÅ¡ napraviti neku skriptu/INC kompaktibilan jer realno tu je i YSI :)
Ono što hoću reći je da je ta odluka na samom skripteru..Jer ako ćemo stalno tupiti 'što ako' onda možemo i tupiti 'što ako sad padne meteor'
Ok, hvala na savjetima malo cu updatat include, stavit cu DeleteGate isto tako cu staviti engl. termine radi lakseg pamćenja :D
Meni se svidja :Dposle cu da test :D
Update:
Promjenjene funkcije na engl. termine i dodana funkcija DestroyGate(id);
Super :) :) :)
8)
Pre jebeno !
hmm fora je, valjda radi