Raised This Month: $ Target: $400
 0% 

[PROBLEM SOLVED]Fatal Error - FM Scripting Help Server Crash


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SubStream
Veteran Member
Join Date: Aug 2005
Location: USA
Old 05-19-2006 , 13:30   [PROBLEM SOLVED]Fatal Error - FM Scripting Help Server Crash
Reply With Quote #1

I wrote a custom model/sound plugin to change models and sounds for a friends server. Here is the code:
Code:
/*  AMXModX Script * *   Title:    CSweapons (csweapons) *   Author:   SubStream * *   Current Version:   1.0 *   Release Date:      2006-05-19 * *   For support on this plugin, please visit the following URL: *   CSweapons URL = <no URL custom made for Matt aka Dragon2246> * *   CSweapons - Custom model & sound replacement plugin *   Copyright (C) 2006  SubStream * *   This program is free software; you can redistribute it and/or *   modify it under the terms of the GNU General Public License *   as published by the Free Software Foundation; either version 2 *   of the License, or (at your option) any later version. * *   This program is distributed in the hope that it will be useful, *   but WITHOUT ANY WARRANTY; without even the implied warranty of *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *   GNU General Public License for more details. * *   You should have received a copy of the GNU General Public License *   along with this program; if not, write to the Free Software *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. * *   Author Contact Email: <a href="mailto:[email protected]">[email protected]</a> */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> new const gs_PLUGIN[]   = "CSweapons" new const gs_VERSION[]  = "1.0" new const gs_AUTHOR[]   = "SubStream" new gs_ak47oldmodel[]   = "models/w_ak47.mdl" new gs_ak47newmodel[]   = "models/csweapons/w_ak47.mdl" new gs_awpoldmodel[]    = "models/w_awp.mdl" new gs_awpnewmodel[]    = "models/csweapons/w_awp.mdl" new gs_deagleoldmodel[] = "models/w_deagle.mdl" new gs_deaglenewmodel[] = "models/csweapons/w_deagle.mdl" new gs_eliteoldmodel[]  = "models/w_elite.mdl" new gs_elitenewmodel[]  = "models/csweapons/w_elite.mdl" new gs_m4a1oldmodel[]   = "models/w_m4a1.mdl" new gs_m4a1newmodel[]   = "models/csweapons/w_m4a1.mdl" new gs_scoutoldmodel[]  = "models/w_scout.mdl" new gs_scoutnewmodel[]  = "models/csweapons/w_scout.mdl" new g_clip new g_ammo new g_weaponID new g_shield new gi_soundnum new g_oldsounds[16][] = {     "weapons/ak47-1.wav",     "weapons/ak47-2.wav",     "weapons/ak47_boltpull.wav",     "weapons/ak47_clipin.wav",     "weapons/ak47_clipout.wav",     "weapons/deagle-1.wav",     "weapons/deagle-2.wav",     "weapons/knife_deploy1.wav",     "weapons/knife_hit1.wav",     "weapons/knife_hit2.wav",     "weapons/knife_hit3.wav",     "weapons/knife_hit4.wav",     "weapons/knife_hitwall1.wav",     "weapons/knife_slash1.wav",     "weapons/knife_slash2.wav",     "weapons/knife_stab.wav" } new g_newsounds[16][] = {     "cssounds/ak47-1.wav",     "cssounds/ak47-2.wav",     "cssounds/ak47_boltpull.wav",     "cssounds/ak47_clipin.wav",     "cssounds/ak47_clipout.wav",     "cssounds/deagle-1.wav",     "cssounds/deagle-2.wav",     "cssounds/knife_deploy1.wav",     "cssounds/knife_hit1.wav",     "cssounds/knife_hit2.wav",     "cssounds/knife_hit3.wav",     "cssounds/knife_hit4.wav",     "cssounds/knife_hitwall1.wav",     "cssounds/knife_slash1.wav",     "cssounds/knife_slash2.wav",     "cssounds/knife_stab.wav" } public plugin_init () {     register_plugin ( gs_PLUGIN, gs_VERSION, gs_AUTHOR )     register_event ( "CurWeapon", "fn_weaponchange", "be", "1=1")     register_forward ( FM_EmitSound, "fn_soundcheck" )     register_forward ( FM_SetModel, "fn_setmodels" ) } public plugin_precache () {     precache_model ( "models/csweapons/p_ak47.mdl" )     precache_model ( "models/csweapons/p_awp.mdl" )     precache_model ( "models/csweapons/p_deagle.mdl" )     precache_model ( "models/csweapons/p_elite.mdl" )     precache_model ( "models/csweapons/p_knife.mdl" )     precache_model ( "models/csweapons/p_m4a1.mdl" )     precache_model ( "models/csweapons/p_scout.mdl" )     precache_model ( "models/csweapons/p_shield_deagle.mdl" )     precache_model ( "models/csweapons/p_shield_knife.mdl" )     precache_model ( "models/csweapons/v_ak47.mdl" )     precache_model ( "models/csweapons/v_awp.mdl" )     precache_model ( "models/csweapons/v_deagle.mdl" )     precache_model ( "models/csweapons/v_elite.mdl" )     precache_model ( "models/csweapons/v_knife.mdl" )     precache_model ( "models/csweapons/v_m4a1.mdl" )     precache_model ( "models/csweapons/v_scout.mdl" )     precache_model ( "models/csweapons/v_shield_deagle.mdl" )     precache_model ( "models/csweapons/v_shield_knife.mdl" )     precache_model ( "models/csweapons/w_ak47.mdl" )     precache_model ( "models/csweapons/w_awp.mdl" )     precache_model ( "models/csweapons/w_deagle.mdl" )     precache_model ( "models/csweapons/w_elite.mdl" )     precache_model ( "models/csweapons/w_m4a1.mdl" )     precache_model ( "models/csweapons/w_scout.mdl" )         precache_sound ( "cssounds/ak47-1.wav" )     precache_sound ( "cssounds/ak47-2.wav" )     precache_sound ( "cssounds/ak47_boltpull.wav" )     precache_sound ( "cssounds/ak47_clipin.wav" )     precache_sound ( "cssounds/ak47_clipout.wav" )     precache_sound ( "cssounds/deagle-1.wav" )     precache_sound ( "cssounds/deagle-2.wav" )     precache_sound ( "cssounds/knife_deploy1.wav" )     precache_sound ( "cssounds/knife_hit1.wav" )     precache_sound ( "cssounds/knife_hit2.wav" )     precache_sound ( "cssounds/knife_hit3.wav" )     precache_sound ( "cssounds/knife_hit4.wav" )     precache_sound ( "cssounds/knife_hitwall1.wav" )     precache_sound ( "cssounds/knife_slash1.wav" )     precache_sound ( "cssounds/knife_slash2.wav" )     precache_sound ( "cssounds/knife_stab.wav" ) } public fn_weaponchange ( id )   {     g_weaponID = get_user_weapon ( id, g_clip, g_ammo )     g_shield = cs_get_user_shield ( id )         if ( g_weaponID == CSW_AK47 )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_ak47.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_ak47.mdl" )     }         if ( g_weaponID == CSW_AWP )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_awp.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_awp.mdl" )     }         if ( g_weaponID == CSW_DEAGLE && ! g_shield )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_deagle.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_deagle.mdl" )     }         if ( g_weaponID == CSW_DEAGLE && g_shield )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_shield_deagle.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_shield_deagle.mdl" )     }         if ( g_weaponID == CSW_ELITE )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_elite.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_elite.mdl" )     }         if ( g_weaponID == CSW_KNIFE && ! g_shield )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_knife.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_knife.mdl" )     }         if ( g_weaponID == CSW_KNIFE && g_shield )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_shield_knife.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_shield_knife.mdl" )     }         if ( g_weaponID == CSW_M4A1 )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_m4a1.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_m4a1.mdl" )     }         if ( g_weaponID == CSW_SCOUT )     {         set_pev ( id, pev_weaponmodel, "models/csweapons/p_scout.mdl" )         set_pev ( id, pev_viewmodel, "models/csweapons/v_scout.mdl" )     } } public fn_setmodels ( entity, const s_MODEL[] ) {     if ( ! pev_valid ( entity ) ) return FMRES_IGNORED         if ( equal ( s_MODEL, gs_ak47oldmodel ) )     {         engfunc ( EngFunc_SetModel, entity, gs_ak47newmodel )         return FMRES_SUPERCEDE     }         if ( equal ( s_MODEL, gs_awpoldmodel ) )     {         engfunc ( EngFunc_SetModel, entity, gs_awpnewmodel )         return FMRES_SUPERCEDE     }         if ( equal ( s_MODEL, gs_deagleoldmodel ) )     {         engfunc ( EngFunc_SetModel, entity, gs_deaglenewmodel )         return FMRES_SUPERCEDE     }         if ( equal ( s_MODEL, gs_eliteoldmodel ) )     {         engfunc ( EngFunc_SetModel, entity, gs_elitenewmodel )         return FMRES_SUPERCEDE     }         if ( equal ( s_MODEL, gs_m4a1oldmodel ) )     {         engfunc ( EngFunc_SetModel, entity, gs_m4a1newmodel )         return FMRES_SUPERCEDE     }         if ( equal ( s_MODEL, gs_scoutoldmodel ) )     {         engfunc ( EngFunc_SetModel, entity, gs_scoutnewmodel )         return FMRES_SUPERCEDE     }         return FMRES_IGNORED } public fn_soundcheck ( entity, i_channel, const s_SOUND[], Float: f_volume, Float: f_attenuation, i_flags, i_pitch ) {     for ( gi_soundnum = 0; gi_soundnum < 5; gi_soundnum++ )     {         if ( containi ( s_SOUND, g_oldsounds[gi_soundnum] ) != -1 )         {             emit_sound ( entity, i_channel, g_newsounds[gi_soundnum], f_volume, f_attenuation, i_flags, i_pitch )                             return FMRES_SUPERCEDE         }     }         return FMRES_IGNORED }
I don't know why exactly it gave him a fatal error or if at some point I'm supposed to use func_allocstring or whatever. I'm not sure exactly what I am doing wrong so if someone can point me in the right direction to fix whatever the problem is please let me know. This compiles fine on 1.71.
SubStream is offline
organizedKaoS
Senior Member
Join Date: Feb 2006
Old 05-19-2006 , 13:46  
Reply With Quote #2

Code:
set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, "yourmodelhere")) set_pev(id, pev_weaponmodel, engfunc(EngFunc_AllocString, "yourmodelhere"))

I too wrote my own custom weapon models script and it uses only fakemeta.
organizedKaoS is offline
SubStream
Veteran Member
Join Date: Aug 2005
Location: USA
Old 05-19-2006 , 14:11  
Reply With Quote #3

thanx i'll make those changes and post if that fixed the problem

Edit: ty problem solved works flawlessly for their server
SubStream is offline
VEN
Veteran Member
Join Date: Jan 2005
Old 05-20-2006 , 01:15  
Reply With Quote #4

Or you colud use that to not allocate string:

Code:
    pev_string2_begin,  /* anything after here are string corrections */     pev_weaponmodel2,     pev_viewmodel2,     pev_absolute_end

You see now, why i said "use includes". ;)
VEN is offline
SubStream
Veteran Member
Join Date: Aug 2005
Location: USA
Old 05-20-2006 , 10:37  
Reply With Quote #5

what you just posted confused me because I'm stupid but yah I'm just glad the problem is fixed
SubStream 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 02:17.


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