void CreateBowSkillEffect(DWORD lpObj, DWORD lpModel, DWORD Owner, BYTE a4, BYTE a5, WORD Skill)
{
lpViewObj gObj = &*(ObjectPreview*)lpObj;
lpModelObj gModel = &*(ObjectModel*)lpModel;
vec3_t Color;
vec3_t VecPos;
vec3_t WorldPos;
Vector(gModel->ColorR, gModel->ColorG, gModel->ColorB, Color);
Vector(gModel->VecPosX, gModel->VecPosY, gModel->VecPosZ, VecPos);
Vector(gModel->WorldPos.X, gModel->WorldPos.Y, gModel->WorldPos.Z, WorldPos);
int EffectType = 0;
short CrossBow = gObj->WeaponFirstSlot;
short Bow = gObj->WeaponSecondSlot;
if (lpObj == oUserPreviewStruct)
{
CrossBow = gObjUser.lpPlayer->pEquipment[0].ItemID;
Bow = gObjUser.lpPlayer->pEquipment[1].ItemID;
if (CrossBow != -1) CrossBow += ITEM_INTER;
if (Bow != -1) Bow += ITEM_INTER;
}
if (Skill == 52 || Skill == 416)
{
EffectType = 2;
pChatReserveLine(85, (int)lpModel, 0);
}
*(int*)0x8793730 = Skill;
if (Skill == 51 || Skill == 424)
pChatReserveLine(130, (int)lpModel, 0);
if (a5 == 2)
EffectType = 99;
if (Skill == 46)
{
CreateEffect(365, VecPos, WorldPos, Color, 0, Owner, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
}
else
{
if (gCustomBow.CheckCustomBow(CrossBow-ITEM_INTER) || gCustomBow.CheckCustomBow(Bow-ITEM_INTER))
{
for (int i = 0; i < 100; i++)
{
if ((CrossBow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex) || (Bow-ITEM_INTER) == (gCustomBow.m_CustomBow[i].ItemIndex))
{
CreateEffect(gCustomBow.m_CustomBow[i].EffectId, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
return;
}
}
}
switch ( CrossBow )
{
case 3227:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3228:
CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3229:
CreateEffect(271, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3230:
CreateEffect(269, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3231:
CreateEffect(268, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3232:
CreateEffect(274, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3233:
CreateEffect(273, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3235:
CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3237:
CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3238:
CreateEffect(324, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
break;
}
switch ( Bow )
{
case 3219:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3220:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3221:
CreateEffect(270, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3222:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3223:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3224:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3225:
CreateEffect(272, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3236:
CreateEffect(295, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3239:
CreateEffect(335, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3240:
CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3241:
CreateEffect(297, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3242:
CreateEffect(298, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3243:
CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
case 3246:
CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short*)(lpModel + 44), a4, a5, 0, 0.0, -1);
break;
default:
return;
}
//--
}
}