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

Nejnovější témata:
[SCRIPT/INC] Colored Checkpoint v1 (QCCP v1) od G4NG
[Prezentace]GameMix Hosting a Adminka od Riso135_
[HOSTING] Hledáme od MarekH
[HLEDAM] Status hračov od aburi
[GM] Lucky Adventures od martanius

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ů: 12 ] 
Autor Zpráva
PříspěvekNapsal: pon 09. kvě 2011 9:14:28 
Nováček
Nováček
Registrován: ned 17. říj 2010 9:32:01
Příspěvky: 22

Vacsina z Vas urcite pouziva stare, neefektivne sposoby spracovavania prikazov. Dovolte mi predstavit nove, efektivnejsie riesenie spracovavania prikazov. S pouzitim mojho handlera, je mozne prikazy zapisovat na akekolvek miesto v zdrojovom kode a rozdelovat mod do logickych casti.

Handler
Kód:
forward HandleCommand(playerid,const command[]);

public HandleCommand(playerid,const command[])
{
   new funcname[128],params[128],offset,len;
   new j=0;
   
   len = strlen(command);
   
   for(new i=1;i<len;i++)
   {
      if(command[i] != ' ')
      {
          funcname[j] = command[i] | 0x20;
         j++;
         offset = i+1;
      }
      else break;
   }
   
   if(offset<len)
   {
       new tmp;
       for(new i = offset;i<len;i++)
       {
           params[tmp] = command[i];
       }
   }
   if(!strlen(params))
       params = " ";
   
   format(funcname,sizeof funcname,"Command_%s",funcname);
   if(CallLocalFunction(funcname,"ds",playerid,params))
       return true;
   return false;
}


Pouzitie
1. Vlozit do OnPlayerCommandText
Kód:
if(HandleCommand(playerid,cmdtext))
        return 1;


2. Zapis prikazu /help
Kód:
public Command_help(playerid, params[])
{
    ...
    return 1;
}

_________________
Obrázek


Offline
 Profil  
PříspěvekNapsal: pon 09. kvě 2011 9:19:38 
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 ?

Nevadí vysoký počet publicov ? BTW takto to má aj ycmd aj zcmd.... Zauimavé riešenie.

_________________
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 09. kvě 2011 9:23:57 
Nováček
Nováček
Registrován: ned 17. říj 2010 9:32:01
Příspěvky: 22

Pocet funkcii nevadi, VG stale funguje a tam su pouzite funkcie na kazdu blbost. Mame to rozdelene do 70 suborov - logickych casti a kazdy modul poskytuje ostatnym modulom svoje funkcie.

_________________
Obrázek


Offline
 Profil  
PříspěvekNapsal: pon 09. kvě 2011 10:42:00 

vec je to krasna, ale pochopi to tak 2% uzivatelu.....

zpracovani dobry, ale jako Tutorial je to k nicemu....jelikoz Tutorial je od toho aby vas neco naucil....tady je akorat tak Ctrl + C a Ctrl + V...a to tady umi kazdej blb...


  
PříspěvekNapsal: pon 09. kvě 2011 14:19:19 
Moderátor
Moderátor
Registrován: čtv 28. dub 2011 18:53:54
Příspěvky: 1451

VojnaGangov píše:
Vacsina z Vas urcite pouziva stare, neefektivne sposoby spracovavania prikazov.


Lol, děláš si srandu né ? :D Přes strcmp/dcmd dělá 50% pawnerů, je to jednodušší a lépe se chápe. A nemůžu říct že jsou neefektivní. Abych se přiznal, vůbec nechápu o čem je tento TuT :D Možná to je tím že jsem "lama", ale příkaz správně udělat umím a bez problémů. Mno, co se dá dělat, jednoduše CTRL+C a CTRL+V, ale pochybuju že to někdo chápe. QWER, Om3n- to je jasné, to už jsou pawneři na vyšší úrovni.


Spracování .. 8/10
Vysvětlivky .. 5/10
Ostatní .. 7/10

= 6,66/10

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


Obrázek


Offline
 Profil  
PříspěvekNapsal: pon 09. kvě 2011 17:08:59 
Frank Tempenny
Frank Tempenny
Registrován: sob 10. led 2009 22:02:03
Příspěvky: 1614

VojnaGangov píše:
Vacsina z Vas urcite pouziva stare, neefektivne sposoby spracovavania prikazov. Dovolte mi predstavit nove, efektivnejsie riesenie spracovavania prikazov. S pouzitim mojho handlera, je mozne prikazy zapisovat na akekolvek miesto v zdrojovom kode a rozdelovat mod do logickych casti.

Myslim ze nejsem sam kdyz reknu ze efektivnost pro nas znamena mensi zatez
testoval jsem tvuj vytvor (cyklicky) s strcmp presneji s definici dcmd u kterych je stejny vysledek (trida vyvolana prikazem a odesila text za prikazem (params)) a podivejte se samy
Obrázek

u tveho zpusobu server pracuje dele a tim tak nemuze delat nic jineho
kdyz se toho naschromazdi vice muze to zpusobit lag

_________________
Poděkujte :
Daffymu za ukradení a zveřejnění rze6, rze7, rze7.3, rze7.4
Luk_assovi za cracknuti rze7.3 rze7.4 rze8
Crispemu za to že to luk_assovi zaplatil. A zveřejnil cracklou rze8
cz_dominik007 za to že zveřejnil craknutou rze7.3 rze7.4
Získání rze8 zatím neni úplně jasné bylo to z přestupu z cpor.eu na (stary) xel.cz

play.superparba.eu:7777
http://www.superparba.eu


Offline
 Profil  
PříspěvekNapsal: pon 09. kvě 2011 18:23:45 
Nováček
Nováček
Registrován: ned 17. říj 2010 9:32:01
Příspěvky: 22

Ten tvoj test nieje celkom spravny. Testoval si to v situacii ked v mode je len jeden prikaz a taky mod nepoznam. Keby si mal v mode 100 prikazov a volas posledny prikaz tak hodnota strcmp nieje 4 ale 400.

Vyznam tohto handleru je v tom, ze umoznuje jednoducho a prehladne vytvarat prikazy v jednotlivych "includoch" modu, bez potreby zapisovat ich do OnPlayerCommandText.

Ja Vas do nicoho nenutim, mozte si robit mod "prasackym" stylom alebo rozdelovat funkcie do logickych casti - to je vyhodne hlavne pri rozsiahlejsich projektoch.

_________________
Obrázek


Offline
 Profil  
PříspěvekNapsal: pon 09. kvě 2011 20:00:26 
Frank Tempenny
Frank Tempenny
Registrován: sob 10. led 2009 22:02:03
Příspěvky: 1614

VojnaGangov píše:
Ten tvoj test nieje celkom spravny. Testoval si to v situacii ked v mode je len jeden prikaz a taky mod nepoznam. Keby si mal v mode 100 prikazov a volas posledny prikaz tak hodnota strcmp nieje 4 ale 400.

Vyznam tohto handleru je v tom, ze umoznuje jednoducho a prehladne vytvarat prikazy v jednotlivych "includoch" modu, bez potreby zapisovat ich do OnPlayerCommandText.

Ja Vas do nicoho nenutim, mozte si robit mod "prasackym" stylom alebo rozdelovat funkcie do logickych casti - to je vyhodne hlavne pri rozsiahlejsich projektoch.

kdyz das jeden prikaz do cyklu 400 je to to same jako by si stejny pocet prohledaval.. (kdyz zanedbame rozdilnou delku prikazu v prohledavani)
ale nevidim v tom vyhodu o proti dcmd kdyz je dcmd rychlejsi a vysledek obouch skryptu stejny

_________________
Poděkujte :
Daffymu za ukradení a zveřejnění rze6, rze7, rze7.3, rze7.4
Luk_assovi za cracknuti rze7.3 rze7.4 rze8
Crispemu za to že to luk_assovi zaplatil. A zveřejnil cracklou rze8
cz_dominik007 za to že zveřejnil craknutou rze7.3 rze7.4
Získání rze8 zatím neni úplně jasné bylo to z přestupu z cpor.eu na (stary) xel.cz

play.superparba.eu:7777
http://www.superparba.eu


Offline
 Profil  
PříspěvekNapsal: pon 09. kvě 2011 20:56:48 
Nováček
Nováček
Registrován: ned 17. říj 2010 9:32:01
Příspěvky: 22

Vyhoda je v tom, ze nic nemusis zapisovat do OnPlayerCommandText. Podla mojho testu je HandleCommand pri 100 prikazoch v mode ovela rychlejsi:

http://dev.ntpclan.com/handle.pwn

Kód:
[20:47:22] HandleCommand = 633ms
[20:47:24] strcmp = 2281ms


V podstate je to uplne jedno, ten cas je zanedbatelny. Ked ti tak zalezi na "rychlosti" modu tak si z neho vyhod vsetky suborove operacie ktore trvaju niekolkonasobne dlhsie ako porovnavanie textu :)

_________________
Obrázek


Offline
 Profil  
PříspěvekNapsal: úte 10. kvě 2011 16:29:06 
Frank Tempenny
Frank Tempenny
Registrován: sob 10. led 2009 22:02:03
Příspěvky: 1614

Pri testu jsem udelal chybu mas pravdu
Coz o to napad je to dobry ale jen nevyhoda v tom ze se musi pouzit public a tim tak forward jinak CallLocalFunction tridu nenajde

_________________
Poděkujte :
Daffymu za ukradení a zveřejnění rze6, rze7, rze7.3, rze7.4
Luk_assovi za cracknuti rze7.3 rze7.4 rze8
Crispemu za to že to luk_assovi zaplatil. A zveřejnil cracklou rze8
cz_dominik007 za to že zveřejnil craknutou rze7.3 rze7.4
Získání rze8 zatím neni úplně jasné bylo to z přestupu z cpor.eu na (stary) xel.cz

play.superparba.eu:7777
http://www.superparba.eu


Offline
 Profil  
PříspěvekNapsal: úte 10. kvě 2011 16:50:03 
The Truth
The Truth
Uživatelský avatar
Registrován: čtv 09. pro 2010 19:12:36
Příspěvky: 464
Bydliště: C:\recykler

Pěkné ale už jsem zvyklý na DCMD :(

_________________
- Mám heslo, nekopíruj, nepoužívej cizí kódy, nevydávej za své...

Nevíte si rady s pawnem?
Spoiler:
Já vám s tím nepomůžu !


Skype : Paulie2907 (pro rady a dotazy, žádný deamx, žádná RZE, žádná dekompilace)


Offline
 Profil  
PříspěvekNapsal: úte 10. kvě 2011 17:46:50 
Nováček
Nováček
Registrován: ned 17. říj 2010 9:32:01
Příspěvky: 22

ATomas píše:
Coz o to napad je to dobry ale jen nevyhoda v tom ze se musi pouzit public a tim tak forward jinak CallLocalFunction tridu nenajde


To je ale problem kompilatoru, ze vyzaduje aby funkcie mali predpisany svoj prototyp. Ja v tom nevidim ziadnu nevyhodu, skor naopak, vzdy mam na zaciatku "includu" zapisane jednotlive prototypy funkcii a ked po dlhsom case otvorim zdrojak tak hned viem, co sa tam nachadza.

_________________
Obrázek


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ů: 12 ] 

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


 Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé


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: