Lineage emulator WarServerVersion2のwikiです。

package war.mod;

import static l1j.server.server.model.skill.L1SkillId.STATUS_FREEZE;

import java.util.Random;
import java.util.StringTokenizer;
import java.util.concurrent.ConcurrentHashMap;

import l1j.server.server.GeneralThreadPool;
import l1j.server.server.datatables.SkillsTable;
import l1j.server.server.model.L1Character;
import l1j.server.server.model.L1EffectSpawn;
import l1j.server.server.model.L1Location;
import l1j.server.server.model.L1Object;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1MonsterInstance;
import l1j.server.server.model.Instance.L1NpcInstance;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.model.poison.L1DamagePoison;
import l1j.server.server.model.skill.L1SkillId;
import l1j.server.server.serverpackets.S_EffectLocation;
import l1j.server.server.serverpackets.S_Paralysis;
import l1j.server.server.serverpackets.S_SkillSound;
import l1j.server.server.serverpackets.S_SystemMessage;
import l1j.server.server.serverpackets.S_UseAttackSkill;
import l1j.server.server.templates.L1Skills;
import war.W_Method;

public class W_DoMod {
	private static final int DAGGER_SINGLE_DMG[] = { 35, 70 };
	private static final int SWORD_SINGLE_DMG[] = { 75, 90 };
	private static final int TOWHAND_SINGLE_DMG[] = { 100, 150 };
	private static final int TOWHAND_AREA_DMG[] = { 50, 150, 3 };
	private static final int SPEAR_AREA_DMG[] = { 1, 100, 5 };
	private static final int ARROW_SINGLE_DMG[] = { 8, 16 };
	private static final int ARROW_LINE_DMG[] = { 20, 30 };
	private static final int FETTERS_TIME = 3000; // ホールド時間
	// 効果時間 間隔 ダメージ
	private static final int CRAW_POISON_DMG[] = { 3000, 500, 24 };

	private L1PcInstance _attacker;
	private L1Character _target;
	private double _dmg;
	private Random rnd = new Random();

	public W_DoMod(L1PcInstance attacker, L1Character target, double dmg) {
		_attacker = attacker;
		_target = target;
		_dmg = dmg;

		if (_attacker == null || _target == null) {
			return;
		}
		if (_attacker.getWeapon() == null) {
			return;
		}

		proc_Mod();
	}

	private void proc_Mod() {
		int fire = W_Method.modValue(_attacker.getWeapon(), 12);
		int water = W_Method.modValue(_attacker.getWeapon(), 13);
		int wind = W_Method.modValue(_attacker.getWeapon(), 14);
		int earth = W_Method.modValue(_attacker.getWeapon(), 15);

		for (L1PcInstance pc : L1World.getInstance().getVisiblePlayer(_attacker, 1)) {
			if (pc.getSubClassId() == 6) {
				int element = rnd.nextInt(4);
				switch (element) {
				case 0:
					fire += 2;
					break;
				case 1:
					water += 2;
					break;
				case 2:
					wind += 2;
					break;
				case 3:
					earth += 2;
					break;
				}
			}
		}
		if (_attacker.getSubClassId() == 12 && _attacker.getAwakeSkillId() == L1SkillId.AWAKEN_ANTHARAS) {
			// アンタラス
			earth += 5;
		} else if (_attacker.getSubClassId() == 12 && _attacker.getAwakeSkillId() == L1SkillId.AWAKEN_FAFURION) {
			// パプリオン
			water += 5;
		} else if (_attacker.getSubClassId() == 12 && _attacker.getAwakeSkillId() == L1SkillId.AWAKEN_VALAKAS) {
			// ヴァラカス
			fire += 5;
		}

		if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 9)) {
			// 範囲攻撃
			proc_AreaDmg();
		}
		if (W_Method.modValue(_attacker.getWeapon(), 10) != 0) {
			// HP吸収
			if (_target instanceof L1PcInstance || _target instanceof L1MonsterInstance) {
				_attacker.setCurrentHp(_attacker.getCurrentHp() + W_Method.modValue(_attacker.getWeapon(), 10));
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 11) != 0) {
			// MP吸収
			if (_target instanceof L1PcInstance || _target instanceof L1MonsterInstance) {
				_attacker.setCurrentMp(_attacker.getCurrentMp() + W_Method.modValue(_attacker.getWeapon(), 11));
			}
		}
		if (fire != 0) {
			int MaxValue = fire;
			int MinValue = W_Method.modOneLowValue(_attacker.getWeapon(), 12);
			double parsent = (rnd.nextInt(MaxValue - MinValue) + MinValue) / 100d;
			W_Method wm = new W_Method();
			int dmg = wm.weaponBasicValue(_attacker, _attacker.getWeapon());
			double fix_dmg = dmg * parsent;
			// 対象の属性防御によるダメージ軽減
			if (_target instanceof L1PcInstance) {
				L1PcInstance targetPc = (L1PcInstance) _target;
				double elementDef = targetPc.getFire() / 100d;
				fix_dmg = fix_dmg - (fix_dmg * elementDef);
				fix_dmg = wm.getCalcPcReduction(targetPc, (int) (fix_dmg)); // ダメージ軽減
			}
			if (fix_dmg > 0) {
				receiveDamage(fix_dmg, false);
			}
		}
		if (water != 0) {
			int MaxValue = water;
			int MinValue = W_Method.modOneLowValue(_attacker.getWeapon(), 13);
			double parsent = (rnd.nextInt(MaxValue - MinValue) + MinValue) / 100d;
			W_Method wm = new W_Method();
			int dmg = wm.weaponBasicValue(_attacker, _attacker.getWeapon());
			double fix_dmg = dmg * parsent;
			// 対象の属性防御によるダメージ軽減
			if (_target instanceof L1PcInstance) {
				L1PcInstance targetPc = (L1PcInstance) _target;
				double elementDef = targetPc.getWater() / 100d;
				fix_dmg = fix_dmg - (fix_dmg * elementDef);
				fix_dmg = wm.getCalcPcReduction(targetPc, (int) (fix_dmg)); // ダメージ軽減
			}
			receiveDamage(fix_dmg, false);
		}
		if (wind != 0) {
			int MaxValue = wind;
			int MinValue = W_Method.modOneLowValue(_attacker.getWeapon(), 14);
			double parsent = (rnd.nextInt(MaxValue - MinValue) + MinValue) / 100d;
			W_Method wm = new W_Method();
			int dmg = wm.weaponBasicValue(_attacker, _attacker.getWeapon());
			double fix_dmg = dmg * parsent;
			// 対象の属性防御によるダメージ軽減
			if (_target instanceof L1PcInstance) {
				L1PcInstance targetPc = (L1PcInstance) _target;
				double elementDef = targetPc.getWind() / 100d;
				fix_dmg = fix_dmg - (fix_dmg * elementDef);
				fix_dmg = wm.getCalcPcReduction(targetPc, (int) (fix_dmg)); // ダメージ軽減
			}
			receiveDamage(fix_dmg, false);
		}
		if (earth != 0) {
			int MaxValue = earth;
			int MinValue = W_Method.modOneLowValue(_attacker.getWeapon(), 15);
			double parsent = (rnd.nextInt(MaxValue - MinValue) + MinValue) / 100d;
			W_Method wm = new W_Method();
			int dmg = wm.weaponBasicValue(_attacker, _attacker.getWeapon());
			double fix_dmg = dmg * parsent;
			// 対象の属性防御によるダメージ軽減
			if (_target instanceof L1PcInstance) {
				L1PcInstance targetPc = (L1PcInstance) _target;
				double elementDef = targetPc.getEarth() / 100d;
				fix_dmg = fix_dmg - (fix_dmg * elementDef);
				fix_dmg = wm.getCalcPcReduction(targetPc, (int) (fix_dmg)); // ダメージ軽減
			}
			receiveDamage(fix_dmg, false);
		}
		if (W_Method.modValue(_attacker.getWeapon(), 16) != 0) {
			// ダガー魔法
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 16)) {
				showGfxToObject(6598);
				double dmg = rnd.nextInt(DAGGER_SINGLE_DMG[1] - DAGGER_SINGLE_DMG[0]) + DAGGER_SINGLE_DMG[0];
				receiveDamage(dmg);
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 17) != 0) {
			// ソード魔法
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 17)) {
				showGfxToObject(7004);
				double dmg = rnd.nextInt(SWORD_SINGLE_DMG[1] - SWORD_SINGLE_DMG[0]) + SWORD_SINGLE_DMG[0];
				receiveDamage(dmg);
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 18) != 0) {
			// ツーハンドソードシングル魔法
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 18)) {
				showGfxToObject(6763);
				double dmg = rnd.nextInt(TOWHAND_SINGLE_DMG[1] - TOWHAND_SINGLE_DMG[0]) + TOWHAND_SINGLE_DMG[0];
				receiveDamage(dmg);
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 19) != 0) {
			// ツーハンドソードエリア魔法
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 19)) {
				showGfxToObject(7300);
				showGfxToObject(7189);
				proc_magic_AreaDmg(TOWHAND_AREA_DMG);
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 24) != 0) {
			// スピアーエリア魔法
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 24)) {
				showGfxToObject(6703);
				proc_magic_AreaDmg(SPEAR_AREA_DMG);
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 21) != 0) {
			// アローライン魔法
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 21)) {
				proc_ArrowLineSkill();
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 25) != 0) {
			// ホールド
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 25)) {
				L1EffectSpawn.getInstance().spawnEffect(81182, FETTERS_TIME, _target.getX(), _target.getY(),
						_target.getMapId());
				if (_target instanceof L1PcInstance) {
					if (!_target.hasSkillEffect(STATUS_FREEZE)) {
						L1PcInstance targetPc = (L1PcInstance) _target;
						targetPc.setSkillEffect(STATUS_FREEZE, FETTERS_TIME);
						targetPc.sendPackets(new S_SkillSound(targetPc.getId(), 4184));
						targetPc.broadcastPacket(new S_SkillSound(targetPc.getId(), 4184));
						targetPc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_BIND, true));
					}
				} else if (_target instanceof L1NpcInstance) {
					L1NpcInstance npc = (L1NpcInstance) _target;
					npc.setSkillEffect(STATUS_FREEZE, FETTERS_TIME);
					npc.broadcastPacket(new S_SkillSound(npc.getId(), 4184));
					npc.setParalyzed(true);
				}
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 26) != 0) {
			// 毒
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 26)) {
				showGfxToObject(745);
				showGfxToObject(7403);
				L1DamagePoison.doInfection(_attacker, _target, CRAW_POISON_DMG[1], CRAW_POISON_DMG[2],
						CRAW_POISON_DMG[0]);
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 27) != 0) {
			// ポルート
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 27)
					&& !_target.hasSkillEffect(L1SkillId.POLLUTE_WATER)) {
				if (_target instanceof L1PcInstance) {
					L1PcInstance targetPc = (L1PcInstance) _target;
					L1Skills l1skills = SkillsTable.getInstance().getTemplate(L1SkillId.POLLUTE_WATER);
					targetPc.sendPackets(new S_SystemMessage(_attacker.getName() + "に" + l1skills.getName()
							+ "の呪いをかけられました。(効果時間:" + l1skills.getBuffDuration() + "秒"));
					S_EffectLocation packet = new S_EffectLocation(targetPc.getX(), targetPc.getY(), l1skills
							.getCastGfx());
					_attacker.sendPackets(packet);
					_attacker.broadcastPacket(packet);

					targetPc.setSkillEffect(L1SkillId.POLLUTE_WATER, l1skills.getBuffDuration() * 1000);
				}
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 28) != 0) {
			// ディケイ
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 28)
					&& !_target.hasSkillEffect(L1SkillId.DECAY_POTION)) {
				if (_target instanceof L1PcInstance) {
					L1PcInstance targetPc = (L1PcInstance) _target;
					L1Skills l1skills = SkillsTable.getInstance().getTemplate(L1SkillId.DECAY_POTION);
					targetPc.sendPackets(new S_SystemMessage(_attacker.getName() + "に" + l1skills.getName()
							+ "の呪いをかけられました。(効果時間:" + l1skills.getBuffDuration() + "秒"));
					S_EffectLocation packet = new S_EffectLocation(targetPc.getX(), targetPc.getY(), l1skills
							.getCastGfx());
					_attacker.sendPackets(packet);
					_attacker.broadcastPacket(packet);

					targetPc.setSkillEffect(L1SkillId.DECAY_POTION, l1skills.getBuffDuration() * 1000);
				}
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 29) != 0) {
			// ウィークネス
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 29)
					&& !_target.hasSkillEffect(L1SkillId.WEAKNESS)) {
				if (_target instanceof L1PcInstance) {
					L1PcInstance targetPc = (L1PcInstance) _target;
					L1Skills l1skills = SkillsTable.getInstance().getTemplate(L1SkillId.WEAKNESS);
					targetPc.sendPackets(new S_SystemMessage(_attacker.getName() + "に" + l1skills.getName()
							+ "の呪いをかけられました。(効果時間:" + l1skills.getBuffDuration() + "秒"));
					S_EffectLocation packet = new S_EffectLocation(targetPc.getX(), targetPc.getY(), l1skills
							.getCastGfx());
					_attacker.sendPackets(packet);
					_attacker.broadcastPacket(packet);

					targetPc.addDmgup(-5);
					targetPc.addHitup(-1);
					targetPc.setSkillEffect(L1SkillId.WEAKNESS, l1skills.getBuffDuration() * 1000);
				}
			}
		}
		if (W_Method.modValue(_attacker.getWeapon(), 30) != 0) {
			// サイレンス
			if (rnd.nextInt(100) < W_Method.modValue(_attacker.getWeapon(), 30)
					&& !_target.hasSkillEffect(L1SkillId.SILENCE)) {
				if (_target instanceof L1PcInstance) {
					L1PcInstance targetPc = (L1PcInstance) _target;
					L1Skills l1skills = SkillsTable.getInstance().getTemplate(L1SkillId.SILENCE);
					targetPc.sendPackets(new S_SystemMessage(_attacker.getName() + "に" + l1skills.getName()
							+ "の呪いをかけられました。(効果時間:" + l1skills.getBuffDuration() + "秒"));
					S_EffectLocation packet = new S_EffectLocation(targetPc.getX(), targetPc.getY(), l1skills
							.getCastGfx());
					_attacker.sendPackets(packet);
					_attacker.broadcastPacket(packet);

					targetPc.setSkillEffect(L1SkillId.SILENCE, l1skills.getBuffDuration() * 1000);
				}
			}
		}
	}

	private void proc_AreaDmg() {
		for (L1Object obj : L1World.getInstance().getVisibleObjects(_target, 2)) {
			if (obj instanceof L1PcInstance) {
				L1PcInstance target_pc = (L1PcInstance) obj;
				if (_attacker.getClanid() != target_pc.getClanid() && !target_pc.isDead()) {
					W_Method wm = new W_Method();
					int dmg = wm.weaponBasicValue(_attacker, _attacker.getWeapon());
					dmg = wm.getCalcPcReduction(target_pc, dmg);
					target_pc.receiveDamage(_attacker, dmg, false);
					/*
					 * _attacker.sendPackets(new S_UseArrowSkill(_attacker,
					 * target_pc.getId(), 4629, target_pc.getX(),
					 * target_pc.getY(), false, _attacker.getId()));
					 * _attacker.broadcastPacket(new S_UseArrowSkill(_attacker,
					 * target_pc.getId(), 4629, target_pc.getX(),
					 * target_pc.getY(), false, _attacker.getId()));
					 */
					_attacker.sendPackets(new S_UseAttackSkill(_attacker, target_pc, 4629, false));
					_attacker.broadcastPacket(new S_UseAttackSkill(_attacker, target_pc, 4629, false));

				}
			} else if (obj instanceof L1NpcInstance) {
				L1NpcInstance target_npc = (L1NpcInstance) obj;
				if (!target_npc.isDead()) {
					W_Method wm = new W_Method();
					int dmg = wm.weaponBasicValue(_attacker, _attacker.getWeapon());
					target_npc.receiveDamage(_attacker, dmg);
					/*
					 * _attacker.sendPackets(new S_UseArrowSkill(_attacker,
					 * target_npc.getId(), 4629, target_npc.getX(),
					 * target_npc.getY(), false, _attacker.getId()));
					 * _attacker.broadcastPacket(new S_UseArrowSkill(_attacker,
					 * target_npc.getId(), 4629, target_npc .getX(),
					 * target_npc.getY(), false, _attacker.getId()));
					 */
					_attacker.sendPackets(new S_UseAttackSkill(_attacker, target_npc, 4629, false));
					_attacker.broadcastPacket(new S_UseAttackSkill(_attacker, target_npc, 4629, false));
				}
			}
		}
	}

	private void proc_magic_AreaDmg(int source[]) {
		for (L1Object obj : L1World.getInstance().getVisibleObjects(_target, source[2])) {
			if (obj instanceof L1PcInstance) {
				L1PcInstance target_pc = (L1PcInstance) obj;
				if (_attacker.getClanid() != target_pc.getClanid() && !target_pc.isDead()) {
					int dmg = rnd.nextInt(source[1] - source[0]) + source[0];
					dmg = W_Method.getCalcPcMagicReduction(target_pc, (int) dmg);
					target_pc.receiveDamage(_attacker, dmg, false);
				}
			} else if (obj instanceof L1NpcInstance) {
				L1NpcInstance target_npc = (L1NpcInstance) obj;
				if (!target_npc.isDead()) {
					int dmg = rnd.nextInt(source[1] - source[0]) + source[0];
					target_npc.receiveDamage(_attacker, dmg);
				}
			}
		}
	}

	public void proc_ArrowSkill() {
		// アロー魔法
		_attacker.sendPackets(new S_UseAttackSkill(_attacker, _target, 1662, false));
		_attacker.broadcastPacket(new S_UseAttackSkill(_attacker, _target, 1662, false));
		double dmg = rnd.nextInt(ARROW_SINGLE_DMG[1] - ARROW_SINGLE_DMG[0]) + ARROW_SINGLE_DMG[0];
		receiveDamage(dmg);
	}

	private void proc_ArrowLineSkill() {
		_attacker.sendPackets(new S_SkillSound(_attacker.getId(), 7623));
		_attacker.broadcastPacket(new S_SkillSound(_attacker.getId(), 7623));
		class startAttack implements Runnable {
			public void run() {
				try {
					byte HEADING_TABLE_X[] = { 0, 1, 1, 1, 0, -1, -1, -1 };
					byte HEADING_TABLE_Y[] = { -1, -1, 0, 1, 1, 1, 0, -1 };
					ConcurrentHashMap<Integer, String> lineMap = new ConcurrentHashMap<Integer, String>();

					L1Location loc1 = new L1Location(_attacker.getX() + HEADING_TABLE_X[_attacker.getHeading()],
							_attacker.getY() + HEADING_TABLE_Y[_attacker.getHeading()], _attacker.getMapId());
					L1Location loc2 = new L1Location(_target.getX(), _target.getY(), _attacker.getMapId());
					lineMap = W_Method.createLineMap(loc1, loc2);

					for (int i = 0; i < lineMap.size(); i++) {
						String delim = ",";
						StringTokenizer st = new StringTokenizer(lineMap.get(i), delim);
						int x = 0;
						int y = 0;

						// 座標の分解
						x = Integer.parseInt(st.nextToken());
						y = Integer.parseInt(st.nextToken());
						L1Location next_loc = new L1Location(x, y, _attacker.getMapId());

						S_EffectLocation packet = new S_EffectLocation(x, y, 7389);
						_attacker.sendPackets(packet);
						_attacker.broadcastPacket(packet);

						for (L1Object obj : L1World.getInstance().getVisiblePoint(next_loc, 0)) {
							if (obj instanceof L1PcInstance) {
								L1PcInstance target = (L1PcInstance) obj;
								if (_attacker.getClanid() != target.getClanid()) {
									// ダメージ計算
									int dmg = rnd.nextInt(ARROW_LINE_DMG[1] - ARROW_LINE_DMG[0]) + ARROW_LINE_DMG[0];
									dmg = W_Method.getCalcPcMagicReduction(target, (int) dmg);
									// HPの減少
									target.receiveDamage(_attacker, dmg, false);
								}
							} else if (obj instanceof L1NpcInstance) {
								L1NpcInstance target = (L1NpcInstance) obj;
								// ダメージ計算
								int dmg = rnd.nextInt(ARROW_LINE_DMG[1] - ARROW_LINE_DMG[0]) + ARROW_LINE_DMG[0];
								// HPの減少
								target.receiveDamage(_attacker, dmg);
							}
						}
						Thread.sleep(100);
					}
				} catch (Exception e) {

				}
			}
		}
		GeneralThreadPool.getInstance().execute(new startAttack());
	}

	private void receiveDamage(double dmg) {
		receiveDamage(dmg, true);
	}

	private void receiveDamage(double dmg, boolean magic) {
		if (_target instanceof L1PcInstance) {
			L1PcInstance targetPc = (L1PcInstance) _target;
			if (magic) {
				dmg = W_Method.getCalcPcMagicReduction(targetPc, (int) dmg);
			}
			targetPc.receiveDamage(_attacker, (int) dmg, false);
		} else if (_target instanceof L1NpcInstance) {
			L1NpcInstance targetNpc = (L1NpcInstance) _target;
			targetNpc.receiveDamage(_attacker, (int) dmg);
		}
	}

	private void showGfxToObject(int gfxid) {
		if (_target instanceof L1PcInstance) {
			L1PcInstance targetPc = (L1PcInstance) _target;
			_attacker.sendPackets(new S_SkillSound(targetPc.getId(), gfxid));
			_attacker.broadcastPacket(new S_SkillSound(targetPc.getId(), gfxid));
		} else if (_target instanceof L1NpcInstance) {
			L1NpcInstance targetNpc = (L1NpcInstance) _target;
			_attacker.sendPackets(new S_SkillSound(targetNpc.getId(), gfxid));
			_attacker.broadcastPacket(new S_SkillSound(targetNpc.getId(), gfxid));
		}
	}
}

このページへのコメント

W_DoMod - L1J-JP2 WarServerV2 - Seesaa Wiki鐃淑ワ申鐃緒申鐃緒申鐃緒申 for 鐃緒申鐃殉¥申鐃夙フワ申鐃緒申 moncler maya http://www.pslcbi.com/moncler2014.html

0
Posted by moncler maya 2013年12月10日(火) 01:02:25 返信

W_DoMod - L1J-JP2 WarServerV2 - Seesaa Wiki鐃淑ワ申鐃緒申鐃緒申鐃緒申 for 鐃緒申鐃殉¥申鐃夙フワ申鐃緒申 ≪潟若 激c <潟 http://www.pslcbi.com/moncler2014.html

0
Posted by ≪潟若 激c <潟 2013年12月08日(日) 13:53:33 返信

W_DoMod - L1J-JP2 WarServerV2 - Seesaa Wiki鐃淑ワ申鐃緒申鐃緒申鐃緒申 for 鐃緒申鐃殉¥申鐃夙フワ申鐃緒申 ≪潟若 2014 <潟 http://www.pslcbi.com/moncler2014.html

0
Posted by ≪潟若 2014 <潟 2013年12月07日(土) 17:39:15 返信

zooWmm <a href="http://scqvmahpjofc.com/">scqvmahpjofc</a>, [url=http://pngnounxaxaa.com/]pngnounxaxaa[/url], [link=http://aoyjhladacox.com/]aoyjhladacox[/link], http://drqxlestruce.com/

0
Posted by sfjaik 2013年11月14日(木) 18:49:01 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます