Przywołana postać nie ma broni, chociaż w skryptach ma. 3506 8

O temacie

Autor trojaq

Zaczęty 4.05.2013 roku

Wyświetleń 3506

Odpowiedzi 8

trojaq

trojaq

Użytkownicy
posty22
  • Użytkownicy
Więc zacznę od tego, że chodzi mi tu o Gothic'a 2.
Mam taki sobie skrypt człowieczka,
Cytuj
instance SLD_2012_Nieznajomy (Npc_Default)
{
   // ------ NSC ------
   name       = "Nieznajomy";
   guild       = GIL_SLD;
   id          = 2012;
   voice       = 16;
   flags       = 2;                                                
   npctype      = NPCTYPE_MAIN;
   
   // ------ Attribute ------
   B_SetAttributesToChapter (self, 6);                                                   
   
   // ------ Kampf-Taktik ------
   fight_tactic      = FAI_HUMAN_MASTER;   
   
   // ------ Equippte Waffen ------                                          
   //EquipItem         (self, Sword_Uriziel_1H);
   
   // ------ Inventory ------
   B_CreateAmbientInv    (self);
      
   // ------ visuals ------                                             
   B_SetNpcVisual       (self, MALE, "Hum_Head_Pony", Face_N_Raven, BodyTex_N, armor_asasyn);   
   Mdl_SetModelFatness   (self, 1);
   Mdl_ApplyOverlayMds   (self, "Humans_Relaxed.mds");

   // ------ NSC-relevante Talente vergeben ------
   B_GiveNpcTalents (self);
   
   // ------ Kampf-Talente ------                                                      
   B_SetFightSkills (self, 100);

   // ------ TA anmelden ------
   daily_routine       = Rtn_Start_2012;
};

FUNC VOID Rtn_Start_2012 ()
{
   TA_Stand_ArmsCrossed      (06,00,21,00,"XXX");
   TA_Stand_ArmsCrossed               (21,00,06,00,"XXX");
};

i taki sobie skrypt broni.

Cytuj
instance Sword_Peremptor (C_Item)
{   
   name               =   "Mordercza klinga";
   
   mainflag          =   ITEM_KAT_NF;
   flags             =   ITEM_2HD_SWD;   
   material          =   MAT_METAL;
   
   value             =   2000;
   
   damageTotal         =   85;
   damageType         =   DAM_EDGE;
   
   range             =   100;
   
   cond_atr[2]         =    ATR_STRENGTH;
   cond_value[2]        =    5;
   visual             =   "ItMw_Peremptor.3DS";
   description         =    name;
   
   TEXT[0]            =    "Zginąć za pomocą tej klingi to hit ostatniej mody";
   TEXT[2]            =   NAME_Damage;         COUNT[2]   =   damageTotal;
   TEXT[3]            =   NAME_Str_needed;      COUNT[3]   =   cond_value[2];
   TEXT[4]             =    NAME_TwoHanded;
   TEXT[5]            =   NAME_Value;            COUNT[5]   =   value;
};

Co w tym jest źle zrobione, że przywołana postać nie ma przysobie broni??
 

DeatMatch

DeatMatch

Użytkownicy
posty26
Propsy4
  • Użytkownicy
Tam gdzie w skrypcie postaci jest: //EquipItem    (self, Sword_Uriziel_1H); powinno być: //EquipItem (self, Sword_Peremptor);, a jeżeli to nie zadziała, znaczy że postać ma za mało siły by nosić tę broń.
 

trojaq

trojaq

Użytkownicy
posty22
  • Użytkownicy
Celowo ustawiłem wymaganą siłę na 5, ale nawet w ekwipunku tej postaci broni nie ma :/
a czym się różni niby to  
Cytuj
//EquipItem    (self, Sword_Uriziel_1H);
a to?
Cytuj
//EquipItem (self, twój_miecz);
przecież tak samo napisałem.

//
Mi nie chodziło o to, on i tak ma jeszcze inną broń, ale wszystkie są w sumie na podstawie tego samego skryptu.
Broń niby jest, mogę ją sam przyzwać - ale jak przyzwę postać to broni u niego nie ma :/
 

DeatMatch

DeatMatch

Użytkownicy
posty26
Propsy4
  • Użytkownicy
EquipItem oznacza, że postać ma tą broń założoną na sobie, nie potrzeba pisać CreateInvItem, jeżeli chcesz by ta postać miała założony miecz.
 

trojaq

trojaq

Użytkownicy
posty22
  • Użytkownicy
To wiem, ale nie ma broni przy sobie ta postać.
Ani w ekwipunku.
 

DeatMatch

DeatMatch

Użytkownicy
posty26
Propsy4
  • Użytkownicy
Hmmm to pod B_CreateAmbientInv (self); powinno być: CreateInvItems (self, twój_miecz,1); i gicior. Oczywiście musisz dać nową grę żeby podziałało.
 

trojaq

trojaq

Użytkownicy
posty22
  • Użytkownicy
To B_CreateAmvientInv (self); to są typowe rzeczy, jakieś mięso, chleb czy gin..
a to CreateInvItems (self, twój_miecz,1); to nie jest zły pomysł.
 

DeatMatch

DeatMatch

Użytkownicy
posty26
Propsy4
  • Użytkownicy
Wiem, że  B_CreateAmvientInv (self); to typowe rzeczy, ale CreateInvItem mówi,że masz ten przedmiot w inventory więc dodaj tam pod spodem i zobacz czy działa.
 

trojaq

trojaq

Użytkownicy
posty22
  • Użytkownicy
DZIAŁA.
Dzięki koleś, masz propsa za to :D
 


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