[G1} B_BuyAttributePoints.d pomoc 2190 4

O temacie

Autor MajkeI

Zaczęty 13.12.2013 roku

Wyświetleń 2190

Odpowiedzi 4

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Czy byłby ktoś tak uprzejmy i wyjaśnił mi krok po kroku plik B_BuyAttributePoints.d ??
czym jest np. to w nawiasie obok nazwy funkcji? Czy to są zmienne TYLKO dla tej funkcji? Oczywiście warunki i else znam. Chodzi o same zmienne i co jak się liczy. Z góry dzięki, zamieszczam plik:

func void B_BuyAttributePoints (var C_NPC typ, var int ATR, var int AtrPlus)
{
var int Typ_Atr;
if (ATR == ATR_STRENGTH) { Typ_Atr = typ.attribute[ATR_STRENGTH]; }
else if (ATR == ATR_DEXTERITY) { Typ_Atr = typ.attribute[ATR_DEXTERITY]; }
else if (ATR == ATR_MANA_MAX) { Typ_Atr = typ.attribute[ATR_MANA_MAX]; };

var string AtrPlusSTRING; AtrPlusSTRING = IntToString(AtrPlus);
var string PrintSTRING;
if (!(typ.lp < AtrPlus))
{
if (Typ_Atr + AtrPlus <= 100)
{
typ.lp = typ.lp - AtrPlus;

if (ATR == ATR_STRENGTH)
{
typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus;
PrintString = ConcatStrings(NAME_BuyAttributeSTR, AtrPlusSTRING);
PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1);
}
else if (ATR == ATR_DEXTERITY)
{
typ.attribute[ATR_DEXTERITY] = typ.attribute[ATR_DEXTERITY] + AtrPlus;
PrintString = ConcatStrings(NAME_BuyAttributeDEX, AtrPlusSTRING);
PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1);
}
else if (ATR == ATR_MANA_MAX)
{
typ.attribute[ATR_MANA_MAX] = typ.attribute[ATR_MANA_MAX] + AtrPlus;
PrintString = ConcatStrings(NAME_BuyAttributeMAN, AtrPlusSTRING);
PrintScreen (PrintString, -1,-1,"FONT_OLD_20_WHITE.TGA",1);
};
}
else
{
PrintScreen ("100 punktów to wartość maksymalna!", -1,-1,"FONT_OLD_20_WHITE.TGA",1);
B_Say (self, other, "$NOLEARNOVERMAX");
};
}
else
{
PrintScreen ("Za mało punktów umiejętności!", -1,-1,"FONT_OLD_20_WHITE.TGA",1);
B_Say (self, other, "$NOLEARNNOPOINTS");
};
};
 

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator

Splash
Moderator

[G1} B_BuyAttributePoints.d pomoc
#1 2013-12-13, 17:50(Ostatnia zmiana: 2013-12-13, 18:03)
var c_npc typ - czyli na kim ma być wykonana funkcja. Self - postać, która np. użyje przedmiotu z tą funkcją. Hero - postać, którą obecnie grasz. Other - ktoś inny. Other używa się np. w dialogach gdzie self to npc, z którym rozmawiasz, a other to ty.

var int ATR - atrybut. Czyli siła, zręczność, lub mana.

var int AtrPlus - ilość dodanych punktów do atrybutu

Czyli jeśli w var int atr wpiszemy np. ATR_STRENGTH

W warunku jest sprawdzane
Cytuj
if       (ATR == ATR_STRENGTH)   {   Typ_Atr = typ.attribute[ATR_STRENGTH];   }
Tłumaczę na polski :
Jeśli atr == ATR_STRENGTH (siła), zmienna typ_atr to dodanie tyle siły ile wpiszesz w Atr_Plus.

if (Typ_Atr + AtrPlus <= 100)

czyli jeśli wartość danego atrybutu jest mniejsza niż 100

typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus; < wpisanego w var c_npc typ npc'ta siła to jego siła + wartość wpisana w AtrPlus

PrintString = ConcatStrings(NAME_BuyAttributeSTR, AtrPlusSTRING); < Dziwnie to wytłumaczę. PrintString to zmienna, w której wpisujemy tekst w cudzysłowie. (zmienna jest zrobiona kilka linijek wyżej : var string PrintSTRING;

NAME_BuyAttributeSTR to zdanie zapisane w pliku text w zmiennej. Czyli po prostu : siła +. 

AtrPlusSTRING kolejna zmienna, w której piszemy słowa w cudzysłowie.

var string AtrPlusSTRING; < zmienna, o której mówię.

AtrPlusSTRING   = IntToString(AtrPlus); < w tej zmiennej tekst to ilość punktów dodanych do siły.

IntToString(AtrPlus); < To jest fajne :D Przekształca zmienną liczbę w cytat. Przydatne do robienie zegara/stopera.

PrintScreen   (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1); < wyswietlenie PrintString czyli "Jakiś atrybut + wartość atrybutu"
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
ATR == ATR_STRENGTH, czyli jeżeli używamy funkcji, np. B_BuyAttributePoints (hero, ATR_STRENGTH, 5*LPCOST_ATTRIBUTE_DEXTERITY); to ATR to jest to, co damy po przecinku za hero, tak?
 

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Tak. Ale zamiast pisać 5*LPCOST_ATTRIBUTE_DEXTERITY możesz po prostu wpisać liczbę. Czyli jeśli będzie wyglądać to tak : B_BuyAttributePoints (hero, ATR_STRENGTH, 5) doda to bohaterowi 5 pkt siły.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Dzięki :) props za chęci
 


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