case (ushort)enums.spellid.crackingshock:
case (ushort)enums.spellid.crackingshock: { msgspellanimation msgspell = new msgspellanimation(user.entity.uid , 0, attack.x, attack.y, clientspell.id , clientspell.level, clientspell.usespellsoul); uint experience = 0; foreach (interfaces.imapobject target in user.screen.objects) { if (target.mapobjtype == mapobjecttype.monster) { game.entity attacked = target as game.entity; if (calculate.base.getdistance(attack.x, attack.y, attacked.x, attacked.y) < dbspell.range / 3) { if (checkattack.canattackmonster.verified(user, attacked, dbspell)) { msgspellanimation.spellobj animationobj; calculate.physical.onmonster(user.entity, attacked, dbspell, out animationobj); animationobj.damage = calculate.base.calculatesoul(animationobj.damage, clientspell.usespellsoul); experience += receiveattack.monster.execute(stream, animationobj, user, attacked); user.messagebox("100"); msgspell.targets.enqueue(animationobj); } } } } foreach (interfaces.imapobject targer in user.screen.objects) { var attacked = targer as game.entity; if (targer.mapobjtype == mapobjecttype.entity && user.entity.uid != targer.uid) { if (calculate.base.getdistance(attack.x, attack.y, attacked.x, attacked.y) < dbspell.range / 3) { if (checkattack.canattackplayer.verified(user, attacked, dbspell)) { msgspellanimation.spellobj animationobj; calculate.physical.onplayer(user.entity, attacked, dbspell, out animationobj); animationobj.damage = calculate.base.calculatesoul(animationobj.damage, clientspell.usespellsoul); animationobj.damage = animationobj.damage * 20 / 100; receiveattack.player.execute(stream, animationobj, user, attacked); msgspell.targets.enqueue(animationobj); } } } } foreach (interfaces.imapobject targer in user.screen.objects) { if (targer.mapobjtype == mapobjecttype.sobnpc) { var attacked = targer as network.gamepackets.sobnpcspawn; if (calculate.base.getdistance(attack.x, attack.y, attacked.x, attacked.y) < dbspell.range / 3) { if (checkattack.canattacknpc.verified(user, attacked, dbspell)) { msgspellanimation.spellobj animationobj; calculate.physical.onnpcs(user.entity, attacked, dbspell, out animationobj); animationobj.damage = calculate.base.calculatesoul(animationobj.damage, clientspell.usespellsoul); experience += receiveattack.npc.execute(stream, animationobj, user, attacked); msgspell.targets.enqueue(animationobj); } } } } updates.increaseexperience.up(stream, user, experience); updates.updatespell.checkupdate(stream, user, attack, experience, dbspells); msgspell.setstream(stream); msgspell.send(user); break; }