Právě je ned 20. kvě 2012 8:34:18
Hosting WEDOS.cz
SLEVA 25% (slevový kód:PAWNO25)

Nejnovější témata:
[Prezentace]GameMix Hosting a Adminka od Mubby
[SCRIPT/INC] Colored Checkpoint v1 (QCCP v1) od Mubby
[HOSTING] Hledáme od MaTTy
[FS] Custom pos od MaTTy
[GM] Lucky Adventures od MaTTy

Vyzkoušejte antivirus ESET Smart Security 5

Vyhledat témata bez odpovědí | Zobrazit aktivní témata Zobrazit nové příspěvky | Zobrazit vaše příspěvky


Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 
Autor Zpráva
 Předmět příspěvku: [INC/SCRIPT] Global Variables (GVars)
PříspěvekNapsal: ned 04. zář 2011 21:28:15 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

Čaute, predstavujem vám GVary (Global Variables = globálne premeny) je to protiklad PVar-ov ktoré sú hráčske. Urobil som ich z funkcie "setproperty", "getproperty" a aj "deleteproperty". Keďže vačšina z vás ani nevie že také funkcie existujú. No aj tak vám musím povedať že skôr ako tento GVar systém odporúčam TENTO GVar plugin od Incognita. Keďže cez plugin je to asi 10x rýchlejšie... Výhodou je že môžete používať vo filterscriptoch hodnoty premien z gamemódu. Ďalšiou výhodou je že niesu "prázdne" premenné (ktoré vačšinou sú pri includoch kde je systém na jeden riadok) a tie potom zaťažujú RAM. S týmto sa vytvorí len toľko premien, koľko server využije. Ďalej dá sa urobíť napríklad HouseSystém bez obmedzenia počtu domou ("#define MAX_HOUSES 150") a pritom použijete menej premenných ako s obyčajnou premenou. Využití je neúrekom a teraz prejdime k funkciám

Funkcie

Kód:
SetGVarString(name[],value[])

name = Názov premennej (ako pri PVaroch...)
value = hodnota v tomto prípade string

Využitie
Kód:
SetGVarString("ServerName","SK Mega Super Ultra Mort-ov server")


Kód:
GetGVarString(name[],param[])

name = Názov premennej
param = premena do ktorej sa uloží hodnota GVaru

Využitie
Kód:
new str[100];
GetGVarString("ServerName",str);
printf(str);


Kód:
ReturnGVarString(name[])

name = Názov premennej
Vráti hodnotu (string) GVaru
Využitie

Kód:
printf("%s",ReturnGVarString("ServerName"));


Kód:
SetGVarInt(name[],value)

name = Názov premennej
value = Hodnota premennej (integer = číselná)
Využitie

Kód:
SetGVarInt("MaxPing",500);


Kód:
GetGVarInt(name[])

name = Názov premennej
Vráti hodnotu GVaru
Využitie

Kód:
if(GetPlayerPing(playerid) > GetGVarInt("MaxPing")) return Kick(playerid)


Kód:
SetGVarFloat(name[],Float:value)

name = Názov premennej
value = Hodnota premennej (float = desatinné číslo)
Uloží do GVaru desatinné číslo
Využitie

Kód:
SetGVarFloat("MaxSpeed",359.9999);


Kód:
GetGVarFloat(name[])

name = Názov premennej
Vráti hodnotu GVaru (float)
Využitie

Kód:
if(GetPlayerSpeed(playerid) > GetGVarFloat("MaxSpeed") Kick(playerid);


Kód:
DeleteGVar(name[])

name = Názov premennej
Zmaže premenú (nebude existovať, ak je GVar integer = vráti hodnotu "0" ak float vráti hodnotu = "0.00000" a ak string tak vráti " " (medzeru))
Využitie

Kód:
if(OnlineAdmins() > 0) DeleteGVar("AdminBot");


Download


Čoskoro napíšem návod ako si urobiť pomocou GVarov (tohto a aj cez plugin) vlastný INC
S pozdravom
QWER

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
PříspěvekNapsal: ned 04. zář 2011 21:42:40 
Kendall Johnson "Kendl"
Kendall Johnson "Kendl"
Uživatelský avatar
Registrován: sob 31. črc 2010 16:52:29
Příspěvky: 2857
Bydliště: Chomutov

kůůůl!!! "affraid" 10/10

_________________
Seznam programovacích učebnic zdarma

"Jsem vyjímečný.Proto se svým jednáním a chováním nemůžu zapadnout a vy mě budete nazývat jedním slovem "d*bil",protože mě nedokážete pochopit."

"Nic není tak těžké aby to lidský duch nepřekonal"

"Smějte se mi že jsem jiný,ale já se směju vám že vy jste všichni stejní"


Offline
 Profil  
PříspěvekNapsal: ned 04. zář 2011 21:47:44 
The Truth
The Truth
Uživatelský avatar
Registrován: pát 17. pro 2010 10:31:46
Příspěvky: 553
Bydliště: doma

Moc dobry "fresse" 10/10 :clap: :clap:

_________________
DoFt MÁNIA IS BACK!
Obrázek Obrázek Obrázek Obrázek Obrázek

CODE


Offline
 Profil  
PříspěvekNapsal: pon 05. zář 2011 16:00:58 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1451

Chvíli jsem zkoumal na co to vlastně je ale už jsem to pochopil. Je to hezky, o property jsem už slyšel ale nevěděl jsem na co se to využívá. Navíc, hodně hostingů (českých) nepodporuje pluginy takže pochybuju že se to bude využívat u českých pawnerů. Takže to funguje jako PVary - pro každého hráče jedna proměnná, jestli jsem pochopil. Ale něco jako arraye v tom nebudou fungovat, což je škoda :(. Na každou věc jedna proměnná.
Jinak, jako vždy (nechápu proč ti to furt říkám),

VERY VERY VERY GOOD WORK,
10/10

_________________
Používejte mozek! Snadněji tak vyřešíte záhadu Schrödingerovy kočky.


Obrázek


Offline
 Profil  
PříspěvekNapsal: pon 05. zář 2011 16:18:45 
Kendall Johnson "Kendl"
Kendall Johnson "Kendl"
Uživatelský avatar
Registrován: úte 24. bře 2009 14:16:39
Příspěvky: 2873
Bydliště: Továrna na marmeželádu / Sklad bagrů

Dneska už se závodí, kdo najde starší funkci a udělá na ní moderní podobu :D

_________________
Tady býval bagr, ale zdrhnul, parchant jeden...


Offline
 Profil  
PříspěvekNapsal: pon 05. zář 2011 16:28:57 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

Sú dve možnosti ako spraviť Global Variables = Plugin alebo TENTO includ... tento includ je dobrý pre servery ktoré nemôžu používať pluginy, ale aj tak odporúčam PLUGIN :) lebo ako som hovoril, toto je pomalšie. Toto je ako normálna premena... napríklad

miesto
Kód:
new object; // globálna premena
object = CreateObject(....);

MoveObject(object,0,0,0,100);

spravíš

Kód:
SetGVarInt("object",CreateObject(...));
MoveObject(GetGVarInt("object"),0,0,0,100);

alebo (takto to mám radšej)
[/code]

new object = CreateObject(...) // lokálna premena ktorá sa vytvorí keď sa vyvolá public a zmaže keď "skončí" public... (príde na koniec alebo narazí na return)
SetGVarInt("object",object);

MoveObject(GetGVarInt("object"),0,0,0,100);[/code]

A tie includy na ukážku
Kód:
#define MAX_ENTER 50
new Float:x[MAX_ENTER],
       Float:y[MAX_ENTER],
       Float:z[MAX_ENTER],
       Active[MAX_ENTER],
       Count = -1;
stock AddEnter(Float:X,Float:Y,Float:Z,ACTIVE = 1){
Count++;
x[Count] = X;
y[Count] = Y;
z[Count] = Z;
Active[Count] = ACTIVE;
return Count;
}

Týmto scriptom obmedzuješ počet ENTER na 50, ak prekročíš musíš zas zvyšovať definíciu ale ak spravíš iba 5 "Enter" tak si vytvril 4*(50-5) = x premien
No takto to máš "neobmedzené" a nevytváraš nevyužité premeny
Kód:
stock AddEnter(Float:X,Float:Y,Float:Z,ACTIVE = 1){
new Count = GetGVarInt("EnterCount");
new str[10];
format(str,10,"EnterX%d",Count);
SetGVarFloat(str,X);
format(str,10,"EnterY%d",Count);
SetGVarFloat(str,Y);
format(str,10,"EnterZ%d",Count);
SetGVarFloat(str,Z);
format(str,10,"EnterA%d",Count);
SetGVarInt(str,ACTIVE);
SetGVarInt("EnterCount",Count+1);
return Count;
}

a teraz môžeš spraviť 1 "Enter" a vytvorí iba 5 globálnych premien...
Kapiš ?

To Ffredyk
:D tak tak ale prosím ťa, 99% ani nevie že taká existovala :wtf:

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
PříspěvekNapsal: pon 19. pro 2011 18:12:26 
Eddie Pulaski
Eddie Pulaski
Uživatelský avatar
Registrován: úte 02. lis 2010 22:16:14
Příspěvky: 1465
Bydliště: Program Files(x64);

stock SetGVarBool(name[],bool:a)
{
SetGVarInt(name,((a == false) ? 0 : 1));
}
//----------------------------------------------------|
stock GetGVarBool(name[])
{
return ((GetGVarInt(name) == 0) ? false : true);
}

Tohle by mohlo fungovat ne ? Jako jsi to dělal na PVary ?

_________________
ObrázekObrázekObrázekObrázekObrázek


ObrázekObrázekObrázek

Obrázek

K temné straně Dooku přidal se. Lži, zrada a nedůvěra jsou teď nástroje jeho.


Offline
 Profil  
PříspěvekNapsal: pon 19. pro 2011 19:31:19 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4531
Bydliště: Blava ne ?

j malo

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty. Tak sa prekonaj ako kedysi ja, a natri to všetkým ! Uprav budúcnosť pre svoj prospech


Offline
 Profil  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


 Kdo je online

Uživatelé procházející toto fórum: Pixel ^_^


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na: