uo.setjournalline() - z části nefunkční ?

Vaše problémy, rady a skripty týkající se tohoto prográmku
Odpovědět
Salvakoor
Misspelling Chicken
Misspelling Chicken
Příspěvky: 6
Registrován: 29.03.2007 21:15:14

uo.setjournalline() - z části nefunkční ?

Příspěvek od Salvakoor »

Zdravím, moje potíž je velice prostá:

uo. SetJournalLine (number, text)

Tato funkce se - aspoň u mne - nechová tak, jak by bylo zcela vhodné ...
Sice úspěšně najde a zliktivuje původní zápis řádku v journalovém zásobníku yoka, ale nikdy mi ten řádek nenahradila požadovaným řetězcem - prostě nechá prázdný řetězec : "" :evil:

Toť vše k mé potíží ... dále jen už pro demonstraci:

Kód: Vybrat vše

sub fakejournal()
  var d = 5
  uo.textprint("##Journal v puvodni podobe:")
  uo.showjournal(d + 1)
  var i
  for i = 2 to (d-1)
    uo.setjournalline(i,"novy zapis")
  next
  uo.textprint("##Journal po uziti uo.setjournalline():")
  uo.showjournal(i + 2)
end sub
Tohle by mělo názorně nahradit několik řádků v journalu ...
Ale u mne to bohužel udělá jen následující opičárnu:
##Journal v puvodni podobe:
------Journal [6]------
Defens: tetrahydrocannabinol
Renton: bank
Brandeis: Nepokrikuj na me!
Defens: :)
Renton: bank
Ultragreen: Prodam Damskou Robe of Blood
##Journal po uziti uo.setjournalline():
------Journal [6]------
Defens: tetrahydrocannabinol



Renton: bank
Ultragreen: Prodam Damskou Robe of Blood
Namísto očekávaného:
##Journal v puvodni podobe:
------Journal [6]------
Defens: tetrahydrocannabinol
Renton: bank
Brandeis: Nepokrikuj na me!
Defens: :)
Renton: bank
Ultragreen: Prodam Damskou Robe of Blood
##Journal po uziti uo.setjournalline():
------Journal [6]------
Defens: tetrahydrocannabinol
novy zapis
novy zapis
novy zapis
Renton: bank
Ultragreen: Prodam Damskou Robe of Blood
Moc by mne zajímalo jestli někomu z Vás tato funkce dělá to, co podle by dle mého soudu měla.
Naposledy upravil(a) Salvakoor dne 17.06.2008 16:55:17, celkem upraveno 1 x.
Salvakoor
Misspelling Chicken
Misspelling Chicken
Příspěvky: 6
Registrován: 29.03.2007 21:15:14

Příspěvek od Salvakoor »

Hmmm dobrá zdá se, že funkce uo.setjournalline() opravdu nakonec obecně nefunguje tak, jak by měla.

Naštěstí mne Filjins (který si nakonec odnesl stříbrný deed), upozornil na jistou alternativu, jak zle snadno vytvořit zápis do zásobníku journalu - pravda sice jen na vrch zásobníku - ale lepší než drátem do oka.

Kód: Vybrat vše

;  uo.set(variable,value)
uo.set("injectecho",1)
,set injectecho 1
Tohle způsobí, že hlášky tisknuté pomocí uo.print("Blablbabla") se objeví na vrchu journálového zásobníku.

Díky za aspoň částečné řešení-
- mimochodem pokud by tedy bylo potřeba opravdu nahradit nějáký řádek journalu, tak by pak bylo zapotřebí všechny řádky zkopírovat (mělo by jich tuším být nejvíce 50) a pak je tam opět zpátky pomocí uo.print() narvat i spolu s tím obměněným řádkem ... ale nemusim připomínat, že je to dost opruz :)

E: špatný kod :)
Odpovědět