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 - _Karol_

Strony: [1]
1
Skrypty / Ikarus (Pakiet skryptów)
« dnia: 2016-05-27, 22:56 »
Swoją drogą na ch**a takie coś w Gothicu ?

Miałem plan by dodać wybór nazwy postaci ale... jednak tego nie dodam. Nie będę robił Skyrima z Gothica :D

2
Skrypty / Ikarus (Pakiet skryptów)
« dnia: 2016-05-27, 22:53 »
Dopiero się uczę

3
Skrypty / Ikarus (Pakiet skryptów)
« dnia: 2016-05-27, 22:49 »
Chodziło mi o to czy jest gotowy w silniku lub dodany przez LEGO czy sam muszę napisać.

4
Skrypty / Ikarus (Pakiet skryptów)
« dnia: 2016-05-27, 22:41 »
Skryptami.
Hmmm, to podaj skrypt.

5
Skrypty / Ikarus (Pakiet skryptów)
« dnia: 2016-05-27, 22:20 »

6
Ukończone modyfikacje / [G2NK] Remake Mod
« dnia: 2016-05-27, 22:15 »
Masz G2MDK?

7
Skrypty / Ikarus (Pakiet skryptów)
« dnia: 2016-05-27, 22:12 »
Siema. Mam pytanko.
Czy jest opcja by w czasie gry wywołać "edytor tekstowy" a wpisane słowo trafi do zmiennej string?

8
Skrypty / Przebudowany skrypt doświadczenia.
« dnia: 2016-05-27, 19:18 »
Witam.
To jest mój pierwszy samouczek. Jak coś będzie źle wytłumaczone to piszcie w komentarzach to poprawię.

Oryginalny skrypt polegał na tym, że po zdobyciu poziomu, doświadczenie do następnego się zwiększało a ze zdobytym przez nas nic się nie działo(to znaczy że po zdobytym poziomie się nie zerowało).
Mój skrypt zmienia na to, że po zdobyciu poziomu nasze doświadczenie się zeruję.
Bez obaw, tyle samo doświadczenia co było trzeba będzie zdobyć do nowego poziomu.
Koniec teorii, start praktyki.

Otwieramy plik B_GivePlayerXP.d znajdujący się w "Gothic 2\_work\data\Scripts\Content\Story\B_Story\"
Przechodzimy do części pliku w której jest skrypt awansu na następny poziom czyli:
if(hero.exp >= hero.exp_next) //Jeśli liczba naszego expa równa się liczbie expa wymaganej do następengo poziomu to...
{
hero.level = hero.level + 1;
hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);
hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS_MAX] + HP_PER_LEVEL;
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_PER_LEVEL;
hero.lp = hero.lp + LP_PER_LEVEL;
PrintScreen(PRINT_LevelUp,-1,YPOS_LevelUp,FONT_Screen,2);
Snd_Play("LevelUp");
};

A teraz wytłumaczenie:

if(hero.exp >= hero.exp_next) Jeśli liczba naszego expa równa się liczbie expa wymaganej do następengo poziomu to...
      hero.level = hero.level + 1; Nasz level zwiększa się o 1.
hero.exp_next = hero.exp_next + ((hero.level + 1) * 500); Liczba doświadczenia jakie musimy zdobyć do następnego poziomu zwiększa się.
np.poziom 0 - Maksymalne doświadczenie=500 + ((Nasz level=1 +1) * 500) wychodzi 1500 czyli tyle musimy zdobyć by osiągnąć poziom 2.

      hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS_MAX] + HP_PER_LEVEL; Nasza maksymalna liczba punktów życia wzrasta o tyle co wynosi zmienna HP_PER_LEVEL(domyślnie 12).
      hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HP_PER_LEVEL;Nasza maksymalna liczba punktów życia wzrasta o tyle co wynosi zmienna HP_PER_LEVEL(domyślnie 12). Można zmienić na
hero.attribute[ATR_HITPOINTS_MAX] = hero.attribute[ATR_HITPOINTS; co znaczy, że przy awansie nasze zdrowie się odnawia do pełna.

hero.lp = hero.lp + LP_PER_LEVEL; Nasza liczba punktów nauki wzrasta o tyle co wynosi zmienna LP_PER_LEVEL(domyślnie 10).

PrintScreen(PRINT_LevelUp,-1,YPOS_LevelUp,FONT_Screen,2);Na naszym ekranie pojawi się napis ustawiony w zmiennej PRINT_LevelUp czyli Kolejny Poziom!

Snd_Play("LevelUp");Odtwarzany jest dźwięk "LevelUp"



Omówione to teraz jak to zmienić?
Chodzi nam o linijkę:
hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);
Tworzymy nową zmienną gdzieś na początku(ja ją nazwałem NextMaxExp)
Zamiast tego:
hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);Dajemy to:
NextMaxExp = hero.exp_next + ((hero.level + 1) * 500);Ale to nie wszystko ponieważ hero.exp_next się nie zmieni i co każde zdobycie expa będzie nowy level :D.
I teraz najważniejsze w tym systemie doświadczenia:
NextMaxExp = NextMaxExp - hero.exp_next;Czyli w naszej zmiennej będzie zapisane ile trzeba zdobyć doświadczenia na nowy poziom.
Ale jeszcze trzeba zapisać ile więcej expa zdobyliśmy niż trzeba było i zrobić by tyle równało się nasze zdobyte doświadczenie na następny level .
hero.exp = hero.exp - hero.exp_next; Gotowe. Teraz wystarczy zrobić by hero.exp_next równało się naszej zmiennej czyli w moim przypadku:
hero.exp_next = NextMaxExp;
To tyle

Ale po co nam to robić jak nie ma żadnej różnicy w gameplayu.
Ten system jest przydatny jeśli ma się pasek doświadczenia.
Bo wtedy pasek po zdobyciu poziomu nie zaczyna się w połowie zapełniony tylko od zera.

Gotowiec dla leni.
Spoiler
Stare:
hero.level = hero.level + 1;
hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);

Nowe:
var int NextMaxExp;
hero.level = hero.level + 1;
NextMaxExp = hero.exp_next + ((hero.level + 1) * 500);
NextMaxExp = NextMaxExp - hero.exp_next;
hero.exp  = hero.exp - hero.exp_next;
hero.exp_next = NextMaxExp;

9
Skrypty / Kolorowy napis \"Level Up\"
« dnia: 2016-05-26, 17:39 »
xd prawy górny. Pisze jak krowie na rowie xd

Gdzie?


Post połączony: 2016-05-26, 17:43
Jak włączyłem IE to jest przycisk :D

10
Skrypty / Kolorowy napis "Level Up"
« dnia: 2016-05-26, 17:30 »
Dzięki, działa. :)
Łap propsa :ok:

Edit. Gdzie jest przycisk by dać propsa :D ??

11
Skrypty / Kolorowy napis "Level Up"
« dnia: 2016-05-26, 15:31 »
Adresem robiłem kolorowy napis "Kufer"
Mam Ikarusa i Lego.
Do tego trzeba dodać RGBA?
PrintScreen(PRINT_LevelUp,-1,YPOS_LevelUp,FONT_Screen,2);

12
Skrypty / Kolorowy napis "Level Up"
« dnia: 2016-05-26, 15:20 »
Witam.
Chcę zrobić kolorowy napis i potrzebuję adresu do napisu "Level Up".
Wie ktoś jaki to adres?



13
Pytania i problemy / Problem z wytrzymałością
« dnia: 2016-05-26, 12:21 »
Zostałeś zatruty. Wypij odtrutkę.

Strony: [1]
Do góry