Nieskończona liczba czarów przemian 9379 0

O temacie

Autor

Zaczęty 20.01.2008 roku

Wyświetleń 9379

Odpowiedzi 0

Kazzmir
  • Gość

Kazzmir
Gość

Nieskończona liczba czarów przemian
2008-01-20, 21:56(Ostatnia zmiana: 2009-07-06, 14:51)
Cytat: Fenix link=topic=75.msg64011#msg64011 date=Aug 9 2007, 17:53\'
Na początku zastrzegam, że sposób w jaki tworzę możliwość dowolnej liczby przemian, nie jest sposobem optymalnym. A teraz do rzeczy:

1. Znajdujemy w Folderze \Scripts\Content\MAGIC plik .d zaczynający się na "spell_trf_", który będziemy modyfikować.

2.Otwieramy (dla przykładu, zmienię czar przemiana w pełzacza, czyli spell_trf_Crawler.d), widzimy coś takiego:
//-------- Spell Commands --------
// SPL_DONTINVEST = 0; // Es können keine weiteren Manapunkte investiert werden. Erst durch CTRL loslassen geht der Spell ab
// SPL_RECEIVEINVEST = 1; // Wirkung durchgeführt, es können weitere Invest kommen, zB.bei Heal nach jedem Pöppel
// SPL_SENDCAST = 2; // Starte den Zauber-Effekt (wie CTRL loslassen), automatischer Abbruch
// SPL_SENDSTOP = 3; // Beende Zauber ohne Effekt
// SPL_NEXTLEVEL = 4; // setze den Spruch auf den nächsten Level

func int Spell_Logic_Trf_Crawler(var int manaInvested)
{
PrintDebugNpc (PD_MAGIC, "Spell_Logic_Transform");

if (manaInvested >= SPL_SENDCAST_TRF_CRAWLER)
{
Npc_SetActiveSpellInfo(self, MineCrawler);

return SPL_SENDCAST;
};

return SPL_NEXTLEVEL;
};

3.Tworzymy zmienną w Story_Globals.d (\Scripts\Content\Story):
var int Zmienna_okreslajaca_ile_mozliwych_przemian_bedzie_dostepnych_w_tym_czarze
4.W spell_trf_Crawler.d zmieniamy linijkę:

Npc_SetActiveSpellInfo(self, MineCrawler);
Na coś takiego:

  if (Zmienna_okreslajaca_ile_mozliwych_przemian_bedzie_dostepnych_w_tym_czarze== 0)
{
Npc_SetActiveSpellInfo(self, MineCrawler);
}else
if (Zmienna_okreslajaca_ile_mozliwych_przemian_bedzie_dostepnych_w_tym_czarze== 1)
{
Npc_SetActiveSpellInfo(self, FireWaran);
}else
if (Zmienna_okreslajaca_ile_mozliwych_przemian_bedzie_dostepnych_w_tym_czarze== 2)
{
Npc_SetActiveSpellInfo(self, Lurker);
}else
if (Zmienna_okreslajaca_ile_mozliwych_przemian_bedzie_dostepnych_w_tym_czarze== 3)
{
Npc_SetActiveSpellInfo(self, Shadowbeast);
};

Posłowie: Teraz zależnie jak ustawimy naszą zmienną czar będzie przemieniać nas w określoną bestię (w tym przypadku Pełzacza, Ognistego jaszczura, Topielca lub cieniostwora). Zmienną możemy ustawić na kilka sposobów, podam kilka z nich:
1.Tworzymy przedmiot, po którego użyciu pojawia się monolog i wybór konkretnej opcji oznacza zmianę wartości zmiennej.
2.Tworzymy dialogi z NPCem, w których zmienna będzie ustawiana.
3.W pliku samego czaru dajemy linijkę:
Zmienna_okreslajaca_ile_mozliwych_przemian_bedzie_dostepnych_w_tym_czarze= Hlp_Random(4);Co sprawi, że przy każdym użyciu czaru, odbędzie się losowanie w co się zmienimy.
Na początku pisałem, że nie jest to rozwiązanie optymalne, ponieważ Gothic nie rozpoznaje na poziomie przedmiotu, jak ustawiona jest zmienna (dobrze rozpoznaje, ale to rozpoznanie nie pomaga tylko wprowadza zamieszanie), więc nie możliwe jest stworzenie kilku run/zwojów , z tym czarem, gdy gra nie rozpozna co który zwój oznacza. Oczywiście jeśli ktoś wymyśli sposób, w którym jeden czar przemiany będzie być użyty na kilka sposobów, zależnie tylko od tego z jakiego przedmiotu korzystamy, niech dopisze się do tego tutoriala.

Prawa Autorskie: Dozwolone jest kopiowanie powyższego tutoriala w całości lub części, tylko pod warunkiem umieszczenia informacji, że został on stworzony przeze mnie. W przypadku gdy, ktoś odnajdzie sposób optymalniejszej przemiany (w sposób jaki opisałem powyżej), na niego przechodzą wszystkie prawa co do tego tutoriala.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry