怪物掉落装备修改属性

脚本写在 QF下的
//怪物掉落物品触发(针对监视物品):Owner:物品所属玩家,Monster:掉落怪物,item:物品,Accept:是否允许掉落
procedure MonDropItem(Npc: TNormNpc; Owner: TPlayObject; Monster: TActor; Item: TUserItem; Map: TEnvirnoment; const X, Y: Integer; var Accept: Boolean);
const
  Hold_probability_1 = 50;   //下面的脚本是随机范围100 小于等于预设值则有效
  Hold_probability_2 = 20;
  Hold_probability_3 = 5;
Var
  Hold_probability, Hold_count, I: Integer;
  Item_Name: String;
begin
  if Item.StdMode in [5,6,8,10,11,15..24,26..28,30,35] then   //检测为装备物品
    begin
      //这里是随机开洞
      Hold_probability:= Random(100);
      Hold_count:= 0;
      if Hold_probability <= Hold_probability_1 then Hold_count:= Hold_count + 1;
      if Hold_probability <= Hold_probability_2 then Hold_count:= Hold_count + 1;
      if Hold_probability <= Hold_probability_3 then Hold_count:= Hold_count + 1;
      if Hold_count > 0 then
       begin
         For I:= 0 to Hold_count - 1 do Item.AddHold[I]:= 0;
       end;
      Item_Name:= ‘‘;
      case Item.StdMode of    //这里可以参考引擎说明里面的属性设置随意设置[引擎说明搜 TUserItem] 不过需要注意不同的装备 可以生效的特殊属性有区别 比如19的项链有魔法躲避和幸运 而20的则是准确和敏捷
        5,6:
         begin
           case Random(10000) of
             500..800:   begin Item_Name:= ‘魔力的‘; Item.AddMC:= Item.AddMC + 5; end;
             1000..1500: begin Item_Name:= ‘秘力的‘; Item.AddSC:= Item.AddSC + 5; end;
             8500..9500: begin Item_Name:= ‘锋锐的‘; Item.AddDC:= Item.AddDC + 5; end;
           end;
         end;
        10,11:
         begin
           case Random(10000) of
             500..800:   begin Item_Name:= ‘硬壳的‘; Item.AddAC:= Item.AddAC + 5; end;
             1000..1500: begin Item_Name:= ‘抗魔的‘; Item.AddMAC:= Item.AddMAC + 5; end;
             2000..2500: begin Item_Name:= ‘耐用的‘; Item.DuraMax:= Item.DuraMax * 2; Item.Dura:= Item.Dura + Random(Item.DuraMax - Item.Dura);  end;
           end;
         end;
        20:
         begin
           case Random(10000) of
             100..250:  begin Item_Name:= ‘锁定的‘; Item.AddHitPoint:= Item.AddHitPoint + 5; end;
           end;
         end;
        21:
         begin
           case Random(10000) of
             100..250:  begin Item_Name:= ‘急速的‘; Item.AddHitSpeed:= Item.AddHitSpeed + 5; end;
           end;
         end;
        23:
         begin
           case Random(10000) of
             100..250:  begin Item_Name:= ‘抗毒的‘; Item.AddPoisonRecover:= Item.AddPoisonRecover + 15; end;
           end;
         end;
      end;
      Item.Rename(Item_Name + Item.Name);
    end;
end;
时间: 2024-11-02 04:36:47

怪物掉落装备修改属性的相关文章

js 动态修改属性值 动态修改图片,字等

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv = "content-type" content="text/html;charset=utf-8"/> &

通过反射 修改访问和修改属性的值 Day25

package com.sxt.field; /* * 通过反射拿到属性值 * 修改public属性值 * 修改private属性值 * 缺点:可读性差:代码复杂 * 优点:灵活:可以访问修改private属性值 * 以后多运用setXxx getXxx 修改属性的值 */ import java.lang.reflect.Field; import java.lang.reflect.Modifier; public class TestField { public static void m

C#修改属性的访问性

Type.GetProperty 方法 获取当前 Type 的特定属性. 参数 name String 包含要获取的属性名的字符串. bindingAttr BindingFlags 枚举值的按位组合,这些值指定如何进行搜索. 或 若为 Default,则返回 null. 返回 PropertyInfo 表示符合指定需求的属性的对象(如果找到的话):否则为 null. 示例 下面的示例检索用户定义的类的类型,检索该类的属性,并根据指定的绑定约束显示属性名称. using System; usin

Json.Net如何在序列化之前修改属性值

今天写一个Json.net比较偏门的用法,也许你很久都用不到,也许你明天就能派上用场. 我们都知道 Json.net 序列话的用法 Test test = new Test() { A = "123", B = DateTime.Now, C = DateTime.Now.AddDays(1) }; string json = JsonConvert.SerializeObject(test); 你会发现这一串的代码会生成如下的东西: {"A":"123&

转载自——Json.Net如何在序列化之前修改属性值

今天写一个Json.net比较偏门的用法,也许你很久都用不到,也许你明天就能派上用场. 我们都知道 Json.net 序列话的用法 Test test = new Test() { A = "123", B = DateTime.Now, C = DateTime.Now.AddDays(1) }; string json = JsonConvert.SerializeObject(test); 你会发现这一串的代码会生成如下的东西: 1 {"A":"12

JS监控DOM的事件(内部插入、移除、修改属性等)!爽!

这可不是简单的 onclick.onchange,你对 DOM 进行内部插入.移除.属性修改等均会触发相应事件. DOM 事件列表: DOMAttrModified DOMAttributeNameChanged DOMCharacterDataModified DOMElementNameChanged DOMNodeInserted DOMNodeInsertedIntoDocument DOMNodeRemoved DOMNodeRemovedFromDocument DOMSubtree

HTML5修改属性

最近在学习关于前端的知识,只能从头开始慢慢学习.留个记录 <script type="text/javascript"> var datadata=document.getElementById(hell); alert("原内容为:"+datadata.innerHTML); datadata.innerHTML="zzzzzzz"; </script> innerHTML 属性用于获取或替换 HTML 元素的内容. 语

使用DOM Breakpoints找到修改属性的Javascript代码

使用Chrome开发者工具的DOM断点功能可以让您快速找到修改了某一个DOM元素的Javascript代码. 在Chrome开发者工具里,选中想要监控的DOM元素,点击右键,选择Break on->Attributes modifications: 之后在DOM Breakpoints的tab里能看到对应的断点: 然后回到Chrome里继续操作,Chrome开发者工具的调试器就会自动在DOM的属性发生变化的地方停下来: 从调试器的调用上下文能了解到是下图第17行的hide方法设置了display

原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优势了. 原生JS虽然没有jquery那么的好用.便捷,或者说没有jquery那样让我们使用的如此顺手,甚至是无法舍弃的依赖.可是我们依然不得不扔掉手中这根陪伴我们多年的拐杖,我们不是瘸子,我们不曾腐朽,我们还可以独立前行. 二.正文 1. jquery和原生JS获取节点的比较 //这是HTML代码,