AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   HL1 Servers (HLDS) (https://forums.alliedmods.net/forumdisplay.php?f=131)
-   -   [META] ERROR: Failed to find memloc for regcmd 'orpheu' (https://forums.alliedmods.net/showthread.php?t=302740)

ZEDD_Intensity 11-09-2017 10:48

[META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Greetings AMXX,

Hope y'all are having a good time.

I'm here to get some help regarding an AMX Module Malfunction, Orpheu

I'm running a DeathRun Server that requires the plugin, Block Reconnect Respawn by Sylwester for avoiding players to spawn in the middle on an on-going round. To support the plugin's requirements, my server is running Orpheu v2.6.3 by Arkshine.

Whenever I've tried to fire the server up with brr_nokill.amxx, it gives me a "Failed to find memloc" error.
Code:

[META] ERROR: Failed to find memloc for regcmd 'orpheu'
I searched the forums for solutions and found this.
As per Yami's solution for "ham" :
Quote:

Originally Posted by YamiKaitou (Post 714357)
Try deleting anything with the word "ham" in the file name and reuploading them, with the server shut down of course

I assume that the same would apply for orpheu as well, and so I delete entire Orpheu files, redownloaded and re-uploaded with the server shut down and seems like I'm running into the same problem again.
Here's the plugin code :
PHP Code:

#include <amxmodx>
#include <celltrie>
#include <hamsandwich>
#include <orpheu>
#include <orpheu_stocks>

#define MAX_PLAYERS 32
#define VERSION "1.4-nokill"

//----------------------------------------------------------------------------------------------
new _pg_is_h
#define _IsHuman(%1) ( _pg_is_h & 1<<%1 )
#define _SetHuman(%1) _pg_is_h |= 1<<%1
#define _SetNotHuman(%1) _pg_is_h &= ~( 1<<%1 )
//----------------------------------------------------------------------------------------------
new _pg_spawned
#define _HasSpawned(%1) ( _pg_spawned & 1<<%1 )
#define _SetSpawned(%1) _pg_spawned |= 1<<%1
#define _SetNotSpawned(%1) _pg_spawned &= ~(1<<%1)
#define _ResetSpawned() _pg_spawned = 0
//----------------------------------------------------------------------------------------------
new _pg_block
#define _IsBlocked(%1) ( _pg_block & 1<<%1 )
#define _SetBlock(%1) _pg_block |= 1<<%1
#define _SetNoBlock(%1) _pg_block &= ~(1<<%1)
#define _ResetBlocked() _pg_block = 0
//----------------------------------------------------------------------------------------------

new g_pGameRules

new bool:g_stored_ips
new g_p_ip[MAX_PLAYERS+1][16]
new 
Trie:g_trie_ips

new Float:g_late_spawn_time_limit

new pcvar_spawn_time
new pcvar_enabled

new bool:g_block_late_spawn
new g_enabled

public plugin_init(){
    
register_plugin("BlockReconnectRespawn"VERSION"Sylwester")
    
register_cvar("brr_ver"VERSIONFCVAR_SERVER)

    
RegisterHam(Ham_Spawn"player""Player_Spawn"1)
    
    
register_event("HLTV""event_new_round""a""1=0""2=0")
    
register_logevent("logevent_round_start"2"1=Round_Start")
    
pcvar_spawn_time register_cvar("brr_spawn_time""10")
    
pcvar_enabled register_cvar("brr_enabled""1")

    
OrpheuRegisterHookFromObject(g_pGameRules,"FPlayerCanRespawn","CGameRules","OnFPlayerCanRespawn")
    
g_trie_ips TrieCreate()
}


public 
plugin_precache()
    
OrpheuRegisterHook(OrpheuGetFunction("InstallGameRules"),"OnInstallGameRules",OrpheuHookPost)


public 
OnInstallGameRules()
    
g_pGameRules OrpheuGetReturn()


public 
OrpheuHookReturn:OnFPlayerCanRespawn(gamerulesid){
    if(!
_IsHuman(id) || _HasSpawned(id))
        return 
OrpheuIgnored
    
if(_IsBlocked(id)){
        
OrpheuSetReturn(false)
        return 
OrpheuSupercede
    
}

    if(
g_block_late_spawn && g_late_spawn_time_limit get_gametime()){
        
OrpheuSetReturn(false)
        return 
OrpheuSupercede
    
}
    return 
OrpheuIgnored
}


public 
Player_Spawn(id){
    if(!
_IsHuman(id) || !is_user_alive(id))
        return
    
_SetSpawned(id)
}


public 
logevent_round_start(){
    
g_enabled get_pcvar_num(pcvar_enabled)
    new 
late_spawn_time get_pcvar_num(pcvar_spawn_time)
    if(
late_spawn_time <= 0){
        
g_block_late_spawn false
        
return
    }
    
g_block_late_spawn true
    g_late_spawn_time_limit 
get_gametime()+float(late_spawn_time)
}


public 
event_new_round(){
    if(
g_stored_ips){
        
TrieClear(g_trie_ips)
        
g_stored_ips false
    
}
    
_ResetSpawned()
    
_ResetBlocked()
    
g_block_late_spawn false
}


public 
client_putinserver(id){
    if(
is_user_bot(id) || is_user_hltv(id))
        return
    
_SetHuman(id)
    
get_user_ip(idg_p_ip[id], 15)
    if(
g_enabled && TrieKeyExists(g_trie_ipsg_p_ip[id])){
        
_SetBlock(id)
    }
}


public 
client_disconnect(id){
    if(
_HasSpawned(id) && !_IsBlocked(id) && g_enabled){
        
g_stored_ips true
        TrieSetCell
(g_trie_ipsg_p_ip[id], 0)
    }
    
_SetNoBlock(id)
    
_SetNotSpawned(id)
    
_SetNotHuman(id)
}


public 
plugin_end(){
    
TrieDestroy(g_trie_ips)


modules.ini
PHP Code:

;;;
To enable a moduleremove the semi-colon (;) in front of its name.
; If 
it's not here, simply add it its name, one per line.
; You don'
t need to write the _amxx part or the file extension.
;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 
SQL Modules usually need to be enabled manually ;;
;; 
You can have any number on at a time.  Use      ;;
;;  
amx_sql_type in sql.cfg to specify the default ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;
mysql
;sqlite

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 
Put third party modules below here.              ;;
;; 
You can just list their nameswithout the _amxx ;;
;;  or 
file extension.                              ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 
These modules will be auto-detected and loaded   ;;
;;  as 
needed.  You do not need to enable them here ;;
;;  
unless you have problems.                       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

fun
engine
fakemeta
;geoip
;sockets
;regex
;nvault
cstrike
csx
hamsandwich 

brr_nokill.amxx was compiled locally as it has Orpheu Dependencies.

Hope these details are enough to analyze the case. I'd appreciate any help!

Kind Regards,
ZEDD

wickedd 11-09-2017 12:06

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Well I don't know a lot about orpheu but I did find another plugin that you can use. It doesn't requires
orpheu, so maybe you can give it a try.

Here you go

ZEDD_Intensity 11-09-2017 16:38

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Quote:

Originally Posted by wickedd (Post 2559420)
Well I don't know a lot about orpheu but I did find another plugin that you can use. It doesn't requires
orpheu, so maybe you can give it a try.

Here you go

Hi again wickedd,

I really appreciate your prompt response.

Thanks loads for linking me that plugin. I've installed it on my DataCenter and will test it within next 14 hours. I'm pretty sure it works just how described it'll make it tremendously easy for me to as the "Orpheu" error totally killed my server. I'm temporarily disabled it. I'll make sure I edit this reply of mine if anything goes wrong.

Thank ya,
ZEDD

klippy 11-10-2017 11:05

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
In the same thread you linked:
Quote:

Originally Posted by sawce (Post 714726)
This is a harmless warning, metamod just spits that out when registering server commands.


ZEDD_Intensity 11-10-2017 13:23

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Quote:

Originally Posted by KliPPy (Post 2559573)
In the same thread you linked:

Hey,

Thanks, yes I noticed that. But also noticed that, error is an error. Harmless or not, it is called an "error" for a reason. If there's an error, there has to be a solution. It'd be a different case if it's not found yet.
Quote:

Originally Posted by ivomacedo (Post 1375929)
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'MySQL': MySQL v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'CSX': CSX v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'CStrike': CStrike v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'Engine': Engine v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'FakeMeta': FakeMeta v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team
L 12/21/2010 - 09:43:16: [META] ERROR: Failed to find memloc for regcmd 'ham'
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'Ham Sandwich': Ham Sandwich v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team
L 12/21/2010 - 09:43:16: [META] dll: Loaded plugin 'Fun': Fun v1.8.1.3746 Aug 16 2008, AMX Mod X Dev Team

But there's some solution how to fix that?
Error is a error :S

Also, not just being harmless, it doesn't let the server boot up. Everytime i try to run startserver CLI, it doesn't load the plugin up and stops with the mentioned error. The only way I could start it is by disabling the plugin. I'm currently using this code as brr_kill.amxx.
PHP Code:

#include <amxmodx>
#include <celltrie>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define MAX_PLAYERS 32
#define VERSION "1.4-kill"

//----------------------------------------------------------------------------------------------
new _pg_is_h
#define _IsHuman(%1) ( _pg_is_h & 1<<%1 )
#define _SetHuman(%1) _pg_is_h |= 1<<%1
#define _SetNotHuman(%1) _pg_is_h &= ~( 1<<%1 )
//----------------------------------------------------------------------------------------------
new _pg_spawned
#define _HasSpawned(%1) ( _pg_spawned & 1<<%1 )
#define _SetSpawned(%1) _pg_spawned |= 1<<%1
#define _SetNotSpawned(%1) _pg_spawned &= ~(1<<%1)
#define _GetSpawned() _pg_spawned
//----------------------------------------------------------------------------------------------
new _pg_block
#define _IsBlocked(%1) ( _pg_block & 1<<%1 )
#define _SetBlock(%1) _pg_block |= 1<<%1
#define _SetNoBlock(%1) _pg_block &= ~(1<<%1)
#define _GetBlocked() _pg_block
//----------------------------------------------------------------------------------------------
#define _NewRoundReset() _GetSpawned()&=_GetBlocked()&=_GetSpawned()
//----------------------------------------------------------------------------------------------

new bool:g_stored_ips
new g_p_ip[MAX_PLAYERS+1][16]
new 
Trie:g_trie_ips

new Float:g_late_spawn_time_limit

new pcvar_spawn_time
new pcvar_enabled

new bool:g_block_late_spawn
new g_enabled

public plugin_init(){
    
register_plugin("BlockReconnectRespawn"VERSION"Sylwester")
    
register_cvar("brr_ver"VERSIONFCVAR_SERVER)

    
RegisterHam(Ham_Spawn"player""Player_Spawn"1)
    
    
register_message(get_user_msgid("ClCorpse"), "block_ClCorpse_msg")
    
register_message(get_user_msgid("DeathMsg"), "block_DeathMsg_msg")
    
register_event("HLTV""event_new_round""a""1=0""2=0")
    
register_logevent("logevent_round_start"2"1=Round_Start")
    
    
pcvar_spawn_time register_cvar("brr_spawn_time""0")
    
pcvar_enabled register_cvar("brr_enabled""1")

    
g_trie_ips TrieCreate()
}


public 
block_ClCorpse_msg(msg_idmsg_destmsg_entity){
    if(
_IsBlockedget_msg_arg_int(12) ))
        return 
PLUGIN_HANDLED
    
return PLUGIN_CONTINUE
}    


public 
block_DeathMsg_msg(msg_idmsg_destmsg_entity){
    if(
_IsBlockedget_msg_arg_int(2) ))
        return 
PLUGIN_HANDLED
    
return PLUGIN_CONTINUE
}


public 
Player_Spawn(id){
    if(!
is_user_alive(id) || !_IsHuman(id))
        return
    if(
_HasSpawned(id)){
        if(
_IsBlocked(id)){
            
_SetNoBlock(id)
            
set_user_rendering(idkRenderFxGlowShell000kRenderTransAlpha255)
        }
        return
    }
    
_SetSpawned(id)
    if(!
_IsBlocked(id)){
        if(
g_block_late_spawn && g_late_spawn_time_limit get_gametime())
            
_SetBlock(id)
        else
            return
    }
    
set_user_rendering(idkRenderFxGlowShell000kRenderTransAlpha0)
    
strip_user_weapons(id)
    
set_user_frags(idget_user_frags(id)+1)
    
cs_set_user_deaths(idcs_get_user_deaths(id)-1)
    
user_kill(id)
}


public 
logevent_round_start(){
    
g_enabled get_pcvar_num(pcvar_enabled)
    new 
late_spawn_time get_pcvar_num(pcvar_spawn_time)
    if(
late_spawn_time <= 0){
        
g_block_late_spawn false
        
return
    }
    
g_block_late_spawn true
    g_late_spawn_time_limit 
get_gametime()+float(late_spawn_time)
}


public 
event_new_round(){
    if(
g_stored_ips){
        
TrieClear(g_trie_ips)
        
g_stored_ips false
    
}
    
_NewRoundReset()
    
g_block_late_spawn false
}


public 
client_putinserver(id){
    if(
is_user_bot(id) || is_user_hltv(id))
        return
    
_SetHuman(id)
    
get_user_ip(idg_p_ip[id], 15)
    if(
g_enabled && TrieKeyExists(g_trie_ipsg_p_ip[id])){
        
_SetBlock(id)
    }
}


public 
client_disconnect(id){
    if(
_HasSpawned(id) &&  g_enabled){
        
g_stored_ips true
        TrieSetCell
(g_trie_ipsg_p_ip[id], 0)
    }
    
_SetNoBlock(id)
    
_SetNotSpawned(id)
    
_SetNotHuman(id)
}


public 
plugin_end(){
    
TrieDestroy(g_trie_ips)


Not very welcoming to kill players when they just joined, gotta deal with what I have here.

Plugin suggested by wickedd looked just fantastic, but somehow It doesn't seem to do anything on the server, I was sure I was setting it up right.

Hope that makes sense.

Regards,
ZEDD

klippy 11-11-2017 10:52

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
It's an error because the Metamod developer deemed it so, even Sawce said that it's a harmless warning. That's not what crashes your server.
Taking a look at the code, I wouldn't even consider it a warning but an info message. It looks like Metamod prints it if it can't determine from which plugin a cvar or a server command comes from. It seems that info is only used for listing cvars and commands.

ZEDD_Intensity 11-11-2017 12:23

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Quote:

Originally Posted by KliPPy (Post 2559812)
It's an error because the Metamod developer deemed it so, even Sawce said that it's a harmless warning. That's not what crashes your server.
Taking a look at the code, I wouldn't even consider it a warning but an info message. It looks like Metamod prints it if it can't determine from which plugin a cvar or a server command comes from. It seems that info is only used for listing cvars and commands.

Hi,

I can totally understand and agree with that you're trynna say, but the major problem here is this :

Quote:

Originally Posted by ZEDD_Intensity (Post 2559609)
Also, not just being harmless, it doesn't let the server boot up. Everytime i try to run startserver CLI, it doesn't load the plugin up and stops with the mentioned error. The only way I could start it is by disabling the plugin.

Regards,
ZEDD

klippy 11-11-2017 17:25

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Again, that message is not what what crashes your server.
Orpheu is a module that changes process's memory, so many things can go wrong. It's most likely not a problem in Orpheu but in that plugin you are trying to run. One of the problems could be outdated signature files, which is really likely as the mentioned plugin hans't been updated since 2010, but Counter-Strike has been. The 2013 update has indeed broke many existing signatures.

Spirit_12 11-11-2017 18:07

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
I would take Klippy's word, and look at some other stuff. He has built his reputation over the years and has never failed me.

I feel like you are not installing Orpehu properly. Remove your plugins that use orpheu and edit the modules.ini file in your configs folder. See, if Orpheu loads like that or not.

Are you using the updated signatures? The ones in your link are old and probably the cause of crash.

ZEDD_Intensity 11-11-2017 19:04

Re: [META] ERROR: Failed to find memloc for regcmd 'orpheu'
 
Quote:

Originally Posted by Spirit_12 (Post 2559904)
I would take Klippy's word, and look at some other stuff. He has built his reputation over the years and has never failed me.

I feel like you are not installing Orpehu properly. Remove your plugins that use orpheu and edit the modules.ini file in your configs folder. See, if Orpheu loads like that or not.

Are you using the updated signatures? The ones in your link are old and probably the cause of crash.

Quote:

Originally Posted by KliPPy (Post 2559895)
Again, that message is not what what crashes your server.
Orpheu is a module that changes process's memory, so many things can go wrong. It's most likely not a problem in Orpheu but in that plugin you are trying to run. One of the problems could be outdated signature files, which is really likely as the mentioned plugin hans't been updated since 2010, but Counter-Strike has been. The 2013 update has indeed broke many existing signatures.

Hey, thanks for trying to help guys.

Yep, Orpheu MIGHT not be the problem, and in logs, All I get, is the error mentioned as the thread subject.

I'm VERY sure that the plugin brr_nokill in the link doesn't let the server start. Whenever its enabled, server never goes online, everything else is just fine. I've got a 24/7 server and so I make it triple-sure that nothing crashes the server. My Starting/First post has the plugin source in it.

Also, what exactly does "signatures" mean here? Could you mind explaining it a bit? I'm sorry if that sounds absurd, but I can't get a context on Signatures.

Regards,
ZEDD


All times are GMT -4. The time now is 18:13.

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