Stránka 1 z 1

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

Napsal: 14.06.2008 21:38:14
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.

Napsal: 17.06.2008 16:49:35
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 :)