Editace dialogů

Vytváření nových modů není tak obtížné, zkuste si to taky.

Moderátor: Razfallow

Odpovědět
Uživatelský avatar
drake127
Sigil Team
Příspěvky: 2358
Registrován: 24.9.2005 22:28
Bydliště: Jihlava, Czech Republic
Kontaktovat uživatele:

Editace dialogů

Příspěvek od drake127 »

Chtěl bych se zeptat, jak se ve WeiDU upravují dialogy (nemyslím vytváření nových).
Tj. když chci upravit nějaký dialog, ale chci být co nejméně závislý na ostatním obsahu.
Předpokládám zpracování v tp2 (boť mě žádné jiné nenapadá).
Žralok, který štěká, nekouše.
Uživatelský avatar
Razfallow
Dabus
Příspěvky: 1373
Registrován: 24.9.2005 22:54
Bydliště: Sigil
Kontaktovat uživatele:

Příspěvek od Razfallow »

Vytvoříš .d soubor, který pak v tp2 zkompiluješ.

Přidání dalších odpovědí se dělá přes EXTEND_TOP nebo EXTEND_BOTTOM.

Kód: Vybrat vše

EXTEND_TOP ~DNYM~ 8
IF ~~ THEN REPLY @0 DO ~StartStore("LDD_Nym",Protagonist)~ EXIT
END
Když chci udělat změnu (třeba přidat nastavení proměnné k odpovědi) už v existujícím bloku, tak využívám REPLACE.

Kód: Vybrat vše

REPLACE ~DNYM~

IF ~~ THEN BEGIN 7 // from: 6.1
  SAY #11139
  IF ~~ THEN REPLY #11140 DO ~SetGlobal("RZNym_IsBad","GLOBAL",1)~ JOURNAL @32 GOTO 8
  IF ~~ THEN REPLY #11141 DO ~Enemy()~ EXIT
  IF ~~ THEN REPLY #11142 DO ~SetGlobal("RZNym_IsBad","GLOBAL",1)~ JOURNAL @32 GOTO 9
END

IF ~NumTimesTalkedToGT(0)~ THEN BEGIN 10 // from:
  SAY #11174 /* ~Vítej zpět, vážený zákazníku.~ */
  IF ~GlobalGT("RZCatch_Nym","GLOBAL",0)~ THEN REPLY @1 GOTO 21
  IF ~PartyHasItem("BeetShld")~ THEN REPLY @38 GOTO 12
  IF ~PartyHasItem("RZBePLlw")~ THEN REPLY @39 GOTO 31
  IF ~Global("Nym_Shield","GLOBAL",1) GlobalTimerExpired("Nym_Timer","GLOBAL")~ THEN REPLY @35 GOTO 19
  IF ~Global("RZNym_Armor","GLOBAL",1) GlobalTimerExpired("RZNym_Armor_Timer","GLOBAL")~ THEN REPLY @36 GOTO 37
  IF ~Global("Nym_Shield","GLOBAL",1) !GlobalTimerExpired("Nym_Timer","GLOBAL")~ THEN REPLY @35 GOTO 18
  IF ~Global("RZNym_Armor","GLOBAL",1) !GlobalTimerExpired("RZNym_Armor_Timer","GLOBAL")~ THEN REPLY @36 GOTO 38
  IF ~Global("RZNym_IsBad","GLOBAL",0)~ THEN REPLY #11187 /* ~Nyme, není to nebezpečné, dělat obchodníka v Podtemní?~ */ GOTO 5
  IF ~~ THEN REPLY #11184 /* ~Ukaž mi své zboží, Nyme.~ */ DO ~StartStore("LDD_Nym",Protagonist)~ EXIT
  IF ~~ THEN REPLY #11189 /* ~Jen jsem tě chtěl pozdravit. Sbohem.~ */ GOTO 9
END
END
Nové bloky se přidávají přes APPEND.

Kód: Vybrat vše

APPEND ~DNYM~

IF ~~ THEN BEGIN 21 // from: 20.0
  SAY @4
  IF ~~ THEN REPLY @5 GOTO 22
END

IF ~~ THEN BEGIN 22 // from: 21.0
  SAY @6
  IF ~!Class(Protagonist,PALADIN)!Class(Protagonist,RANGER)!Class(Protagonist,CLERIC_RANGER)~ THEN REPLY @7 GOTO 23
  IF ~~ THEN REPLY @8 GOTO 24
END

IF ~~ THEN BEGIN 23 // from: 22.0
  SAY @9
  IF ~~ THEN REPLY @10 GOTO 25
  IF ~~ THEN REPLY @11 GOTO 26
END

IF ~~ THEN BEGIN 24 // from: 27.1 26.1 25.5 22.1 20.1
  SAY @12
  IF ~~ THEN REPLY @13 DO ~Enemy()~ EXIT
  IF ~~ THEN REPLY @14 DO ~Enemy()~ EXIT
END
Existují i další příkazy, ale ty jsem zatím moc nezkoumal.

Kód: Vybrat vše

IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
[/size]
Odpovědět

Zpět na „Infinity Engine“