Allied Modders en español
TeamSelect - Versión para impresión

+- Allied Modders en español (https://amxmodx-es.com)
+-- Foro: SourceMod (/Forum-SourceMod)
+--- Foro: Plugins nuevos (/Forum-Plugins-nuevos--29)
+--- Tema: TeamSelect (/Thread-TeamSelect)

Páginas: 1 2


TeamSelect - wiD - 23/12/2014 11:43 PM

TeamMenu v1.0

Image

.: Introducción :.

Simple plugin para facilitar el traspaso de players de un team a otro (Especialmente en Mix/PCW).

.: CVARS / Commands :.
  • sm_teammenu (1/2/3) - Abre el menu para transferir al team que hayamos seleccionado (1 Spect / 2 TT / 3 CT)
  • sm_teammenu_all (1/2/3) - Manda a todos los players al team que hayamos seleccionado (1 Spect / 2 TT / 3 CT)


.: .sp :.

Código PHP:
#include <sourcemod>
#include <sdktools>

new select_team;

public 
Plugin:myinfo =
{
    
name "TeamMenu",
    
author "",
    
description "Easy plugin for change client teams.",
    
version "1.0",
    
url "http://www.amxmodx-es.com"
};

public 
OnPluginStart()
{
    
RegAdminCmd("sm_teammenu"Command_TeamADMFLAG_SLAY);
    
RegAdminCmd("sm_teammenu_all"Command_Team_AllADMFLAG_SLAY);
}

public 
Action:Command_Team_All(clientargs)
{
    new 
String:arg1[32];
    new 
select;
    
    
GetCmdArg(1arg1sizeof(arg1));
    
    if (
args >= 1)
    {
        
select StringToInt(arg1);
    }
    
    if((
select != 1) && (select != 2) && (select != 3))
    {
        
PrintToConsole(client"[TeamMenu] Team Erroneo");
        return 
Plugin_Handled;
    }
    else
    {
        for(new 
i=1<= MaxClientsi++) 
        {
            if(
IsClientInGame(i) && !IsClientConnected(i) && (GetClientTeam(i) != select)) 
            {
                
ChangeClientTeam(iselect);
                
            }
        }
    }
    
    return 
Plugin_Handled;
}
public 
Action:Command_Team(clientargs)
{
    new 
String:arg1[32];
    
    
GetCmdArg(1arg1sizeof(arg1));
    
    if (
args >= 1)
    {
        
select_team StringToInt(arg1);
    }
    
    if((
select_team != 1) && (select_team != 2) && (select_team != 3))
    {
        
PrintToConsole(client"[TeamMenu] Team Erroneo");
        return 
Plugin_Handled;
    }
    
    new 
Handle:menu CreateMenu(MenuTeam);
    new 
String:player[32];
    for(new 
i=1<= MaxClientsi++) 
    {
        if(
IsClientInGame(i) && !IsClientConnected(i) && (GetClientTeam(i) != select_team)) 
        {
            
GetClientName(iplayersizeof(player));
            
AddMenuItem(menuplayerplayer);
                
        }
    }
        
    
SetMenuTitle(menu"[TeamMenu] TeamSelect");
    
    
    return 
menu;
}

public 
MenuTeam(Handle:menuMenuAction:actionparam1param2)
{
    if (
action == MenuAction_Select)
    {
        new 
String:info[32];

        
GetMenuItem(menuparam2infosizeof(info));
        
        new 
user FindTarget(0info);
        
ChangeClientTeam(userselect_team);
        
Command_Team(param1select_team);
    }




RE: TeamSelect - roccoxx - 24/12/2014 12:07 AM

if((select != 1) && (select != 2) && (select != 3))

cambia los && por ||

lo mismo para el otro.

player[255] 254 caracteres va a tener?

por lo visto eche una mirada rapida y parece estar bien el code.

al pedo queres un automix si tenes los competitivos.


RE: TeamSelect - wiD - 24/12/2014 12:09 AM

Uh bardie. Lo saque de mi MixMaker y me olvidé de cambiarlo.

No se cual es el limite de caracteres, por las dudas...


RE: TeamSelect - roccoxx - 24/12/2014 12:25 AM

digo que es al pedo, si usas 255 arriba y abajo 32.


RE: TeamSelect - wiD - 24/12/2014 12:30 AM

Sí, son cosas que se me pasan por usar la api tal cual del menu.

PD: Vi en internet y arman Mix entre equipos sin usar competitivo, a ksa.


RE: TeamSelect - roccoxx - 24/12/2014 12:31 AM

bueno son unos giles esos jaja.

otra cosa que se me paso por alto, cambia IsFakeClient por IsClientConnected, para darle soporte a los bots e.e


RE: TeamSelect - wiD - 24/12/2014 12:37 AM

No la tenía esa jeje. PD: Chequeate esto, para hacer un fade:

Código PHP:
stock FadeClient(clientduration 0, const color[4])
{
    if(!
duration)
        
duration RoundToNearest(GetConVarFloat(g_hFreezeTime));
    new 
Handle:hFadeClient StartMessageOne("Fade"client);
    
PbSetInt(hFadeClient"duration"duration);
    
PbSetInt(hFadeClient"hold_time"0);
    
PbSetInt(hFadeClient"flags", (FFADE_PURGE|FFADE_IN));
    
PbSetColor(hFadeClient"clr"color);
    
EndMessage();


En la constante color que numeros tendrían que ir? En PbSetColor de la wiki no dice nada acerca de los colroes rgb...


RE: TeamSelect - roccoxx - 24/12/2014 01:00 AM

color[0] = r // int color rojo
color[1] = g // int color verde
color[2] = b // int color azul
color[3] = a // int alpha

edit: calate este stock:

Código PHP:
FadeClient(clientrgba)
{
new 
Handle:hFadeClient StartMessageOne("Fade",client)
if (
GetUserMessageType() == UM_Protobuf)
{
new 
color[4]
color[0] = r
color
[1] = g
color
[2] = b
color
[3] = a
PbSetInt
(hFadeClient"duration"0)
PbSetInt(hFadeClient"hold_time"0)
PbSetInt(hFadeClient"flags", (FFADE_PURGE|FFADE_STAYOUT))
PbSetColor(hFadeClient"clr"color)
}
else
{
BfWriteShort(hFadeClient0)
BfWriteShort(hFadeClient0)
BfWriteShort(hFadeClient, (FFADE_PURGE|FFADE_STAYOUT))
BfWriteByte(hFadeClientr)
BfWriteByte(hFadeClientg)
BfWriteByte(hFadeClientb)
BfWriteByte(hFadeClienta)
}
EndMessage()




RE: TeamSelect - wiD - 24/12/2014 01:17 AM

CSGO no soportaba Byte to write no? Era si o si protobuf?


RE: TeamSelect - roccoxx - 24/12/2014 01:30 AM

claro, creo que estas en lo cierto.

https://wiki.alliedmods.net/Protobuf

PbSetColor(hFadeClient, "clr", {0, 0, 0, 255})

ahi por si no entendias, rgb y el alpha.

me fui a noñar jaja