Re: [TF2] Creating rockets without rocket launcher
Here is my code, everythings works well except the fact the rocket doesnt do any damage when it explodes, if any one knows why...
PHP Code:
public Action spawndemo(client, args) { float epos[3], eyangl[3]; GetClientEyePosition(client, epos); GetClientEyeAngles(client, eyangl); fireProjectile(epos, eyangl, 1100.0, 90.0, GetClientTeam(client), PROJECTILE_ROCKET, true); }
int fireProjectile(Float:vPosition[3], Float:vAngles[3] = NULL_VECTOR, Float:flSpeed = 1100.0, Float:flDamage = 90.0, iTeam = 1, iType = PROJECTILE_ROCKET, bool:bCritical = false) { new String:strClassname[32] = ""; new String:strEntname[32] = ""; switch (iType) { case PROJECTILE_ROCKET: { strClassname = "CTFProjectile_Rocket"; strEntname = "tf_projectile_rocket"; } case PROJECTILE_ROCKET_SENTRY: { strClassname = "CTFProjectile_SentryRocket"; strEntname = "tf_projectile_sentryrocket"; } default: { return -1; } }
new iRocket = CreateEntityByName(strEntname); if(!IsValidEntity(iRocket)) { return -1; } decl Float:vVelocity[3]; decl Float:vBuffer[3]; GetAngleVectors(vAngles, vBuffer, NULL_VECTOR, NULL_VECTOR); vVelocity[0] = vBuffer[0]*flSpeed; vVelocity[1] = vBuffer[1]*flSpeed; vVelocity[2] = vBuffer[2]*flSpeed; TeleportEntity(iRocket, vPosition, vAngles, vVelocity); SetEntData(iRocket, FindSendPropInfo(strClassname, "m_nSkin"), (iTeam-2), 1, true); if (iType == PROJECTILE_ROCKET) { SetEntData(iRocket, FindSendPropInfo(strClassname, "m_bCritical"), bCritical, true); } else { } SetEntDataFloat(iRocket, FindSendPropInfo(strClassname, "m_iDeflected") + 4, flDamage, true); // Credit to voogru SetVariantInt(iTeam); AcceptEntityInput(iRocket, "TeamNum", -1, -1, 0);
SetVariantInt(iTeam); AcceptEntityInput(iRocket, "SetTeam", -1, -1, 0); if (iType == PROJECTILE_ROCKET_SENTRY) { new iVisModel = CreateEntityByName("tfdb_nukeskin"); SetEntityModel(iVisModel, NUKE_MODEL); SetEntityModel(iRocket, NUKE_MODEL); SetVariantString("!activator"); AcceptEntityInput(iVisModel, "SetParent", iRocket); new Float:vOrigin[3] = {0.0, 0.0, 0.0}; TeleportEntity(iVisModel, vOrigin, vAngles, NULL_VECTOR); SetEntData(iVisModel, FindSendPropInfo(strClassname, "m_nSkin"), (iTeam-2), 1, true); SetVariantInt(iTeam); AcceptEntityInput(iVisModel, "TeamNum", -1, -1, 0); SetVariantInt(iTeam); AcceptEntityInput(iVisModel, "SetTeam", -1, -1, 0); DispatchKeyValue(iVisModel, "solid", "0"); DispatchSpawn(iVisModel); SetEntityRenderMode(iRocket, RENDER_TRANSCOLOR); SetEntityRenderColor(iRocket, 255, 255, 255, 0); } DispatchSpawn(iRocket); return iRocket; }
|