void ZCharacterObject::EnChantMovingEffect(rvector* pOutPos,int cnt,ZC_ENCHANT etype,bool bDoubleWeapon) { int nRand = (GetEffectLevel()+1) * 3;//ÀÌÆåÆ® ¿É¼Ç¿¡ µû¶ó¼.. if( ZGetGame()->GetGameTimer()->m_dwUpdateCnt % nRand == 0 ) { if(cnt==0) { m_pVMesh->GetWeaponPos( pOutPos ); } float asf = (rand()%10)/10.f; rvector pos = pOutPos[0] + (pOutPos[1]-pOutPos[0]) * asf; DrawEnchantSub( etype , pos ); if(bDoubleWeapon) // ¾ç¼ÕÀÏ°æ¿ì { if(cnt==0) { m_pVMesh->GetWeaponPos( &pOutPos[2] ,true); } float asf = (rand()%10)/10.f; rvector pos = pOutPos[2] + (pOutPos[3]-pOutPos[2]) * asf; DrawEnchantSub( etype , pos ); } } }
bool ZModule_PoisonDamage::Update(float fElapsed) { ZObject* pObj = MDynamicCast(ZObject, m_pContainer); if (!pObj) _ASSERT(0); else { // ������ ���� DAMAGE_DELAY if(ZGetGame()->GetTime()>m_fNextDamageTime) { m_fNextDamageTime+=DAMAGE_DELAY; // ������ �ް� �ִ� ����Ʈ ������ ������ ���������� ���� ���¿����� ���δ�.. if(pObj->IsDie()) { if( pObj->m_pVMesh->GetVisibility() < 0.5f ) {//����Ʈ�� Life Ÿ�ӵ� �����ϱ�... m_bOnDamage = false; return false; } } else //�����������.. { // ������� ������Ʈ�� ���⼭ �����Ϸ��������� ����� ������ �ȵ� �ϴ� �ּ�ó���Ѵ� // 5 * (1.f-fPR) �̺κж����� zitem.xml���� damage="1"�κκ��� damage="6"�� �ϴ� ���� //float fPR = 0; //float fDamage = 5 * (1.f-fPR) + (float)m_nDamage; pObj->OnDamaged(m_pOwner, pObj->GetPosition(), ZD_LIGHTNING, MWT_NONE, m_fDamage, 1); /*ZModule_HPAP *pModule = (ZModule_HPAP*)m_pContainer->GetModule(ZMID_HPAP); if(pModule) { pModule->OnDamage(m_pOwner,m_fDamage,1); // pObj->OnScream(); }*/ } } if(ZGetGame()->GetTime()>m_fNextEffectTime) { if(!pObj->IsDie()) { int nEffectLevel = GetEffectLevel()+1; m_fNextEffectTime+=EFFECT_DELAY * nEffectLevel; ZGetEffectManager()->AddEnchantPoison2( pObj ); } } } if(m_fNextDamageTime-m_fBeginTime>m_fDuration) { m_bOnDamage = false; return false; } return true; }