No, začnem tím že vás pozdravím xD ahojte.
[size=150]Predslov alias O čom to je ?[/size]
Na 99% vecí sa dá ísť logicky. Aby ste mohli takto fungovať musíte perfektne ovládať základy pwn. Potom netreba zakladať samé help-y kde sa budete pýtať ako robiť tamto a tamto.
[size=150]Neviem spraviť niečo, ako teda na to ?[/size]
Je to jednoduché, stačí porozmýšľať (žiadne "myslenie bolí a preto nemyslím" xD !). Začneme.
[size=150]Teória[/size]
príklad: Bol som na jednom servery kde bol odpočet, človek dak /3 a spustil sa odpočet na 3 sekundy (3,2,1,GO) a teraz neviem čo by mal obsahovať a ako asi funguje.
Porozmýšľam čo je odpočet.
"Je to vlastne číslo ktoré sa zmenšuje až príde k poslednému číslu, s pravidla je to štart/go...".
Už viem čo je odpočet. Ako ho vyvolám ? Kebyže ho dám za sebou (npr. create 4 textdrawy a hned ich zničiť) tak by odpočet prešiel za stotinu sekundy čo je blbosť.
Z toho vyplíva že potrebujem Public ktorý bude vyvolaný Timerom.
Už viem že použijem Timer & Public. Ale ako aby to sa to menilo za sekundu a nie za tisícinu sekundy. Odpoved je Premena.
[size=150]Prax[/size]
(kedže viem základy, tj. viem aj string) spravím si jednoduchý kód
A to sme iba chvíľu premýšľali nad tým, ako to spraviť a toto sme z 0 spravili.
Teraz si iste poviete že to bolo jednoduché. Ale musím vám povedať že to jednoduché fakt bolo.
Takto isto môžeme robiť všetko, môžete si to dávať do bodov npr. pri tvorbe bodoch o AC to môže vyzerať takto
/*
*/
uvidíte že sa vám to zíde, nielen že viete čo a ako robiť ale aj nezabudnete
[size=150]Scripty na jeden riadok[/size]
Aj vám sa páčia tie scripty na jeden riadok ? npr. CreateBank(x,y,z) ?
Nepochybne. Ved kebyže to robíte do módu (normálne) tak premeny, môže vám to zasra* mód ak neviete ako to robiť účinné (nie cez 1 riadok)
[size=150]Teória[/size]
Ako to vlastne funguje ? Toto sa snad každý sám seba pýtal (Dokonca aj ja, všetci ), no aké bolo moje prekvapenie ked som otvoril CZproperty a tam nebolo nič také nepochopiteľné, ved iba premeny, ako teda na veci cez 1 riadok ?
Videli ste v include, kde je niečo cez 1 riadok niečo takéto
#define MAX_PROPERTY 100
#define MAX_HOUSES 500
#define MAX_OBJECTS 4000
atd... videli ste to ? a potom bolo npr.
new Sold]MAX_PROPERTY]; (sold = predaný)
Toto je presne ten poháňací systém jedného riadka
ono to vlastne vytvorí toľko premien, koľko obsahuje definícia
čiže ak máte
#define MAX_PROPERTY 500
new Sold[MAX_PROPERTY]
tak je to ako kebyže urobíte
new Sold1
new Sold2
new Sold3
...
new Sold500
Potom je tam public/stock na 1 riadok žiadny iný zázrak v tom nieje
POZOR ! Čím vačšie číslo define obsahuje tým viac premien sa vytvorí a tým vačší je súbor (npr. z 500 kb máte zrazu 5 Mb)
a teraz to na čo dlho čakáte
[size=150]Prax[/size]
Áno, prax scriptov cez 1 riadok.
Hore si ako sme sa dozvedeli urobíme taký návod
dáme si základ, tj. define
Naozaj to bolo také ťažké ? Jasne že že nie ! Stačilo iba porozmýšľať !
Dúfam že si aspon niečo z tohto tut-u vezmete k srdcu.
Nehovorím že tieto tuty niesu zlé, ano ked neviete npr. tu s CP tak hej ale ked tam je script a vy ho použijete v módu to není moc dobré. Potom to tak vyzerá, všetky módy sú podobné ako vajice vajicu. Sa nedivte že tam nikto nehrá.
Dakujem že ste si prečítali tento TUT, dúfam že ste sa aspon kúštik naučili a všetko pochopili.
[size=150]Predslov alias O čom to je ?[/size]
Na 99% vecí sa dá ísť logicky. Aby ste mohli takto fungovať musíte perfektne ovládať základy pwn. Potom netreba zakladať samé help-y kde sa budete pýtať ako robiť tamto a tamto.
[size=150]Neviem spraviť niečo, ako teda na to ?[/size]
Je to jednoduché, stačí porozmýšľať (žiadne "myslenie bolí a preto nemyslím" xD !). Začneme.
[size=150]Teória[/size]
príklad: Bol som na jednom servery kde bol odpočet, človek dak /3 a spustil sa odpočet na 3 sekundy (3,2,1,GO) a teraz neviem čo by mal obsahovať a ako asi funguje.
Porozmýšľam čo je odpočet.
"Je to vlastne číslo ktoré sa zmenšuje až príde k poslednému číslu, s pravidla je to štart/go...".
Už viem čo je odpočet. Ako ho vyvolám ? Kebyže ho dám za sebou (npr. create 4 textdrawy a hned ich zničiť) tak by odpočet prešiel za stotinu sekundy čo je blbosť.
Z toho vyplíva že potrebujem Public ktorý bude vyvolaný Timerom.
Už viem že použijem Timer & Public. Ale ako aby to sa to menilo za sekundu a nie za tisícinu sekundy. Odpoved je Premena.
[size=150]Prax[/size]
(kedže viem základy, tj. viem aj string) spravím si jednoduchý kód
- kód:
new Count
forward CountDown()
public CountDown(){
new s[5]
if(Count > 0)
format(s,5,"%d",Count)
Count--;
SetTimer("CountDown", 1000, 0);
}else{
format(s,5,"Go")
}
GameTextForAll(s,1000,3)
}
a do príkazu iba
Count=cislo
SetTimer("CountDown", 1000, 0);
btw toto nekopírujte toto je iba orientačne ako funguje to ale ; atd...
A to sme iba chvíľu premýšľali nad tým, ako to spraviť a toto sme z 0 spravili.
Teraz si iste poviete že to bolo jednoduché. Ale musím vám povedať že to jednoduché fakt bolo.
Takto isto môžeme robiť všetko, môžete si to dávať do bodov npr. pri tvorbe bodoch o AC to môže vyzerať takto
- kód:
Anti-Cheat Plán
1. Anti Money Cheat
- premena peniaze pre všetkých
- stock na jednoduché pridávanie penazí cez vlastnú funkciu GivePlayerCash
- public na získanie hráčovych penazí a následne porovnanie s premenou
- timer ktorý búde spúšťať public
- otestovať
A KED DOKONČÍTE PRIDÁTE TAM
verdikt: 100% funkčné
A DALEJ
2. Anti Teleport Cheat
- float na pozíciu (x,y,z)
- public na získanie pozície hrača
- timer ktorý bude spúšťať public
- new float na poziciu (x,y,z)
- podmienka, ak je hráč daľej ako 50 (radius = isplayerinshere) prvé získanie pozície kick
verdikt: 50% Nefunkčné
Opravy:
- premena na interier
- kontrolovať interier
- podmienka ak nevošiel do interieru
verdikt 2: 100% Funkčné
atd...
/*
*/
uvidíte že sa vám to zíde, nielen že viete čo a ako robiť ale aj nezabudnete
[size=150]Scripty na jeden riadok[/size]
Aj vám sa páčia tie scripty na jeden riadok ? npr. CreateBank(x,y,z) ?
Nepochybne. Ved kebyže to robíte do módu (normálne) tak premeny, môže vám to zasra* mód ak neviete ako to robiť účinné (nie cez 1 riadok)
[size=150]Teória[/size]
Ako to vlastne funguje ? Toto sa snad každý sám seba pýtal (Dokonca aj ja, všetci ), no aké bolo moje prekvapenie ked som otvoril CZproperty a tam nebolo nič také nepochopiteľné, ved iba premeny, ako teda na veci cez 1 riadok ?
Videli ste v include, kde je niečo cez 1 riadok niečo takéto
#define MAX_PROPERTY 100
#define MAX_HOUSES 500
#define MAX_OBJECTS 4000
atd... videli ste to ? a potom bolo npr.
new Sold]MAX_PROPERTY]; (sold = predaný)
Toto je presne ten poháňací systém jedného riadka
ono to vlastne vytvorí toľko premien, koľko obsahuje definícia
čiže ak máte
#define MAX_PROPERTY 500
new Sold[MAX_PROPERTY]
tak je to ako kebyže urobíte
new Sold1
new Sold2
new Sold3
...
new Sold500
Potom je tam public/stock na 1 riadok žiadny iný zázrak v tom nieje
POZOR ! Čím vačšie číslo define obsahuje tým viac premien sa vytvorí a tým vačší je súbor (npr. z 500 kb máte zrazu 5 Mb)
a teraz to na čo dlho čakáte
[size=150]Prax[/size]
Áno, prax scriptov cez 1 riadok.
Hore si ako sme sa dozvedeli urobíme taký návod
- kód:
/* Enter & Exit Interieror System (EEIS xD)
- premenné, ktoré použijeme sú: float:x float:y float:z interieror a vytvorenie pickupu. + ešte čo nás napadne xD
- stock na vkládanie cez 1 riadok
*/
dáme si základ, tj. define
- kód:
#define MAX_EEIS 50
- kód:
new Float:x[MAX_EEIS]// kde bude stáť pickup x
new Float:y[MAX_EEIS]// ---------||----------- y
new Float:z[MAX_EEIS]// ---------||----------- z
new Float:telex[MAX_EEIS]// kam to hráča portne x
new Float:teley[MAX_EEIS]// ----------||--------- y
new Float:telez[MAX_EEIS]//----------||---------- z
new Int[MAX_EEIS]// interier kam ho portne :D
new Count // Počet :)
new Pickup;// pickup xD
- kód:
stock CreateInterieror(id,Float:xx,Float:yy,Float:zz,Float:telexx,Float:teleyy,Float:telezz,Intt){
if(Count > MAX_EEIS) return SendRconCommand("exit"); //ak dá viac ako nadefinované množstvo tak mu vypne server
Count++;
x[Count] = xx; // Count preto lebo každý interier dostané vlastnú hodnotu v premennej, takže ju využijeme
y[Count] = yy;
z[Count] = zz;
telex[Count] = telexx;
teley[Count] = teleyy;
telez[Count] = telezz;
Int[Count] = Intt;
Pickup[Count] = CreatePickup(id, 1, xx, yy, zz, -1); // vytvorí pickup
}
- kód:
forward OnPlayerPickUpPickupEEIS(playerid, pickupid)
- kód:
public OnPlayerPickUpPickupEEIS(playerid, pickupid){
for(new i; i < Count; i++){
if(IsPlayerInRangeOfPoint(playerid, 2, x[i],y[i],z[i]) == 1){
SetPlayerPos(playerid,telex[i],teley[i],telez[i]);
SetPlayerInterior(playerid, Int[i]);
}}
return 1;
}
Naozaj to bolo také ťažké ? Jasne že že nie ! Stačilo iba porozmýšľať !
Dúfam že si aspon niečo z tohto tut-u vezmete k srdcu.
Nehovorím že tieto tuty niesu zlé, ano ked neviete npr. tu s CP tak hej ale ked tam je script a vy ho použijete v módu to není moc dobré. Potom to tak vyzerá, všetky módy sú podobné ako vajice vajicu. Sa nedivte že tam nikto nehrá.
Dakujem že ste si prečítali tento TUT, dúfam že ste sa aspon kúštik naučili a všetko pochopili.