コード例 #1
0
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 );
        }
    }
}
コード例 #2
0
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;
}