Problem z itemkiem 3343 5

O temacie

Autor sajwo

Zaczęty 5.02.2009 roku

Wyświetleń 3343

Odpowiedzi 5

sajwo

sajwo

Użytkownicy
posty10
  • Użytkownicy
Mam pewien problem otóż kiedy zrobiłem pewien przedmiot i zreparsowałem skrypt podczas grania chciałem aby przedmiot (mianowicie Jabłko) można było użyc kilka razy i dodało mi premie za każdym razem. A w grze item tylko raz dodał mi premię. Co można zrobic?
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Pokaż skrypt.
 

sajwo

sajwo

Użytkownicy
posty10
  • Użytkownicy
INSTANCE ItFo_Apple_01 (C_Item)
{
   name = "Magiczne Jabłko";

   mainflag = ITEM_KAT_FOOD;
   flags = ITEM_MULTI;

   value = 500;

   visual = "ItFo_Apple.3DS";
   material = MAT_LEATHER;
   scemeName = "FOOD";
   on_state[0] = Use_Apple_SaJwO;

   description   = name;

   TEXT[1] = NAME_Bonus_HP;
   COUNT[1] = 12;
   TEXT[5] = NAME_Value;
   COUNT[5] = 500;
};

   FUNC VOID Use_Apple_SaJwO()
   {

      Npc_ChangeAttribute (self, ATR_HITPOINTS, 12);

      const int Apple_SaJwO_Bonus = 0;

      if (Npc_IsPlayer (self))
      {

         Apple_SaJwO_Bonus = Apple_SaJwO_Bonus + 1;

         if (Apple_SaJwO_Bonus == 1)
         {
            PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
            B_RaiseAttribute (self, ATR_STRENGTH,3);
            Snd_Play ("LevelUp");
         };

         if (Apple_SaJwO_Bonus == 1)
         {
            PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
            B_RaiseAttribute (self, ATR_DEXTERITY,3);
            Snd_Play ("LevelUp");
         };

         if (Apple_SaJwO_Bonus == 1)
         {
            PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
            B_RaiseAttribute (self, ATR_MANA_MAX,3);
            Snd_Play ("LevelUp");
         };

         if (Apple_SaJwO_Bonus == 1)
         {
            PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
            B_RaiseAttribute (self, ATR_HITPOINTS_MAX,3);
            Snd_Play ("LevelUp");
         };

      };

   };
 

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
INSTANCE ItFo_Apple_01 (C_Item)
{
name = "Magiczne Jabłko";

mainflag = ITEM_KAT_FOOD;
flags = ITEM_MULTI;

value = 500;

visual = "ItFo_Apple.3DS";
material = MAT_LEATHER;
scemeName = "FOOD";
on_state[0] = Use_Apple_SaJwO;

description = name;

TEXT[1] = NAME_Bonus_HP;
COUNT[1] = 12;
TEXT[5] = NAME_Value;
COUNT[5] = 500;
};

FUNC VOID Use_Apple_SaJwO()
{

B_RaiseAttribute (self, ATR_HITPOINTS_MAX,3);

};

Spróbuj tak.
 

Artex

Artex

Użytkownicy
posty99
  • Użytkownicy

Artex

Problem z itemkiem
#4 2009-02-06, 10:52(Ostatnia zmiana: 2009-02-06, 10:54)
Używaj tagów code!


INSTANCE ItFo_Apple_01 (C_Item)
{
name = "Magiczne Jabłko";

mainflag = ITEM_KAT_FOOD;
flags = ITEM_MULTI;

value = 500;

visual = "ItFo_Apple.3DS";
material = MAT_LEATHER;
scemeName = "FOOD";
on_state[0] = Use_Apple_SaJwO;

description = name;

TEXT[1] = NAME_Bonus_HP;
COUNT[1] = 12;
TEXT[5] = NAME_Value;
COUNT[5] = 500;
};

FUNC VOID Use_Apple_SaJwO()
{

Npc_ChangeAttribute (self, ATR_HITPOINTS, 12);

const int Apple_SaJwO_Bonus = 0;

if (Npc_IsPlayer (self))
{

Apple_SaJwO_Bonus = Apple_SaJwO_Bonus + 1;

if (Apple_SaJwO_Bonus == 1)
{
PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
B_RaiseAttribute (self, ATR_STRENGTH,3);
Snd_Play ("LevelUp");
};

if (Apple_SaJwO_Bonus == 1)
{
PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
B_RaiseAttribute (self, ATR_DEXTERITY,3);
Snd_Play ("LevelUp");
};

if (Apple_SaJwO_Bonus == 1)
{
PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
B_RaiseAttribute (self, ATR_MANA_MAX,3);
Snd_Play ("LevelUp");
};

if (Apple_SaJwO_Bonus == 1)
{
PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
B_RaiseAttribute (self, ATR_HITPOINTS_MAX,3);
Snd_Play ("LevelUp");
};

};

};

Dosyć to zawiłe, dlaczego ten kawałek:

if (Apple_SaJwO_Bonus == 1)
{
PrintScreen ("Twoja siła wzrasta", 55, -1, FONT_Screen, 2);
B_RaiseAttribute (self, ATR_DEXTERITY,3);
Snd_Play ("LevelUp");
};

Pojawia się tam cztery razy?

const int Apple_SaJwO_Bonus = 0;

if (Npc_IsPlayer (self))
{

Apple_SaJwO_Bonus = Apple_SaJwO_Bonus + 1;

Dwie rady:

1. Używaj operatora ++  ;]  

2. Stałej nie zmienisz... spróbuj usunąć const przed deklaracją zmiennej (teraz stałej...) i sprawdź.


Ahh... Dekster, ubiegłeś mnie.

Jeszcze się spotkamy... xD
 

sajwo

sajwo

Użytkownicy
posty10
  • Użytkownicy
Dzięki bardzo już wszystko jest OK.
 


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