Vypnutí scriptu

Vaše problémy, rady a skripty týkající se tohoto prográmku
Uživatelský avatar
Rixx
Orc Writer
Orc Writer
Příspěvky: 57
Registrován: 08.09.2006 17:19:38
Kontaktovat uživatele:

Vypnutí scriptu

Příspěvek od Rixx »

Chtěl jsem se zeptat, dá se do scriptu zaimplementovat to, že když už jeden script běží a pustí se zase, aby to ten nově spuštěnej vyplo? Myslim třeba pustim script na heal a potom omylem ho pustim znovu (takže se mi prostě tlučou), tak aby to mělo nějakou podmínku na to, že když už script se jménem xxx běží a já se ho pokusim zapnout znovu, aby ho to buď vůbec nepustilo, nebo aby ho to hned ukončilo.. Doufám, že mě chápete.. Jde něco takovýho?
Ach jo..
Teď už dvakrát: Ach jo, ach jo..
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Re: Vypnutí scriptu

Příspěvek od Mole Two »

a) na zacatek skriptu

Kód: Vybrat vše

UO.Exec( "terminate jmenoSkriptu" );
b) pres globalni promenny

http://asyrks.asp2.cz/lock.txt

ale pak se musi vzdy pred ukoncenim skriptu volat Unlock a pri terminate all delat pres skript s UnlockAll ale zase se ten puvodni skript nevypne :)
Evil League of Evil
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Samosebou že jde, dokonce jde udělat to, že při prvním stisku tlačítka se heal zapne, při dalším stisku téhož tlačítka se zase vypne, jako to mám já :) Všechno jde, když se chce ;-)
Uživatelský avatar
Rixx
Orc Writer
Orc Writer
Příspěvky: 57
Registrován: 08.09.2006 17:19:38
Kontaktovat uživatele:

Příspěvek od Rixx »

Spike píše:Samosebou že jde, dokonce jde udělat to, že při prvním stisku tlačítka se heal zapne, při dalším stisku téhož tlačítka se zase vypne, jako to mám já :) Všechno jde, když se chce ;-)
Tak tohle řešim přes terminate all, protože víc scriptů stejně nemám zapnutých.

Jinak Mole díky. Jenom se zeptám, nejde to přes UO.Terminate("jménoscriptu")? Bo UO.Exec tu lidi nemají rádi.. :) Ale asi UO.Terminate neexistuje, že?
Ach jo..
Teď už dvakrát: Ach jo, ach jo..
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Příspěvek od Mole Two »

UO.Terminate neni no
Evil League of Evil
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Rixx píše:Tak tohle řešim přes terminate all, protože víc scriptů stejně nemám zapnutých.
No, ale já mluvím o tom mít vypínání a zapínání na jednom tlačítku... Kdežto jak jsem pochopil z tvého zápisu ty musíš mačkat dvě.
Rixx píše: ...Bo UO.Exec tu lidi nemají rádi.. :)
UO.Exec tu nemají rádi jen ti, kteří mu nerozumí a nevědí k čemu slouží a pouze někde od někoho slyšeli, že je to prasárna :P
Uživatelský avatar
Pepik
Book Snake
Book Snake
Příspěvky: 112
Registrován: 19.10.2006 13:29:27
Bydliště: Mumuland
Kontaktovat uživatele:

Příspěvek od Pepik »

http://www.darkparadise.cz/Forum/viewtopic.php?t=1279 -4. post odspodu - pokec o terminate;
http://www.darkparadise.cz/Forum/viewtopic.php?t=116 - pokec o UO.Exec (a pár dalších věcech) :)
podpis v rozporu s pravidly fora :D
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Příspěvek od Carda »

U exec de spíš o něco takovýho jakože pustí příkaz, kterej pustí příkaz, kterej provede danou akci -> je to možná nepatrně pomalejší a je to ošklivý :-) (sry jestli sem fakt daleko od pravdy :p)
Edit: Samozřejmě pokud to bez exec nejde (přepnutí warmodu, terminate), tak použít, ale pokud to de jednoduše jinym příkazem, tak použít radši to :p
Naposledy upravil(a) Carda dne 01.10.2007 18:56:51, celkem upraveno 1 x.
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Uživatelský avatar
Pepik
Book Snake
Book Snake
Příspěvky: 112
Registrován: 19.10.2006 13:29:27
Bydliště: Mumuland
Kontaktovat uživatele:

Příspěvek od Pepik »

No jo, taky to nerad používám - ale evidentně se to někdy hodí. A ono zase - na E6700 to snad ani ňák znatelně pomalejší nebude :D
podpis v rozporu s pravidly fora :D
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Carda píše:U exec de spíš o něco takovýho jakože pustí příkaz, kterej pustí příkaz, kterej provede danou akci -> je to možná nepatrně pomalejší a je to ošklivý :-) (sry jestli sem fakt daleko od pravdy :p)
Edit: Samozřejmě pokud to bez exec nejde (přepnutí warmodu, terminate), tak použít, ale pokud to de jednoduše jinym příkazem, tak použít radši to :p
Opravdu jsi docela dost daleko od pravdy :) UO.Exec ma tu nedocenitelnou vlastnost, ze umozni spustit skriptove jiny skript jako samostatne vlakno. Priklad: Mam v yoku udelane obsluzne rutiny, tj skripty, ktere se staraji o spousteni, beh a vypinani dalsich skriptu. Pokud by napr. rutina Execute(), kterou budu chtit spoustet skript (nazyvejme ho napriklad MujSkript), spoustela tento skript prikazem

Kód: Vybrat vše

MujSkript()
stane se to, ze skript se sice spusti, ale rutina Execute se zastavi a ceka, nez MujSkript skonci. Kdezto kdyz to bude spoustet nejak takhle

Kód: Vybrat vše

UO.Exec('exec MujSkript')
spusti se MujSkript jako samostatne vlakno, a rutina Execute muze v klidu vykonavat nejakou dalsi cinnost, pripadne skoncit. Je to krasne videt v zalozce prave bezicich skriptu, v prvnim pripade bys videl pouze jeden skript, a to Execute (i presto ze tento skrip spustil jiny skript s nazvem MujSkript), ve druhem pripade budes mit dva bezici na sobe nezavisle skripty.

UO.Exec tedy ma svuj ucel a zaplatpanbuh za nej, bez nej by takoveto prostredi obsluznych rutin vubec neslo realizovat (snad jen pouzitim UO.Say, netestoval jsem to, ale pokud to funguje, tak je to stejny princip).

Na druhou stranu uznavam, ze pouziti UO.Exec ve smyslu UO.Exec(waitmenu bla bla bla) je skutecne prasarna.
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Příspěvek od Mole Two »

Spike píše:Pokud by napr. rutina Execute(), kterou budu chtit spoustet skript (nazyvejme ho napriklad MujSkript), spoustela tento skript prikazem
o rly? k cemu by pak byla? jak muzes predvidat co by jak delalo?
Evil League of Evil
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Mole Two píše:
Spike píše:Pokud by napr. rutina Execute(), kterou budu chtit spoustet skript (nazyvejme ho napriklad MujSkript), spoustela tento skript prikazem
o rly? k cemu by pak byla? jak muzes predvidat co by jak delalo?
Huh? Jak predvidat? Ja to bral jako predpoklad, abych na tom demonstroval uzitecnost UO.Exec.
Promin, ale tvuj post jsem vubec nepochopil...
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Příspěvek od Mole Two »

Jako demonstrujes uzitecnost nejaky veci na vymysleny veci? Nechapu nejak proc by nejaka funkce Execute() mela spoustet skript a cekat az se dokonci..
Evil League of Evil
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Mole Two píše:Jako demonstrujes uzitecnost nejaky veci na vymysleny veci? Nechapu nejak proc by nejaka funkce Execute() mela spoustet skript a cekat az se dokonci..
Nene, neni to vymyslena vec, takovou rutinu skutecne mam a pouzivam.
No to je prave to, fuknce, ktera spusti skript a ceka az se dokonci je nesmysl, ale prave tohle se stane pokud ten skript ta funkce nebude spoustet pres UO.Exec ale pouhym volanim. A tim jsem chtel demonstrovat prave onu vyznamnost prikazu UO.Exec pro tyto ucely. Uz si rozumime? :)
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Příspěvek od Carda »

Spike píše:Opravdu jsi docela dost daleko od pravdy... ...Na druhou stranu uznavam, ze pouziti UO.Exec ve smyslu UO.Exec(waitmenu bla bla bla) je skutecne prasarna.
Aha, takže si vlastně chtěl říct, že mám pravdu. Protože právě tímhle
Carda píše:Samozřejmě pokud to bez exec nejde, tak použít, ale pokud to de jednoduše jinym příkazem, tak použít radši to :p
sem myslel i souběžný spuštění skriptu (to o čem si psal), ale bohužel sem to neuvedl do těch příkladů no :-|
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Dondor
Inkless
Inkless
Příspěvky: 29
Registrován: 08.09.2006 00:28:13
Kontaktovat uživatele:

Příspěvek od Dondor »

Spike píše:...
Na druhou stranu uznavam, ze pouziti UO.Exec ve smyslu UO.Exec(waitmenu bla bla bla) je skutecne prasarna.
Co se tu přesně rozumí slovem "prasárna"? Je to jenom zastaralý zápis, pozůstatek z doby, kdy yoko nemělo funkci uo.waitmenu(), nebo se uo.exec("waitmenu bla bla bla") chová jinak než uo.waitmenu("bla","bla","bla")?
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Dondor píše:
Spike píše:...
Na druhou stranu uznavam, ze pouziti UO.Exec ve smyslu UO.Exec(waitmenu bla bla bla) je skutecne prasarna.
Co se tu přesně rozumí slovem "prasárna"? Je to jenom zastaralý zápis, pozůstatek z doby, kdy yoko nemělo funkci uo.waitmenu(), nebo se uo.exec("waitmenu bla bla bla") chová jinak než uo.waitmenu("bla","bla","bla")?
Prasarna je myslena jako opak elegantniho zapisu, proste neco co jde napsat mnohem hezceji, elegantneji.
Chovani je stejne u obou zpusobu.
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Carda píše:..sem myslel i souběžný spuštění skriptu (to o čem si psal), ale bohužel sem to neuvedl do těch příkladů no :-|
V tom pripade ano, mel jsi pravdu.
Ale teda jak se ti povedlo nenapsat do toho vyctu prave tohle pouziti, to je mi zahadou, protoze dle meho je prave tohle ten nejdulezitejsi zpusob pouziti UO.Exec :)

A zase naopak, na prepnuti warmode UO.Exec vubec nepotrebujes :P
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Příspěvek od Carda »

Spike píše:Chovani je stejne u obou zpusobu.
->
Spike píše:V tom pripade ano, mel jsi pravdu.
Nemám ten dojem, že bych naznačoval, že chování obou zápisů je naprosto stejný.
Spike píše:Ale teda jak se ti povedlo nenapsat do toho vyctu prave tohle pouziti, to je mi zahadou, protoze dle meho je prave tohle ten nejdulezitejsi zpusob pouziti UO.Exec :)
Napsal sem co mě první napadlo a to byli logicky ty věci, který sem uvedl. Není nijak moc možný vypsat všechny možnosti.
Spike píše:A zase naopak, na prepnuti warmode UO.Exec vubec nepotrebujes :P
Měl sem na mysli UO.Exec("warmode flip") a to jaksi nenahradíš moc nijak jinak.
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Dondor
Inkless
Inkless
Příspěvky: 29
Registrován: 08.09.2006 00:28:13
Kontaktovat uživatele:

Příspěvek od Dondor »

Carda píše:Měl sem na mysli UO.Exec("warmode flip") a to jaksi nenahradíš moc nijak jinak.
Tohle by nefungovalo?

Kód: Vybrat vše

if (uo.warmode()==0) then
  uo.warmode(1)
else
  uo.warmode(0)
endif
Odpovědět