Raised This Month: $ Target: $400
 0% 

How to spawn a working CTFProjectile_Rocket?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
#Barracuda
Junior Member
Join Date: May 2008
Location: Germany
Old 07-28-2008 , 18:23   How to spawn a working CTFProjectile_Rocket?
Reply With Quote #1

Hi, I'm currently working on a rocket tennis map for Team Fortress 2 (watch this video for a rocket tennis example) and I like to replace the barely used soldier with a SourceMod-plugin.

So I need to spawn a rocket manually, since it isn't possible to give the pyro a foreign weapon anymore.
This is what I got so far:

PHP Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

new ent_rocket = -1;
new 
float:rocket_speed 800.0;

public 
Plugin:myinfo =
{
    
name "Rocketspawner",
    
author "Barracuda",
    
description "",
    
version "1.0",
    
url ""
};

public 
OnPluginStart()
{
    
RegConsoleCmd("rocket_spawn"Command_Spawn);
}

public 
Action:Command_Spawn(clientargs)
{
    
CreateTimer(1.0SpawnRocketclient);
    return 
Plugin_Handled;    
}

public 
Action:SpawnRocket(Handle:timerany:client)
{
    new 
Float:ori[3];
    new 
Float:ang[3];
    
    
GetClientEyeAngles(clientang); 
    
GetClientAbsOrigin(clientori);
    
    
ori[2] += 10;

    
ent_rocket CreateEntityByName("tf_projectile_rocket");
    
    
SetEntDataEnt(ent_rocketFindSendPropInfo("CTFProjectile_Rocket""m_hOwnerEntity"), clienttrue);
    
SetEntData(ent_rocketFindSendPropInfo("CTFProjectile_Rocket""m_bCritical"), 11true);
    
SetEntData(ent_rocketFindSendPropInfo("CTFProjectile_Rocket""m_iTeamNum"), GetClientTeam(client), true);
    
SetEntDataVector(ent_rocketFindSendPropInfo("CTFProjectile_Rocket""m_angRotation"), angtrue); 
    
    
DispatchSpawn(ent_rocket);
    
TeleportEntity(ent_rocketoriNULL_VECTORNULL_VECTOR);
}

public 
OnGameFrame()
{
    if(!
IsValidEntity(ent_rocket))
        return;

    new 
Float:ang[3], Float:fwd[3], Float:right[3], Float:up[3];

    
GetEntDataVector(ent_rocketFindSendPropInfo("CTFProjectile_Rocket""m_angRotation"), ang);
    
GetAngleVectors(angfwdrightup);
    
ScaleVector(fwdrocket_speed);

    
TeleportEntity(ent_rocketNULL_VECTORNULL_VECTORfwd);

First, I tried without the OnGameFrame()-forward. The rocket appeared correctly, but was just hovering above the ground, doing nothing. I also tried to change m_vInitialVelocity and some other vectors, but without success.

Then I found this thread and reused the code to move the rocket manually with each frame, now the rocket actually flies but it doesn't do any damage on impact.

Does anybody know how to spawn a rocket projectile that is moving for itself and actually does damage?

Here's an entity dump of a flying CTFProjectile_Rocket:

Code:
CTFProjectile_Rocket.baseclass.baseclass.baseclass.AnimTimeMustBeFirst.m_flAnimTime = 1142536028
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_flSimulationTime = 1142570926
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_vecOrigin = -1627.249023,2342.623779,-306.239075
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_nModelIndex = -65325
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_vecMins = 0.000000,0.000000,0.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_vecMaxs = 0.000000,0.000000,0.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_nSolidType = 2
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_usSolidFlags = 105709568
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_nSurroundType = 512
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_triggerBloat = 0
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_vecSpecifiedSurroundingMins = 0.000000,0.000000,0.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_Collision.m_vecSpecifiedSurroundingMaxs = 0.000000,0.000000,0.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_nRenderFX = 13828096
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_nRenderMode = -16723200
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_fEffects = 16
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_clrRender = -1
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_iTeamNum = 2
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_CollisionGroup = 24
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_flElasticity = 1.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_flShadowCastDistance = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_hOwnerEntity = 1490945
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_hEffectEntity = -1
CTFProjectile_Rocket.baseclass.baseclass.baseclass.moveparent = -1
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_iParentAttachment = -16645120
CTFProjectile_Rocket.baseclass.baseclass.baseclass.movetype = -65020
CTFProjectile_Rocket.baseclass.baseclass.baseclass.movecollide = -254
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_angRotation = 2.892962,176.146378,0.000000
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_iTextureFrameIndex = 256
CTFProjectile_Rocket.baseclass.baseclass.baseclass.predictable_id.m_PredictableID = 0
CTFProjectile_Rocket.baseclass.baseclass.baseclass.predictable_id.m_bIsPlayerSimulated = 0
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_bSimulatedEveryTick = 1
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_bAnimatedEveryTick = 0
CTFProjectile_Rocket.baseclass.baseclass.baseclass.m_bAlternateSorting = 0
CTFProjectile_Rocket.baseclass.baseclass.m_nForceBone = 0
CTFProjectile_Rocket.baseclass.baseclass.m_vecForce = 0.000000,0.000000,0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_nSkin = 0
CTFProjectile_Rocket.baseclass.baseclass.m_nBody = 0
CTFProjectile_Rocket.baseclass.baseclass.m_nHitboxSet = 0
CTFProjectile_Rocket.baseclass.baseclass.m_flModelWidthScale = 1.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.000 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.001 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.002 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.003 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.004 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.005 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.006 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.007 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.008 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.009 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.010 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.011 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.012 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.013 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.014 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.015 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.016 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.017 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.018 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.019 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.020 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.021 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.022 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flPoseParameter.023 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_nSequence = 0
CTFProjectile_Rocket.baseclass.baseclass.m_flPlaybackRate = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flEncodedController.000 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flEncodedController.001 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flEncodedController.002 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flEncodedController.003 = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_bClientSideAnimation = 0
CTFProjectile_Rocket.baseclass.baseclass.m_bClientSideFrameReset = 0
CTFProjectile_Rocket.baseclass.baseclass.m_nNewSequenceParity = 0
CTFProjectile_Rocket.baseclass.baseclass.m_nResetEventsParity = 0
CTFProjectile_Rocket.baseclass.baseclass.m_nMuzzleFlashParity = 0
CTFProjectile_Rocket.baseclass.baseclass.m_hLightingOrigin = -1
CTFProjectile_Rocket.baseclass.baseclass.m_hLightingOriginRelative = -1
CTFProjectile_Rocket.baseclass.baseclass.serveranimdata.m_flCycle = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_fadeMinDist = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_fadeMaxDist = 0.000000
CTFProjectile_Rocket.baseclass.baseclass.m_flFadeScale = 0.000000
CTFProjectile_Rocket.baseclass.m_vInitialVelocity = -1096.114258,73.834381,-55.517281
CTFProjectile_Rocket.baseclass.m_vecOrigin = -1627.249023,2342.623779,-306.239075
CTFProjectile_Rocket.baseclass.m_angRotation = 2.892962,176.146378,0.000000
CTFProjectile_Rocket.baseclass.m_iReflected = 0
CTFProjectile_Rocket.m_bCritical = 0

Last edited by #Barracuda; 07-28-2008 at 18:25. Reason: Grammar ^^
#Barracuda is offline
DJ Tsunami
DJ Post Spammer
Join Date: Feb 2008
Location: The Netherlands
Old 07-28-2008 , 19:01   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #2

You can have weapons shoot different projectiles, if I remember correctly teddyruxpin edited his pyro's CTX file to shoot rockets instead of fire. Just search for CTX on the forums to learn more.
__________________
Advertisements | REST in Pawn - HTTP client for JSON REST APIs
Please do not PM me with questions. Post in the plugin thread.
DJ Tsunami is offline
pRED*
Join Date: Dec 2006
Old 07-28-2008 , 19:50   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #3

http://www.youtube.com/watch?v=z7zk9lL1kA4

Coming Soon.
pRED* is offline
DontWannaName
Veteran Member
Join Date: Jun 2007
Location: VALVe Land, WA
Old 07-28-2008 , 19:59   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #4

Quote:
Originally Posted by pRED* View Post
Oh my, sounds almost as fun as spawning thousands of sentrys.
__________________

DontWannaName is offline
#Barracuda
Junior Member
Join Date: May 2008
Location: Germany
Old 07-28-2008 , 22:12   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #5

Ok, that could work... I'll try it. Thanks
#Barracuda is offline
teddyruxpin
Overseer of lost packets
Join Date: Feb 2008
Old 07-29-2008 , 10:41   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #6

Quote:
Originally Posted by pRED* View Post

You tease! Gimme Gimee

And for the OP you can modify the projectile type of the shotgun to fire rockets instead of the standard shotty shells.

-Teddy
teddyruxpin is offline
pRED*
Join Date: Dec 2006
Old 07-29-2008 , 16:58   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #7

I've been looking for you for days. Get on IRC damnit.
pRED* is offline
Neo Cool Dude
Member
Join Date: Apr 2008
Old 07-29-2008 , 17:06   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #8

How did you change the projectile in console?
Neo Cool Dude is offline
bl4nk
SourceMod Developer
Join Date: Jul 2007
Old 07-29-2008 , 17:21   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #9

It's something pRED has been working on with me. It's not released right now as there's still some work to do on it.
bl4nk is offline
teddyruxpin
Overseer of lost packets
Join Date: Feb 2008
Old 07-29-2008 , 22:03   Re: How to spawn a working CTFProjectile_Rocket?
Reply With Quote #10

Quote:
Originally Posted by pRED* View Post
I've been looking for you for days. Get on IRC damnit.

I am out of town in Chicago for an event. I will try and get online later tonight.

-Teddy
teddyruxpin is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:47.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode