QConsole

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
Uživatelský avatar
Ap0
Redaktor
Příspěvky: 367
Registrován: srpen 5, 2011, 11:24 pm
Facebook: http://facebook.com/
Bydliště: zamiešany v malte
Kontaktovat uživatele:

QConsole

Příspěvek od Ap0 » březen 17, 2014, 8:31 pm

Obrázek
Podelím sa s vami o novú utilitku ktorú som z nudy vyrobil. Ide o klasickú konzolu, ktorá sa implementuje ako GEX rozšírenie do hry a pridá celkom zaujímavú možnosť ovládať hru z príkazového riadku. Dúfam, že niekomu pomôže a netrápil som sa s tým len nadarmo :D

Konzolu som upravil aby bola komfortná na ovládanie, dokáže:
  • prechádzať text a označiť ho (SHIFT + šípky)
  • skopírovať, vystrihnúť a vložiť text (CTRL + C/X/V)
  • prehľadávať históriu napísaných príkazov (šípka hore)
  • automaticky doplniť začatý príkaz (TAB)
  • prehľadávať napísané príkazy scrollbarom, alebo (MWHEEL)
  • prácu s parametrami oddelené medzerou (viz. nižšie)
  • celkovo vykonať akýkoľvek príkaz naprogramovaný autorom
Skripty:
CONFIG:
Na začiatku hry je možné prispôsobiť si vzhľad a ovládane konzoly podľa svojho. Tri skripty ponúkajú celkom pestrý výber nastavenia pre vašu hru:

Kód: Vybrat vše

console_config_control(enabled, clearAfterOpen, pauseAfterOpen, writeLastLine, history, speed, writeTime);
console_config_user(semicolonOpen, keyOpen, keyClose, maxlength, slashRequired);
console_config_appearance(shadows, color, bgColor1, bgColor2, background, depth, scrollbar, height, alpha);
Vysvetlivky:
  • enabled - konzola má byť aktívna [true / false]
  • clearAfterOpen - vyčistí riadok kde sa píšu príkazy [true / false]
  • pauseAfterOpen - pozastaví hru pri otvorení konzoly, využíva instance_deativate_all() [true / false]
  • writeLastLine - vypíše najprv do konzoly napísaný príkaz, potom vykoná akciu [true / false]
  • history - bude uchovávať napísané príkazy [true / false]
  • speed - rýchlosť otvárania a zatvárania konzoly, default. 3
  • writeTime - vypíše čas odoslania pred každým príkazom [true / false]
  • semicolonOpen - otváranie konzoly pomocou bodkočiarky (tlačidlo pod Escapom) [true / false]
  • keyOpen - klávesa pre otváranie konzoly (pre žiadne zadaj vk_nokey)
  • keyClose - klávesa pre zatváranie konzoly
  • maxlength - maximálna dĺžka pre písanie príkazu, default. 512
  • slashRequired - nutnosť písať pre každým príkazov lomítko / [true / false]
  • shadows - tieňované písmo [true / false]
  • color - defaultná farba textu [farba]
  • bgColor1 - 1. farba pozadia [farba]
  • bgColor2 - 2. farba pozadia [farba]
  • background - pozadie pre konzolu, (pre žiadne zadaj prázdny string "" !)
  • depth - hĺbka konzoly, využitie najmä pri pozastavení hry, default. -1000000
  • scrollbar - zobrazí scrollbar pri približení myšky na konzolu, ak je tam viac riadkov [true / false]
  • height - celková výška konzoly, doporučujem písať násobky čísla 18, default. 198
  • alpha - priehľadnosť konzoly [0 - 1], default. 0.8
DEFAULTNÉ PRÍKAZY
Pre nastavenie príkazu ktorý bude dostupný pre hráča sa používa jeden skript, ktorý môže vykonať dve možnosti: a) napísať ľubovoľný text, b) vykonať udalosť
Samozrejme je možné aj aby vykonal udalosť - napísanie textu...
Možné spôsobi napísania skriptu:
  • 1. console_command("reset", "game_restart()") - po zadaní príkazu reset sa vykoná udalosť uvedená v druhom agumente, teda game_restart()
  • 2. console_command("reset|restart", "game_restart()") - je možné nastaviť tú istú udalosť dvom príkazom, ktoré sa oddeľujú znakom |
  • 3. console_command("hello", "Pozdravil si svet!", c_red) - ak je vyplnený tretí argument (farba), konzola vypíše text v zadaný v uvodzovkách, v našom prípade po zadaní príkazu hello vypíše červeným písmom text Pozdravil si svet!
  • 4. console_command("say", "{1}", c_red) - tento znak v sebe uchováva parameter, resp. slovo ktoré sa nachádza na prvom mieste za príkazom. Po zadaní príkazu say ahoj!, vypíše teda konzola len slovo ahoj!.
    Spolu je možné použiť až 9 parametrov {0} - {9}
    Parametre sa oddeľujú medzerou! - preto v našom poslednom príklade keby sme zadali príkaz say ahoj svet!, zobrazil by sa stále len text ahoj. V takom prípade sa pripíše k číslo znamienko +, ktoré znamená, že všetky slová od čísla v zátvorkách sa uložia ako jeden parameter
  • 5. console_command("say", "{1+}", c_red) - preto teraz po zadaní say ahoj svet! vypíše ahoj svet!
    Parameter {0} v sebe uchováva napísaný príkaz, napr. /say
    Teda je možné efektívne rozdeliť parametre podľa nutnosti. Príklad:
    console_command("kick", "Player {1} was kicked. Reason: {2+}", c_red) - Vykopne hráča napísaný prvým slovom, z dôvodu, ktorý sa napíše za meno, napr.: kick DDL_Blue neposlúchal :) vypíše do konzoly text DDL_Blue was kicked. Reason: neposlúchal :)
    Aby bolo možné zároveň vykonať akciu, resp. externý skript ktorý naozaj zabezpečí vyhodenie hráča zo serveru, nedefinuje sa príkaz ako text, ale ako udalosť, do ktorej sa vloží skript. Napr.:
  • 6. console_command("kick", "scrKickPlayer('{1}', '{2+}')") - to vykoná skript scrKickPlayer, ktorému odovzdávate dve argumenty (pozor na úvodzovky!), v ktorom si naprogramujete vyhodenie hráča zo serveru a prípadne si doňho môžete vložiť správu, že bol hráč vyhodený (viz. nižšie)
PÍSANIE TEXTU
Veľmi jednoduchý skript console_write, kde si napíšete text a zadáte farbu

console_write("Type 'help' to show available commands", c_orange) - vypíše správu oranžovou farbou

EXPLODE a TRIM
Pridal som dve užitočné skripty pre tých skúsenejších, prvým je explode(array, separator, string), ktorý dokáže "rozbiť" string na poľa, ktorého názov sa zadáva do "array" v úvodzovkách!, separator je znak, ktorým je text rozdelený a string je reťazec, ktorý chcete rozdeliť. Vracia to počet polí. [Príklad na pripojenie s portom] [Príklad na error message]
Druhým je trim(string, char), ktorý vie orezať text od znaku char umiestnených po stranách textu. Využíva sa najmä ak chcete odstrániť medzeri na začiatku a konci slova


Download:

Obrázek QConsole.gex (7 kB) - update 20. 03. 2014
Obrázek QConsole.gmk (711 kB)


Screeny:
Obrázek Obrázek

Uživatelský avatar
DDL Blue
Živý stín
Příspěvky: 431
Registrován: srpen 6, 2011, 7:21 pm

Re: QConsole

Příspěvek od DDL Blue » březen 17, 2014, 9:29 pm

Vypadá to fakt zajímavě. Je to dost podobný, jako co jsem dělal s Loricem ( http://www.forum.velkejchytrak.cz/viewt ... =16&t=1349 asi tam nebude úplně nejnovější verze, minimálně ten screen je z tý hodně starý), jenom to naše bylo čistě přes gml scripty, bez externích knihoven, zachytávalo to errorový hlášky, dalo se s tím hejbat, vytvářelo si to vlastní help z nadefinovanejch příkazů, dokázalo to vykonávat jakejkoli kód za vykřičníkem a vypisovat/měnit proměnný (nic jinýho už mě nenapadá). Prostě vymoženosti, který umožňoval GM8. Ta tvoje ale je naopak taková čistčí.

Jak je to s GMS? Co v něm bude/nebude fungovat? Hádám, že to plnění příkazů ne, když je ukládáš jako string, nebo ano?
kick DDL_Blue neposlúchal :) vypíše do konzoly text DDL_Blue was kicked. Reason: neposlúchal :)
:x



:D
Zkoukněte moji hudební galerii ;). Nebo vyzkoušej můj generátor akordů!
Řikejte mi prostě Blue...

Uživatelský avatar
Ap0
Redaktor
Příspěvky: 367
Registrován: srpen 5, 2011, 11:24 pm
Facebook: http://facebook.com/
Bydliště: zamiešany v malte
Kontaktovat uživatele:

Re: QConsole

Příspěvek od Ap0 » březen 17, 2014, 9:52 pm

To je ale náhoda :D vôbec som nevedel, že tú konzolu si už robil ty :) a zhodou okolností som tam hodil tvoj nick :), ono v podstate aj v mojej konzole by sa dala naprogramovať chybová hláška, chcelo by to len error pomocou explode rozsekať na riadky a potom pridať ako text každý zvlášť :) každopádne konzolu som robil skvôr pre hráčov ako pre debugerov :D ale svoje opodstatnenie si nájde aj tam.

Čo sa týka GMS, ja osobne nemám možnosť vyskúšať to, pretože ho nevlastním, ale časom sa môžem pozrieť na kompatibilitu s nejakou free verziou GMS ktorá disponuje základnými funkciami (to by som už musel požiadať niekoho z vás, ktorí sa v ňom vyznajú...) :)

Uživatelský avatar
DDL Blue
Živý stín
Příspěvky: 431
Registrován: srpen 6, 2011, 7:21 pm

Re: QConsole

Příspěvek od DDL Blue » březen 18, 2014, 8:43 pm

Už dvakrát byla ta nejlevnější placená verze (pro win bez omezení) zadarmo ;). A ta konzole se mi tam rozběhnout nepovedla :confu: . Celkem bych se divil, kdyby jo. Vykonáváš tam gód ze stringů.
Zkoukněte moji hudební galerii ;). Nebo vyzkoušej můj generátor akordů!
Řikejte mi prostě Blue...

Uživatelský avatar
Ap0
Redaktor
Příspěvky: 367
Registrován: srpen 5, 2011, 11:24 pm
Facebook: http://facebook.com/
Bydliště: zamiešany v malte
Kontaktovat uživatele:

Re: QConsole

Příspěvek od Ap0 » březen 20, 2014, 12:08 pm

Kto to bude používať doporučujem sa niekedy pozrieť na dátum updatu .gex v prvom príspevku, lebo niekedy budem opravovať drobné chyby... ;)

Uživatelský avatar
DDL Blue
Živý stín
Příspěvky: 431
Registrován: srpen 6, 2011, 7:21 pm

Re: QConsole

Příspěvek od DDL Blue » březen 20, 2014, 7:51 pm

Taky zkus promyslet port pro GMS ;). Verze zadarmo má tuším všechny funkce povolený, jen má omezený počty resouců, takže to můžeš v klidu odzkoušet. Přecijen, za nějaký čas se už nic jinýho používat nejspíš moc nebude...
Zkoukněte moji hudební galerii ;). Nebo vyzkoušej můj generátor akordů!
Řikejte mi prostě Blue...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host