Wymagane dwa atrybuty do użycia broni 2107 2

O temacie

Autor paulpolska

Zaczęty 9.04.2015 roku

Wyświetleń 2107

Odpowiedzi 2

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Niby wszystko proste, dodać kolejny atrybut itp. no ale jednak zonK
INSTANCE ItRw_Mil_Crossbow(C_Item)
{
name = "Kusza";

mainflag = ITEM_KAT_FF;
flags = ITEM_CROSSBOW;
material = MAT_WOOD;

value = Value_MilArmbrust;

damageTotal = Damage_MilArmbrust; //50
damagetype = DAM_POINT;
munition = ItRw_Bolt;
cond_atr[2]    = ATR_STRENGTH; //30
cond_atr[3]    = ATR_DEXTERITY; //15
cond_value[2]  = Condition_MilArmbrust;
cond_value[3]  = Str_MilArmbrust;
visual = "ItRw_Mil_Crossbow.mms";

description = name;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_Dex_needed; COUNT[4] = cond_value[3];
TEXT[5] = NAME_Value; COUNT[5] = value;
};


Wyskakuje błąd "Array-Index Out of Range : C_ITEM.COND_ATR[3]"

Domyślam się ,że chodzi o to iż nie można zapisać drugiego atrybutu tym sposobem. Zatem jak ??
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Cond_atr to tablica o rozmiarze 3 (patrz classes.d, klasa C_Item):
var int cond_atr [3];To znaczy że możesz odwoływać się do jej elementów na indeksach 0, 1 i 2. A ty spróbowałeś odwołać się do elementu o indeksie 3:
cond_atr[3] = ATR_DEXTERITY; //15Zmniejsz te indeksy (tutaj i w następnych użyciach cond_atr i cond_value) o 2. Tak że będziesz miał cond_atr[0], cond_atr[1], cond_value[0] i cond_value[1].

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
To ja dodam coś jeszcze.
Pamiętaj, że pierwsza pozycja tablicy zaczyna się zawsze od indeksu 0, a kończy na n-1, gdzie n oznacza liczbę elementów.
Np.:
cond_atr[3] - // 3 to liczba elementów, czyli n = 3.


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