Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void CWarpGreen::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
- {
- int iTimes = 0;
- int iDrawn = 0;
- TraceResult tr1; TraceResult tr2; TraceResult tr3; TraceResult tr4; TraceResult tr5; TraceResult tr6;
- Vector vecDest1; Vector vecDest2; Vector vecDest3; Vector vecDest4; Vector vecDest5; Vector vecDest6;
- CBeam *pBeam1; CBeam *pBeam2; CBeam *pBeam3; CBeam *pBeam4; CBeam *pBeam5; CBeam *pBeam6;
- while (iDrawn<pev->frags && iTimes<(pev->frags * 8)) // try to draw <frags> beams, but give up after 3x<frags> tries.
- {
- // 1ST
- vecDest1 = pev->health * (Vector(RANDOM_FLOAT(-1, 1), RANDOM_FLOAT(-1, 1), RANDOM_FLOAT(-1, 1)).Normalize());
- UTIL_TraceLine(pev->origin, pev->origin + vecDest1, ignore_monsters, NULL, &tr1);
- UTIL_TraceLine(pev->origin, pev->origin + vecDest2, ignore_monsters, NULL, &tr2);
- UTIL_TraceLine(pev->origin, pev->origin + vecDest3, ignore_monsters, NULL, &tr3);
- UTIL_TraceLine(pev->origin, pev->origin + vecDest4, ignore_monsters, NULL, &tr4);
- UTIL_TraceLine(pev->origin, pev->origin + vecDest5, ignore_monsters, NULL, &tr5);
- UTIL_TraceLine(pev->origin, pev->origin + vecDest6, ignore_monsters, NULL, &tr6);
- if (tr1.flFraction != 1.0) // we hit something.
- {
- iDrawn++;
- pBeam1 = CBeam::BeamCreate("sprites/lgtning.spr", 200);
- pBeam1->PointsInit(pev->origin, tr1.vecEndPos);
- pBeam1->pev->spawnflags |= (SF_BEAM_SPARKSTART | SF_BEAM_SPARKEND | SF_BEAM_DECALS | SF_BEAM_SHADEIN | SF_BEAM_SHADEOUT);
- pBeam1->SetColor(145, 243, 115);
- pBeam1->SetNoise(100);
- pBeam1->SetBrightness(255);
- pBeam1->SetWidth(32);
- pBeam1->SetScrollRate(55);
- pBeam1->pev->nextthink = gpGlobals->time + 0.1f;
- pBeam1->SetThink(&CBeam::SUB_Remove);
- pBeam1->PointsInit(pev->origin, tr2.vecEndPos);
- pBeam1->RelinkBeam;
- pBeam1->pev->nextthink = gpGlobals->time + 0.1f;
- pBeam1->SetThink(&CBeam::SUB_Remove);
- pBeam1->PointsInit(pev->origin, tr3.vecEndPos);
- pBeam1->RelinkBeam;
- pBeam1->pev->nextthink = gpGlobals->time + 0.1f;
- pBeam1->SetThink(&CBeam::SUB_Remove);
- pBeam1->PointsInit(pev->origin, tr4.vecEndPos);
- pBeam1->RelinkBeam;
- pBeam1->pev->nextthink = gpGlobals->time + 0.1f;
- pBeam1->SetThink(&CBeam::SUB_Remove);
- pBeam1->PointsInit(pev->origin, tr5.vecEndPos);
- pBeam1->RelinkBeam;
- pBeam1->pev->nextthink = gpGlobals->time + 0.1f;
- pBeam1->SetThink(&CBeam::SUB_Remove);
- pBeam1->PointsInit(pev->origin, tr6.vecEndPos);
- pBeam1->RelinkBeam;
- }
- iTimes++;
- }
- //EMIT_SOUND(edict(), CHAN_BODY, "debris/beamstart2.wav", 1, ATTN_NORM);
- gSOUND.PlayScriptSound("XEN.beamstart2", pev->origin);
- CSprite *pSpr = CSprite::SpriteCreate("sprites/exit1.spr", pev->origin, TRUE);
- pSpr->SetScale(0.80);
- pSpr->AnimateAndDie(32);
- pSpr->SetTransparency(kRenderGlow, 255, 255, 255, 255, kRenderFxNoDissipation);
- //CSprite *pSpr =
- //CSprite *pSpr = CSprite::SpriteCreate("sprites/XFlare1.spr", pev->origin, TRUE);
- pSpr = CSprite::SpriteCreate("sprites/XFlare1.spr", pev->origin, TRUE);
- pSpr->pev->frame = 0;
- pSpr->SetScale(4);
- pSpr->AnimateAndDie(24);
- pSpr->SetTransparency(kRenderGlow, 147, 250, 92, 200, kRenderFxNoDissipation);
- pev->nextthink = gpGlobals->time + 0.1f;
- }
- void CWarpGreen::Think(void)
- {
- UTIL_WarpGreen(pev->origin);
- //EMIT_SOUND(edict(), CHAN_ITEM, "debris/beamstart7.wav", 1, ATTN_NORM);
- gSOUND.PlayScriptSound("XEN.beamstart7", pev->origin);
- SUB_UseTargets(this, USE_TOGGLE, 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement