Raised This Month: $ Target: $400
 0% 

purpose of ackSignal() in adminslots


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Owyn
Veteran Member
Join Date: Nov 2007
Old 10-30-2009 , 08:42   purpose of ackSignal() in adminslots
Reply With Quote #1

why do you need to check if client_cmd reaches the client, why not just kick? *just wondering to increase my knowledge
__________________
☜ Free Mozy ☂backup\҉sync user
Quote:
Американский форум - Задаёшь вопрос, потом тебе отвечают.
Израильский форум - Задаёшь вопрос, потом тебе задают вопрос.
Русский форум - Задаёшь вопрос, потом тебе долго рассказывают, какой ты мудак.
Owyn is offline
Send a message via ICQ to Owyn
hleV
Veteran Member
Join Date: Mar 2007
Location: Lithuania
Old 10-30-2009 , 09:02   Re: ackSignal() in adminslots
Reply With Quote #2

What are you talking about? Give an example.
__________________
hleV is offline
Owyn
Veteran Member
Join Date: Nov 2007
Old 10-30-2009 , 09:19   Re: ackSignal() in adminslots
Reply With Quote #3

PHP Code:
/* AMX Mod X
*   Slots Reservation Plugin
*
* by the AMX Mod X Development Team
*  originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
*  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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*  In addition, as a special exception, the author gives permission to
*  link the code of this program with the Half-Life Game Engine ("HL
*  Engine") and Modified Game Libraries ("MODs") developed by Valve,
*  L.L.C ("Valve"). You must obey the GNU General Public License in all
*  respects for all of the code used other than the HL Engine and MODs
*  from Valve. If you modify this file, you may extend this exception
*  to your version of the file, but you are not obligated to do so. If
*  you do not wish to do so, delete this exception statement from your
*  version.
*/

#include <amxmodx>
#include <amxmisc>

new g_cmdLoopback[16]
new 
g_ResPtr
new g_HidePtr

public plugin_init()
{
    
register_plugin("Slots Reservation"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("adminslots.txt")
    
register_dictionary("common.txt")
    
g_ResPtr register_cvar("amx_reservation""0")
    
g_HidePtr register_cvar("amx_hideslots""0")
    
    
format(g_cmdLoopback15"amxres%c%c%c%c"random_num('A''Z'), random_num('A''Z'), random_num('A''Z'), random_num('A''Z'))
    
register_clcmd(g_cmdLoopback"ackSignal")
}

public 
plugin_cfg()
{
    
set_task(3.0"MapLoaded")
}

public 
MapLoaded()
{
    if (!
get_pcvar_num(g_HidePtr))
        return

    new 
maxplayers get_maxplayers()
    new 
players get_playersnum(1)
    new 
limit maxplayers get_pcvar_num(g_ResPtr)
    
setVisibleSlots(playersmaxplayerslimit)
}

public 
ackSignal(id)
{
    new 
lReason[64]
    
format(lReason63"%L"id"DROPPED_RES")
    
server_cmd("kick #%d ^"%s^""get_user_userid(id), lReason)
    
    return 
PLUGIN_HANDLED
}

public 
client_authorized(id)
{
     
    new 
maxplayers get_maxplayers()
    new 
players get_playersnum(1)
    new 
limit maxplayers get_pcvar_num(g_ResPtr)
    
  
    if ( 
access(idADMIN_RESERVATION) || (players <= limit) )
    {
        if (
get_pcvar_num(g_HidePtr) == 1)
            
setVisibleSlots(playersmaxplayerslimit)
        return 
PLUGIN_CONTINUE
    
}
    
    
client_cmd(id"%s"g_cmdLoopback)

    return 
PLUGIN_HANDLED
}


public 
client_disconnect(id)
{
    if (!
get_pcvar_num(g_HidePtr))
        return 
PLUGIN_CONTINUE

    
new maxplayers get_maxplayers()
    
    
setVisibleSlots(get_playersnum(1) - 1maxplayersmaxplayers get_pcvar_num(g_ResPtr))
    return 
PLUGIN_CONTINUE
}

setVisibleSlots(playersmaxplayerslimit)
{
    new 
num players 1

    
if (players == maxplayers)
        
num maxplayers
    
else if (players limit)
        
num limit
    
    set_cvar_num
("sv_visiblemaxplayers"num)

__________________
☜ Free Mozy ☂backup\҉sync user
Quote:
Американский форум - Задаёшь вопрос, потом тебе отвечают.
Израильский форум - Задаёшь вопрос, потом тебе задают вопрос.
Русский форум - Задаёшь вопрос, потом тебе долго рассказывают, какой ты мудак.
Owyn is offline
Send a message via ICQ to Owyn
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 10-31-2009 , 05:20   Re: ackSignal() in adminslots
Reply With Quote #4

I also would like to know.
client_cmd delays the kick, but i don't see why it's needed here.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 10-31-2009 , 07:55   Re: ackSignal() in adminslots
Reply With Quote #5

Quote:
Originally Posted by ConnorMcLeod View Post
I also would like to know.
client_cmd delays the kick, but i don't see why it's needed here.
Maybe because client_cmd ensures that the client was authenticated by amxx (if it's a player with reserved slot)
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.
joropito is offline
Send a message via MSN to joropito
xPaw
Retired AMX Mod X Moderator
Join Date: Jul 2008
Old 10-31-2009 , 09:16   Re: purpose of ackSignal() in adminslots
Reply With Quote #6

No it doesnt

PHP Code:
client_cmd(id"%s"g_cmdLoopback
PHP Code:
public ackSignal(id)
{
    new 
lReason[64]
    
format(lReason63"%L"id"DROPPED_RES")
    
server_cmd("kick #%d ^"%s^""get_user_userid(id), lReason)
    
    return 
PLUGIN_HANDLED

__________________
xPaw is offline
joropito
AlliedModders Donor
Join Date: Mar 2009
Location: pfnAddToFullPack
Old 10-31-2009 , 09:29   Re: purpose of ackSignal() in adminslots
Reply With Quote #7

Quote:
Originally Posted by xPaw View Post
No it doesnt

PHP Code:
client_cmd(id"%s"g_cmdLoopback
PHP Code:
public ackSignal(id)
{
    new 
lReason[64]
    
format(lReason63"%L"id"DROPPED_RES")
    
server_cmd("kick #%d ^"%s^""get_user_userid(id), lReason)
    
    return 
PLUGIN_HANDLED

I saw that but what I'm saying is, for a client cmd to work fine the player must be authenticated in amxx before use it so I guess it's one way to ensures that.
__________________

Divide et vinces
approved plugins | steam account

I don't accept PM for support. Just ask on forums.
If you're looking for private work, PM me.
joropito is offline
Send a message via MSN to joropito
Owyn
Veteran Member
Join Date: Nov 2007
Old 10-31-2009 , 11:42   Re: purpose of ackSignal() in adminslots
Reply With Quote #8

what is "authentication in amxx" ? O_o

+you can kick everyone who is on your server
__________________
☜ Free Mozy ☂backup\҉sync user
Quote:
Американский форум - Задаёшь вопрос, потом тебе отвечают.
Израильский форум - Задаёшь вопрос, потом тебе задают вопрос.
Русский форум - Задаёшь вопрос, потом тебе долго рассказывают, какой ты мудак.
Owyn is offline
Send a message via ICQ to Owyn
hleV
Veteran Member
Join Date: Mar 2007
Location: Lithuania
Old 10-31-2009 , 15:49   Re: purpose of ackSignal() in adminslots
Reply With Quote #9

You can kick people by name or by sending SVC_DISCONNECT. People don't get their ID so fast.
__________________
hleV is offline
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 10-31-2009 , 16:25   Re: purpose of ackSignal() in adminslots
Reply With Quote #10

I think it is because client_authorized may be called before player enters the server.
Therefore, they make the player execute the command so that if the player isn't connected yet, the command won't be issued and the server won't kick a non-existing player.
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] 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:34.


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