Aneb stabni kultura neni jen buzerace…
Mozna konvence odsazovani, kterou pouzivam ja (z realneho NPC, jen je pridana zbytecna sekce OnInit), vypada nasledne:
amatsu,143,148,3 script Kseftar#jirkan 118,{ // povinny format, zde neni co resit
mes "[Kseftar]"; // standardni odsazeni jeden tabelator, v levem sloupci je jen definice NPC, jeji ukonceni a pripadne eventy
if (!countitem(677)) { // slozena zavorka ktera otevira vnoreny blok na konci radku
mes "Vypadni socko, kazis mi ksefty!"; // samotny blok je odsazeny o dalsi tabelator
mes "Az budes mit bony prijd";
close;
} // uzaviraci zavorka je presne pod prikazem ktery blok otevrel
mes "psssst!"; // dalsi kod bez bloku pokracuje dal.
mes "hele, ty vypadas bohate, udelame obchod?";
next;
mes "[Kseftar]";
mes "Tak ja ti jako pujcim nejakej klip a ty mi zaplatis, co ty na to?";
if (2 != prompt("Tahni drbane!:A co nabizis?")) close; // na jeden radek pouze ty nejjednodussi konstrukce za if, cokoli slozitejsiho do samostatnych bloku
next;
mes "[Kseftar]";
mes "Mam tu tyhle ctyri klipy, pujcim ti je na 2 hodiny a ty mi za to das jeden bon, plati?";
switch (select("Healing Clip:Hiding Clip:Clip Under a Cast:Clairvoyant Clip:Nic nechci")) { // switch podobne jako if, zacatek bloku na konci radky
case 1: // varianty case odsazene o jeden tab
delitem 677,1; // ale samotny kod je od case opet odsazeny, aby bylo poznak kde ktera sekce konci
rentitem 10600,7200;
break;
case 2: // vynechavat radek nebo nevynechavat? tot otazka, na jednu
delitem 677,1; // kdyz vynechame, je to prehlednejsi, ale zase se min vejde
rentitem 10601,7200; // na obrazovku takze se hur orientuje
break;
case 3:
delitem 677,1;
rentitem 10602,7200;
break;
case 4:
delitem 677,1;
rentitem 10603,7200;
break;
// takze jsem vynechal radku az u podstatne zmeny
default: // vzdy nejak osetrujeme i volby ktere nemusi nastat
mes "Tak priste";
break; // tenhle break je nadbytecny, ale na druhou stranu clovek pri dalsim copypastovani nezavlece chybu
}
close;
OnInit: // event jako jediny krome konce od prvniho sloupce
npctalk "Tak me tu mate!"; // a kod zase klasicky odsazeny
end;
}
Poznamka: V tomto scriptu nedodrzuji to, ze delitem a getitem by mely mit popsane co zerou/davaji. Cinim tak protoze je to zrejme z kontextu par radku kolem (zarucene na jedne obrazovce) o jake predmety se jedna.