回復アイテムの処理

qUseItem1000013


ここではレッドハーブを例に見てみる。

quest
qUseItem1000013() // キケオ・ヌ羲黠
{


  // アンデットかミスティックタッチにかかってた場合
   if (trigger.isState(CREATURE_STATE__UNDEAD) | | trigger.isState(CREATURE_STATE__FOOD_POISONING)) {
       if (!HardCode.itemDownHP(trigger, 30)) return; //HP30減らす
   } else { //上記の状態異常にかかってなかった場合
       if (!HardCode.itemUpHP(trigger, 30)) return; //HP30増やす

      //なんか装備してるとなんかなる(試してないから分からない)
       if (trigger.getClassNameAtPart(EQUIP_PART__HELMET) == "1004870")
           ItemBalloonUpHP(trigger, 30);
   }
   // decrease number
   if (controller.canBeExhausted()) {
       controller.decreaseNumber(1); //レッドハーブ減らす
   }
   // send using effect
   controller.effectBy(trigger);
}




ItemDownHP


HP減らす処理

function boolean
ItemDownHP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  // タヌオオオネ ケルソヘ スヌチヲ スコナゥクウニョ ウサソ・フ エルク」ーヤ アクヌヌセ・タヨセ錡ュ シ、ヌヤ.
   // value = value + target.getHP() * target.getDefence() / 2 / 100;
   // value = value - value * target.getDefence() / 2 / 100;
   value = (value - (value * target.getDefence() / 256)) / 2;

  if (value <= 0) {
       // do nothing
       return true;
   } else if (target.getHP() <= 1) {
       return false;
   } else {
       oldValue = target.getHP();

      if (oldValue - value <= 1) target.setHP(1);
       else target.setHP(oldValue - value);

      newValue = target.getHP();

      // update attribute
       target.updateAttr();

      // send message
       target.message(TEXT_USABLEITEM_ENDURANCE_MESSAGE_HP + (oldValue - newValue) + TEXT_USABLEITEM_ENDURANCE_MESSAGE_DOWN, MSG_TYPE__SYSTEM);
       return true;
   }
}

ItemUpHP


HP増やす処理

function boolean
ItemUpHP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  if (target.isState(CREATURE_STATE__NO_HP_REGEN)) {
       target.message(CANT_USE_FOR_NO_HP_REGEN_STATE, MSG_TYPE__SYSTEM);
       return false;
   }

  if (!target.getWorld().canUsePotion()) {
       target.message(TEXT_USABLEITEM_ENDURANCE_MESSAGE_FILED, MSG_TYPE__SYSTEM);
       return false;
   }

  // ウ・・ヌウシア ネクコケ テウクョ. タモステ -_-;
   if (trigger.getClassNameAtPart(EQUIP_PART__AACCESSORY) == "1004467")
       value = value + (value * 3 / 10) + value * target.getDefence() / 2 / 100;
   else
       value = value + value * target.getDefence() / 2 / 100;

  // テシキツタフ 0 タマカァオオ ネクコケオヌエツ ケラ シ、. トウクッナヘー。 チラセ鋿ヨタサカァソ。エツ ヌ羃。. (コホネー セニタフナロ サ鄙・
   if(target.isAlive() && target.getHP()==0)
       return false;

  if (value <= 0) {
       Util.log("! invalid hp value " + value + " in ItemUpHP()");
       return false;
   } else if (target.getMaxHP() == target.getHP()) {
       target.message(HP_UP_MESSAGE_PREFIX + FULL_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return false;
   } // else {
       oldValue = target.getHP();

      if (target.getMaxHP() < oldValue + value)
           target.setHP(target.getMaxHP());
       else
           target.setHP(oldValue + value);

      newValue = target.getHP();
       //Util.log("old " + oldValue);
       //Util.log("new " + newValue);

      // update attribute
       target.updateAttr();

      // send message
       target.message(HP_UP_MESSAGE_PREFIX + (newValue - oldValue) + HP_UP_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return true;
   // }
}

ItemBalloonUpHP


これなんだろう?

function boolean
ItemBalloonUpHP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  if (target.isState(CREATURE_STATE__NO_HP_REGEN)) {
       target.message(CANT_USE_FOR_NO_HP_REGEN_STATE, MSG_TYPE__SYSTEM);
       return false;
   }

  if (!target.getWorld().canUsePotion()) {
       target.message(TEXT_USABLEITEM_ENDURANCE_MESSAGE_FILED, MSG_TYPE__SYSTEM);
       return false;
   }

  value = value * 3 / 10;

  // テシキツタフ 0 タマカァオオ ネクコケオヌエツ ケラ シ、. トウクッナヘー。 チラセ鋿ヨタサカァソ。エツ ヌ羃。. (コホネー セニタフナロ サ鄙・
   if(target.isAlive() && target.getHP()==0)
       return false;

  if (value <= 0) {
       Util.log("! invalid hp value " + value + " in ItemUpHP()");
       return false;
   } else if (target.getMaxHP() == target.getHP()) {
       target.message(HP_UP_MESSAGE_PREFIX + FULL_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return false;
   } // else {

  oldValue = target.getHP();

  if (target.getMaxHP() < oldValue + value)
       target.setHP(target.getMaxHP());
   else
       target.setHP(oldValue + value);

  newValue = target.getHP();
   //Util.log("old " + oldValue);
   //Util.log("new " + newValue);

  // update attribute
   target.updateAttr();

  // send message
   target.message(HP_UP_MESSAGE_BALLOON + (newValue - oldValue) + HP_UP_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
   return true;
   // }
}

ItemDownMP


MPを減らす処理

function boolean
ItemDownMP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  // タヌオオオネ ケルソヘ スヌチヲ スコナゥクウニョ ウサソ・フ エルク」ーヤ アクヌヌセ・タヨセ錡ュ シ、ヌヤ.
   // value = value + target.getMP() * target.getMagicResist() / 4 / 100;
   value = value - value * target.getMagicResist() / 4 / 100;

  if (value <= 0) {
       // do nothing
       return true;
   } else if (target.getMP() < value) {
       return false;
   } else {
       oldValue = target.getMP();
       target.setMP(oldValue - value);

      newValue = target.getMP();

      // update attribute
       target.updateAttr();

      // send message
       target.message(TEXT_USABLEITEM_ENDURANCE_MESSAGE_MP + (oldValue - newValue) + TEXT_USABLEITEM_ENDURANCE_MESSAGE_DOWN, MSG_TYPE__SYSTEM);
       return true;
   }
}

ItemUpMP


MP増やす処理

function boolean
ItemUpMP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  if (target.isState(CREATURE_STATE__NO_MP_REGEN)) {
       target.message(CANT_USE_FOR_NO_MP_REGEN_STATE, MSG_TYPE__SYSTEM);
       return false;
   }

  // ウ・・ヌウシア ネクコケ テウクョ. タモステ -_-;
   if (trigger.getClassNameAtPart(EQUIP_PART__AACCESSORY) == "1004466")
       value = value + (value * 3 / 10) + target.getMagicResist() / 4 * target.getMP() / 150;
   else
       // ケラ チモタクキホ タホヌリ ツ・チェエツ サツー。 オヌセ惕クケヌキホ エルタスー・ーータフ シ、ヌ゚タクク・ー霈モ ー朎トウェー。セ゚ ヌヤ. 122 -> 150
       value = value + target.getMagicResist() / 4 * target.getMP() / 150;
       //value = value + value * target.getMagicResist() / 4 / 100;

  if (value <= 0) {
       Util.log("! invalid mp value " + value + " in ItemUpMP()");
       return false;
   } else if (target.getMaxMP() == target.getMP()) {
       target.message(MP_UP_MESSAGE_PREFIX + FULL_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return false;
   } else {
       oldValue = target.getMP();

      if (target.getMaxMP() < oldValue + value) target.setMP(target.getMaxMP());
       else target.setMP(oldValue + value);

      newValue = target.getMP();
       //Util.log("old " + oldValue);
       //Util.log("new " + newValue);

      // update attribute
       target.updateAttr();

      // send message
       target.message(MP_UP_MESSAGE_PREFIX + (newValue - oldValue) + MP_UP_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return true;
   }
}

ItemBalloonUpMP



function boolean
ItemBalloonUpMP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  if (target.isState(CREATURE_STATE__NO_MP_REGEN)) {
       target.message(CANT_USE_FOR_NO_MP_REGEN_STATE, MSG_TYPE__SYSTEM);
       return false;
   }

  value = value * 3 / 10;

  if (value <= 0) {
       Util.log("! invalid mp value " + value + " in ItemUpMP()");
       return false;
   } else if (target.getMaxMP() == target.getMP()) {
       target.message(MP_UP_MESSAGE_PREFIX + FULL_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return false;
   } else {
       oldValue = target.getMP();

      if (target.getMaxMP() < oldValue + value) target.setMP(target.getMaxMP());
       else target.setMP(oldValue + value);

      newValue = target.getMP();
       //Util.log("old " + oldValue);
       //Util.log("new " + newValue);

      // update attribute
       target.updateAttr();

      // send message
       target.message(MP_UP_MESSAGE_BALLOON + (newValue - oldValue) + MP_UP_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return true;
   }
}

ItemDownSP


SP減らす処理

function boolean
ItemDownSP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  // タヌオオオネ ケルソヘ スヌチヲ スコナゥクウニョ ウサソ・フ エルク」ーヤ アクヌヌセ・タヨセ錡ュ シ、ヌヤ.
   // value = value + target.getSP() * target.getSP() / 3 / 100;
   // value = value + value * target.getSP() / 3 / 100;
   value = value - value * target.getDex() / 3 / 100;

  if (value <= 0) {
       // do nothing
       return true;
   } else if (target.getSP() < value) {
       return false;
   } else {
       oldValue = target.getSP();
       target.setSP(oldValue - value);

      newValue = target.getSP();

      // update attribute
       target.updateAttr();

      // send message
       target.message(TEXT_USABLEITEM_ENDURANCE_MESSAGE_SP + (oldValue - newValue) + TEXT_USABLEITEM_ENDURANCE_MESSAGE_DOWN, MSG_TYPE__SYSTEM);
       return true;
   }
}

ItemUpSP


SP増やす処理

function boolean
ItemUpSP(object target, integer value)
{
  integer oldValue;
   integer newValue;

  if (target.isState(CREATURE_STATE__NO_SP_REGEN)) {
       target.message(CANT_USE_FOR_NO_SP_REGEN_STATE, MSG_TYPE__SYSTEM);
       return false;
   }

  // タヌオオオネ ケルソヘ スヌチヲ スコナゥクウニョ ウサソ・フ エルク」ーヤ アクヌヌセ・タヨセ錡ュ シ、ヌヤ.
   // value = value + target.getSP() * target.getSP() / 3 / 100;
   // value = value + value * target.getSP() / 3 / 100;
   value = value + value * target.getDex() / 3 / 100;

  if (value <= 0) {
       Util.log("! invalid sp value " + value + " in ItemUpSP()");
       return false;
   } else if (target.getMaxSP() == target.getSP()) {
       target.message(SP_UP_MESSAGE_PREFIX + FULL_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return false;
   } else {
       oldValue = target.getSP();

      if (target.getMaxSP() < oldValue + value) target.setSP(target.getMaxSP());
       else target.setSP(oldValue + value);

      newValue = target.getSP();

      //Util.log("old " + oldValue);
       //Util.log("new " + newValue);

      // update attribute
       target.updateAttr();

      // send message
       target.message(SP_UP_MESSAGE_PREFIX + (newValue - oldValue) + SP_UP_MESSAGE_SUFFIX, MSG_TYPE__SYSTEM);
       return true;
   }
}

  • 最終更新:2016-08-09 18:35:46

このWIKIを編集するにはパスワード入力が必要です

認証パスワード