Raised This Month: $ Target: $400
 0% 

Detecting team change, tag mismatch


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-14-2020 , 08:25   Detecting team change, tag mismatch
Reply With Quote #1

Hey, so I want to detect team change, and when someone changes teams, or was transferred to a new one, his model will reset. I wanted to do this with 2 global variables like this
PHP Code:
new g_PreTeam[33]
new 
g_PostTeam[33
PHP Code:
RegisterHam(Ham_Spawn"player""OnPlayerSpawn"1);
register_logevent("logevent_round_end"2"1=Round_End"); 
And than
PHP Code:
public logevent_round_end(id)
{
    if (
get_user_flags(id) & ADMIN_LEVEL_H)
    {
        
g_PreTeam[id] = cs_get_user_team(id);
    }
}

public 
OnPlayerSpawn(id)
{
    if (
get_user_flags(id) & ADMIN_LEVEL_H)
    {
        
g_PostTeam[id] = cs_get_user_team(id)
        
set_task(0.5"CheckModel"id);
    }

PHP Code:
public CheckModel(id)
{
    if(
g_PostTeam == g_PreTeam)
    {
        
ChatColor(id"!n>> !gYour model was set, no need for change!");
    }
    else if(
g_PostTeam != g_PreTeam)
    {
        
cs_reset_user_model(id)
        
ChatColor(id"!n>> !gModel reset applied, change your model!");
    }

But I get error message saying tag mismatch
__________________
Contact! || Discord:
Mr_Boopsy_#2066

Last edited by supertrio17; 06-14-2020 at 08:26.
supertrio17 is offline
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 06-14-2020 , 08:37   Re: Detecting team change, tag mismatch
Reply With Quote #2

PHP Code:
g_PostTeam[id]
g_PreTeam[id
To --->

PHP Code:
g_PostTeam
g_PreTeam 
I'm not sure it works, But test

Last edited by alferd; 06-14-2020 at 08:39.
alferd is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 06-14-2020 , 08:38   Re: Detecting team change, tag mismatch
Reply With Quote #3

Quote:
Originally Posted by alferd View Post
PHP Code:
g_PostTeam[id]
g_PreTeam[id
To --->

PHP Code:
g_PostTeam
g_PreTeam 
Test
Absolutely not.

There is no "id" in the round end event. That's a global event. You need to loop all players in order to get their ids.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 06-14-2020 , 08:41   Re: Detecting team change, tag mismatch
Reply With Quote #4

Quote:
Originally Posted by OciXCrom View Post
Absolutely not.

There is no "id" in the round end event. That's a global event. You need to loop all players in order to get their ids.
PHP Code:
g_PostTeam[0]
g_PreTeam[0
So it has to work

it's true?
alferd is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-14-2020 , 08:46   Re: Detecting team change, tag mismatch
Reply With Quote #5

But I need to get Id number, that will always be a zero right? Because I'm doing multiple people at once, I need to have 32 numbers, that's why I did this in the first place...
__________________
Contact! || Discord:
Mr_Boopsy_#2066
supertrio17 is offline
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-14-2020 , 08:53   Re: Detecting team change, tag mismatch
Reply With Quote #6

Quote:
Originally Posted by OciXCrom View Post
Absolutely not.

There is no "id" in the round end event. That's a global event. You need to loop all players in order to get their ids.
I'm sorry, but I never bothered with looping, so can you give me an example?
__________________
Contact! || Discord:
Mr_Boopsy_#2066

Last edited by supertrio17; 06-14-2020 at 08:54. Reason: typo
supertrio17 is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 06-14-2020 , 09:57   Re: Detecting team change, tag mismatch
Reply With Quote #7

You didn't get a "tag mismatch error", you got a warning. The warning means the left-hand side(lhs) tag and the right-hand side(rhs) tag do not match.

Check the expression:
PHP Code:
 g_PreTeam[id] = cs_get_user_team(id); 
g_PreTeam[id] is the lhs and it is created as:
PHP Code:
new g_PreTeam[33
so it doesn't have a tag.

Check rhs: cs_get_user_team(id). http://amxmodx.org/api/cstrike/cs_get_user_team

PHP Code:
native CsTeams:cs_get_user_team(index, &any:model CS_DONTCHANGE); 
The native returns a tagged value, with the tag "CsTeams". Te solution is simple, either tag g_PreTeam with CsTeams or detag the return value of the native with _:

About looping: search for get_players.

Also, please edit your posts instead of making multiple unneeded posts.
__________________

Last edited by HamletEagle; 06-14-2020 at 10:01.
HamletEagle is offline
Old 06-14-2020, 10:03
supertrio17
This message has been deleted by supertrio17. Reason: stupid
Old 06-14-2020, 10:16
alferd
This message has been deleted by alferd.
supertrio17
Senior Member
Join Date: May 2020
Location: Serbia
Old 06-14-2020 , 12:37   Re: Detecting team change, tag mismatch
Reply With Quote #10

Hey, so I did this:
PHP Code:
new CsTeams:g_PreTeam[33]
new 
CsTeams:g_PostTeam[33
and it fixed g_PreTeam, but now I get this 2 messages:
Code:
// D:\Games\srw\cstrike\addons\amxmodx\scripting\Moji PLOVI\adminmodel.sma(58) : error 033: array must be indexed (variable "g_PostTeam")
// D:\Games\srw\cstrike\addons\amxmodx\scripting\Moji PLOVI\adminmodel.sma(62) : error 033: array must be indexed (variable "g_PostTeam")
My code looks like this:
PHP Code:
public logevent_round_end(id)
{
    if (
get_user_flags(id) & ADMIN_LEVEL_H)
    {
        
g_PreTeam[id] = cs_get_user_team(id);
    }
}

public 
OnPlayerSpawn(id)
{
    if (
get_user_flags(id) & ADMIN_LEVEL_H)
    {
        
g_PostTeam[id] = cs_get_user_team(id)
        
set_task(0.5"CheckModel"id);
    }

PHP Code:
public CheckModel(id)
{
    if(
g_PostTeam == g_PreTeam)
    {
        
CC_SendMessage(id"!n>> !gYour model was set, no need for change!");
    }
    else if(
g_PostTeam != g_PreTeam)
    {
        
cs_reset_user_model(id)
        
CC_SendMessage(id"!n>> !gModel reset applied, change your model!");
    }

__________________
Contact! || Discord:
Mr_Boopsy_#2066
supertrio17 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 17:12.


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