AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   teleport (https://forums.alliedmods.net/showthread.php?t=320789)

Sanjay Singh 01-09-2020 05:10

teleport
 
how can i add the feature to teleport player near me (teleport menu user) without using co ordinates.
i want command
PHP Code:

amx_instantteleport 


Code:
PHP Code:

/* AMX Mod X
*   Teleport Menu 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>
#include <fun>

new g_menuPosition[33]
new 
g_menuPlayers[33][32]
new 
g_menuPlayersNum[33]
new 
g_menuOption[33] = {-1, ...}
new 
g_menuOrgin[33][3]
new 
g_coloredMenus

public plugin_init()
{
    
register_plugin("Teleport Menu"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("telemenu.txt")
    
register_dictionary("common.txt")
    
register_clcmd("amx_teleportmenu""cmdTelMenu"ADMIN_CFG"- displays teleport menu")
    
register_menucmd(register_menuid("Teleport Menu"), 1023"actionTelMenu")

    
g_coloredMenus colored_menus()
}

public 
actionTelMenu(idkey)
{
    switch (
key)
    {
        case 
6:
        {
            
g_menuOption[id] = g_menuOption[id]
            
displayTelMenu(idg_menuPosition[id])
        }
        case 
7:
        {
            if (
g_menuOption[id] < 0)    /* unlocking position for the first time */
                
g_menuOption[id] = 0
            
            get_user_origin
(idg_menuOrgin[id])
            
displayTelMenu(idg_menuPosition[id])
        }
        case 
8displayTelMenu(id, ++g_menuPosition[id])
        case 
9displayTelMenu(id, --g_menuPosition[id])
        default:
        {
            new 
player g_menuPlayers[id][g_menuPosition[id] * key]
            new 
name2[32]
        
            
get_user_name(playername231)

            if (!
is_user_alive(player))
            {
                
client_print(idprint_chat"%L"id"CANT_PERF_DEAD"name2)
                
displayTelMenu(idg_menuPosition[id])
                return 
PLUGIN_HANDLED
            
}

            if (
g_menuOption[id] > 0)
            {
                
set_user_origin(playerg_menuOrgin[id])
            } else {
                new 
origin[3]
                
                
get_user_origin(idorigin)
                
set_user_origin(playerorigin)
            }

            new 
authid[32], authid2[32], name[32]

            
get_user_authid(idauthid31)
            
get_user_authid(playerauthid231)
            
get_user_name(idname31)

            
log_amx("Cmd: ^"%s<%d><%s><>^" teleport ^"%s<%d><%s><>^""nameget_user_userid(id), authidname2get_user_userid(player), authid2)

            
show_activity_key("ADMIN_TELEPORT_1""ADMIN_TELEPORT_2"namename2);

            
displayTelMenu(idg_menuPosition[id])
        }
    }
    
    return 
PLUGIN_HANDLED
}

displayTelMenu(idpos)

    if (
pos 0)
        return

    
get_players(g_menuPlayers[id], g_menuPlayersNum[id])

    new 
menuBody[512]
    new 
0
    
new i
    
new name[32]
    new 
start pos 6
    
new bool:blockMenu = (is_user_alive(id) && g_menuOption[id] < 1) ? true false

    
if (start >= g_menuPlayersNum[id])
        
start pos g_menuPosition[id] = 0

    
new len format(menuBody511g_coloredMenus "\y%L\R%d/%d^n\w^n" "%L %d/%d^n^n"id"TELE_MENU"pos 1, (g_menuPlayersNum[id] / + ((g_menuPlayersNum[id] % 6) ? 0)))
    new 
end start 6
    
new keys MENU_KEY_0|MENU_KEY_8

    
if (end g_menuPlayersNum[id])
        
end g_menuPlayersNum[id]

    for (new 
startend; ++a)
    {
        
g_menuPlayers[id][a]
        
get_user_name(iname31)

        if (
blockMenu || !is_user_alive(i) || (id != && get_user_flags(i) & ADMIN_IMMUNITY))
        {
            ++
b
        
            
if (g_coloredMenus)
                
len += format(menuBody[len], 511-len"\d%d. %s^n\w"bname)
            else
                
len += format(menuBody[len], 511-len"#. %s^n"name)
        } else {
            
keys |= (1<<b)
            
            if (
is_user_admin(i))
                
len += format(menuBody[len], 511-leng_coloredMenus "%d. %s \r*^n\w" "%d. %s *^n", ++bname)
            else
                
len += format(menuBody[len], 511-len"%d. %s^n", ++bname)
        }
    }

    if (
g_menuOption[id] > 0)    // 1
    
{
        
keys |= MENU_KEY_7
        len 
+= format(menuBody[len], 511-len"^n7. To location: %d %d %d^n"g_menuOrgin[id][0], g_menuOrgin[id][1], g_menuOrgin[id][2])
    }
    else if (
g_menuOption[id])    // -1
    
{
        if (
g_coloredMenus)
            
len += format(menuBody[len], 511-len"^n\d7. %L^n\w"id"CUR_LOC")
        else
            
len += format(menuBody[len], 511-len"^n#. %L^n"id"CUR_LOC")
    } else {                    
// 0
        
keys |= MENU_KEY_7
        len 
+= format(menuBody[len], 511-len"^n7. %L^n"id"CUR_LOC")
    }

    
len += format(menuBody[len], 511-len"8. %L^n"id"SAVE_LOC")

    if (
end != g_menuPlayersNum[id])
    {
        
format(menuBody[len], 511-len"^n9. %L...^n0. %L"id"MORE"idpos "BACK" "EXIT")
        
keys |= MENU_KEY_9
    
}
    else
        
format(menuBody[len], 511-len"^n0. %L"idpos "BACK" "EXIT")

    
show_menu(idkeysmenuBody, -1"Teleport Menu")
}

public 
cmdTelMenu(idlevelcid)
{
    if (
cmd_access(idlevelcid1))
        
displayTelMenu(idg_menuPosition[id] = 0)

    return 
PLUGIN_HANDLED



OciXCrom 01-09-2020 06:49

Re: teleport
 
Get your coordinates by using "get_user_origin" and set the same coordinates for the targeted player by using "set_user_origin".

If you have Semiclip, this will work fine, if not, you would need to modify the origin a bit by adding around +10 to one of the axes to avoid both players getting stuck.

You can also get the position where you're aiming with the same function (check the API documentation) and teleport the user there instead.

Sanjay Singh 01-09-2020 10:32

Re: teleport
 
Quote:

Originally Posted by OciXCrom (Post 2679500)
Get your coordinates by using "get_user_origin" and set the same coordinates for the targeted player by using "set_user_origin".

If you have Semiclip, this will work fine, if not, you would need to modify the origin a bit by adding around +10 to one of the axes to avoid both players getting stuck.

You can also get the position where you're aiming with the same function (check the API documentation) and teleport the user there instead.

get user aim teleport will be enough but any example plugin or tut link?

OciXCrom 01-09-2020 13:31

Re: teleport
 
Don't read through words.

Quote:

check the API documentation
https://www.amxmodx.org/api/amxmodx/get_user_origin

Look at the "mode" argument and you'll figure it out.

Sanjay Singh 01-10-2020 02:44

Re: teleport
 
Can you make small plugin using this api ?
I need player menu and teleport him where my aim is .

HamletEagle 01-10-2020 04:39

Re: teleport
 
Quote:

Originally Posted by Sanjay Singh (Post 2679613)
Can you make small plugin using this api ?
I need player menu and teleport him where my aim is .

Code:

AlliedModders Forum Index > AMX Mod X > Scripting > Scripting Help
You got all the help you needed. Now try to do it by yourself and if you fail, show us what you tried.

Sanjay Singh 01-10-2020 09:17

Re: teleport
 
thanks for help guys made it and working fine, only bug is when i point toward sky it just stucks 2nd player how can i fix it that it wont stuck. :)

OciXCrom 01-10-2020 09:59

Re: teleport
 
Well if you made it teleport the player where you're aiming, simply don't point at the sky. :|

Try using the "drop_to_floor" function.

HamletEagle 01-10-2020 14:49

Re: teleport
 
You can check if the end point is sky and return.

Sanjay Singh 01-10-2020 23:03

Re: teleport
 
What's point of sky?


All times are GMT -4. The time now is 02:56.

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