[Development] Custom Bows & Crossbows Client Source (1.03K)

Page 4 of 4 FirstFirst 1234
Results 46 to 50 of 50
  1. #46
    0x4D696E68 myheart is offline
    MemberRank
    Jun 2017 Join Date
    354Posts

    re: [Development] Custom Bows & Crossbows Client Source (1.03K)

    decompiled version main 1.04.05

    Code:
    SetRange((LPVOID)0x00749C90,0x94A,ASM::NOP);
    SetOp((LPVOID)0x00749C90,(LPVOID)CreateBowSkillEffect,ASM::JMP);
    
    
    void CreateBowSkillEffect(DWORD lpObj, DWORD lpModel, DWORD Owner, BYTE a4, BYTE a5, WORD Skill)
    {
        short Bow;
        short CrossBow;
        int EffectType;
    
        lpViewObj gObj = &*(ObjectPreview*)lpObj;
        lpModelObj gModel = &*(ViewPortObject*)lpModel;
    
        vec3_t Color;
        vec3_t VecPos;
        vec3_t WorldPos;
        Vector(gModel->ColorR, gModel->ColorG, gModel->ColorB, Color);
        Vector(gModel->VecPos.X, gModel->VecPos.Y, gModel->VecPos.Z, VecPos);
        Vector(gModel->WorldPos.X, gModel->WorldPos.Y, gModel->WorldPos.Z, WorldPos);
    
        EffectType = 0;
        CrossBow = gObj->WeaponFirstSlot;
        Bow = gObj->WeaponSecondSlot;
        if (lpObj == oUserPreviewStruct)
        {
      CrossBow = *((short *)oUserObjectStruct_ + 2336);
      Bow = *(short *)(oUserObjectStruct_ + 4779);
      if (CrossBow != -1)
       CrossBow += ITEM_BASE_MODEL;
      if (Bow != -1)
       Bow += ITEM_BASE_MODEL;
        }
        if (Skill == Penetration || Skill == PenetrationImproved)
        {
      EffectType = 2;
      sub_6D6C20(85, lpModel, 0);
        }
        *(int*)0x8793730 = Skill;
      if (Skill == IceArrow || Skill == IceArrowImproved)
      sub_6D6C20(130, lpModel, 0);
        if (a5 == 2)
      EffectType = 99;
        if (Skill == Starfall)
        {
      gEffect.CreateEffect(365, VecPos, WorldPos, Color, 0, Owner, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
        }
        else
        {
      switch (CrossBow)
      {
      case 3227:
      {
       gEffect.CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
      }
      break;
      case 3228:
       gEffect.CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3229:
       gEffect.CreateEffect(271, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3230:
       gEffect.CreateEffect(269, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3231:
       gEffect.CreateEffect(268, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3232:
       gEffect.CreateEffect(274, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3233:
       gEffect.CreateEffect(273, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3235:
       gEffect.CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3237:
       gEffect.CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3238:
       gEffect.CreateEffect(324, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 26): //Devil CrossBow
       gEffect.CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      default:
       break;
      }
      switch (Bow)
      {
      case 3219:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3220:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3221:
       gEffect.CreateEffect(270, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3222:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3223:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3224:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3225:
       gEffect.CreateEffect(272, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3236:
       gEffect.CreateEffect(295, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3239:
       gEffect.CreateEffect(335, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3240:
       gEffect.CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3241:
       gEffect.CreateEffect(297, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3242:
       gEffect.CreateEffect(298, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3243:
       gEffect.CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3246:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 25): //Angelic Bow
       gEffect.CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 28): //Bloodangel Bow
       gEffect.CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 36): //Holyangel Bow
      {
       int EID[10] = { 266, 270, 272, 295, 335, 296, 297, 298, 509, 266 };
       gEffect.CreateEffect(EID[rand() % 10], VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       //gEffect.CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
      }
      break;
      default:
       break;
      }
        }
    }
    Last edited by myheart; 02-04-18 at 01:41 PM.

  2. #47
    Member sombe30 is offline
    MemberRank
    Jun 2012 Join Date
    88Posts

    re: [Development] Custom Bows & Crossbows Client Source (1.03K)

    Plss have offsets Muemu s4 1.05D

  3. #48
    Valued Member webmonkey is offline
    MemberRank
    Jul 2005 Join Date
    125Posts

    re: [Development] Custom Bows & Crossbows Client Source (1.03K)

    I'm having trouble with penetration arrow and custom bows, effect is drawn but it does not send packet to server and arrow doesn't go through enemies. also, arrows are not being reloaded like in a normal bow. am I missing something somewhere?

  4. #49
    (づ。◕‿‿◕。) Natzugen is offline
    MemberRank
    Jun 2014 Join Date
    ElbelandLocation
    1,858Posts

    Re: [Development] Custom Bows & Crossbows Client Source (1.03K)

    Quote Originally Posted by myheart View Post
    decompiled version main 1.04.05

    Code:
    SetRange((LPVOID)0x00749C90,0x94A,ASM::NOP);
    SetOp((LPVOID)0x00749C90,(LPVOID)CreateBowSkillEffect,ASM::JMP);
    
    
    void CreateBowSkillEffect(DWORD lpObj, DWORD lpModel, DWORD Owner, BYTE a4, BYTE a5, WORD Skill)
    {
        short Bow;
        short CrossBow;
        int EffectType;
    
        lpViewObj gObj = &*(ObjectPreview*)lpObj;
        lpModelObj gModel = &*(ViewPortObject*)lpModel;
    
        vec3_t Color;
        vec3_t VecPos;
        vec3_t WorldPos;
        Vector(gModel->ColorR, gModel->ColorG, gModel->ColorB, Color);
        Vector(gModel->VecPos.X, gModel->VecPos.Y, gModel->VecPos.Z, VecPos);
        Vector(gModel->WorldPos.X, gModel->WorldPos.Y, gModel->WorldPos.Z, WorldPos);
    
        EffectType = 0;
        CrossBow = gObj->WeaponFirstSlot;
        Bow = gObj->WeaponSecondSlot;
        if (lpObj == oUserPreviewStruct)
        {
      CrossBow = *((short *)oUserObjectStruct_ + 2336);
      Bow = *(short *)(oUserObjectStruct_ + 4779);
      if (CrossBow != -1)
       CrossBow += ITEM_BASE_MODEL;
      if (Bow != -1)
       Bow += ITEM_BASE_MODEL;
        }
        if (Skill == Penetration || Skill == PenetrationImproved)
        {
      EffectType = 2;
      sub_6D6C20(85, lpModel, 0);
        }
        *(int*)0x8793730 = Skill;
      if (Skill == IceArrow || Skill == IceArrowImproved)
      sub_6D6C20(130, lpModel, 0);
        if (a5 == 2)
      EffectType = 99;
        if (Skill == Starfall)
        {
      gEffect.CreateEffect(365, VecPos, WorldPos, Color, 0, Owner, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
        }
        else
        {
      switch (CrossBow)
      {
      case 3227:
      {
       gEffect.CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
      }
      break;
      case 3228:
       gEffect.CreateEffect(267, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3229:
       gEffect.CreateEffect(271, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3230:
       gEffect.CreateEffect(269, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3231:
       gEffect.CreateEffect(268, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3232:
       gEffect.CreateEffect(274, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3233:
       gEffect.CreateEffect(273, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3235:
       gEffect.CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3237:
       gEffect.CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3238:
       gEffect.CreateEffect(324, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 26): //Devil CrossBow
       gEffect.CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      default:
       break;
      }
      switch (Bow)
      {
      case 3219:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3220:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3221:
       gEffect.CreateEffect(270, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3222:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3223:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3224:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3225:
       gEffect.CreateEffect(272, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3236:
       gEffect.CreateEffect(295, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3239:
       gEffect.CreateEffect(335, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3240:
       gEffect.CreateEffect(296, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3241:
       gEffect.CreateEffect(297, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3242:
       gEffect.CreateEffect(298, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3243:
       gEffect.CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case 3246:
       gEffect.CreateEffect(266, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 25): //Angelic Bow
       gEffect.CreateEffect(509, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 28): //Bloodangel Bow
       gEffect.CreateEffect(321, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       break;
      case ITEM2(4, 36): //Holyangel Bow
      {
       int EID[10] = { 266, 270, 272, 295, 335, 296, 297, 298, 509, 266 };
       gEffect.CreateEffect(EID[rand() % 10], VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
       //gEffect.CreateEffect(294, VecPos, WorldPos, Color, EffectType, lpModel, *(short *)(lpModel + 44), a4, a5, 0, 0.0, -1);
      }
      break;
      default:
       break;
      }
        }
    }
    can you share gEffect.CreateEffect ?

    Edit: nevermind, got it working, thanks a lot.
    Last edited by Natzugen; 06-11-18 at 05:19 AM.

  5. #50
    Valued Member tangyi90 is offline
    MemberRank
    Oct 2014 Join Date
    128Posts

    Re: [Development] Custom Bows & Crossbows Client Source (1.03K)

    Hi myheart help me add bow custom in season 9.2(IGC) please ^_^



Page 4 of 4 FirstFirst 1234

Advertisement