Jump to content

[F]Lekce 4. - Podminky, newy, RCON


ffredyk

Recommended Posts

  • Majitel

Podminkou se v pawn problematice oznacuje prikaz [if].. Je to tzv. "logicka podminka"..

Budete ji pouzivat hodne casto.. Bez ni by se script opravdu neobesel :)

 

[if] muzete pouzit opravdu na cokoliv.. Odehrava se s ni kazda udalost ve scriptu.. Vsechno je vlastne jen o ifech..

 

Napr. zjisteni jestli se Petr jmenuje opravdu Petr..

if(!strcmp("Petr","Petr"))
{
SendClientMessage(playerid,B_BILA,"Petr se opravdu jmenuje Petrl!");
}

 

Nekoumejte ten vykricnik > ! < pred strcmp.. Ten vlastne tky nemusite nijak zvlast zkoumat.. Zatim staci vedet, ze to slouzi k porovnavani stringu.. Vyse uvedeny script funguje tak, ze porovna prvni hodnotu (string) s druhou (string) a kdyz se shoduji (prave pro to je tam > ! <) spusti script uvnitr podminky.. Zni to slozite, ale pritom je to uplne jednoduche... Proste kdyz je prvni argument v strcmp Petr a druhej argument tky tak to rekne, ze server muze jit dal.. Kdyby se Petr nejmenoval Petr, ale napr. Pavel, tak se script nespusti.. Da se ovsem udelat script i na pripad, ze se Petr opravdu Petr jmenovat nebude!.. To nam zajisti [else].. Vypadalo by to napr. takto:

if(!strcmp("Petr","Petr"))
{
SendClientMessage(playerid,B_BILA,"Petr se opravdu jmenuje Petrl!");
}
else
{
SendClientMessage(playerid,B_BILA,"Petr se nejmenuje Petr!!!");
}

 

.. V prekladu [if] znamena "Kdyz" nebo "Jestli-že"... [else] zase znamena "Jinak".. takze by se to dalo chapat takto: "Kdyz(if) Petr(!strcmp("Petr") je Petr(,"Petr") tak ({ a }) jinak(else { a }).. Kdyz Petr je Petr tak> jinak> ... Mozna nepochopitelne, ale prectete si to znovu a pochopite..

 

Dalsi cast v pawn jsou newy.. Take hodne pouzivane.. Pouzivaji se jako ulozne prostory pro vase informace.. New je vlastne funkce [new], ktera vytvori promennou.. V pawn mame dokonce nekolik druhu promennych.. Mame stringy, integery, booly a floaty..

String je vlastne text..

Integer je zase jenom cislo..

Boolean je logicka promenna... Muze obsahovat jen "true" nebo "false".. Prelozte si to a pochopite..

Float je cislo.. Desetine cislo..

 

Ale funkce na vytvoreni je jen jedna, proto musime promennem pripisovat "volaci znaky" :d (sry ale nevedel sem jak to nazvat).. U stringu je to [pocet_znaku_stringu]

new string[100];

U integeru to neni nic.. Jen hola promenna..

new integer;

U boolu je to bool: pred promennou:

new bool:Boolean;

U floatu je to Float: pred promennou:

new Float:float;

 

Pridavat text do stringu muzete pomoci funkce [format]..

format(string,sizeof(string),"Obsah stringu..");

 

Zadavat cisla do integeru muzete nekolika zpusoby:

Nastavenim cisla na urcitou hodnotu:

integer = 100;

Pricitanim:

integer += 100;

Odecitanim:

integer -= 100;

Pricitanim 1:

integer++;

Odecitanim 1:

integer--;

 

Bool muzeme jen nastavovat:

Boolean = true;
Boolean = false;

 

A u floatu stejne jak u cisel..

 

 

RCON je vestaveny admin script samp.. Urcite ho znate :) Banujete a kickujete s nim cheatery a nezvane navstevniky.. Od verze 0.3 s nim muzeme pracovat v pawn.. Da se diky tomu postavit dobra Anti-RCON hack ochrana.. Ovsem je omezeny jen na hrace ve hre.. Nebudu vam zde psat prikazy.. Ty byste meli znat.. Ale bylo potreba se o tom zminit...

 

Doufam, ze tut se libil a nepiste sem kritiku.. Piste jen problemy a nazory..

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • Majitel
a ja myslel ze to ! se dava za podminku kdyz to neplati.. priklad

 

if(IsPlayerAdmin // Je admin

if(!IsPlayerAdmin // Neni admin

 

Hele.. Rikal sem ze to zatim neni podstatny.. ;) budu to vysvetlovat v dalsi lekci xP

Link to comment
Share on other sites

normálna podmienka môže mať 9999999999999999999 alebo -999999999999999999999

ale bool musí mať iba true alebo false...

ukážem príklad

new bool:Spawnuty[MAX_PLAYERS];

 

do onplayerconnect a do onplayerdeath dáš

Spawnuty[playerid] == false;

 

a do onplayerspawn dáš

Spawnuty[playerid] == true;

 

a do AC dáš iba

if(Spawnuty == true){//nespawnutých nebude kontrolovoať..

 

môžeš aj normal..

Link to comment
Share on other sites

sorry nemal som čas nedopísal som to,

normálna premena sa dá

deliť (/) odčítať (-) sčítať (+) nastavovať (=) násobiť (*)

čo bool nie... on má iba nastavenie npr. s bool-om sa nedá

new celok = premena*premena2;

s boolom sa dá iba true false a zistiť, nič viac...

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...