PDA

View Full Version : What is proper SDKCallType?


tjdgns9246
01-26-2012, 08:58
hello modders.

i have made plugin using vtable function.

and now, when i run my function, server crashes.

so i wondered if my setting was going wrong or not.

the point is what is proper SDKCallType for CBaseCombatWeapon offset?


// Auto reconstructed from vtable block @ 0x00CA5820
// from "server.so", by ida_vtables.idc
0 CBaseCombatWeapon::~CBaseCombatWeapon()
1 CBaseEntity::SetRefEHandle(CBaseHandle const&)
2 CBaseEntity::GetRefEHandle(void)const
3 CBaseEntity::GetCollideable(void)
4 CBaseEntity::GetNetworkable(void)
5 CBaseEntity::GetBaseEntity(void)
6 CBaseEntity::GetModelIndex(void)const
7 CBaseEntity::GetModelName(void)const
8 CBaseEntity::SetModelIndex(int)
9 CBaseCombatWeapon::GetServerClass(void)
10 CBaseCombatWeapon::YouForgotToImplementOrDecl areServerClass(void)
11 CBaseCombatWeapon::GetDataDescMap(void)
12 CBaseAnimating::TestCollision(Ray_t const&,unsigned int,CGameTrace &)
13 CBaseAnimating::TestHitboxes(Ray_t const&,unsigned int,CGameTrace &)
14 CBaseEntity::ComputeWorldSpaceSurroundingBox( Vector *,Vector *)
15 CBaseEntity::ShouldCollide(int,int)const
16 CBaseEntity::SetOwnerEntity(CBaseEntity*)
17 CBaseEntity::ShouldTransmit(CCheckTransmitInf o const*)
18 CBaseCombatWeapon::UpdateTransmitState(void)
19 CBaseAnimating::SetTransmit(CCheckTransmitInf o *,bool)
20 CBaseEntity::GetTracerType(void)
21 CBaseCombatWeapon::Spawn(void)
22 CBaseCombatWeapon::Precache(void)
23 CBaseAnimating::SetModel(char const*)
24 CEconEntity::OnNewModel(void)
25 CBaseEntity::PostConstructor(char const*)
26 CBaseEntity::PostClientActive(void)
27 CBaseEntity::ParseMapData(CEntityMapData *)
28 CBaseEntity::KeyValue(char const*,char const*)
29 CBaseEntity::KeyValue(char const*,float)
30 CBaseEntity::KeyValue(char const*,Vector const&)
31 CBaseEntity::GetKeyValue(char const*,char *,int)
32 CBaseCombatWeapon::Activate(void)
33 CBaseEntity::SetParent(CBaseEntity*,int)
34 CBaseCombatWeapon::ObjectCaps(void)
35 CBaseEntity::AcceptInput(char const*,CBaseEntity*,CBaseEntity*,variant_t,in t)
36 CBaseAnimating::GetInputDispatchEffectPositio n(char const*,Vector &,QAngle &)
37 CBaseEntity::DrawDebugGeometryOverlays(void)
38 CBaseAnimating::DrawDebugTextOverlays(void)
39 CBaseEntity::Save(ISave &)
40 CBaseAnimating::Restore(IRestore &)
41 CBaseEntity::ShouldSavePhysics(void)
42 CBaseEntity::OnSave(IEntitySaveUtils *)
43 CBaseAnimating::OnRestore(void)
44 CBaseEntity::RequiredEdictIndex(void)
45 CBaseEntity::MoveDone(void)
46 CBaseEntity::Think(void)
47 CBaseCombatWeapon::NetworkStateChanged_m_nNex tThinkTick(void)
48 CBaseCombatWeapon::NetworkStateChanged_m_nNex tThinkTick(void *)
49 CBaseAnimating::GetBaseAnimating(void)
50 CBaseEntity::GetResponseSystem(void)
51 CBaseEntity::DispatchResponse(char const*)
52 CBaseEntity::Classify(void)
53 CBaseEntity::DeathNotice(CBaseEntity*)
54 CBaseEntity::ShouldAttractAutoAim(CBaseEntity *)
55 CBaseEntity::GetAutoAimRadius(void)
56 CBaseEntity::GetAutoAimCenter(void)
57 CBaseEntity::GetBeamTraceFilter(void)
58 CBaseEntity::PassesDamageFilter(CTakeDamageIn fo const&)
59 CBaseEntity::TraceAttack(CTakeDamageInfo const&,Vector const&,CGameTrace *)
60 CBaseEntity::CanBeHitByMeleeAttack(CBaseEntit y*)
61 CBaseEntity::OnTakeDamage(CTakeDamageInfo const&)
62 CBaseEntity::AdjustDamageDirection(CTakeDamag eInfo const&,Vector &,CBaseEntity*)
63 CBaseEntity::TakeHealth(float,int)
64 CBaseEntity::IsAlive(void)
65 CBaseEntity::Event_Killed(CTakeDamageInfo const&)
66 CBaseEntity::Event_KilledOther(CBaseEntity*,C TakeDamageInfo const&)
67 CBaseEntity::BloodColor(void)
68 CBaseEntity::IsTriggered(CBaseEntity*)
69 CBaseEntity::IsNPC(void)const
70 CBaseEntity::MyCombatCharacterPointer(void)
71 CBaseEntity::MyNextBotPointer(void)
72 CBaseEntity::GetDelay(void)
73 CBaseEntity::IsMoving(void)
74 CBaseEntity::DamageDecal(int,int)
75 CBaseEntity::DecalTrace(CGameTrace *,char const*)
76 CBaseEntity::ImpactTrace(CGameTrace *,int,char const*)
77 CBaseEntity::OnControls(CBaseEntity*)
78 CBaseEntity::HasTarget(string_t)
79 CBaseEntity::IsPlayer(void)const
80 CBaseEntity::IsNetClient(void)const
81 CBaseEntity::IsTemplate(void)
82 CBaseEntity::IsBaseObject(void)const
83 CBaseEntity::IsBaseTrain(void)const
84 CBaseCombatWeapon::IsBaseCombatWeapon(void)co nst
85 CBaseEntity::IsWearable(void)const
86 CBaseCombatWeapon::MyCombatWeaponPointer(void )
87 CBaseEntity::GetServerVehicle(void)
88 CBaseEntity::IsViewable(void)
89 CBaseEntity::ChangeTeam(int)
90 CBaseEntity::OnEntityEvent(EntityEvent_t,void *)
91 CBaseEntity::CanStandOn(CBaseEntity*)const
92 CBaseEntity::CanStandOn(edict_t *)const
93 CBaseEntity::GetEnemy(void)
94 CBaseEntity::GetEnemy(void)const
95 CBaseCombatWeapon::Use(CBaseEntity *,CBaseEntity *,USE_TYPE,float)
96 CBaseEntity::StartTouch(CBaseEntity*)
97 CBaseEntity::Touch(CBaseEntity*)
98 CBaseEntity::EndTouch(CBaseEntity*)
99 CBaseEntity::StartBlocked(CBaseEntity*)
100 CBaseEntity::Blocked(CBaseEntity*)
101 CBaseEntity::EndBlocked(void)
102 CBaseEntity::PhysicsSimulate(void)
103 CEconEntity::UpdateOnRemove(void)
104 CBaseEntity::StopLoopingSounds(void)
105 CBaseEntity::SUB_AllowedToFade(void)
106 CBaseAnimating::Teleport(Vector const*,QAngle const*,Vector const*)
107 CBaseEntity::NotifySystemEvent(CBaseEntity*,n otify_system_event_t,notify_system_event_para ms_t const&)
108 CBaseCombatWeapon::MakeTracer(Vector const&,CGameTrace const&,int)
109 CBaseEntity::GetTracerAttachment(void)
110 CBaseEntity::FireBullets(FireBulletsInfo_t const&)
111 CBaseEntity::DoImpactEffect(CGameTrace &,int)
112 CBaseEntity::ModifyFireBulletsDamage(CTakeDam ageInfo *)
113 CBaseCombatWeapon::Respawn(void)
114 CBaseEntity::IsLockedByMaster(void)
115 CBaseEntity::GetMaxHealth(void)const
116 CBaseAnimating::ModifyOrAppendCriteria(AI_Cri teriaSet &)
117 CBaseEntity::NetworkStateChanged_m_iMaxHealth (void)
118 CBaseEntity::NetworkStateChanged_m_iMaxHealth (void *)
119 CBaseEntity::NetworkStateChanged_m_iHealth(vo id)
120 CBaseEntity::NetworkStateChanged_m_iHealth(vo id *)
121 CBaseEntity::NetworkStateChanged_m_lifeState( void)
122 CBaseEntity::NetworkStateChanged_m_lifeState( void *)
123 CBaseEntity::NetworkStateChanged_m_takedamage (void)
124 CBaseEntity::NetworkStateChanged_m_takedamage (void *)
125 CBaseEntity::GetDamageType(void)const
126 CBaseEntity::GetDamage(void)
127 CBaseEntity::SetDamage(float)
128 CBaseEntity::EyePosition(void)
129 CBaseEntity::EyeAngles(void)
130 CBaseEntity::LocalEyeAngles(void)
131 CBaseEntity::EarPosition(void)
132 CBaseEntity::BodyTarget(Vector const&,bool)
133 CBaseEntity::HeadTarget(Vector const&)
134 CBaseEntity::GetVectors(Vector *,Vector *,Vector *)const
135 CBaseEntity::GetViewOffset(void)const
136 CBaseEntity::SetViewOffset(Vector const&)
137 CBaseEntity::GetSmoothedVelocity(void)
138 CBaseAnimating::GetVelocity(Vector *,Vector *)
139 CBaseEntity::FVisible(CBaseEntity*,int,CBaseE ntity**)
140 CBaseEntity::FVisible(Vector const&,int,CBaseEntity**)
141 CBaseEntity::CanBeSeenBy(CAI_BaseNPC *)
142 CBaseEntity::GetAttackDamageScale(CBaseEntity *)
143 CBaseEntity::GetReceivedDamageScale(CBaseEnti ty*)
144 CBaseEntity::GetGroundVelocityToApply(Vector &)
145 CBaseEntity::PhysicsSplash(Vector const&,Vector const&,float,float)
146 CBaseEntity::Splash(void)
147 CBaseEntity::WorldSpaceCenter(void)const
148 CBaseEntity::GetSoundEmissionOrigin(void)cons t
149 CBaseEntity::IsDeflectable(void)
150 CBaseEntity::Deflected(CBaseEntity*,Vector &)
151 CBaseEntity::CreateVPhysics(void)
152 CBaseEntity::ForceVPhysicsCollide(CBaseEntity *)
153 CBaseEntity::VPhysicsDestroyObject(void)
154 CBaseEntity::VPhysicsUpdate(IPhysicsObject *)
155 CBaseEntity::VPhysicsTakeDamage(CTakeDamageIn fo const&)
156 CBaseEntity::VPhysicsShadowCollision(int,game vcollisionevent_t *)
157 CBaseEntity::VPhysicsShadowUpdate(IPhysicsObj ect *)
158 CBaseEntity::VPhysicsCollision(int,gamevcolli sionevent_t *)
159 CBaseEntity::VPhysicsFriction(IPhysicsObject *,float,int,int)
160 CBaseEntity::UpdatePhysicsShadowToCurrentPosi tion(float)
161 CBaseEntity::VPhysicsGetObjectList(IPhysicsOb ject **,int)
162 CBaseEntity::VPhysicsIsFlesh(void)
163 CBaseEntity::HasPhysicsAttacker(float)
164 CBaseEntity::PhysicsSolidMaskForEntity(void)c onst
165 CBaseEntity::ResolveFlyCollisionCustom(CGameT race &,Vector &)
166 CBaseEntity::PerformCustomPhysics(Vector *,Vector *,QAngle *,QAngle *)
167 CBaseAnimating::GetStepOrigin(void)const
168 CBaseAnimating::GetStepAngles(void)const
169 CBaseEntity::ShouldDrawWaterImpacts(void)
170 CBaseEntity::NetworkStateChanged_m_fFlags(voi d)
171 CBaseEntity::NetworkStateChanged_m_fFlags(voi d *)
172 CBaseEntity::NetworkStateChanged_m_nWaterLeve l(void)
173 CBaseEntity::NetworkStateChanged_m_nWaterLeve l(void *)
174 CBaseEntity::NetworkStateChanged_m_hGroundEnt ity(void)
175 CBaseEntity::NetworkStateChanged_m_hGroundEnt ity(void *)
176 CBaseEntity::NetworkStateChanged_m_vecBaseVel ocity(void)
177 CBaseEntity::NetworkStateChanged_m_vecBaseVel ocity(void *)
178 CBaseEntity::NetworkStateChanged_m_flFriction (void)
179 CBaseEntity::NetworkStateChanged_m_flFriction (void *)
180 CBaseEntity::NetworkStateChanged_m_vecVelocit y(void)
181 CBaseEntity::NetworkStateChanged_m_vecVelocit y(void *)
182 CBaseEntity::NetworkStateChanged_m_vecViewOff set(void)
183 CBaseEntity::NetworkStateChanged_m_vecViewOff set(void *)
184 CBaseAnimating::GetIdealSpeed(void)const
185 CBaseAnimating::GetIdealAccel(void)const
186 CBaseAnimating::StudioFrameAdvance(void)
187 CBaseAnimating::SetSequence(int)
188 CBaseAnimating::IsActivityFinished(void)
189 CBaseAnimating::GetSequenceGroundSpeed(CStudi oHdr *,int)
190 CBaseAnimating::ClampRagdollForce(Vector const&,Vector*)
191 CBaseAnimating::BecomeRagdollOnClient(Vector const&)
192 CBaseAnimating::IsRagdoll(void)
193 CBaseAnimating::CanBecomeRagdoll(void)
194 CBaseAnimating::GetSkeleton(CStudioHdr *,Vector *,Quaternion *,int)
195 CBaseAnimating::GetBoneTransform(int,matrix3x 4_t &)
196 CBaseAnimating::SetupBones(matrix3x4_t *,int)
197 CBaseAnimating::CalculateIKLocks(float)
198 CBaseAnimating::DispatchAnimEvents(CBaseAnima ting*)
199 CBaseCombatWeapon::HandleAnimEvent(animevent_ t *)
200 CBaseAnimating::PopulatePoseParameters(void)
201 CBaseAnimating::GetAttachment(int,matrix3x4_t &)
202 CBaseAnimating::InitBoneControllers(void)
203 CBaseAnimating::GetGroundSpeedVelocity(void)
204 CBaseAnimating::Ignite(float,bool,float,bool)
205 CBaseAnimating::IgniteLifetime(float)
206 CBaseAnimating::IgniteNumHitboxFires(int)
207 CBaseAnimating::IgniteHitboxFireScale(float)
208 CBaseAnimating::Extinguish(void)
209 CBaseAnimating::SetLightingOriginRelative(CBa seEntity *)
210 CBaseAnimating::SetLightingOrigin(CBaseEntity *)
211 CBaseCombatWeapon::GiveTo(CBaseEntity *)
212 CEconEntity::CalculateVisibleClassFor(CBaseCo mbatCharacter *)
213 CEconEntity::GetAttributeManager(void)
214 CEconEntity::GetAttributeContainer(void)
215 CEconEntity::GetAttributeOwner(void)
216 CEconEntity::GetAttributeList(void)
217 CEconEntity::ReapplyProvision(void)
218 CEconEntity::UpdateBodygroups(CBaseCombatChar acter *,int)
219 CEconEntity::TranslateViewmodelHandActivityIn ternal(Activity)
220 CBaseCombatWeapon::IsPredicted(void)const
221 CBaseCombatWeapon::GetSubType(void)
222 CBaseCombatWeapon::SetSubType(int)
223 CBaseCombatWeapon::Equip(CBaseCombatCharacter *)
224 CBaseCombatWeapon::Drop(Vector const&)
225 CBaseCombatWeapon::UpdateClientData(CBasePlay er *)
226 CBaseCombatWeapon::IsAllowedToSwitch(void)
227 CBaseCombatWeapon::CanBeSelected(void)
228 CBaseCombatWeapon::VisibleInWeaponSelection(v oid)
229 CBaseCombatWeapon::HasAmmo(void)
230 CBaseCombatWeapon::SetPickupTouch(void)
231 CBaseCombatWeapon::DefaultTouch(CBaseEntity *)
232 CBaseCombatWeapon::ShouldDisplayAltFireHUDHin t(void)
233 CBaseCombatWeapon::DisplayAltFireHudHint(void )
234 CBaseCombatWeapon::RescindAltFireHudHint(void )
235 CBaseCombatWeapon::ShouldDisplayReloadHUDHint (void)
236 CBaseCombatWeapon::DisplayReloadHudHint(void)
237 CBaseCombatWeapon::RescindReloadHudHint(void)
238 CBaseCombatWeapon::SetViewModelIndex(int)
239 CBaseCombatWeapon::SendWeaponAnim(int)
240 CBaseCombatWeapon::SendViewModelAnim(int)
241 CBaseCombatWeapon::SetViewModel(void)
242 CBaseCombatWeapon::HasWeaponIdleTimeElapsed(v oid)
243 CBaseCombatWeapon::SetWeaponIdleTime(float)
244 CBaseCombatWeapon::GetWeaponIdleTime(void)
245 CBaseCombatWeapon::HasAnyAmmo(void)
246 CBaseCombatWeapon::HasPrimaryAmmo(void)
247 CBaseCombatWeapon::HasSecondaryAmmo(void)
248 CBaseCombatWeapon::CanHolster(void)
249 CBaseCombatWeapon::DefaultDeploy(char *,char *,int,char *)
250 CBaseCombatWeapon::CanDeploy(void)
251 CBaseCombatWeapon::Deploy(void)
252 CBaseCombatWeapon::Holster(CBaseCombatWeapon* )
253 CBaseCombatWeapon::GetLastWeapon(void)
254 CBaseCombatWeapon::SetWeaponVisible(bool)
255 CBaseCombatWeapon::IsWeaponVisible(void)
256 CBaseCombatWeapon::ReloadOrSwitchWeapons(void )
257 CBaseCombatWeapon::OnActiveStateChanged(int)
258 CBaseCombatWeapon::HolsterOnDetach(void)
259 CBaseCombatWeapon::IsHolstered(void)
260 CBaseCombatWeapon::Detach(void)
261 CBaseCombatWeapon::ItemPreFrame(void)
262 CBaseCombatWeapon::ItemPostFrame(void)
263 CBaseCombatWeapon::ItemBusyFrame(void)
264 CBaseCombatWeapon::ItemHolsterFrame(void)
265 CBaseCombatWeapon::WeaponIdle(void)
266 CBaseCombatWeapon::HandleFireOnEmpty(void)
267 CBaseCombatWeapon::ShouldBlockPrimaryFire(voi d)
268 CBaseCombatWeapon::IsWeaponZoomed(void)
269 CBaseCombatWeapon::CheckReload(void)
270 CBaseCombatWeapon::FinishReload(void)
271 CBaseCombatWeapon::AbortReload(void)
272 CBaseCombatWeapon::Reload(void)
273 CBaseCombatWeapon::PrimaryAttack(void)
274 CBaseCombatWeapon::SecondaryAttack(void)
275 CBaseCombatWeapon::GetPrimaryAttackActivity(v oid)
276 CBaseCombatWeapon::GetSecondaryAttackActivity (void)
277 CBaseCombatWeapon::GetDrawActivity(void)
278 CBaseCombatWeapon::GetDefaultAnimSpeed(void)
279 CBaseCombatWeapon::GetBulletType(void)
280 CBaseCombatWeapon::GetBulletSpread(void)
281 CBaseCombatWeapon::GetBulletSpread(WeaponProf iciency_t)
282 CBaseCombatWeapon::GetSpreadBias(WeaponProfic iency_t)
283 CBaseCombatWeapon::GetFireRate(void)
284 CBaseCombatWeapon::GetMinBurst(void)
285 CBaseCombatWeapon::GetMaxBurst(void)
286 CBaseCombatWeapon::GetMinRestTime(void)
287 CBaseCombatWeapon::GetMaxRestTime(void)
288 CBaseCombatWeapon::GetRandomBurst(void)
289 CBaseCombatWeapon::WeaponSound(WeaponSound_t, float)
290 CBaseCombatWeapon::StopWeaponSound(WeaponSoun d_t)
291 CBaseCombatWeapon::GetProficiencyValues(void)
292 CBaseCombatWeapon::GetMaxAutoAimDeflection(vo id)
293 CBaseCombatWeapon::WeaponAutoAimScale(void)
294 CBaseCombatWeapon::StartSprinting(void)
295 CBaseCombatWeapon::StopSprinting(void)
296 CBaseCombatWeapon::GetDamage(float,int)
297 CBaseCombatWeapon::SetActivity(Activity,float )
298 CBaseCombatWeapon::AddViewKick(void)
299 CBaseCombatWeapon::GetDeathNoticeName(void)
300 CBaseCombatWeapon::OnPickedUp(CBaseCombatChar acter *)
301 CBaseCombatWeapon::AddViewmodelBob(CBaseViewM odel *,Vector &,QAngle &)
302 CBaseCombatWeapon::CalcViewmodelBob(void)
303 CBaseCombatWeapon::GetControlPanelInfo(int,ch ar const*&)
304 CBaseCombatWeapon::GetControlPanelClassName(i nt,char const*&)
305 CBaseCombatWeapon::ShouldShowControlPanels(vo id)
306 CBaseCombatWeapon::CanBePickedUpByNPCs(void)
307 CBaseCombatWeapon::GetViewModel(int)const
308 CBaseCombatWeapon::GetWorldModel(void)const
309 CBaseCombatWeapon::GetAnimPrefix(void)const
310 CBaseCombatWeapon::GetMaxClip1(void)const
311 CBaseCombatWeapon::GetMaxClip2(void)const
312 CBaseCombatWeapon::GetDefaultClip1(void)const
313 CBaseCombatWeapon::GetDefaultClip2(void)const
314 CBaseCombatWeapon::GetWeight(void)const
315 CBaseCombatWeapon::AllowsAutoSwitchTo(void)co nst
316 CBaseCombatWeapon::AllowsAutoSwitchFrom(void) const
317 CBaseCombatWeapon::GetWeaponFlags(void)const
318 CBaseCombatWeapon::GetSlot(void)const
319 CBaseCombatWeapon::GetPosition(void)const
320 CBaseCombatWeapon::GetName(void)const
321 CBaseCombatWeapon::GetPrintName(void)const
322 CBaseCombatWeapon::GetShootSound(int)const
323 CBaseCombatWeapon::GetRumbleEffect(void)const
324 CBaseCombatWeapon::UsesClipsForAmmo1(void)con st
325 CBaseCombatWeapon::UsesClipsForAmmo2(void)con st
326 CBaseCombatWeapon::GetEncryptionKey(void)
327 CBaseCombatWeapon::GetPrimaryAmmoType(void)co nst
328 CBaseCombatWeapon::GetSecondaryAmmoType(void) const
329 CBaseCombatWeapon::Clip1(void)
330 CBaseCombatWeapon::Clip2(void)
331 CBaseCombatWeapon::GetSpriteActive(void)const
332 CBaseCombatWeapon::GetSpriteInactive(void)con st
333 CBaseCombatWeapon::GetSpriteAmmo(void)const
334 CBaseCombatWeapon::GetSpriteAmmo2(void)const
335 CBaseCombatWeapon::GetSpriteCrosshair(void)co nst
336 CBaseCombatWeapon::GetSpriteAutoaim(void)cons t
337 CBaseCombatWeapon::GetSpriteZoomedCrosshair(v oid)const
338 CBaseCombatWeapon::GetSpriteZoomedAutoaim(voi d)const
339 CBaseCombatWeapon::ActivityOverride(Activity, bool *)
340 CBaseCombatWeapon::ActivityList(void)
341 CBaseCombatWeapon::ActivityListCount(void)
342 CBaseCombatWeapon::FallInit(void)
343 CBaseCombatWeapon::FallThink(void)
344 CBaseCombatWeapon::Materialize(void)
345 CBaseCombatWeapon::CheckRespawn(void)
346 CBaseCombatWeapon::Delete(void)
347 CBaseCombatWeapon::Kill(void)
348 CBaseCombatWeapon::CapabilitiesGet(void)
349 CBaseCombatWeapon::WeaponLOSCondition(Vector const&,Vector const&,bool)
350 CBaseCombatWeapon::WeaponRangeAttack1Conditio n(float,float)
351 CBaseCombatWeapon::WeaponRangeAttack2Conditio n(float,float)
352 CBaseCombatWeapon::WeaponMeleeAttack1Conditio n(float,float)
353 CBaseCombatWeapon::WeaponMeleeAttack2Conditio n(float,float)
354 CBaseCombatWeapon::Operator_FrameUpdate(CBase CombatCharacter *)
355 CBaseCombatWeapon::Operator_HandleAnimEvent(a nimevent_t *,CBaseCombatCharacter *)
356 CBaseCombatWeapon::Operator_ForceNPCFire(CBas eCombatCharacter *,bool)
357 CBaseCombatWeapon::CanLower(void)
358 CBaseCombatWeapon::Ready(void)
359 CBaseCombatWeapon::Lower(void)
360 CBaseCombatWeapon::HideThink(void)
361 CBaseCombatWeapon::CanReload(void)


this is what i took by IDA

and i used it like this


// SetViewModelIndex
StartPrepSDKCall(SDKCall_Player);
PrepSDKCall_SetFromConf(g_hGameConfig, SDKConf_Virtual, "SetViewModelIndex");
PrepSDKCall_AddParameter(SDKType_PlainOldData , SDKPass_ByValue);
g_hOffset[SetViewModelIndex] = EndPrepSDKCall();

// SendWeaponAnim
StartPrepSDKCall(SDKCall_Player);
PrepSDKCall_SetFromConf(g_hGameConfig, SDKConf_Virtual, "SendWeaponAnim");
PrepSDKCall_SetReturnInfo(SDKType_Bool, SDKPass_Plain);
PrepSDKCall_AddParameter(SDKType_PlainOldData , SDKPass_ByValue);
g_hOffset[SendWeaponAnim] = EndPrepSDKCall();

// SendViewModelAnim
StartPrepSDKCall(SDKCall_Player);
PrepSDKCall_SetFromConf(g_hGameConfig, SDKConf_Virtual, "SendViewModelAnim");
PrepSDKCall_AddParameter(SDKType_PlainOldData , SDKPass_ByValue);
g_hOffset[SendViewModelAnim] = EndPrepSDKCall();

// SetViewModel
StartPrepSDKCall(SDKCall_Player);
PrepSDKCall_SetFromConf(g_hGameConfig, SDKConf_Virtual, "SetViewModel");
g_hOffset[SetViewModel] = EndPrepSDKCall();

etc...


the case server crashes is using SetViewModel after using SetViewModelIndex

and SendWeaponAnim, SendViewModelAnim, etc...



thanks.

if you tell me how i get proper SDKCallType, i will be pleased

McFlurry
01-26-2012, 17:01
Change those
StartPrepSDKCall(SDKCall_Player);
to
StartPrepSDKCall(SDKCall_Entity);

tjdgns9246
01-26-2012, 19:39
Change those
StartPrepSDKCall(SDKCall_Player);
to
StartPrepSDKCall(SDKCall_Entity);

are you sure about that?

and i want to know how to set them properly.

could you tell me?

McFlurry
01-26-2012, 20:32
The call type is dependant on what type of entity the offset affects, look at this
CBaseEntity::SetViewOffset(Vector const&)The CBaseEntity part is what's important here, it's obviously not a player entity as you were doing before, that's why you need to change it to SDKCall_Entity. The other possible values are

enum SDKCallType
{
SDKCall_Static, /**< Static call */
SDKCall_Entity, /**< CBaseEntity call */
SDKCall_Player, /**< CBasePlayer call */
SDKCall_GameRules, /**< CGameRules call */
SDKCall_EntityList, /**< CGlobalEntityList call */
};I realize that SendViewModelAnim is affecting a CBaseCombatWeapon entity, since there isn't a type that specifies that certain entity type just go with SDKCall_Entity. If it doesn't work go ahead and try the other ones.

tjdgns9246
01-26-2012, 20:44
The call type is dependant on what type of entity the offset affects, look at this
CBaseEntity::SetViewOffset(Vector const&)The CBaseEntity part is what's important here, it's obviously not a player entity as you were doing before, that's why you need to change it to SDKCall_Entity. The other possible values are

enum SDKCallType
{
SDKCall_Static, /**< Static call */
SDKCall_Entity, /**< CBaseEntity call */
SDKCall_Player, /**< CBasePlayer call */
SDKCall_GameRules, /**< CGameRules call */
SDKCall_EntityList, /**< CGlobalEntityList call */
};I realize that SendViewModelAnim is affecting a CBaseCombatWeapon entity, since there isn't a type that specifies that certain entity type just go with SDKCall_Entity. If it doesn't work go ahead and try the other ones.

thank you very much McFlurry!

now, server doesn't crash anymore.

but, some functions still don't work.

i'm goin to test this.

thank you again!

tjdgns9246
01-26-2012, 21:02
Flurry, now i have another problem, sorry for continuous question.

in basecombatweapon_shared.cpp, there is some codes



//-----------------------------------------------------------------------------
// Purpose:
// Input : index -
//-----------------------------------------------------------------------------
void CBaseCombatWeapon::SetViewModelIndex( int index )
{
Assert( index >= 0 && index < MAX_VIEWMODELS );
m_nViewModelIndex = index;
}

//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CBaseCombatWeapon::SetViewModel()
{
CBasePlayer *pOwner = ToBasePlayer( GetOwner() );
if ( pOwner == NULL )
return;
CBaseViewModel *vm = pOwner->GetViewModel( m_nViewModelIndex );
if ( vm == NULL )
return;
Assert( vm->ViewModelIndex() == m_nViewModelIndex );
vm->SetWeaponModel( GetViewModel( m_nViewModelIndex ), this );
}



as you see this, SetViewModelIndex should be run before running SetViewModel.

so, i used my function like this



/**
* Set client viewmodel index
*
* @param iWeapon weapon index
* @param iModel model index
* @noreturn
*/
native OFD_SetViewModelIndex(iWeapon, iModel);

/**
* Set client viewmodel with using OFD_SetViewModelIndex
*
* @param iWeapon weapon index
* @noreturn
*/
native OFD_SetViewModel(iWeapon);

///////////////////////////////////////////////////////////////////////////

new viewmodel;

public OnMapStart()
{
viewmodel = PrecacheModel("models/player/kuristaja/l4d2/hunter_arms/v_knife_t.mdl");
}

public SomeForwards()
{
new weapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon");

OFD_SetViewModelIndex(weapon, viewmodel);
OFD_SetViewModel(weapon);
}


but didn't change my weapon viewmodel.

how can i do?

i'm sorry for making you bother

blodia
01-27-2012, 13:46
i think you misinterpreted the sdk, the order the functions are written in has nothing to do the order they're called in, they might not even be used at all.

from the sdkcalls you're trying to make you don't even need them, you can simply change some datamaps/netprops to get the same effect e.g changing "m_nSequence" will change the animation. changing "m_nViewModelIndex" on the "predicted_viewmodel" ("m_hViewModel" on the client will get you it)
entity of the client to the index of a cached model will change the viewmodel.

also changing the client viewmodels is buggy as they are predicted so the client will see it flicker between the original and the new one.