na podstawie skryptów MT zrobiłem monolog ostrzenia mieczy.
jednak wystąpiły następujące bugi:
1. do osełki możemy podejść jeżeii mamy itmiswordblade
2. zaraz po zakończeniu ostrzenia tworzy nam się niewykończony miecz
3. wybierając opcje odejdź od osełki, bohater dalej ostrzy na kole - dopiero używając klawiszy mozna oderwaś sie od koła[codebox]var int sharp_chanse;
var int antic;
func void sharpnery()
{
self.aivar[AIV_INVINCIBLE] = FALSE;
PrintScreen("Właśnie naostrzyłeś oręż.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
PrintGlobals(PD_ITEM_MOBSI);
Npc_SendPassivePerc(hero,PERC_ASSESSENTERROOM,NULL,hero);
};
func void sharpnery_s1()
{
var C_Npc him;
var C_Npc rocker;
MOBUSE = SHARPNERY_USING;
him = Hlp_GetNpc(PC_Hero);
rocker = Hlp_GetNpc(PC_Rockefeller);
if((Hlp_GetInstanceID(self) == Hlp_GetInstanceID(him)) || (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(rocker)))
{
self.aivar[AIV_INVINCIBLE] = TRUE;
AI_ProcessInfos(him);
};
};
instance NOSHARP1(C_Info)
{
npc = PC_Hero;
nr = 999;
condition = NOSHARP1_condition;
information = NOSHARP1_info;
important = 0;
permanent = 1;
description = "Nie potrafisz ostrzyć mieczy.";
};
func int NOSHARP1_condition()
{
if (MOBUSE == SHARPNERY_USING) && (sharpner == FALSE)
{
return 1;
};
};
func void NOSHARP1_info()
{
AI_StopProcessInfos (self);
MOBUSE = 0;
self.aivar[AIV_INVINCIBLE] = FALSE;
};
instance NOSHARP(C_Info)
{
npc = PC_Hero;
nr = 999;
condition = NOSHARP_condition;
information = NOSHARP_info;
important = 0;
permanent = 1;
description = "Odejdź od kamienia szlifierskiego.";
};
func int NOSHARP_condition()
{
if (MOBUSE == SHARPNERY_USING) && (sharpner == TRUE)
{
return 1;
};
};
func void NOSHARP_info()
{
AI_StopProcessInfos (self);
MOBUSE = 0;
self.aivar[AIV_INVINCIBLE] = FALSE;
};
instance goodlongsword_sharp(C_Info)
{
npc = PC_Hero;
condition = goodlongsword_sharp_condition;
information = goodlongsword_sharp_info;
important = 0;
permanent = 1;
description = "Naostrz antyczny miecz od Thorusa!";
};
func int goodlongsword_sharp_condition()
{
if (MOBUSE == SHARPNERY_USING) && (sharpner == TRUE)&&(Npc_HasItems(hero,ItMw_1H_Sword_99) >= 1)
{
return 1;
};
};
func void goodlongsword_sharp_info()
{
AI_StopProcessInfos (self);
sharp_chanse = Hlp_Random(1);
if(sharp_chanse == 0)
{
ItMw_1H_Sword_99.TEXT[0] = "Naostrzony miecz.";
ItMw_1H_Sword_99.TEXT[1] = "Należy teraz do Beziminnego,";
ItMw_1H_Sword_99.damagetotal +=12;
ItMw_1H_Sword_99.COUNT[2] = ItMw_1H_Sword_99.damageTotal;
sharpnery();
}
else if(sharp_chanse == 1)
{
ItMw_1H_Sword_99.TEXT[0] = "Dobrze naostrzony miecz.";
ItMw_1H_Sword_99.damagetotal +=14;
ItMw_1H_Sword_99.COUNT[2] = ItMw_1H_Sword_99.damageTotal;
sharpnery();
};
};
[/codebox]