Skrypty dialogowe
Z Djinni Wiki PL
[edytuj] Dialogowy skrypt szansy
/*
cn_rnd14
Skrypt rozpoczynający konwersacje, linia ma 25 % szans na wymówienie.
Upewnij się, że umiejscowiłeś warunki węzłów dialogowych od najmniej do najbardziej ważnego.
Stworzone przez Ghostdreamer pod NW1, zmodyfikowane przez Paula V dla Wiedźmina, przetłumaczone przez Quartiesa.
*/
int StartingConditional()
{
int iResult;
iResult = d100() < 26;
return iResult;
}
Powyższy skrypt jest przykładem dialogowego skryptu szansy. Ten przykład zostanie ustalony jako skrypt warunkowy pierwszego z czterech węzłów konwersacji. Drugi węzeł konwersacji będzie posiadał podobny skrypt warunkowy, z tą różnicą, że
iResult = d100() <26;
zostanie zmienione na:
iResult = d100() <51;
To każe D'jnniemu rzucić 100-ścienną kostką podczas inicjacji dialogu. Jeśli wynik jest mniejszy niż 26 (czyli szanse wynoszą 25 %) węzeł dialogowy się odtworzy. Jeżeli wynik jest większy niż 25 przechodzi do następnego węzła i rzuca jeszcze raz.
To ważne aby skrypt był uporządkowany od najmniej do najbardziej prawdopodobnej możliwości, kolejno od początku do końca, w węzłach dialogowych w pliku *.dlg. Musi tak być, ponieważ D'jinni czyta plik od początku do końca i jeśli początek węzła iResult = d100() < 100; wtedy dialog będzie miał 100 % całego czasu, co niszczy cel skryptu.
Ponadto, węzeł konwersacje w pliku *.dlg będzie miał osobny skrypt szansy, każdy z równą szansą na rozpoczęcie, zależnie od liczby węzłów dialogowych. Co to znaczy? Więc jeśli masz 10 węzłów dialogowych i chcesz mieć taką samą szanse na wypowiedzenie każdego przez Geralta, wtedy skrypt będzie miał taką samą składnie, ale z takimi opcjami:
- iResult = d100() < 11;
- iResult = d100() < 21;
- iResult = d100() < 31;
- iResult = d100() < 41;
- iResult = d100() < 51;
- iResult = d100() < 61;
- iResult = d100() < 71;
- iResult = d100() < 81;
- iResult = d100() < 91;
- iResult = d100() < 100;
[edytuj] Konwencja nazewnictwa skryptów
Jeśli masz dużo takich skryptów zapisanych na twoim dysku twardym określenie ich może być trudne. Żeby było łatwiej, ja podpisuje skrypt specjalną nazwą, oznaczającą szanse.
- cn_rnd14 (To oznacza warunek szansy-1 na 4. a iResult= <26)
- cn_rnd24 (To oznacza warunek szansy-2 na 4. a iResult= <51)
- cn_rnd15 (To oznacza warunek szansy-1 na 5. a iResult= <21)
- etc.
