Ahoj všichni, jsem tady na fórku nový a tak bych zde chtěl jako první svůj příspěvek zveřejnit pár užitečných funkcí, které jsem vytvořil při tvorbě svých módů... Zezačátku pár funkcí, ale občas budu příspěvek aktualizovat a přidávat nové funkce...
PorovnatCisla(...)
- Funkce porovná vždy 2 čísla která jsou vedle sebe (např. v příkladu níže tyto čísla: 2 a 3; 4 a 5; 8 a 9; 10 a 6) a vrátí počet stejných čísel...
- Musí být zadaný sudý počet čísel
stock PorovnatCisla(...){
new stejnych = 0;
for(new i=0; i<(numargs() / 2); i++){
if(getarg(i) == getarg((i + 1))) stejnych++;
}
return stejnych;
}
Příklad:
PorovnatCisla(2, 3, 4, 5, 8, 9, 10, 6);
PocetStejnychCisel(...)
- Podobná funkce jako předchozí, akorát funkce porovná každé číslo s každým... vhodné např. pro loterii.
stock PocetStejnychCisel(...){
new stejnych = 0;
for(new i=0; i for(new y=0; y if(y != i){
if(getarg(i) == getarg(y)) stejnych++;
}
}
}
return stejnych;
}
Příklad:
PocetStejnychCisel(10, 5, 6, 8, 9, 10, 2, 10);
IsSkinFemale(skinid)
- Zjistí jestli zadaný skin je žena...
stock IsSkinFemale(skinid){
switch(skinid){
case 9..13,31,39,40,41,54..56,63,64,69,75..77,85..90: return 1;
case 92,93,129..131,138,140,141,145,148,150..152,157: return 1;
case 169,172,178,190..199,201,205,207,211,214..216: return 1;
case 218,219,224..226,231..233,237,238,243..246,251: return 1;
case 256,257,263,298: return 1;
default: return 0;
}
return 1;
}
UlozData(cesta[], ...)
- Jednoduché uložení dat do souboru (zatím pouze typu integer - čísla)
stock UlozData(cesta[], ...){
new soubor[64], polozka[64], id = 0;
format(soubor, sizeof(soubor), "%s.txt", cesta);
if(dini_Exists(soubor)){
ulozeni_dat:
for(new i=1; i<(numargs()); i++){
format(polozka, sizeof(polozka), "%d", id);
dini_IntSet(soubor ,polozka, getarg(i, 0));
id++;
}
} else {
dini_Create(soubor);
goto ulozeni_dat;
}
}
Příklad:
UlozData("test", playerid, GetPlayerWeapon(playerid));
- Vytvoří soubor test.txt ve složce scriptfiles a uloží do něj id hráče a aktuální zbraň kterou hráč drží...
NactiData(cesta[], index)
- Načte data ze souboru, který byl vytvořený funkcí ,,UlozData"...
forward NactiData(cesta[], index);
public NactiData(cesta[], index){
new soubor[64], polozka[64];
format(soubor, sizeof(soubor), "%s.txt", cesta);
format(polozka, sizeof(polozka), "%d", index);
if(dini_Exists(soubor)) return dini_Int(soubor, polozka);
return -1;
}
Příklad:
NactiData("test", 0);
- Načte ze souboru test.txt první položku, která byla uložená funkcí ,,UlozData"... v našem případě je to playerid