private void SpawnBuf(int BufID) { ResBufDropInfo dataByKey = GameDataMgr.bufDropInfoDatabin.GetDataByKey((uint)BufID); DebugHelper.Assert(dataByKey != null, "找不到Buf,id={0}", new object[] { BufID }); if (dataByKey == null) { return; } int num = 0; uint num2 = 0u; for (int i = 0; i < 10; i++) { if (dataByKey.astBufs[i].dwBufID == 0u) { break; } num++; num2 += dataByKey.astBufs[i].dwProbability; } if (num <= 0) { return; } int num3 = (int)FrameRandom.Random(num2); ResBufConfigInfo resBufConfigInfo = null; for (int j = 0; j < num; j++) { if ((long)num3 < (long)((ulong)dataByKey.astBufs[j].dwProbability)) { resBufConfigInfo = dataByKey.astBufs[j]; break; } num3 -= (int)dataByKey.astBufs[j].dwProbability; } DebugHelper.Assert(resBufConfigInfo != null); SimpleParabolaEffect inDropdownEffect = new SimpleParabolaEffect(this.MonsterRef.actor.location, this.TraceOnTerrain(this.MonsterRef.actor.location)); PickupBufEffect inPickupEffect = new PickupBufEffect(resBufConfigInfo); Singleton <DropItemMgr> .instance.CreateItem(Utility.UTF8Convert(resBufConfigInfo.szPrefab), inDropdownEffect, inPickupEffect); }
public PickupBufEffect(ResBufConfigInfo InBufDropInfo) { this.BufDropInfo = InBufDropInfo; }