Tworzenie nowej runy teleportu 15734 19

O temacie

Autor Sawik

Zaczęty 14.07.2011 roku

Wyświetleń 15734

Odpowiedzi 19

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel

Sawik
Moderator działu

Tworzenie nowej runy teleportu
2011-07-14, 18:56(Ostatnia zmiana: 2011-07-15, 10:38)
Pokażę wam jak robić runę teleportu więc bez zbędnych ceregieli:

Potrzebne pliki:
1.Constants.d
2.IT_Runen.d
3.Spell_ProcessMana.d
4.Spell_Teleport_Alle.d
5.Text.d




Teraz w pliku Constants.d

Zmieniamy jedną ze stałych np: const int SPL_Reserved_98 = 98;Nie możemy dodawać nowych ale możemy edytować wszystkie Reserved
Ja zmieniłem ją na const int SPL_TeleportBrothel = 98; bo robiłem teleport do Czerwonej Latarni

Teraz animacja odgrywana przy użyciu. Jeżeli używacie tej stałęj co ja odszukajcie
"XXX" //98 SPL_Reserved_98I zamienicie na
"HEA", // 98 SPL_TeleportBrothel Jeżeli nie to poszukajcie tej z swoim numerkiem (później już tego nie będę pisał więc pamiętajcie)

HEA odpowiada za animację odgrywaną przy użyciu i nie musi być to HEA może to być jedna z poniższych:
   "SLE",               // Runa świtała paladyna
   "HEA",              // Teleporty i uleczenia
   "FBT",              // święty Pocisk
   "FIB",              // Zniszczenie zła
reszty poszukajcie sobie sami bo ja jestem zbyt leniwy.

Ok z Constats.d to chyba wszystko


2. It_Runen.d

Na początku pliku dajta stałą na cenę runy.
const int Value_Ru_Brothel = 500; to oczywiście tylko przykład.

Najłatwiej jest skopiować i wkleić jedną z gotowych run teleportu i ją przerobic

INSTANCE ItRu_TeleportSeaport (C_Item) //Instancja itemu
{
   name             =   NAME_Rune;      //Nazwa Name_Rune po polsku wyświetli "Runa"

   mainflag          =   ITEM_KAT_RUNE; // To tylo mówi ze jest to Runa
   flags             =   0; // Flaga ( nie wiem po co runie flaga ale nie narzekam)
   
   value             =   Value_Ru_TeleportSeaport; // Stała ceny
   
   visual            =   "ItRu_TeleportSeaport.3ds";   //Wygląd
   material         =   MAT_STONE;      //Z czego to jest zrobione żeby ustalić jak będzie wydawać przy udeżeniu o ziemię

   spell            =    SPL_TeleportSeaport;   //Jakie to zaklęcie


   wear            =    WEAR_EFFECT;      //Nie wymaga chyba tłumaczenia
   effect            =   "SPELLFX_WEAKGLIMMER";      //Effek

   description         =    NAME_SPL_TeleportSeaport; // Opis może
   
// Dalej jest jak w każdym iteamie.   
   TEXT   [1]         =   NAME_Manakosten;         
   COUNT   [1]         =   SPL_COST_TELEPORT;
   TEXT   [5]         =   NAME_Value;               
   COUNT   [5]         =   value;
};



3. SpellProcesMana.d

Dodajemy pomiędzy  innymi ifami
if (activeSpell == SPL_TeleportBrothel ) { return  Spell_Logic_TeleportBrothel (manaInvested); }; )znowu tylko przrykład.



4. Spell_Teleport_Alle.d

Dodajemy
// ------ Czerwona Latarnia------
func int Spell_Logic_TeleportBrothel (var int manaInvested)
{
if (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
return SPL_SENDCAST;
}
else if (self.attribute[ATR_MANA] >= SPL_Cost_Teleport)
{
return SPL_SENDCAST;
};

return SPL_NEXTLEVEL;
};

func void Spell_Cast_TeleportBrothel()
{
B_PrintTeleportTooFarAway (NEWWORLD_ZEN); // W jakim świecie nie pokaże "Za Daleko"

if (Npc_GetActiveSpellIsScroll(self))
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
}
else
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Teleport; //Ile many zużyjemy (SPL_cost_Teleport jest na początku pliku jak chcecie własną wartość to dodajcie jedną :D
};

AI_Teleport (self, "NW_CITY_HABOUR_PUFF_NADJA"); //To jest gdzie się teleporujemy
AI_PlayAni (self, "T_HEASHOOT_2_STAND" ); //A to jakej animacji użyjemy
};


I na dole jeszcze pomiędzy skryptami
if (Npc_GetActiveSpell(self) == SPL_TeleportBrothel ) { Spell_Cast_TeleportBrothel (); }; Tego nie będę tłumaczył bo nie wiem jak to w słowa ująć ale jak zwykle to tylko przykład :P

5.Text
Teksty jakie się nam pokażą np przy wybieraniu czaru na górze.

Odnajdujemy linijki swoich Reserved
w moim wypadku 98

"TXT_SPL_RESERVED_98", /*co wyświetli*/ // 98 /*Numer Zaklęcia*/ SPL_Reserved_98 /* Instancja zaklęcia*/
Ja zmieniłęm to tak "Teleport do Czerwonej Latarni",             // 98 SPL_TeleportBrothel

teraz jeszcze mała podmiana
//To
const string NAME_SPL_Reserved_98 = "NAME_SPL_RESERVED_98";
//Na To
const string NAME_SPL_TeleportBrothel = "Do Czerwonej Latarni";

Po zapisaniu wszystkiego jeżeli robiliście tak jak ja zostaniecie przeniesieni do czerwonej latarni.


Jak macie problemy czegoś zapomniałem albo czegoś nie zbyt dokładnie wytłumaczyłem lub coś w tym stylu piszcie.
A jak się przydało to tam jest taki fajny przycisk :ok:  :D
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Nie możemy dodawać nowych ale możemy edytować wszystkie Reserved

Jesteś pewny ? bo mi się zdaje ze ja dodawałem nowe Avallach mi podał niemiecki tutek kiedyś w jakimś temacie na forum. Ale nie jestem pewny może ty masz racje.

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Jest to chyba kontrolowane ale nie sprawdzałem.
Nie powinienem był tego pisać przed sprawdzeniem czy po edycji MAX nie mogę dodać np sto pierwszego zaklęcia.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Jest to chyba kontrolowane ale nie sprawdzałem.
Nie powinienem był tego pisać przed sprawdzeniem czy po edycji MAX nie mogę dodać np sto pierwszego zaklęcia.
Ok znalazłem ten temat sorry jednak wykorzystywałem wolne miejsca. leci props dla ciebie za tutek ale mam małe pytanka

1 jesteś pewny ze wszystko jest ok ?
2 możesz dać skrypt runy w znacznik kode ?
3 zgodził byś się abym na podstawie tego tutka napisał generator ?
4 mógł byś mi przesłać te 5 plików bo obecnie nie mam gothic`a

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel

Sawik
Moderator działu

Tworzenie nowej runy teleportu
#4 2011-07-14, 19:59(Ostatnia zmiana: 2011-07-14, 20:07)
1. Jak napisałem tak jak zrobiłem to tak.
2. Tak nie ma problemu.
3. Nie ma sprawy jak chcesz to nawet pomogę (podając nazwy wszystkich visuale itp z gothica)
4. Pisz na gg lub PW podam paczkę.


Edit:
Skrypt dla  RafalBudzis
const int Value_Ru_TeleportBrothel = 500;
INSTANCE ItRu_TeleportBrothel (C_Item)
{
name = NAME_Rune;

mainflag = ITEM_KAT_RUNE;
flags = 0;

value = Value_Ru_TeleportBrothel;

visual = "ItRu_TeleportSeaport.3ds";
material = MAT_STONE;

spell = SPL_TeleportBrothel;


wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER";

description = NAME_SPL_TeleportBrothel;


TEXT [1] = NAME_Manakosten;
COUNT [1] = SPL_COST_TELEPORT;
TEXT [5] = NAME_Value;
COUNT [5] = value;
};
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

krupam

krupam

Użytkownicy
posty105
Propsy43
Profesjabrak
  • Użytkownicy
Co do tych animacji, to mogłeś konkretniej:

"SLE", // Sen, Zmniejszenie potwora, czary światła
"HEA", // Teleporty i uleczenia
"FBT", // Ognisty pocisk, generalnie wszystkie czary typu pociski
"FIB", // Jak FBT z krótkim ładowaniem
"SUM", // Czary przywoływania
"FRZ", // Bryła lodu, Korzeń
"WND", // Pięść wichru, (Duża) Błyskawica, Wodna Pięść, Szał Beliara, Krzyk Umarłych...
"FEA", // Większość czarów obszarowych - Strach, deszcz ognia, lodowa fala...
"MSD", // Masowe zniszczenie aka Śmiertelna fala
"TRF", // Czary przemiany
"STM", // Grom(ten obszarowy od Magów Wody, nie ten z G1)
"WHI", // Wir(takie, że wpierw krąży ręką w powietrzu...)
 

Codeman

Codeman

Użytkownicy
posty53
Propsy33
  • Użytkownicy

Codeman

Tworzenie nowej runy teleportu
#6 2011-07-15, 10:09(Ostatnia zmiana: 2011-07-15, 11:56)
Dobry poradnik, łap propsa :

Ścieżki do tych plików jakby ktoś szukał :D

1. Constants.d Scripts\Content\_intern
2. IT_Runen.d Scripts\Content\Items
3. Spell_ProcessMana.d Scripts\Content\AI\Magic
4. Spell_Teleport_Alle.d Scripts\Content\AI\Magic\Spells
5. Text.d Scripts\Content\Story
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Wkradł się błąd w tutorialu aż dziwne nikt nie zauważył jeszcze.

w pliku constants.d trzeba zmienić spellFxInstanceNames dla swojego czaru (linijki 657 w dół)

zamiast Light (które będzie przy wszystkich reserved) dajcie Teleport i będzie git.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy924
ProfesjaLvl designer
  • Wyspa Khorinis
Przeglądłem woga i jest możliwe dodanie całkiem nowego czaru (zwiększenie rozmiaru tablic). http://wiki.worldofgothic.de/Tutorials/Spell+Tutorial/Komplett+Neuen+Spell Tu jest tutek jak to zrobić ale po niemiecku(nie chce mi się tłumaczyć paplaniny google tłumacza).
 

Jarooo

Jarooo

Użytkownicy
posty96
Propsy3
  • Użytkownicy
Mam mały problem, a właściwie pytanie.
AI_Teleport      (self, "NW_CITY_HABOUR_PUFF_NADJA"); //To jest gdzie się teleporujemy
W jaki sposób ustawić konkretną pozycję, do jakiej można się teleportować? czy można zamiast tego "NW_CITY_BLABLABLA" wpisać pozycje x,y,z?
 

gothic1210
  • Gość
Wpisz nazwę waypointu. 
 

Splash

Splash

Moderator
posty4207
Propsy3404
ProfesjaNierób
  • Moderator
Cytuj
czy można zamiast tego "NW_CITY_BLABLABLA" wpisać pozycje x,y,z?
Za pomocą Ikarusa tak :D
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Jarooo

Jarooo

Użytkownicy
posty96
Propsy3
  • Użytkownicy
No to wolę już w tamtym miejscu postawić waypointa. :D
Mimo wszystko i tak jest inny problem. W _Work\data\Worlds mam plik COLONY8.ZEN   Wpisałem więc tutaj w ten sposób:
B_PrintTeleportTooFarAway (COLONY8_ZEN);
Mimo tego w GothicStarterze podczas sprawdzania skryptów wyskakuje błąd (Unknown identifier: COLONY8_ZEN). Ktoś ma pojęcie co jest nie tak?
 

gothic1210
  • Gość
Nie znam tej w funkcji. W G1 nie występuje, ale spróbuj dać w " " nazwę ZENA. 
 

Jarooo

Jarooo

Użytkownicy
posty96
Propsy3
  • Użytkownicy
Aaa, zapomniałem dodać, że tworzę w Gothicu II NK, nie w Gothicu 1.

Podmieniłem (COLONY8_ZEN) na ("COLONY8.ZEN). Wyskakuje wtedy: U : PAR Syntax error line 211 (linijka z tym właśnie kodem).
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
colony8_zen powinna być zadeklarowana jako liczba stała całkowita( int ) o niepowtarzalnej wartości.
Potem w startupie tego świata przypisać do zmiennej CurrentLevel wartość colony8_zen.
Let's do this.

Jarooo

Jarooo

Użytkownicy
posty96
Propsy3
  • Użytkownicy
Działa. Dzięki wielkie za pomoc. :)
 

Kefor97

Kefor97

Użytkownicy
posty38
ProfesjaGracz
  • Użytkownicy
Mam problem, wyskakuje mi błąd nieznany identyfikator ZEN powyżej również Jarooo miał taki problem lecz nie wiem gdzie dokładnie wpisać tą komendę do startup'u, pomóżcie.
 

Cruc

Cruc

Użytkownicy
posty662
Propsy232
Profesjabrak
  • Użytkownicy
Najlepiej będzie, jeśli dasz screena komunikatu, bo szczerze mówiąc to nie rozumiem w czym dokładnie jest problem xd
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Kefor97

Kefor97

Użytkownicy
posty38
ProfesjaGracz
  • Użytkownicy
Cruc, mogę cię prosić gdzieś na pw, ponieważ mam kilka problemów a widzę że się znasz :)

Post połączony: 2019-02-11, 20:54
Pełny komunikat wyświetla:
Cytuj
U: PAR: CONTENT/AI/MAGIC/SPELLS/SPELL_TELEPORT_ALLE.D: Unknown identifier : MAPKA_WYSPA_ZEN .... <zParser.cpp,#599>

Post połączony: 2019-02-11, 21:00
Cruc napisałem pw :)
 


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