Ostatnie wiadomości

Tytuł:
 Uczeń Nekromanty

Fabuła - (może się zmienić) Pewien Nekromanta wysyła swojego ucznia, aby ten zdobył dla niego magiczny amulet z doliny, lecz uczeń jeszcze nie wie że nie będzie to łatwe zadanie.

Mod charakteryzuje się:
-Nowym światem
-Na razie 9 NPC (będzie więcej)
-

Stan prac - 25%
   Dialogi - prace trwają
   NPC - Niedługo kończę
   Potwory - Niedługo kończę
   Zadania - nie ruszone jeszcze
   Nowy Świat - Ukończone
   Dodawanie vobów - prawie wykończeniu
   Dodawanie muzyki - ukończone
   Inne - prace trwają

Link do filmu z prezentacją -
https://www.youtube.com/watch?v=AbguCis7RGc

Jakby co będzie więcej vobów w świecie


Proszę o dawanie propozycji co jeszcze dodać do świata (voby, NPC)
Jest to mój drugi mod, więc proszę o wyrozumiałość.
Gdzie znajdę demona który będzie mieć średnia esencje potrzebną do ulepsenia runy demonologa ?
3
Typowy hełm z MT

Spoiler
INSTANCE maska (C_Item)
{
name = "Maska Gladiatora";

mainflag = ITEM_KAT_ARMOR;
flags = 0;

protection [PROT_EDGE] = 5;
protection [PROT_BLUNT] = 5;
protection [PROT_POINT] = 1;
protection [PROT_FIRE] = 1;
protection [PROT_MAGIC] = 1;

value = protection [PROT_EDGE] * ARMOR_PRISE;

wear = WEAR_Head;

visual = "Maska.3DS";
visual_skin = 0;
material = MAT_METAL;

description = name;

TEXT[1] = NAME_Prot_Edge;
COUNT[1] = protection [PROT_EDGE];

TEXT[2] = NAME_Prot_Point;
COUNT[2] = protection [PROT_POINT];

TEXT[3] = NAME_Prot_Fire;
COUNT[3] = protection [PROT_FIRE];

TEXT[4] = NAME_Prot_Magic;
COUNT[4] = protection [PROT_MAGIC];

TEXT[5] = NAME_Value;
COUNT[5] = value;

///////Edit By Fenix///////////////////
on_equip = Equip_helms;
on_unequip = UnEquip_helms;
//////////////////////////////////////
};

Kod wywoływany w funkcji inicjalizującej każdą rutynę. Jak dla mnie wygodniej byłoby to po prostu wkleić do GuardPerception i B_SetPerception, żeby nie wklejać tego do każdej rutyny, no ale jak kto woli. 
Spoiler
//Made By Fenix

func void B_SpecialInRoutineReaction ()
{
//Edit By Fenix
if (self.flags == NPC_FLAG_IMMORTAL)
{
self.protection [PROT_FLY] = 9999;
}else
{
if (C_NpcIsHuman(self))
{
self.protection [PROT_FLY] = 0;
};
};

if (self.id == VLK_7533_BEN.id)
{
var c_item Ben_Armor;
Ben_Armor = Npc_GetEquippedArmor (self);

if (Hlp_IsItem (Ben_Armor,VLK_ARMOR_M)) && (Npc_HasItems (self,GRD_ARMOR_L1))
{
AI_EquipBestMeleeWeapon (self);
AI_EquipBestRangedWeapon (self);
AI_EquipBestArmor (self);
};
};

if (self.id == Non_2008_Alchemik.id)
{
if (Npc_KnowsInfo (hero, Info_Alch_Hello))
{
self.name = "Alchemik";
}else
{
self.name = "Stary pustelnik";
};
};

if (self.id == Grd_10000_Drak.id)
    {
    /*if (Hlp_StrCmp(self.name, "Drak"))
    {
    AI_EquipArmor (self, maska);
    self.name = ConcatStrings (" ", self.name);
    self.name = ConcatStrings (self.name, " ");
    };*/
   
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    if(self.id == Non_2000_Thangor.id)
{
if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, spartan_helm);
    self.aivar[AIV_WEARHELM] = True;
    };
};

if (self.id == Non_2002_Monk.id)
    {
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    if (self.id == Non_2003_Korth.id)
    {
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    if (self.id == Non_2005_Kyro.id)
    {
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    var c_item Ban_Armor;
Ban_Armor = Npc_GetEquippedArmor (self);

//if (Hlp_IsItem (Ban_Armor,BAN_ARMOR_M)) || (Hlp_IsItem (Ban_Armor,BAN_ARMOR_L))
if (self.id == ORG_858_Quentin.id) || (self.id == ORG_864_Kosa.id) || (self.id == Non_2095_Volar.id)
{
if (self.aivar[AIV_WEARHELM] == False)
    {
CreateInvItem (self, maska2);
    AI_EquipArmor (self, maska2);
    self.aivar[AIV_WEARHELM] = True;
    };
};

if (Hlp_GetInstanceID(R_Skeleton) ==  Hlp_GetInstanceID(self))
    {
    if (self.guild == GIL_PAC)
    {
   
//PrintScreen("BLEEE",-1,50,"font_old_20_white.tga",3);

   
   
    };
   
    if (self.aivar[AIV_WEARHELM] == False)
    {
    var int loseeuqip;
    /*
    if (loseeuqip == 1)
    {
Mdl_SetVisualBody (self, "Ske_Body3", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    CreateInvItem (self, ItMw_1H_Sword_Bastard_01);
    CreateInvItem (self, isil_helm);
    AI_EquipArmor (self, isil_helm);
    self.aivar[AIV_WEARHELM] = 1;
    }else
    if (loseeuqip == 2)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
CreateInvItem (self, test3items);
    CreateInvItem (self, test2items);
    CreateInvItem (self, ass_helm);
    AI_EquipArmor (self, ass_helm);
    self.aivar[AIV_WEARHELM] = 2;
    }else
    if (loseeuqip == 3)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    CreateInvItem (self, ItMw_2H_Sword_Old_01);
    CreateInvItem (self, spartan_helm);
    AI_EquipArmor (self, spartan_helm);
    self.aivar[AIV_WEARHELM] = 3;
    };
    */
    loseeuqip = Hlp_Random(3)+1;    
    if (loseeuqip == 1)
    {
    CreateInvItem (self, ItMw_1H_Sword_Bastard_01);
    self.aivar[AIV_WEARHELM] = 1;
    }else
    if (loseeuqip == 2)
    {
    CreateInvItem (self, test3items);
    CreateInvItem (self, test2items);
    self.aivar[AIV_WEARHELM] = 2;
    }else
    if (loseeuqip == 3)
    {
CreateInvItem (self, ItMw_2H_Sword_Old_01);
    self.aivar[AIV_WEARHELM] = 3;
    };
   
    loseeuqip = Hlp_Random(3)+1;
    if (loseeuqip == 1)
    {
Mdl_SetVisualBody (self, "Ske_Body3", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    }else
    if (loseeuqip == 2)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    }else
    if (loseeuqip == 3)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    };
   
    loseeuqip = Hlp_Random(3)+1;
    if (loseeuqip == 1)
    {
    CreateInvItem (self, isil_helm);
    AI_EquipArmor (self, isil_helm);
    }else
    if (loseeuqip == 2)
    {
    CreateInvItem (self, ass_helm);
    AI_EquipArmor (self, ass_helm);
    }else
    if (loseeuqip == 3)
    {
    CreateInvItem (self, spartan_helm);
    AI_EquipArmor (self, spartan_helm);
    };

Wld_PlayEffect("spellFX_BELIARSRAGE", self, self, 0, 0, 0, FALSE );
AI_EquipBestMeleeWeapon (self);
    RessurectedSkeletons = RessurectedSkeletons+1;
AI_ReadyMeleeWeapon (self);
NPC_SetTarget (self,hero);
AI_StartState (self, ZS_Attack, 0, "" );
    //B_ChangeGuild (self,GIL_PAC);
//AI_StartState (self, ZS_SetToDie, 0, "" );
    };
   
    };

};

func void ZS_SetToDie ()
{
B_KillNPC (self);
};

Dzięki za pomoc przetestuje i odpiszę czy działa

Post połączony: Dzisiaj o 14:19
No niestety nie działa, więc muszę odpuścić sobie jeden pomysł z mojego moda, ale dzięki za pomoc ogólnie
4
Typowy hełm z MT

Spoiler
INSTANCE maska (C_Item)
{
name = "Maska Gladiatora";

mainflag = ITEM_KAT_ARMOR;
flags = 0;

protection [PROT_EDGE] = 5;
protection [PROT_BLUNT] = 5;
protection [PROT_POINT] = 1;
protection [PROT_FIRE] = 1;
protection [PROT_MAGIC] = 1;

value = protection [PROT_EDGE] * ARMOR_PRISE;

wear = WEAR_Head;

visual = "Maska.3DS";
visual_skin = 0;
material = MAT_METAL;

description = name;

TEXT[1] = NAME_Prot_Edge;
COUNT[1] = protection [PROT_EDGE];

TEXT[2] = NAME_Prot_Point;
COUNT[2] = protection [PROT_POINT];

TEXT[3] = NAME_Prot_Fire;
COUNT[3] = protection [PROT_FIRE];

TEXT[4] = NAME_Prot_Magic;
COUNT[4] = protection [PROT_MAGIC];

TEXT[5] = NAME_Value;
COUNT[5] = value;

///////Edit By Fenix///////////////////
on_equip = Equip_helms;
on_unequip = UnEquip_helms;
//////////////////////////////////////
};

Kod wywoływany w funkcji inicjalizującej każdą rutynę. Jak dla mnie wygodniej byłoby to po prostu wkleić do GuardPerception i B_SetPerception, żeby nie wklejać tego do każdej rutyny, no ale jak kto woli. 
Spoiler
//Made By Fenix

func void B_SpecialInRoutineReaction ()
{
//Edit By Fenix
if (self.flags == NPC_FLAG_IMMORTAL)
{
self.protection [PROT_FLY] = 9999;
}else
{
if (C_NpcIsHuman(self))
{
self.protection [PROT_FLY] = 0;
};
};

if (self.id == VLK_7533_BEN.id)
{
var c_item Ben_Armor;
Ben_Armor = Npc_GetEquippedArmor (self);

if (Hlp_IsItem (Ben_Armor,VLK_ARMOR_M)) && (Npc_HasItems (self,GRD_ARMOR_L1))
{
AI_EquipBestMeleeWeapon (self);
AI_EquipBestRangedWeapon (self);
AI_EquipBestArmor (self);
};
};

if (self.id == Non_2008_Alchemik.id)
{
if (Npc_KnowsInfo (hero, Info_Alch_Hello))
{
self.name = "Alchemik";
}else
{
self.name = "Stary pustelnik";
};
};

if (self.id == Grd_10000_Drak.id)
    {
    /*if (Hlp_StrCmp(self.name, "Drak"))
    {
    AI_EquipArmor (self, maska);
    self.name = ConcatStrings (" ", self.name);
    self.name = ConcatStrings (self.name, " ");
    };*/
   
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    if(self.id == Non_2000_Thangor.id)
{
if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, spartan_helm);
    self.aivar[AIV_WEARHELM] = True;
    };
};

if (self.id == Non_2002_Monk.id)
    {
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    if (self.id == Non_2003_Korth.id)
    {
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    if (self.id == Non_2005_Kyro.id)
    {
    if (self.aivar[AIV_WEARHELM] == False)
    {
    AI_EquipArmor (self, maska);
    self.aivar[AIV_WEARHELM] = True;
    };
   
    };
   
    var c_item Ban_Armor;
Ban_Armor = Npc_GetEquippedArmor (self);

//if (Hlp_IsItem (Ban_Armor,BAN_ARMOR_M)) || (Hlp_IsItem (Ban_Armor,BAN_ARMOR_L))
if (self.id == ORG_858_Quentin.id) || (self.id == ORG_864_Kosa.id) || (self.id == Non_2095_Volar.id)
{
if (self.aivar[AIV_WEARHELM] == False)
    {
CreateInvItem (self, maska2);
    AI_EquipArmor (self, maska2);
    self.aivar[AIV_WEARHELM] = True;
    };
};

if (Hlp_GetInstanceID(R_Skeleton) ==  Hlp_GetInstanceID(self))
    {
    if (self.guild == GIL_PAC)
    {
   
//PrintScreen("BLEEE",-1,50,"font_old_20_white.tga",3);

   
   
    };
   
    if (self.aivar[AIV_WEARHELM] == False)
    {
    var int loseeuqip;
    /*
    if (loseeuqip == 1)
    {
Mdl_SetVisualBody (self, "Ske_Body3", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    CreateInvItem (self, ItMw_1H_Sword_Bastard_01);
    CreateInvItem (self, isil_helm);
    AI_EquipArmor (self, isil_helm);
    self.aivar[AIV_WEARHELM] = 1;
    }else
    if (loseeuqip == 2)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
CreateInvItem (self, test3items);
    CreateInvItem (self, test2items);
    CreateInvItem (self, ass_helm);
    AI_EquipArmor (self, ass_helm);
    self.aivar[AIV_WEARHELM] = 2;
    }else
    if (loseeuqip == 3)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    CreateInvItem (self, ItMw_2H_Sword_Old_01);
    CreateInvItem (self, spartan_helm);
    AI_EquipArmor (self, spartan_helm);
    self.aivar[AIV_WEARHELM] = 3;
    };
    */
    loseeuqip = Hlp_Random(3)+1;    
    if (loseeuqip == 1)
    {
    CreateInvItem (self, ItMw_1H_Sword_Bastard_01);
    self.aivar[AIV_WEARHELM] = 1;
    }else
    if (loseeuqip == 2)
    {
    CreateInvItem (self, test3items);
    CreateInvItem (self, test2items);
    self.aivar[AIV_WEARHELM] = 2;
    }else
    if (loseeuqip == 3)
    {
CreateInvItem (self, ItMw_2H_Sword_Old_01);
    self.aivar[AIV_WEARHELM] = 3;
    };
   
    loseeuqip = Hlp_Random(3)+1;
    if (loseeuqip == 1)
    {
Mdl_SetVisualBody (self, "Ske_Body3", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    }else
    if (loseeuqip == 2)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    }else
    if (loseeuqip == 3)
    {
Mdl_SetVisualBody (self, "Ske_Body2", DEFAULT, DEFAULT, "", DEFAULT,  DEFAULT, -1);
    };
   
    loseeuqip = Hlp_Random(3)+1;
    if (loseeuqip == 1)
    {
    CreateInvItem (self, isil_helm);
    AI_EquipArmor (self, isil_helm);
    }else
    if (loseeuqip == 2)
    {
    CreateInvItem (self, ass_helm);
    AI_EquipArmor (self, ass_helm);
    }else
    if (loseeuqip == 3)
    {
    CreateInvItem (self, spartan_helm);
    AI_EquipArmor (self, spartan_helm);
    };

Wld_PlayEffect("spellFX_BELIARSRAGE", self, self, 0, 0, 0, FALSE );
AI_EquipBestMeleeWeapon (self);
    RessurectedSkeletons = RessurectedSkeletons+1;
AI_ReadyMeleeWeapon (self);
NPC_SetTarget (self,hero);
AI_StartState (self, ZS_Attack, 0, "" );
    //B_ChangeGuild (self,GIL_PAC);
//AI_StartState (self, ZS_SetToDie, 0, "" );
    };
   
    };

};

func void ZS_SetToDie ()
{
B_KillNPC (self);
};
5
To dziwne. U mnie efekt jak najbardziej poprawny.

Zawsze pozostaje opcja zerżnięcia z mrocznych tajemnic :x
Masz tamte skrypty czy przekopiować Ci najważniejsze fragmenty?

Mam instalator MT ale po zainstalowaniu mogą wystąpić dziwne rzeczy (bo MT trochę na skrypty wpływa)
więc jak mogę poprosić o skrypty to podaj
6
To dziwne. U mnie efekt jak najbardziej poprawny.

Zawsze pozostaje opcja zerżnięcia z mrocznych tajemnic :x
Masz tamte skrypty czy przekopiować Ci najważniejsze fragmenty?
7
@Benku Zmieniłeś mainflag na ITEM_KAT_NF? EquipItem jest ostatnim equipem w skrypcie postaci?

Właśnie zmieniłem i patrzę nie ma tego hełmu nadal, ale jak wchodzę w NPC i patrzę w ekwipunek to widzę że ma założony ten hełm ale go nie widać na jego głowie (zdejmuje mu i zakładam z powrotem i w tedy widać)

I tak EquipItem jest ostatnim equipem w skrypcie postaci.
8
@Benku Zmieniłeś mainflag na ITEM_KAT_NF? EquipItem jest ostatnim equipem w skrypcie postaci?
9


Hełm
Spoiler
INSTANCE ItHe_Dopa (C_Item)
{
name = "Dopa";

mainflag = ITEM_KAT_NF;
flags = 0;

wear = WEAR_HEAD;

value = Value_Alcohol;

visual = "ItRw_2H_Orcstaff_01.3DS";
material = MAT_CLAY;

description = name;
TEXT[4] = NAME_Value; COUNT[4] = value;
};

Postać
Spoiler
instance Test_Dopa (Npc_Default)
{
//-------- primary data --------

name = "Dopa";
npctype = npctype_main;
guild = GIL_BAU;   
level = 4;
voice = 4;
id = 902;

//-------- abilities --------
attribute[ATR_STRENGTH] = 20;
attribute[ATR_DEXTERITY] = 10;
attribute[ATR_MANA_MAX] = 0;
attribute[ATR_MANA] = 0;
attribute[ATR_HITPOINTS_MAX] = 88;
attribute[ATR_HITPOINTS] = 88;

//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds (self,"Humans_Tired.mds");
// body mesh     ,bdytex,skin,head mesh     ,headtex,teethtex,ruestung
Mdl_SetVisualBody (self,"hum_body_Naked0",2,1,"Hum_Head_Pony", 3,  2,-1);

B_Scale (self);
Mdl_SetModelFatness(self,0);
fight_tactic = FAI_HUMAN_COWARD;

//-------- Talente --------                                   

Npc_SetTalentSkill (self,NPC_TALENT_1H,1);

//-------- inventory --------                                   

CreateInvItems (self, ItFoRice,6);
CreateInvItem (self, ItMi_Stuff_Plate_01);
CreateInvItem (self, ItFoBooze);
EquipItem (self, ItMw_1H_Scythe_01);
EquipItem (self, ItHe_Dopa);

//-------------Daily Routine-------------
daily_routine = Rtn_start_2000;
};

FUNC VOID Rtn_start_2000 ()
{
TA_Sleep     (20,15,07,15,"WP_INTRO_FALL3"); //CF2
TA_PickRice (07,15,20,15,"WP_INTRO_FALL3");
};

Więc nie gadać, że się nie działa :lol:

Działało w MT, działało u Ortegi, działa i tutaj :x

Sprawdziłem drugi raz i nie działa nadal i tak hełm ma Mainflag
@Hatapon w 2 rozdziale masz dostęp do górniczej doliny, więc zakładałbym, że normalnie w białych wilkach przy wejściu do nowego obozu.

@SolariS Chodzą na koniec molo wzdłuż statku paladynów.
Do góry