AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [PROBLEM SOLVED]Fatal Error - FM Scripting Help Server Crash (https://forums.alliedmods.net/showthread.php?t=28644)

SubStream 05-19-2006 13:30

[PROBLEM SOLVED]Fatal Error - FM Scripting Help Server Crash
 
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.

organizedKaoS 05-19-2006 13:46

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.

SubStream 05-19-2006 14:11

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

Edit: ty problem solved works flawlessly for their server

VEN 05-20-2006 01:15

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". ;)

SubStream 05-20-2006 10:37

what you just posted confused me because I'm stupid but yah I'm just glad the problem is fixed :)


All times are GMT -4. The time now is 16:28.

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