Raised This Month: $12 Target: $400
 3% 

Empires, get player score


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
skulk_on_dope
Junior Member
Join Date: Jan 2007
Old 12-27-2007 , 19:00   Empires, get player score
Reply With Quote #1

I'm currently trying to get the player scores in the mod empires

I've tried to use the player_score event, but this isn't used in empires.

Also I've tried to get them via GetEntData, m_iScore but this doesn't exist for player entites.

Then I've tried to search the right m_Offset in the server.dll, found m_iRank but this also doesn't exist for the player entites

Does anyone have a idea how I could get the scores ?
skulk_on_dope is offline
pRED*
Join Date: Dec 2006
Old 12-27-2007 , 19:05   Re: Empires, get player score
Reply With Quote #2

do you have an entity prop dump available?

if you don't type sm_dump_props <filename> (server console or rcon) and post the file somewhere so I can have a look.
pRED* is offline
skulk_on_dope
Junior Member
Join Date: Jan 2007
Old 12-27-2007 , 19:24   Re: Empires, get player score
Reply With Quote #3

Im anhang befindet sich der dump.
Der classname für spieler ist CSDKPlayer

und danke für den befehl, kannte den garnicht.
Aber er war sm_dump_netprops du hattest das net vergessen

Edit:
Sorry, forgot to write enlish

Attached is the dump from sm_dump_netprops, u've forgotten the net in the cmd
Attached Files
File Type: zip netprop.zip (41.6 KB, 130 views)

Last edited by skulk_on_dope; 12-27-2007 at 19:37.
skulk_on_dope is offline
skulk_on_dope
Junior Member
Join Date: Jan 2007
Old 12-27-2007 , 19:35   Re: Empires, get player score
Reply With Quote #4

Ich glaube ich habe gerade etwas gefunden:
Code:
CPlayerResource:
 Sub-Class Table (1 Deep): DT_PlayerResource
  [... gekürtzt ...]
  Sub-Class Table (2 Deep): m_iScore
  -Member: 000 (offset 0) (type integer) (bits 12)
  -Member: 001 (offset 4) (type integer) (bits 12)
  -Member: 002 (offset 8) (type integer) (bits 12)
  -Member: 003 (offset 12) (type integer) (bits 12)
  -Member: 004 (offset 16) (type integer) (bits 12)
  -Member: 005 (offset 20) (type integer) (bits 12)
  -Member: 006 (offset 24) (type integer) (bits 12)
  -Member: 007 (offset 28) (type integer) (bits 12)
  -Member: 008 (offset 32) (type integer) (bits 12)
  -Member: 009 (offset 36) (type integer) (bits 12)
  -Member: 010 (offset 40) (type integer) (bits 12)
  -Member: 011 (offset 44) (type integer) (bits 12)
  -Member: 012 (offset 48) (type integer) (bits 12)
  -Member: 013 (offset 52) (type integer) (bits 12)
  -Member: 014 (offset 56) (type integer) (bits 12)
  -Member: 015 (offset 60) (type integer) (bits 12)
  -Member: 016 (offset 64) (type integer) (bits 12)
  -Member: 017 (offset 68) (type integer) (bits 12)
  -Member: 018 (offset 72) (type integer) (bits 12)
  -Member: 019 (offset 76) (type integer) (bits 12)
  -Member: 020 (offset 80) (type integer) (bits 12)
  -Member: 021 (offset 84) (type integer) (bits 12)
  -Member: 022 (offset 88) (type integer) (bits 12)
  -Member: 023 (offset 92) (type integer) (bits 12)
  -Member: 024 (offset 96) (type integer) (bits 12)
  -Member: 025 (offset 100) (type integer) (bits 12)
  -Member: 026 (offset 104) (type integer) (bits 12)
  -Member: 027 (offset 108) (type integer) (bits 12)
  -Member: 028 (offset 112) (type integer) (bits 12)
  -Member: 029 (offset 116) (type integer) (bits 12)
  -Member: 030 (offset 120) (type integer) (bits 12)
  -Member: 031 (offset 124) (type integer) (bits 12)
  -Member: 032 (offset 128) (type integer) (bits 12)
  -Member: 033 (offset 132) (type integer) (bits 12)
  -Member: 034 (offset 136) (type integer) (bits 12)
  -Member: 035 (offset 140) (type integer) (bits 12)
  -Member: 036 (offset 144) (type integer) (bits 12)
  -Member: 037 (offset 148) (type integer) (bits 12)
  -Member: 038 (offset 152) (type integer) (bits 12)
  -Member: 039 (offset 156) (type integer) (bits 12)
  -Member: 040 (offset 160) (type integer) (bits 12)
  -Member: 041 (offset 164) (type integer) (bits 12)
  -Member: 042 (offset 168) (type integer) (bits 12)
  -Member: 043 (offset 172) (type integer) (bits 12)
  -Member: 044 (offset 176) (type integer) (bits 12)
  -Member: 045 (offset 180) (type integer) (bits 12)
  -Member: 046 (offset 184) (type integer) (bits 12)
  -Member: 047 (offset 188) (type integer) (bits 12)
  -Member: 048 (offset 192) (type integer) (bits 12)
nur wie genau kann ich dadrauf jetzt zugreifen ?

Edit:
and here I've forgotten it too:

I think that I've found something, but i don't know how to access them
if you could help me with that

Last edited by skulk_on_dope; 12-27-2007 at 19:38.
skulk_on_dope is offline
pRED*
Join Date: Dec 2006
Old 12-27-2007 , 19:40   Re: Empires, get player score
Reply With Quote #5

Sorry, I don't speak spanish german.

The 'CPlayerResource' seems to be the only place that records player scores.

You first need to find the ent id of this:

Code:
new maxplayers = GetMaxClients();
new maxents = GetMaxEntities();

new String:classname[64];

for(new i = maxplayers; i <= maxents; i++)
{
	if(IsValidEntity(i))
	{
		GetEntityNetClass(i, classname, sizeof(classname));
		if(StrEqual(classname, "CTFPlayerResource"))
		{
			ent = i;
			return;
		}
	}
}
Then you can look up the offset of 'm_iScore'

Code:
new offsetFindSendPropOffs("CTFPlayerResource", "m_iScore")
Then check the offset + the client index * 4 (check the prop dump to see this)

Code:
GetEntData(ent, offset + (client*4), 4);
pRED* is offline
skulk_on_dope
Junior Member
Join Date: Jan 2007
Old 12-27-2007 , 20:00   Re: Empires, get player score
Reply With Quote #6

First of all, thx your my last hope ;)

Code:
    new maxplayers = GetMaxClients();
    new maxents = GetMaxEntities();
    new ent;
    
    new String:classname[64];
    
    for(new i = maxplayers; i <= maxents; i++)
    {
        if(IsValidEntity(i))
        {
            GetEntityNetClass(i, classname, sizeof(classname));
            if(StrEqual(classname, "CTFPlayerResource"))
            {
                ent = i;
                return;
            }
        }
    }
    
    new offset = FindSendPropOffs("CTFPlayerResource", "m_iScore")
    
    for(new i=1; i<=maxplayers; i++)
    {
        if(!IsClientInGame(i)) continue
        PrintToServer("%d: %d", i, GetEntData(ent, offset + (i*4), 4));
    }
^^ that isnt working how it should, it say's that I've got 34 but i dont have any so it should return 0....

Edit:
even when I use the right Classname (CPlayerResource) its not working.
There Ive got a very very high numer...

Edit2:
ups i'm a real fool...
gimme a sec

Last edited by skulk_on_dope; 12-27-2007 at 20:23.
skulk_on_dope is offline
pRED*
Join Date: Dec 2006
Old 12-27-2007 , 20:20   Re: Empires, get player score
Reply With Quote #7

change the 'return;' to 'break;'

Change both CTFPlayerResource -> CPlayerResource
pRED* is offline
skulk_on_dope
Junior Member
Join Date: Jan 2007
Old 12-27-2007 , 20:29   Re: Empires, get player score
Reply With Quote #8

Ok, now I got it working.
You are the best

Code:
    new maxplayers = GetMaxClients();
    new maxents = GetMaxEntities();
    new ent;
    
    decl String:classname[64];
    
    for(new i = maxplayers; i <= maxents; i++)
    {
        if(IsValidEntity(i))
        {
            GetEntityNetClass(i, classname, sizeof(classname));
            if(StrEqual(classname, "CPlayerResource"))
            {
                ent = i;
                break;
            }
        }
    }
    
    new offset = FindSendPropOffs("CPlayerResource", "m_iScore")
    
    if(ent == 0 || offset == -1)
    {
        PrintToServer("Can not find CPlayerResource!");
        return;
    }
    
    for(new i=1; i<=maxplayers; i++)
    {
        if(!IsClientInGame(i)) continue
        PrintToServer("%d: %d", i, GetEntData(ent, offset + (i*4), 4));
    }
skulk_on_dope is offline
Reply


Thread Tools
Display Modes

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 07:07.


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