Tutorial: Jak zrobić miecz srebrny i stalowy 3866 0

O temacie

Autor Bogdan Zwei

Zaczęty 15.02.2015 roku

Wyświetleń 3866

Odpowiedzi 0

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
W tym tutorialu nauczymy się manipulować obrażeniami. Jest to ogólny opis, jak zmienić obrażenia w Gothic 2 NK, z naciskiem na miecze srebrne i stalowe.

Zanim przejdziemy do samych skryptów, potrzeba nam Ikarusa i LeGo.

Gdy już pobraliśmy Ikarusa i LeGo potrzebujemy tego skryptu.

Teraz, gdy już mamy ten skrypt (wklejamy go do Startup.d na samą górę - przed innymi funkcjami, lub gdzieś indziej) zabieramy się za zabawę. Jedyne, co nas będzie interesować to

func int DMG_OnDmg(var int victimPtr, var int attackerPtr, var int dmg) {
// Diese Funktion anpassen, wenn ihr den Schaden verändern wollt! 'dmg' ist der von Gothic berechnete Schaden.
return dmg;
};

Dodajemy przed return dmg; takie coś:

var c_npc slf; slf = _^(attackerptr); // atakujący
var c_npc oth; oth = _^(victimPtr); // ofiara
var C_Item EQWeapon; EQWeapon = Npc_GetReadiedWeapon(slf); // broń wyciągnięta

Zajmujemy się teraz samą funckją zadawania obrażeń, posłużę się bronią ItMw_2H_Special_04 - Duże magiczne ostrze na smoki.

Teraz piszemy sam warunek:

if (Hlp_IsItem(EQWeapon, ItMw_2H_Special_04))
{
if (oth.guild > GIL_SEPERATOR_HUM)
{
dmg = oth.attribute[ATR_HITPOINTS_MAX];//tutaj piszemy formułkę, ja napisałem coś z dupy
};
};

Ale, ale, ale! Nie będzie obrażeń krytycznych. Co na to poradzić? Ano, nic szczególnie trudnego.
Robimy zmienną:
var int CritChances; CritChances = r_Max(100);Sama zmienna będzie losowała liczby od 1 do 100 (w zasadzie powinno być 101, ale większej różnicy to nie robi)
Jeśli komuś się nie podoba r_Max, może użyć Hlp_Random, tyle, że Hlp_Random losuje od 0.

Dodajemy if (CritChances<=slf.hitchance[2]) // w [] wpisujemy 1, jeśli to broń jednoręczna, a 2, jeśli dwu-, w moim przypadku 2
{
dmg = dmg*2;//tutaj mnożymyobrażenia przy krytycznym uderzeniu
};
zaraz po naszej formułce dmg = ...; jeśli chcemy obrażenia krytyczne.

Na koniec wpisujemy InitDamage(); pod LegoInit w Startup.d

Info:
Jeśli mamy dużo takich broni (srebrnych/stalowych) możemy użyć zmiennej (w klasie C_Item) string nameID i wpisać tam "Srebrny" jeśli jest to miecz srebrny, lub "Stalowy" jeśli jest to miecz stalowy i zastąpić if (Hlp_IsItem(EQWeapon, ItMw_2H_Special_04))tym
if (Hlp_StrCmp(EQWeapon.nameID, "Srebrny"))lub
if (Hlp_StrCmp(EQWeapon.nameID, "Stalowy"))
UWAGA!!!:
Obrażenia w Gothic 2 NK są zapisywane następująco:
bez krytycznych obrażeń: damage = (weaponDamage + strength - armor - 1)/10
a krytyczne następująco:  damage = (weaponDamage + strength - armor)



Adnotacja: ten skrypt służy do ogólnego manipulowania obrażeniami w Gothic.



Jesli Ci pomogłem, liczę na  :ok: .

Jakiekolwiek uwagi proszę kierować w komentarze.

Jeśli użyjesz skryptu w swoim modzie, nie musisz uwzględniać tam mnie (to by było głupie, lol).

Zabraniam kopiowania tutoriala. Pozwalam tylko i wyłącznie na posyłanie linku do tego tematu.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.


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