1
Materiały / [G1]: Gotowiec: Skrypt dodający minimalne obrażenia do Gothica 1 (do usunięcia)
« dnia: 2026-02-12, 12:49 »
(do usunięcia - skrypt generował bugi)
Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.
on_equip = Equip_DMB_ARMOR_M;
on_unequip = UnEquip_DMB_ARMOR_M; FUNC VOID Equip_DMB_ARMOR_M()
{
self.guild = GIL_DMB;
Npc_SetTrueGuild(self,GIL_DMB);
B_InitGuildAttitudes();
};
FUNC VOID UnEquip_DMB_ARMOR_M()
{
self.guild = GIL_DMB;
Npc_SetTrueGuild(self,GIL_DMB);
B_InitGuildAttitudes();
};// Dämonenbeschwörer
INSTANCE DMB_ARMOR_M(C_Item)
{
name = "Szata Mrocznych Sztuk";
mainflag = ITEM_KAT_ARMOR;
flags = 0;
protection [PROT_EDGE] = 90;
protection [PROT_BLUNT] = 90;
protection [PROT_POINT] = 20;
protection [PROT_FIRE] = 60;
protection [PROT_MAGIC] = 30;
wear = WEAR_TORSO;
value = protection [PROT_EDGE] * ARMOR_VALUE_MULTIPLIER;
ownerGuild = GIL_DMB;
visual = "dmbm.3ds";
visual_change = "Hum_DMBM_ARMOR.asc";
visual_skin = 0;
material = MAT_LEATHER;
on_equip = Equip_DMB_ARMOR_M;
on_unequip = UnEquip_DMB_ARMOR_M;
description = name;
TEXT[0] = "Lepiej nie nosić tego publicznie.";
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;
};
FUNC VOID Equip_DMB_ARMOR_M() ///deleted
{
self.guild = GIL_DMB;
Npc_SetTrueGuild(self,GIL_DMB);
B_PeopleHatesYouNecromancer = TRUE;
B_InitGuildAttitudes();
};
FUNC VOID UnEquip_DMB_ARMOR_M()
{
self.guild = GIL_DMB;
Npc_SetTrueGuild(self,GIL_DMB);
B_PeopleHatesYouNecromancer = FALSE;
B_InitGuildAttitudes();
};var int B_PeopleHatesYouNecromancer;CONST INT GIL_ATTITUDES_NecromancerArmor [TAB_ANZAHL] = // AL und NL verärgert (Magier zueinander freundlich) ST neutral zu AL und NL (Magier verärgert zu ST)
{
// None EBr Grd Stt KdF Vlk KdW Sld Org Bau SfB Gur Nov Tpl Däm Bab
/*Non*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Non*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Non*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Non*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Ebr*/ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Ebr*/ ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Ebr*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Ebr*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Grd*/ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Grd*/ ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Grd*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Grd*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Stt*/ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Stt*/ ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Stt*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Stt*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Kdf*/ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Kdf*/ ATT_FRIENDLY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Kdf*/ ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Kdf*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Vlk*/ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Vlk*/ ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Vlk*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Vlk*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Kdw*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_FRIENDLY, ATT_NEUTRAL, /*Kdw*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Kdw*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Kdw*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Sld*/ ATT_NEUTRAL, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Sld*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, /*Sld*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Sld*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Org*/ ATT_NEUTRAL, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Org*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Org*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Org*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Bau*/ ATT_NEUTRAL, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Bau*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Bau*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Bau*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Sfb*/ ATT_NEUTRAL, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, ATT_ANGRY, /*Sfb*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Sfb*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Sfb*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Gur*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_ANGRY, ATT_NEUTRAL, /*Gur*/ ATT_ANGRY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Gur*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Gur*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Nov*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_ANGRY, ATT_NEUTRAL, /*Nov*/ ATT_ANGRY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Nov*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Nov*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Tpl*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_ANGRY, ATT_NEUTRAL, /*Tpl*/ ATT_ANGRY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Tpl*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Tpl*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Dmb*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Dmb*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, /*Dmb*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Dmb*/ ATT_FRIENDLY, ATT_HOSTILE,
/*Bab*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Mst*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Mst*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Mst*/ ATT_HOSTILE, ATT_FRIENDLY
};
CONST INT GIL_ATTITUDES_FMTAKEN_NecromancerArmor [TAB_ANZAHL] = // AL und NL feindlich
{
// None EBr Grd Stt KdF Vlk KdW Sld Org Bau SfB Gur Nov Tpl Däm Bab
/*Non*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Non*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Non*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Non*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Ebr*/ ATT_HOSTILE, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_HOSTILE, ATT_FRIENDLY, /*Ebr*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Ebr*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Ebr*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Grd*/ ATT_HOSTILE, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_HOSTILE, ATT_FRIENDLY, /*Grd*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Grd*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Grd*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Stt*/ ATT_HOSTILE, ATT_FRIENDLY, ATT_NEUTRAL, ATT_FRIENDLY, ATT_HOSTILE, ATT_NEUTRAL, /*Stt*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Stt*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Stt*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Kdf*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_NEUTRAL, /*Kdf*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Kdf*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Kdf*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Vlk*/ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Vlk*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Vlk*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Vlk*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Kdw*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_HOSTILE, /*Kdw*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Kdw*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Kdw*/ ATT_HOSTILE, ATT_FRIENDLY,
/*Sld*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_HOSTILE, /*Sld*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, /*Sld*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Sld*/ ATT_HOSTILE, ATT_FRIENDLY,
/*Org*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_HOSTILE, /*Org*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Org*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Org*/ ATT_HOSTILE, ATT_FRIENDLY,
/*Bau*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_HOSTILE, /*Bau*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Bau*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Bau*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Sfb*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_HOSTILE, /*Sfb*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Sfb*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Sfb*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Gur*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_NEUTRAL, /*Gur*/ ATT_ANGRY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Gur*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Gur*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Nov*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_NEUTRAL, /*Nov*/ ATT_ANGRY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Nov*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Nov*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Tpl*/ ATT_FRIENDLY, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, ATT_NEUTRAL, /*Tpl*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Tpl*/ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /*Tpl*/ ATT_HOSTILE, ATT_NEUTRAL,
/*Dmb*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Dmb*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_FRIENDLY, /*Dmb*/ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /*Dmb*/ ATT_FRIENDLY, ATT_HOSTILE,
/*Bab*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Mst*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Mst*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /*Mst*/ ATT_HOSTILE, ATT_FRIENDLY
};//////////////////////////////////////////////////////////////////////////
// B_InitGuildAttitudes
// ====================
// Setzt bzw. resettet die Attitüde unter den Menschengilden
// und berücksichtigt dabei den Storyverlauf
//////////////////////////////////////////////////////////////////////////
func void B_InitGuildAttitudes ()
{
PrintDebugNpc (PD_ZS_FRAME, "B_InitGuildAttitudes");
if (Kapitel <= 3)
{
Wld_ExchangeGuildAttitudes ("GIL_ATTITUDES");
}
else
{
Wld_ExchangeGuildAttitudes ("GIL_ATTITUDES_FMTAKEN");
};
};
//////////////////////////////////////////////////////////////////////////
// B_InitGuildAttitudes
// ====================
// Setzt bzw. resettet die Attitüde unter den Menschengilden
// und berücksichtigt dabei den Storyverlauf
//////////////////////////////////////////////////////////////////////////
func void B_InitGuildAttitudes ()
{
PrintDebugNpc (PD_ZS_FRAME, "B_InitGuildAttitudes");
if (Kapitel <= 3)
{
if B_PeopleHatesYouNecromancer == FALSE { Wld_ExchangeGuildAttitudes("GIL_ATTITUDES"); };
if B_PeopleHatesYouNecromancer == TRUE { Wld_ExchangeGuildAttitudes("GIL_ATTITUDES_NecromancerArmor"); };
}
else
{
if B_PeopleHatesYouNecromancer == FALSE { Wld_ExchangeGuildAttitudes("GIL_ATTITUDES_FMTAKEN"); };
if B_PeopleHatesYouNecromancer == TRUE { Wld_ExchangeGuildAttitudes("GIL_ATTITUDES_FMTAKEN_NecromancerArmor"); }; ///// You wear Necromancer's Armor
};
};
ReturnToSTT = TRUE;
ReturnToGRD = FALSE;
ReturnToKDF = FALSE;
ReturnToORG = FALSE;
ReturnToSLD = FALSE;
ReturnToKDW = FALSE;
ReturnToNOV = FALSE;
ReturnToTPL = FALSE;
ReturnToNone = FALSE;
(analogicznie do przyjęcia do innych gildii)if (ReturnToSTT) == TRUE
{
self.guild = GIL_STT;
Npc_SetTrueGuild(self,GIL_STT);
B_PeopleHatesYouNecromancer = FALSE;
B_InitGuildAttitudes();
}
i oczywiście "ReturnToSTT" i resztę "returnów" trzeba by było dodać do pliku "Story_Globals.d".
if(talent == NPC_TALENT_1H)
{
B_RaiseFightTalent(oth,NPC_TALENT_1H,percent);
Learned_1H = Learned_1H + percent;
if(oth.aivar[REAL_TALENT_1H] >= (oth.aivar[REAL_TALENT_2H] + 30))
{
B_RaiseFightTalent(oth,NPC_TALENT_2H,percent);
Learned_2H = Learned_2H + percent;
PrintScreen(PRINT_Learn1H_and_2H,-1,-1,FONT_Screen,2);
}
else
{
PrintScreen(PRINT_Learn1H,-1,-1,FONT_Screen,2);
};
return TRUE;
};
B_RaiseFightTalent(oth,NPC_TALENT_1H,percent); Npc_SetTalentValue(hero, NPC_TALENT_1H, Npc_GetTalentValue(hero, NPC_TALENT_1H)+percent);
//////////////////////////////////////////////////////////////////////////
// NOTR learning weapon and atrribute system
// ===============
//
//////////////////////////////////////////////////////////////////////////
func int B_GetLearnCostTalent(var C_Npc oth,var int talent,var int skill)
{
var int kosten;
kosten = 0;
if(talent == NPC_TALENT_1H)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 90)
{
kosten = 4;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 60)
{
kosten = 3;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 30)
{
kosten = 2;
}
else
{
kosten = 1;
};
kosten = kosten * skill;
};
if(talent == NPC_TALENT_2H)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= 90)
{
kosten = 4;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= 60)
{
kosten = 3;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= 30)
{
kosten = 2;
}
else
{
kosten = 1;
};
kosten = kosten * skill;
};
if(talent == NPC_TALENT_BOW)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= 90)
{
kosten = 4;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= 60)
{
kosten = 3;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= 30)
{
kosten = 2;
}
else
{
kosten = 1;
};
kosten = kosten * skill;
};
if(talent == NPC_TALENT_CROSSBOW)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= 90)
{
kosten = 4;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= 60)
{
kosten = 3;
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= 30)
{
kosten = 2;
}
else
{
kosten = 1;
};
kosten = kosten * skill;
};
return kosten;
};
func void B_SetFightSkill(var C_Npc slf,var int talent,var int percent)
{
if(talent == NPC_TALENT_1H)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 0)
{
Npc_SetTalentSkill(slf,NPC_TALENT_1H,0);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 30)
{
Npc_SetTalentSkill(slf,NPC_TALENT_1H,1);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 60)
{
Npc_SetTalentSkill(slf,NPC_TALENT_1H,2);
};
};
if(talent == NPC_TALENT_2H)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= 0)
{
Npc_SetTalentSkill(slf,NPC_TALENT_2H,0);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= 30)
{
Npc_SetTalentSkill(slf,NPC_TALENT_2H,1);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= 60)
{
Npc_SetTalentSkill(slf,NPC_TALENT_2H,2);
};
};
if(talent == NPC_TALENT_BOW)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= 0)
{
Npc_SetTalentSkill(slf,NPC_TALENT_BOW,0);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= 30)
{
Npc_SetTalentSkill(slf,NPC_TALENT_BOW,1);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= 60)
{
Npc_SetTalentSkill(slf,NPC_TALENT_BOW,2);
};
};
if(talent == NPC_TALENT_CROSSBOW)
{
if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= 0)
{
Npc_SetTalentSkill(slf,NPC_TALENT_CROSSBOW,0);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= 30)
{
Npc_SetTalentSkill(slf,NPC_TALENT_CROSSBOW,1);
};
if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= 60)
{
Npc_SetTalentSkill(slf,NPC_TALENT_CROSSBOW,2);
};
};
};
func int B_TeachFightTalentPercent(var C_Npc slf,var C_Npc oth,var int talent,var int percent,var int teacherMAX)
{
var string concatText;
var int kosten;
var int realHitChance;
kosten = B_GetLearnCostTalent(oth,talent,1) * percent;
if((talent != NPC_TALENT_1H) && (talent != NPC_TALENT_2H) && (talent != NPC_TALENT_BOW) && (talent != NPC_TALENT_CROSSBOW))
{
Print("*** Błąd: Zły parametr ***");
return FALSE;
};
if(talent == NPC_TALENT_1H)
{
realHitChance = Learned_1H; /// nie wiem czy dobrze
}
else if(talent == NPC_TALENT_2H)
{
realHitChance = Learned_2H; /// nie wiem czy dobrze
}
else if(talent == NPC_TALENT_BOW)
{
realHitChance = Learned_Bow; /// nie wiem czy dobrze
}
else if(talent == NPC_TALENT_CROSSBOW)
{
realHitChance = Learned_CrossBow; /// nie wiem czy dobrze
};
if(realHitChance >= teacherMAX)
{
concatText = ConcatStrings("Maksimum dla tego nauczyciela wynosi ",IntToString(teacherMAX));
PrintScreen(concatText,-1,-1,"FONT_OLD_20_WHITE.TGA",2);
B_Say(slf,oth,"$NOLEARNYOUREBETTER");
return FALSE;
};
if((realHitChance + percent) > teacherMAX)
{
concatText = ConcatStrings("Maksimum dla tego nauczyciela wynosi ",IntToString(teacherMAX));
PrintScreen(concatText,-1,-1,"FONT_OLD_20_WHITE.TGA",2);
B_Say(slf,oth,"$NOLEARNOVERPERSONALMAX");
return FALSE;
};
if(oth.lp < kosten)
{
PrintScreen("Za mało Punktów Nauki!",-1,-1,"FONT_OLD_20_WHITE.TGA",2);
B_Say(slf,oth,"$NOLEARNNOPOINTS");
return FALSE;
};
oth.lp = oth.lp - kosten;
if(talent == NPC_TALENT_1H)
{
Npc_SetTalentValue(hero, NPC_TALENT_1H, Npc_GetTalentValue(hero, NPC_TALENT_1H)+percent);
if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= (Npc_GetTalentValue(hero,NPC_TALENT_2H) +30))
{
Npc_SetTalentValue(hero, NPC_TALENT_2H, Npc_GetTalentValue(hero, NPC_TALENT_2H)+percent);
PrintScreen("Trening: posługiwanie się bronią jedno- i dwuręczną", -1,10,"FONT_OLD_20_WHITE.TGA",2);
B_SetFightSkill(hero,NPC_TALENT_2H,percent);
}
else
{
PrintScreen("Trening: posługiwanie się bronią jednoręczną", -1,10,"FONT_OLD_20_WHITE.TGA",2);
};
B_SetFightSkill(hero,talent,percent);
return TRUE;
};
if(talent == NPC_TALENT_2H)
{
Npc_SetTalentValue(hero, NPC_TALENT_2H, Npc_GetTalentValue(hero, NPC_TALENT_2H)+percent);
if(Npc_GetTalentValue(hero,NPC_TALENT_2H) >= (Npc_GetTalentValue(hero,NPC_TALENT_1H) +30))
{
Npc_SetTalentValue(hero, NPC_TALENT_1H, Npc_GetTalentValue(hero, NPC_TALENT_1H)+percent);
B_SetFightSkill(hero,NPC_TALENT_1H,percent);
PrintScreen ("Trening: posługiwanie się bronią dwu- i jednoręczną", -1,10,"FONT_OLD_20_WHITE.TGA",2);
}
else
{
PrintScreen ("Trening: posługiwanie się bronią dwuręczną", -1,10,"FONT_OLD_20_WHITE.TGA",2);
};
B_SetFightSkill(hero,talent,percent);
return TRUE;
};
if(talent == NPC_TALENT_BOW)
{
Npc_SetTalentValue(hero, NPC_TALENT_BOW, Npc_GetTalentValue(hero, NPC_TALENT_BOW)+percent);
if(Npc_GetTalentValue(hero,NPC_TALENT_BOW) >= (Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) +30))
{
Npc_SetTalentValue(hero, NPC_TALENT_CROSSBOW, Npc_GetTalentValue(hero, NPC_TALENT_CROSSBOW)+percent);
PrintScreen ("Trening: posługiwanie się łukiem i kuszą", -1,10,"FONT_OLD_20_WHITE.TGA",2);
B_SetFightSkill(hero,NPC_TALENT_CROSSBOW,percent);
}
else
{
PrintScreen ("Trening: posługiwanie się łukiem", -1,10,"FONT_OLD_20_WHITE.TGA",2);
};
B_SetFightSkill(hero,talent,percent);
return TRUE;
};
if(talent == NPC_TALENT_CROSSBOW)
{
Npc_SetTalentValue(hero, NPC_TALENT_CROSSBOW, Npc_GetTalentValue(hero, NPC_TALENT_CROSSBOW)+percent);
if(Npc_GetTalentValue(hero,NPC_TALENT_CROSSBOW) >= (Npc_GetTalentValue(hero,NPC_TALENT_BOW) +30))
{
Npc_SetTalentValue(hero, NPC_TALENT_BOW, Npc_GetTalentValue(hero, NPC_TALENT_BOW)+percent);
B_SetFightSkill(hero,NPC_TALENT_BOW,percent);
PrintScreen ("Trening: posługiwanie się kuszą i łukiem", -1,10,"FONT_OLD_20_WHITE.TGA",2);
}
else
{
PrintScreen ("Trening: posługiwanie się kuszą", -1,10,"FONT_OLD_20_WHITE.TGA",2);
};
B_SetFightSkill(hero,talent,percent);
return TRUE;
};
}; Npc_SetTalentValue(self, NPC_TALENT_1H,10);
Learned_1H = 90;
Npc_SetTalentValue(self, NPC_TALENT_2H,10);
Learned_2H = 90;
// **************************************************
// TRAIN 1H - NOTR
// **************************************************
instance Cord_Training_NotRCombat(C_Info)
{
npc = SLD_709_Cord;
condition = Cord_Training_NotRCombat_Condition;
information = Cord_Training_NotRCombat_Info;
important = 0;
permanent = 1;
description = "Naucz mnie walczyć bronią jednoręczną";
};
func int Cord_Training_NotRCombat_Condition()
{
if (Npc_KnowsInfo(hero,SLD_709_Cord_TRAINOFFER))
{
return 1;
};
};
func void Cord_Training_NotRCombat_Info()
{
Info_ClearChoices(Cord_Training_NotRCombat);
Info_AddChoice(Cord_Training_NotRCombat,"Wróć",Cord_Training_NotRCombat_BACK);
Info_AddChoice(Cord_Training_NotRCombat,B_BuildLearnString("Broń jednoręczna +5 (20 bryłek za każdy 1 PN)",B_GetLearnCostTalent(other,NPC_TALENT_1H,5),0),Cord_Training_NotRCombat_1H_5);
};
func void Cord_Training_NotRCombat_1H_5()
{
if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 100) && (Npc_HasItems(other,itminugget) >= 400)
{
PrintScreen ("Ale Ty już osiągnąłeś 100% tej umiejętności!", -1,-1,"font_old_20_white.tga",3);
Info_ClearChoices(Cord_Training_NotRCombat);
Info_AddChoice(Cord_Training_NotRCombat,Dialog_Back,Cord_Training_NotRCombat_Back);
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 90) && (Npc_HasItems(other,itminugget) >= 400)
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_1H,5,100);
B_GiveInvItems(other,self,itminugget,400);
Info_ClearChoices(Cord_Training_NotRCombat);
Info_AddChoice(Cord_Training_NotRCombat,Dialog_Back,Cord_Training_NotRCombat_Back);
Info_AddChoice(Cord_Training_NotRCombat,B_BuildLearnString("Broń jednoręczna +5 (20 bryłek za każdy 1 PN)",B_GetLearnCostTalent(other,NPC_TALENT_1H,5),0),Cord_Training_NotRCombat_1H_5);
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 60) && (Npc_HasItems(other,itminugget) >= 300)
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_1H,5,100);
B_GiveInvItems(other,self,itminugget,300);
Info_ClearChoices(Cord_Training_NotRCombat);
Info_AddChoice(Cord_Training_NotRCombat,Dialog_Back,Cord_Training_NotRCombat_Back);
Info_AddChoice(Cord_Training_NotRCombat,B_BuildLearnString("Broń jednoręczna +5 (20 bryłek za każdy 1 PN)",B_GetLearnCostTalent(other,NPC_TALENT_1H,5),0),Cord_Training_NotRCombat_1H_5);
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 30) && (Npc_HasItems(other,itminugget) >= 200)
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_1H,5,100);
B_GiveInvItems(other,self,itminugget,200);
Info_ClearChoices(Cord_Training_NotRCombat);
Info_AddChoice(Cord_Training_NotRCombat,Dialog_Back,Cord_Training_NotRCombat_Back);
Info_AddChoice(Cord_Training_NotRCombat,B_BuildLearnString("Broń jednoręczna +5 (20 bryłek za każdy 1 PN)",B_GetLearnCostTalent(other,NPC_TALENT_1H,5),0),Cord_Training_NotRCombat_1H_5);
}
else if(Npc_GetTalentValue(hero,NPC_TALENT_1H) >= 0) && (Npc_HasItems(other,itminugget) >= 100)
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_1H,5,100);
B_GiveInvItems(other,self,itminugget,100);
Info_ClearChoices(Cord_Training_NotRCombat);
Info_AddChoice(Cord_Training_NotRCombat,Dialog_Back,Cord_Training_NotRCombat_Back);
Info_AddChoice(Cord_Training_NotRCombat,B_BuildLearnString("Broń jednoręczna +5 (20 bryłek za każdy 1 PN)",B_GetLearnCostTalent(other,NPC_TALENT_1H,5),0),Cord_Training_NotRCombat_1H_5);
}
else
{
AI_Output (self,other,"DIA_Cord_TRAIN_2h_NoOre_01_00"); //Wróć, gdy będziesz miał wystarczająco dużo rudy.
};
};
func void Cord_Training_NotRCombat_BACK()
{
Info_ClearChoices(Cord_Training_NotRCombat);
};
Ikarus\Ikarus\Ikarus_G1.src
LeGo\LeGo\Header_G1.src
wstawię po prostu pod _INTERN\INTERN.SRC
i że otrzymam wtedy takie coś_INTERN\INTERN.SRC
_INTERN\MAGIC_INTERN.D
Ikarus\Ikarus\Ikarus_G1.src
LeGo\LeGo\Header_G1.src
albo takie coś_INTERN\INTERN.SRC
Ikarus\Ikarus\Ikarus_G1.src
LeGo\LeGo\Header_G1.src
_INTERN\MAGIC_INTERN.D
i że wtedy będzie działać. No bo niby logiczne, że "constants.d" i "classes.d" zawierają się w "Intern.src". _INTERN\INTERN.SRC
_INTERN\MAGIC_INTERN.D
constants.d
classes.d_INTERN\constants.d
_INTERN\classes.d
Ikarus\Ikarus\Ikarus_G1.src
LeGo\LeGo\Header_G1.src
_INTERN\MAGIC_INTERN.D////////constants.d
////////classes.dFUNC VOID INIT_GLOBAL()
{
// Init Ikarus
MEM_InitAll ();
// Init LeGo
LeGo_Init(LeGo_All)
};
func VOID INIT_SUB_PSICAMP ()
{
/**************************************************************
** STARTUP_LIGHTS IN PSICAMP **
**************************************************************/
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_01",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_01",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_01",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_02",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_02",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_02",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_03",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_03",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_03",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_04",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_04",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_04",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_05",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_05",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_05",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_06",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_06",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_06",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_07",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_07",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_07",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_08",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_08",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_08",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_09",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_09",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_09",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_10",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_10",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_10",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_11",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_11",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_11",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_12",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_12",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_12",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_13",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_13",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_13",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_14",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_14",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_14",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_15",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_15",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_15",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_16",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_16",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_16",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_17",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_17",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_17",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_18",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_18",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_18",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_19",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_19",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_19",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_20",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_20",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_20",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_21",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_21",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_21",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_22",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_22",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_22",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_23",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_23",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_23",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_24",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_24",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_24",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_25",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_25",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_25",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_26",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_26",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_26",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_27",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_27",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_27",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_28",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_28",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_28",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_29",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_29",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_29",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_30",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_30",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_30",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_31",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_31",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_31",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_32",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_32",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_32",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_33",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_33",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_33",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_34",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_34",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_34",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_35",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_35",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_35",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_36",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_36",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_36",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_37",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_37",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_37",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_38",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_38",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_38",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_39",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_39",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_39",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_40",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_40",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_40",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_41",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_41",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_41",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_42",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_42",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_42",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_43",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_43",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_43",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_44",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_44",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_44",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_45",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_45",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_45",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_46",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_46",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_46",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_47",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_47",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_47",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_48",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_48",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_48",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_49",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_49",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_49",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_50",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_50",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_50",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_51",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_51",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_51",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_52",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_52",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_52",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_53",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_53",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_53",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_54",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_54",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_54",0);
Wld_SetObjectRoutine (00,00,"PC_CRYSTALLIGHT_55",1);
Wld_SetObjectRoutine (20,00,"PC_CRYSTALLIGHT_55",1);
Wld_SetObjectRoutine (05,00,"PC_CRYSTALLIGHT_55",0);
/**************************************************************
** PORTALRAUMZUWEISUNG IM PSICAMP **
**************************************************************/
Wld_AssignRoomToGuild("PSIH01",GIL_NOV); //OK nlhu01 - nlhu32
Wld_AssignRoomToGuild("PSIH02",GIL_NOV); //defekt
Wld_AssignRoomToGuild("PSIH03",GIL_NOV); //defekt
Wld_AssignRoomToGuild("PSIH04",GIL_NOV);
Wld_AssignRoomToGuild("PSIH05",GIL_NOV);
Wld_AssignRoomToGuild("PSIH06",GIL_NOV); //defekt
Wld_AssignRoomToGuild("PSIH07",GIL_NOV); //defekt
Wld_AssignRoomToGuild("PSIH08",GIL_NOV); //defekt
Wld_AssignRoomToGuild("PSIH09",GIL_NOV); //defekt
Wld_AssignRoomToGuild("PSIH10",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH11",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH12",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH13",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH14",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH15",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH16",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH17",GIL_NOV);//defekt
Wld_AssignRoomToGuild("PSIH18",GIL_NOV);
Wld_AssignRoomToGuild("PSIH19",GIL_NOV);
Wld_AssignRoomToGuild("PSIH20",GIL_NOV);
Wld_AssignRoomToGuild("PSIH21",GIL_NOV);
Wld_AssignRoomToGuild("PSIH22",GIL_NOV);
//Wld_AssignRoomToGuild("PSIH23",GIL_NOV); //Harloks Hütte, Hut 31
Wld_AssignRoomToGuild("PSIH24",GIL_NOV);
//Wld_AssignRoomToGuild("PSIH25",GIL_NOV); Alchemielabor soll frei zugänglich sein!
Wld_AssignRoomToGuild("PSIH26",GIL_NOV);
Wld_AssignRoomToGuild("PSIH27",GIL_NOV);
Wld_AssignRoomToGuild("PSIH28",GIL_NOV);
Wld_AssignRoomToGuild("PSIH29",GIL_NOV);
Wld_AssignRoomToGuild("PSIH30",GIL_NOV);
Wld_AssignRoomToGuild("PSIH31",GIL_NOV);
Wld_AssignRoomToGuild("PSIH32",GIL_NOV);
Wld_AssignRoomToGuild("PSIH33",GIL_NOV);
Wld_AssignRoomToGuild("PSIH34",GIL_NOV);
Wld_AssignRoomToGuild("PSIH35",GIL_NOV);
Wld_AssignRoomToGuild("PSIH36",GIL_NOV);
};
func void startup_NazwaTwojegoZena()
{
Wld_InsertNpc (NONE_911_TypowyNPC,"ENTRANCE");
Wld_InsertNpc (wolf,"PATH_2000");
};
func void init_NazwaTwojegoZena()
{
Init_Global();
Wld_SetObjectRoutine(0,0,"OC_FIREPLACE_NazwaTwojegoZena1",1);
Wld_SetObjectRoutine(23,59,"OC_FIREPLACE_NazwaTwojegoZena1",1);
Wld_SetObjectRoutine(0,0,"OC_FIREPLACE_NazwaTwojegoZena2",1);
Wld_SetObjectRoutine(23,59,"OC_FIREPLACE_NazwaTwojegoZena2",1);
B_InitMonsterAttitudes();
B_InitGuildAttitudes();
};
Kod: [Zaznacz]INSTANCE DIA_NONE_20243_urstonak_witaj (C_INFO)
{
npc = NONE_20243_urstonak;//npc główny
nr = 1;
condition = DIA_NONE_20243_urstonak_witaj_Condition;
information = DIA_NONE_20243_urstonak_witaj_Info;
important = true;
permanent = FALSE;
};
FUNC INT DIA_NONE_20243_urstonak_witaj_Condition()
{
return TRUE;
};
FUNC VOID DIA_NONE_20243_urstonak_witaj_Info()
{
var C_NPC UrsTonak; UrsTonak = Hlp_GetNpc (NONE_20243_urstonak);//Deklarujemy zmienne npców którzy wezmą udział w rozmowie wraz z npc głównym
var C_NPC Dionis; Dionis = Hlp_GetNpc (none_20246_dionis);//
TRIA_Invite(Dionis);//ta funkcja "zaprasza" npce do dialogu musimy zaprosić wszystkich który mają rozmawiać prócz npca głównego
TRIA_Start();//ta funkcja rozpoczyna dialog wszystkich npców musimy zaprosić przed tą funkcją bo inaczej chujnia
TRIA_Next(UrsTonak);// w tej funkcji wybieramy jaki npc ma mówić
AI_Output (self, other, "DIA_NONE_20243_urstonak_witaj_15_00");//Stój morra gdzie zmierzasz?
AI_DrawWeapon(hero);
AI_Output (other, self, "DIA_NONE_20243_urstonak_witaj_15_01");//Nie twoja sprawa zawszony orku.
TRIA_Next (Dionis);// za każdym razem jak chcemy zmienić npc trzeba użyć tej funkcji.
AI_GotoNpc(self, other);
AI_TurnToNpc(other, self);
AI_Output (self, other, "DIA_NONE_20243_urstonak_witaj_15_02");//Spokojnie wędrowcze ten ork nic Ci nie zrobi.
AI_Output (self, other, "DIA_NONE_20243_urstonak_witaj_15_03");//W Ignis Order nie musisz się obawiać orków.
AI_RemoveWeapon (hero);
TRIA_Next (UrsTonak);
AI_Output (self, other, "DIA_NONE_20243_urstonak_witaj_15_04");//Tak morra nie wszyscy orkowie pragną Cie zabić.
Log_CreateTopic (TOPIC_IgnisOrder, LOG_MISSION);
Log_SetTopicStatus (TOPIC_IgnisOrder, LOG_RUNNING);
B_LogEntry(TOPIC_IgnisOrder, "Spotkałem przyjaznego orka i niejakiego Dionisa mówił coś o jakimś Ignis Order.");
MIS_IgnisOrder = LOG_RUNNING;
TRIA_Finish();// ta funkcja kończy cały dialog
};
]
JakaśRzecz = Wld_GetDay();Whistler_BuyMySword_Day = Wld_GetDay(); JozekJeKielbaseIpowieNamCzyBylaDobra = Wld_GetDay();var int JozekJeKielbaseIpowieNamCzyBylaDobra;if (JozekJeKielbaseIpowieNamCzyBylaDobra <= (Wld_GetDay() - 2))To jest warunek, że coś się stanie PO UPŁYWIE dwóch (?) dni(JozekJeKielbaseIpowieNamCzyBylaDobra > (Wld_GetDay() - 2))To jest warunek, że coś się stanie ZANIM UPŁYNĄ dwa (?) dni
Kod: [Zaznacz]func void EndlessNight ()
{
var int ptr; ptr = MEM_InstToPtr (MEM_SkyController);
var int skystateslist; skystateslist = MEM_ReadInt (ptr+316);
ptr = MEM_ReadIntArray (skystateslist, 4);
var int R_poly; R_poly = MEM_ReadInt (ptr+4);
var int G_poly; G_poly = MEM_ReadInt (ptr+8);
var int B_poly; B_poly = MEM_ReadInt (ptr+12);
var int R_fog; R_fog = MEM_ReadInt (ptr+16);
var int G_fog; G_fog = MEM_ReadInt (ptr+20);
var int B_fog; B_fog = MEM_ReadInt (ptr+24);
var int i; i = 0;
repeat (i, 7);
ptr = MEM_ReadIntArray (skystateslist, i);
MEM_WriteInt (ptr+4, R_poly);
MEM_WriteInt (ptr+8, G_poly);
MEM_WriteInt (ptr+12, B_poly);
MEM_WriteInt (ptr+16, R_fog);
MEM_WriteInt (ptr+20, G_fog);
MEM_WriteInt (ptr+24, B_fog);
end;
};
0AT INVOCATION_RED
˙˙˙˙ ˙10252
0A EFIXED
˙˙˙˙ ˙10253
0A č } BIP01
˙˙˙˙ ˙10254
0A (w REDAMBIENCE
˙˙˙˙ ˙10255
0At SFX_Circle
˙˙˙˙ ˙10256
0A mINVOCATION_GREEN
˙˙˙˙ ˙10257
0A č FIXED
˙˙˙˙ ˙10258
0A xf BIP01
˙˙˙˙ ˙10259
0AA POISON
˙˙˙˙ ˙10260
0A SFX_Circle
˙˙˙˙ ˙10261
0A č PR INVOCATION_BLUE
˙˙˙˙ ˙10262
0A FIXED
˙˙˙˙ ˙10263
0Ao BIP01
˙˙˙˙ ˙10264
0A "REDAMBIENCE
˙˙˙˙ ˙10265
0A č 0 SFX_Circle
˙˙˙˙ ˙10266
0A INVOCATION_VIOLET
˙˙˙˙ ˙10267
0AR FIXED
˙˙˙˙ ˙10268
0A {BIP01
˙˙˙˙ ˙10269
0A č 8 CATACLYSM
˙˙˙˙ ˙10270
0A `0 SFX_Circle
˙˙˙˙ ˙10271
0Ae INVOCATION_WHITE
˙˙˙˙ ˙10272
0A NFIXED
pA Ř” [ q Ž R SPELLFX_INCOVATION_RED
pA ž \ ö Ş R SPELLFX_INCOVATION_GREEN
pA řD¨ ] ő ň R SPELLFX_INCOVATION_BLUE
pA ˛ ^ ř : R SPELLFX_INCOVATION_VIOLET
pA ŘĽ _ ú ‚ R SPELLFX_INCOVATION_WHITE
pA ű ‹ö w R * INVOCATION
`@ % ÷ ! -R INVOCATION_RED
pA ' 'ű s ¤S 1 INVOCATION_WHITE
pA - śű } ŔS 1 INVOCATION_BLUE
pA 3 ü t ÜS 1 INVOCATION_GREEN
pA 9 ‘ü y řS 1 INVOCATION_VIOLET // Todesstoß - Entfernung zwischen Bip01 Angreifer und Bip01 Opfer ca. 200 cm
ani ("t_1hSFinish" 1 "" 0.1 0.1 M. "Hum_1hSFinish_M03.asc" F 1 139 FPS:10)
{
*eventSFX (35 "FIG_SwordFinal" EMPTY_SLOT )
}
aniAlias ("t_2hSFinish" 1 "" 0.1 0.1 M. "t_1hSFinish" F)
// Dead Anis für t_1hSFinish
ani ("t_Wounded_2_Dead" 1 "s_Dead" 0.1 0.1 M. "Hum_Wound2Dead_M01.asc" F 1 139 FPS:10 CVS:0.1)
{
// *eventSFX (36 "FIG_DummyDie" EMPTY_SLOT )
}
ani ("t_WoundedB_2_DeadB" 1 "s_DeadB" 0.1 0.1 M. "Hum_WoundB2DeadB_M01.asc" F 1 139 FPS:10 CVS:0.1)
{
// *eventSFX (36 "FIG_DummyDie" EMPTY_SLOT ) // Todesstoß - Entfernung zwischen Bip01 Angreifer und Bip01 Opfer ca. 200 cm
ani ("t_1hSFinish" 1 "" 0.1 0.1 M. "Hum_1hSFinish_M03.asc" F 1 139 FPS:10)
{
*eventSFX (35 "FIG_SwordFinal" EMPTY_SLOT )
}
aniAlias ("t_2hSFinish" 1 "" 0.1 0.1 M. "t_1hSFinish" F)
// Dead Anis für t_1hSFinish
ani ("t_Wounded_2_Dead" 1 "s_Dead" 0.1 0.1 M. "Hum_Wound2Dead_A01.asc" F 1 89 CVS:0.1)
ani ("t_WoundedB_2_DeadB" 1 "s_DeadB" 0.1 0.1 M. "Hum_WoundB2DeadB_A01.asc" F 1 89 CVS:0.1)/// XXXXXXXXXXXXXXXXXXXXXXXXXXX
/// XX I N V O C A T I O N XX
/// XXXXXXXXXXXXXXXXXXXXXXXXXXX
INSTANCE spellFX_INCOVATION_RED (CFx_Base_Proto)
{
visname_S = "INVOCATION_RED";
emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01";
lightpresetname = "REDAMBIENCE";
sfxid = "SFX_Circle";
sfxisambient = 1;
};
INSTANCE spellFX_INCOVATION_GREEN (CFx_Base_Proto)
{
visname_S = "INVOCATION_GREEN";
emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01";
lightpresetname = "POISON";
sfxid = "SFX_Circle";
sfxisambient = 1;
};
INSTANCE spellFX_INCOVATION_BLUE (CFx_Base_Proto)
{
visname_S = "INVOCATION_BLUE";
emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01";
lightpresetname = "REDAMBIENCE";
sfxid = "SFX_Circle";
sfxisambient = 1;
};
INSTANCE spellFX_INCOVATION_VIOLET (CFx_Base_Proto)
{
visname_S = "INVOCATION_VIOLET";
emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01";
lightpresetname = "CATACLYSM";
sfxid = "SFX_Circle";
sfxisambient = 1;
};
INSTANCE spellFX_INCOVATION_WHITE (CFx_Base_Proto)
{
visname_S = "INVOCATION_WHITE";
emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01";
lightpresetname = "WHITEBLEND";
sfxid = "SFX_Circle";
sfxisambient = 1;
};PROTOTYPE INVOCATION (C_PARTICLEFX)
{
ppsvalue = 30;
ppsscalekeys_s = "1 1 2 2 2 3 3 4 4 5";
ppsissmooth = 1;
ppsfps = 3;
shptype_s = "CIRCLE";
shpfor_s = "WORLD";
shpoffsetvec_s = "0 0 0";
shpdistribtype_s = "RAND";
shpdim_s = "120";
shpscalekeys_s = "1 2 3 4 5 6 7 8 9 10";
shpscaleissmooth = 1;
shpscalefps = 3;
dirmode_s = "RAND";
dirfor_s = "object";
diranglehead = 90;
dirangleheadvar = 45;
dirangleelev = 90;
dirangleelevvar = 45;
velavg = 0.100000001;
lsppartavg = 1500;
lsppartvar = 300;
flygravity_s = "0 0.00008 0";
visname_s = "MFX_MAGICCLOUD.TGA";
visorientation_s = "VELO";
vistexisquadpoly = 1;
vistexanifps = 25;
vistexaniislooping = 2;
vistexcolorstart_s = "255 0 0";
vistexcolorend_s = "255 0 0";
vissizestart_s = "20 20";
vissizeendscale = 20;
visalphafunc_s = "ADD";
visalphastart = 255;
trltexture_s = "LIGHTNING_BIG_A0.TGA";
};
INSTANCE INVOCATION_RED (INVOCATION)
{
vistexcolorstart_s = "255 0 0";
vistexcolorend_s = "255 0 0";
};
INSTANCE INVOCATION_WHITE (INVOCATION)
{
vistexcolorstart_s = "255 255 255";
vistexcolorend_s = "255 255 255";
};
INSTANCE INVOCATION_BLUE (INVOCATION)
{
vistexcolorstart_s = "0 0 255";
vistexcolorend_s = "0 0 255";
};
INSTANCE INVOCATION_GREEN (INVOCATION)
{
vistexcolorstart_s = "0 200 200";
vistexcolorend_s = "0 200 200";
};
INSTANCE INVOCATION_VIOLET (INVOCATION)
{
vistexcolorstart_s = "200 0 255";
vistexcolorend_s = "255 0 200";
};// ************************************
// ZS_Circle für Auge Innos Beschwörung
// ************************************
func void ZS_Circle ()
{
B_SetPerception(self);
// ------ PercTime überschreiben ------
Npc_SetPercTime (self, 0.3);
AI_StandUp (self);
AI_SetWalkmode (self,NPC_WALK); // Walkmode für den Zustand
AI_GotoWP (self, self.wp); // Gehe zum Tagesablaufstart
AI_AlignToWP (self);
};
func int ZS_Circle_Loop ()
{
var int randy;
if (self.guild == GIL_DEMON)
{
randy = Hlp_Random (1000);
if (Npc_GetStateTime(self) > randy)
{
Wld_PlayEffect("FX_EarthQuake", self, self, 0, 0, 0, FALSE );
Npc_SetStateTime (self, 0);
Wld_PlayEffect("spellFX_INCOVATION_RED", self, self, 0, 0, 0, FALSE );
AI_PlayAni (self,"T_PRACTICEMAGIC5");
};
};
return LOOP_CONTINUE;
};
func void ZS_Circle_End ()
{
};