Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Mikotsune

Strony: 1 2 [3] 4 5 ... 19
41
Otwórz w spacerze DragonIsland.zen i zobacz jak został zrobiony most nad przepaścią.

Albo jak masz G1 to otwórz świątynie Śniącego i zobacz jak to jest zrobione.

42
Archiwum / [G2NK] Gothic I
« dnia: 2018-09-24, 08:45 »
Zapewne jak każdy inny mod. Czyli przerzucenie plików do folderu G2. Chociaż ciekawie by wyglądało, by przy instalacji była wymagana ścieżka do G1 :F

43
Wystarczy do paczki z modem dodać plik SystemPack.ini.

Ja u siebie zrobiłem nowy świat i bariery nie było, jakim cudem Benku dalej ją ma?

44
Gry / Cyberpunk 2077
« dnia: 2018-08-28, 20:40 »
To się znowu przełączy na pierwszą osobę XD

Podczas poruszania się po mieście można sobie chodzić w trzeciej osobie, a podczas misji czy czegoś tam znowu by się przełączyło na pierwszą osobę :D

45
Gry / Cyberpunk 2077
« dnia: 2018-08-28, 19:33 »
Może jakieś mody wyjdą na widok z trzeciej osoby XDD

46
Offtopic / [Discord] Cesarstwo Kucowni
« dnia: 2018-08-28, 13:07 »
Zapraszam na Discord, który jest związany z Gothiciem. Często rozmawiamy również na inne tematy.

Nowi, którzy chcą się nauczyć modowania również są mile widziani. Można również porozmawiać na temat AST czy Ikarusa.

https://discord.gg/zuaXurB

47
Pytania i problemy / Gothic 3 - modele
« dnia: 2018-08-21, 11:23 »
Tym programem wypakowujesz pliki z paczek .pak .p0 itd.
https://www.worldofgothic.de/dl/download_510.htm

Następnie po wypakowaniu plików, musisz je otworzyć w tym programie.
http://www.baltr.de/rimy3d/

Otwieraj pliki .xcmsh a .xnvmsh najlepiej usunąć. Opcją "Batch conversion" można zamienić wszystkie pliki na raz na inne formaty lub jak wolisz, każdy plik osobno. Ja używam blendera 2.66 i programem Rimy3D zamieniam pliki na rozszerzenie .3db (nie .3ds). Program zawiera plugin do blendera, dzięki któremu można importować .3db do blendera - najlepsze jest .3db. Potem w blenderze exportujesz do formatu .3ds.

48
Ukończone modyfikacje / [G2NK] L'Hiver Edition v1.1u PL
« dnia: 2018-08-18, 11:13 »
Wejdź w opcję gry i zmień "Prędkość kamery".

49
Pytania i problemy / Niestandardowe łączenie modów
« dnia: 2018-08-11, 11:08 »
SystemPack pozwala na dodanie własnych plików (skryptów) do modów. Po rozpoczęciu nowej gry musiałbyś przyzwać na kodach zbroje gandalfa czy co tam w tym Gandalf Modzie jest. Nie wiem tylko jak się to dodaje :F @Splash

50
Materiały / Władca pierścieni
« dnia: 2018-08-06, 23:30 »
Działa? Działa XDD W grze tego nie widać :F

51
Skrypty / Ilosc zalozonych pierscieni.
« dnia: 2018-08-06, 09:34 »
Jednak się udało coś takiego zrobić. Myślałem, że funkcja EquipItem nie jest na tyle zdolna, a jednak :F

https://themodders.org/index.php?topic=29560.msg1336590#msg1336590

52
Materiały / Władca pierścieni
« dnia: 2018-08-06, 09:32 »
Opatentowałem sposób na zakładanie większej ilości pierścieni, oraz określony przez nas limit założonych pierścieni. W dodatku jest to wszystko na podstawowych skryptach! Nic tylko brać!



Edytujemy wszystkie pierścienie. W instancji każdego pierścienia musimy ustawić flagę:

flags = ITEM_THROW;
W ten oto sposób możemy zakładać wszystkie pierścienie jeden za drugim w nieskończoność.

Teraz czas na limit pierścieni.

Pokażę na przykładzie pierścienia: itri_prot_fire_01
Resztę pierścieni sami sobie dodajcie XD Dodanie nowych pierścieni jest bardzo proste. Później pokażę jak to zrobić.

Na początek tworzymy nowy plik, do którego wklejamy poniższy skrypt. W Gothic.src wpisać ten plik przed itemami.
const int MaxEquippedRings = 10; //Maksymalna liczba założonych pierścieni

var int ring_prot_fire_01; //Zmienna pierścienia (JEDNA ZMIENNA DLA JEDNEGO PIERŚCIENIA!)

func int EquippedRings()
{
return (ring_prot_fire_01);
};

func void EquipRings (var c_npc slf, var int itm, var int amount)
{
if(amount == 1)
{
EquipItem(slf, itm);
}
else if(amount == 2)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 3)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 4)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 5)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 6)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 7)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 8)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount == 9)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
}
else if(amount >= 10)
{
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);
EquipItem(slf, itm);

CreateInvItems(slf, itm, (amount - 10));
};
};

Poniższy skrypt dodajemy na sam początek funkcji on_equip:
if (EquippedRings() == MaxEquippedRings)
{
var int AllRings; AllRings = Npc_HasItems(self, itri_prot_fire_01);
var int EquippedRings; EquippedRings = ring_prot_fire_01;
Npc_RemoveInvItems(self, itri_prot_fire_01, AllRings);

if(AllRings > EquippedRings)
{
CreateInvItems(self, itri_prot_fire_01, (AllRings-EquippedRings));
};

EquipRings (self, itri_prot_fire_01, EquippedRings);
}
else
{
ring_prot_fire_01 += 1;
};

Do on_unequip dodajemy:
ring_prot_fire_01 -= 1;
W ten sposób można zakładać maksymalnie 10 pierścieni o instancji itri_prot_fire_01.

=========================
Dodawanie nowych pierścieni
=========================

Otwieramy nasz nowy plik:

var int ring_prot_fire_01;
var int ring_prot_fire_02; //Dodajemy nową zmienną

func int EquippedRings()
{
   return (ring_prot_fire_01 + ring_prot_fire_02); //Wpisujemy nową zmienną tutaj
};


Teraz przechodzimy do pliku z pierścieniami. Kopiujemy skrypt z on_equip z pierwszego pierścienia i wklejamy do funkcji on_equip drugiego pierścienia.

Zmieniamy zmienną pierścienia na nową zmienną.
Zmieniamy instancję pierścienia na instancję nowego pierścienia.


func void equip_itri_prot_fire_02()
{
   if (EquippedRings() == MaxEquippedRings)
   {
      var int AllRings; AllRings = Npc_HasItems(self, itri_prot_fire_02);
      var int EquippedRings; EquippedRings = ring_prot_fire_02;
      Npc_RemoveInvItems(self, itri_prot_fire_02, AllRings);
      
      if(AllRings > EquippedRings)
      {
         CreateInvItems(self, itri_prot_fire_02, (AllRings-EquippedRings));
      };
      
      EquipRings (self, itri_prot_fire_02, EquippedRings);
   }
   else
   {
      ring_prot_fire_02 += 1;
   };
   self.protection[PROT_FIRE] += RI_PROTFIRE02;
};

func void unequip_itri_prot_fire_02()
{
   ring_prot_fire_02 -= 1;
   self.protection[PROT_FIRE] -= RI_PROTFIRE02;
};


GOTOWE! Teraz wystarczy tylko dodać resztę pierścieni z gry :F

=================================
Maksymalna liczba założonych pierścieni
=================================

Żeby zmienić liczbę pierścieni, które można założyć, trzeba zmienić liczbę w stałej i skrypt. Pokażę na przykładzie liczby 12.
const int MaxEquippedRings = 12;

Funkcja EquipRings.
func void EquipRings (var c_npc slf, var int itm, var int amount)
{
   if(amount == 1)
   {
      EquipItem(slf, itm);
   }
   else if(amount == 2)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 3)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 4)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 5)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 6)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 7)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 8)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 9)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 10)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount == 11)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
   }
   else if(amount >= 12)
   {
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      EquipItem(slf, itm);
      
      CreateInvItems(slf, itm, (amount - 12));
   };

};



Gotowe, to wszystko. Teraz flaga ITEM_RING nie jest używana i można ją zastąpić na przykład kolczykami, które będzie można założyć tylko 2, bądź użyć tego jako dułale*

53
Ukończone modyfikacje / [G2NK] L'Hiver Edition v1.1u PL
« dnia: 2018-08-05, 20:44 »
Nie gadaj tyle tylko dawaj tego propsa :lol:

54
Skrypty / Ilosc zalozonych pierscieni.
« dnia: 2018-08-05, 16:08 »
Bez pewnego pakietu skryptów chyba nie da rady zrobić czegoś takiego. Jesteś nowy w modowaniu, a ten pakiet skryptów nie jest dla osób, które dopiero co zaczynają przygodę z modowaniem gothica.

55
Ukończone modyfikacje / [G2NK] L'Hiver Edition v1.1u PL
« dnia: 2018-08-05, 14:08 »
Link i instalator już działa prawidłowo. Można pobierać. Miłej gry życzę.

56
Skrypty / Ilosc zalozonych pierscieni.
« dnia: 2018-08-05, 12:40 »
Oto rozwiązanie Twojego problemu:

flags = item_throw;
Ustaw to we wszystkich pierścieniach. Będzie je można zakładać w nieskończoność, a limit pierścieni możesz ustawić w on_equip.

57
Ukończone modyfikacje / [G2NK] L'Hiver Edition v1.1u PL
« dnia: 2018-08-05, 11:15 »
Pobierz 7zip i wypakuj instalator. Tylko pobierz od nowa bo się z instalatora chyba plik usuwa. Jakim cudem to nie działa? Nie wiem. U siebie sprawdzałem i działało :F

58
Ukończone modyfikacje / [G2NK] L'Hiver Edition v1.1u PL
« dnia: 2018-08-05, 10:08 »
Sam jeszcze sprawdzałem instalkę zanim wrzuciłem ją na stronę i działała prawidłowo. Spróbuj jeszcze raz pobrać i uruchom instalator jako administrator, albo jeszcze spróbuj rozpakować instalator WinRarem.

59
Skrypty / Ilosc zalozonych pierscieni.
« dnia: 2018-08-04, 20:55 »
Tej opcji chyba nie zmienisz. Jeśli nawet to jest to trudne. Lepiej sobie odpuść.

Chociaż... kiedyś zrobiłem buty, które mogłem zakładać w nieskończoność jedną parę po drugiej XD Nie pamiętam czy zmieniałem flag czy ustawiałem wear, ale da się to zrobić podstawowymi skryptami. Po prostu w instancji przedmiotu.

Ustawić model pierścienia, dodać equip i unequip liczące ile pierścieni mamy założonych i gotowe. No i oryginalne pierścienie usunąć XD

60
var int Hero_IsInInteractionWithMob;

func void Hero_EndInteraction()
{
if(MEM_ReadInt(ESP+4) == MEM_InstToPtr(hero))
{
Hero_IsInInteractionWithMob = false;
};
};


func void Hero_StartInteraction()
{
if(MEM_ReadInt(ESP+4) == MEM_InstToPtr(hero))
{
Hero_IsInInteractionWithMob = true;
};
};

//Startup
HookEngineF (7478304, 6, Hero_EndInteraction);
HookEngineF (7467536, 8, Hero_StartInteraction);

Start i End aktywuje się kilka razy. Dużo lepiej będzie zastosować FF zamiast zmiennych - W sumie zależy co się chcę zrobić.

Działa to ze wszystkim co może użyć npc (drzwi, krzesła, kowadło itd.), także masz szerokie pole do popisu. Może to zadziałać nawet kilka razy na jeden mob! Pozdrawiam Splasha XD

Strony: 1 2 [3] 4 5 ... 19
Do góry