AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Orpheu] Team Question (https://forums.alliedmods.net/showthread.php?t=156470)

Doc-Holiday 05-07-2011 02:58

[Orpheu] Team Question
 
Looking through the Virtual functions i didn't see what i was looking for.

I'm looking for where a player initiates team change. Any one know where that is located?

ConnorMcLeod 05-07-2011 03:12

Re: [Orpheu] Team Question
 
What do you want to do ?

If you want to transfer player from T to CT or from CT to T, you can use CBasePlayer::SwitchTeam function.

Doc-Holiday 05-07-2011 03:19

Re: [Orpheu] Team Question
 
Quote:

Originally Posted by ConnorMcLeod (Post 1464837)
What do you want to do ?

If you want to transfer player from T to CT or from CT to T, you can use CBasePlayer::SwitchTeam function.

i want to disable team change

the set_pdata dosent work for me and im already using orpheu for some things so i figured id give this a shot

Is this correct?

PHP Code:

{
    
"name" "ChangePlayerTeam",
    
"class" "CGameRules",
    
"library" "mod",
    
"arguments" :
    [
        {
            
"type" "CBasePlayer *",
            
"type" "char *",
            
"type" "int",
            
"type" "int"
        
}
    ],
    
"indexes" :
    [
        {
            
"os" "windows",
            
"mod" "cstrike",
            
"value" 45
        
},
        {
            
"os" "linux",
            
"mod" "cstrike",
            
"value" 47
        
}
    ]


if yes lol... how would i add that to a plugin? using getfunction didnt work for me says it cant find that on my server. its in

virtual functions/CGameRules/ChangePlayerTeam (no extension)

ConnorMcLeod 05-07-2011 05:54

Re: [Orpheu] Team Question
 
According to vtable, it is 55 and 57.
Code:

RefreshSkillData__18CHalfLifeMultiplay
Think__18CHalfLifeMultiplay
IsAllowedToSpawn__18CHalfLifeMultiplayP11CBaseEntity ; CGameRules::CanHaveAmmo(CBasePlayer *,char const *,int)
FAllowFlashlight__18CHalfLifeMultiplay
FShouldSwitchWeapon__18CHalfLifeMultiplayP11CBasePlayerP15CBasePlayerItem
GetNextBestWeapon__18CHalfLifeMultiplayP11CBasePlayerP15CBasePlayerItem
IsMultiplayer__18CHalfLifeMultiplay
IsDeathmatch__18CHalfLifeMultiplay
IsTeamplay__10CGameRules
IsCoOp__18CHalfLifeMultiplay
GetGameDescription__10CGameRules
ClientConnected__18CHalfLifeMultiplayP7edict_sPCcT2Pc
InitHUD__18CHalfLifeMultiplayP11CBasePlayer
ClientDisconnected__18CHalfLifeMultiplayP7edict_s
UpdateGameMode__18CHalfLifeMultiplayP11CBasePlayer
FlPlayerFallDamage__18CHalfLifeMultiplayP11CBasePlayer
FPlayerCanTakeDamage__18CHalfLifeMultiplayP11CBasePlayerP11CBaseEntity
ShouldAutoAim__10CGameRulesP11CBasePlayerP7edict_s
PlayerSpawn__18CHalfLifeMultiplayP11CBasePlayer
PlayerThink__18CHalfLifeMultiplayP11CBasePlayer
FPlayerCanRespawn__18CHalfLifeMultiplayP11CBasePlayer
FlPlayerSpawnTime__18CHalfLifeMultiplayP11CBasePlayer
GetPlayerSpawnSpot__18CHalfLifeMultiplayP11CBasePlayer
AllowAutoTargetCrosshair__18CHalfLifeMultiplay
ClientCommand_DeadOrAlive__18CHalfLifeMultiplayP11CBasePlayerPCc
ClientCommand__18CHalfLifeMultiplayP11CBasePlayerPCc
ClientUserInfoChanged__18CHalfLifeMultiplayP11CBasePlayerPc
IPointsForKill__18CHalfLifeMultiplayP11CBasePlayerT1
PlayerKilled__18CHalfLifeMultiplayP11CBasePlayerP9entvars_sT2
DeathNotice__18CHalfLifeMultiplayP11CBasePlayerP9entvars_sT2
CanHavePlayerItem__18CHalfLifeMultiplayP11CBasePlayerP15CBasePlayerItem
PlayerGotWeapon__18CHalfLifeMultiplayP11CBasePlayerP15CBasePlayerItem
WeaponShouldRespawn__18CHalfLifeMultiplayP15CBasePlayerItem
FlWeaponRespawnTime__18CHalfLifeMultiplayP15CBasePlayerItem
FlWeaponTryRespawn__18CHalfLifeMultiplayP15CBasePlayerItem
VecWeaponRespawnSpot__18CHalfLifeMultiplayP15CBasePlayerItem
CanHaveItem__18CHalfLifeMultiplayP11CBasePlayerP5CItem
PlayerGotItem__18CHalfLifeMultiplayP11CBasePlayerP5CItem
ItemShouldRespawn__18CHalfLifeMultiplayP5CItem
FlItemRespawnTime__18CHalfLifeMultiplayP5CItem
VecItemRespawnSpot__18CHalfLifeMultiplayP5CItem
CanHaveAmmo__10CGameRulesP11CBasePlayerPCci
PlayerGotAmmo__18CHalfLifeMultiplayP11CBasePlayerPci
AmmoShouldRespawn__18CHalfLifeMultiplayP15CBasePlayerAmmo
FlAmmoRespawnTime__18CHalfLifeMultiplayP15CBasePlayerAmmo
VecAmmoRespawnSpot__18CHalfLifeMultiplayP15CBasePlayerAmmo
FlHealthChargerRechargeTime__18CHalfLifeMultiplay
FlHEVChargerRechargeTime__18CHalfLifeMultiplay
DeadPlayerWeapons__18CHalfLifeMultiplayP11CBasePlayer
DeadPlayerAmmo__18CHalfLifeMultiplayP11CBasePlayer
GetTeamID__18CHalfLifeMultiplayP11CBaseEntity
PlayerRelationship__18CHalfLifeMultiplayP11CBasePlayerP11CBaseEntity
GetTeamIndex__10CGameRulesPCc
GetIndexedTeamName__10CGameRulesi
IsValidTeam__10CGameRulesPCc
ChangePlayerTeam__10CGameRulesP11CBasePlayerPCcii
SetDefaultPlayerTeam__10CGameRulesP11CBasePlayer
PlayTextureSounds__18CHalfLifeMultiplay
FAllowMonsters__18CHalfLifeMultiplay
EndMultiplayerGame__18CHalfLifeMultiplay
IsFreezePeriod__10CGameRules
ServerDeactivate__18CHalfLifeMultiplay
CheckMapConditions__18CHalfLifeMultiplay
CleanUpMap__18CHalfLifeMultiplay
RestartRound__18CHalfLifeMultiplay
CheckWinConditions__18CHalfLifeMultiplay
RemoveGuns__18CHalfLifeMultiplay
GiveC4__18CHalfLifeMultiplay
ChangeLevel__18CHalfLifeMultiplay
GoToIntermission__18CHalfLifeMultiplay

Also your args are wrong, the only arg is CBasePlayer *

Hook and call would look :
PHP Code:

new g_pGameRules
new OrpheuFunction:g_oFnChangePlayerTeam

public plugin_precache()
{
    
OrpheuRegisterHook(OrpheuGetFunction("InstallGameRules"), "OnInstallGameRules_Post"OrpheuHookPost)
}

public 
OnInstallGameRules_Post()
{
    
g_pGameRules OrpheuGetReturn()
    
g_oFnChangePlayerTeam OrpheuGetFunctionFromObject(g_pGameRules"ChangePlayerTeam""CGameRules")
    
OrpheuRegisterHook(g_oFnChangePlayerTeam"OnChangePlayerTeam"OrpheuHookPre)
}

public 
OnChangePlayerTeam(pGameRulesid)
{
}

ChangePlayerTeamid )
{
    
OrpheuCall(g_pGameRulesid)


functions/InstallGameRules
Code:

{
    "name" : "InstallGameRules",
    "library" : "mod",
    "return" :
    {
        "type" : "CHalfLifeMultiplay *"
    },
    "identifiers":
    [
        {
            "os" : "windows",
            "mod" : "cstrike",
            "value" : [0x68,"*","*","*","*",0xFF,0x15,"*","*","*","*",0x83,"*","*",0xFF,0x15,"*","*","*","*",0xA1,"*","*","*","*",0xD9]
        },
                {
            "os" : "linux",
            "mod" : "cstrike",
            "value" : "InstallGameRules__Fv"
        }
    ]
}

Code:

{
    "name" : "ChangePlayerTeam",
    "class" : "CGameRules",
    "library" : "mod",
    "arguments" :
    [
        {
            "type" : "CBasePlayer *",
            "info" : "PlayerIndex"
        }
    ],
    "indexes" :
    [
        {
            "os" : "windows",
            "mod" : "cstrike",
            "value" : 55
        },
        {
            "os" : "linux",
            "mod" : "cstrike",
            "value" : 57
        }
    ]
}


Also, please notice that your args were wrong, if there is more than 1 arg, you have to open new bracket "{" for each arg.

Doc-Holiday 05-08-2011 02:14

Re: [Orpheu] Team Question
 
Thanks. Much appreciated lol but i guess that's only triggered when the team actually changes.

Is there anything that will fire before team change? like when you hit the "team change key"... it brings up the selection menu. I can block the choice being made but i want to stop that menu from popping up lol.

ConnorMcLeod 05-08-2011 02:38

Re: [Orpheu] Team Question
 
Then register chooseteam command.

Default filters are :
Code:

        if ( FStrEq(pcmd, "chooseteam" ) )
        {
                if( m_iMenuCode205 == CHOOSE_APPEARANCE_MENU_3 )
                {
                        return;
                }
                if( m_offset125 & 1<<8 && pev->deadflag ) )
                {
                        ClientPrint(pEntity, print_center, "#Only_1_Team_Change", 0, 0, 0, 0);
                }
                if ( CHalfLifeMultiplay::IsCareer() )
                {
                        return;
                }


Doc-Holiday 05-08-2011 03:07

Re: [Orpheu] Team Question
 
LOL!!!!!!! i had a typo..

"chooseteame"

instead of

"chooseteam"

Doc-Holiday 08-08-2011 10:35

Re: [Orpheu] Team Question
 
using your ChangePlayerTeam it gives me an error saying its wrong

its in the directory
Virtual Functions/CGameRules/ChangePlayerTeam (no extention on file)


All times are GMT -4. The time now is 04:29.

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