Problema al crear TextDrawn y balance de equipos
#1

El problema es el siguiente, hice un textdrawn que cubre toda la pantalla pero al momento de mostrarlo no aparece, aqui les dejo el code:
pawn Код:
new Text:Pc;

public OnGameModeInit()
{
        Pc = TextDrawCreate(1.000000,1.000000,"_");
    TextDrawTextSize(Pc,640.000000,10.000000);
    TextDrawLetterSize(Pc,3.600000,47.600010);
    TextDrawUseBox(Pc,1);
    TextDrawAlignment(Pc,0);
    TextDrawFont(Pc,3);
    TextDrawSetOutline(Pc,1);
    TextDrawSetProportional(Pc,1);
    TextDrawSetShadow(Pc,1);
    TextDrawBackgroundColor(Pc,0x00000000);
    TextDrawColor(Pc,0x00000000);
    TextDrawBoxColor(Pc,0x00000000);
return 1;
}

public OnPlayerDeath(playerid,killerid);
{
TextDrawShowForAll(Pc);
return 1;
}

public OnPlayerSpawn(playerid)
{
TextDrawHideForAll(Pc);
return 1;
}
y el otro problema es que si alguien me puede crear o pasar un sistema de balance de equipos (4 equipos) si no es mucha molestia
Reply
#2

Haz tu textdraw con el FilterScript de Zamaroth, te recomiendo que solo se lo muestres a un player y no a todos
Код:
TextDrawHideForPlayer
Reply
#3

porque pones
pawn Код:
TextDrawShowForAll(Pc);
y
pawn Код:
TextDrawHideForAll(Pc);
??

Quieres que cuando un solo player muera a todos le salga el TextDraw?? O.o

Osea que si es un GameMode (DeathMatch) a cada rato saldra esa vaina ¬¬!

Tienes que poner:
pawn Код:
TextDrawShowForPlayer(playerid,Pc);
y
pawn Код:
TextDrawHideForPlayer(playerid,Pc);
Para que cuando el Jugador muera le salga solo a ese Jugador y cuando vuelva a aparecer se le kite... es mucho mejor!

Cualquier duda avisame!!
Reply
#4

Gracias por su ayuda pero saben de algun scrip de balance de equipos?
Reply
#5

Te voy a dar un ejemplo muy simple, creo que no necesitarй explicar nada:
pawn Код:
new EquipoTemporal[MAX_PLAYERS] = {-1, ...}; // Aquн guardamos el equipo
// que el jugador estб intentando escojer para verificar si estб lleno.

public OnPlayerRequestSpawn(playerid)
{
    new equipo_disponible = -1;

    equipo_disponible = (Equipo[1] > Equipo[0]) ? (0) : (1);
    if(EquipoTemporal[playerid] != equipo_disponible)
    {
        SendClientMessage(playerid, RED, "ЎEse equipo estб lleno! Escoje otro.");
        return 0;
    }
    return 1;
}
// Tienes que asignar el equipo temporal al jugador en OnPlayerRequestClass.
Para la estructura con el signo de interrogaciуn: https://sampwiki.blast.hk/wiki/Control_Structures#.3F:
Reply
#6

Quote:
Originally Posted by Miguel
Посмотреть сообщение
Te voy a dar un ejemplo muy simple, creo que no necesitarй explicar nada:
pawn Код:
new EquipoTemporal[MAX_PLAYERS] = {-1, ...}; // Aquн guardamos el equipo
// que el jugador estб intentando escojer para verificar si estб lleno.

public OnPlayerRequestSpawn(playerid)
{
    new equipo_disponible = -1;

    equipo_disponible = (Equipo[1] > Equipo[0]) ? (0) : (1);
    if(EquipoTemporal[playerid] != equipo_disponible)
    {
        SendClientMessage(playerid, RED, "ЎEse equipo estб lleno! Escoje otro.");
        return 0;
    }
    return 1;
}
// Tienes que asignar el equipo temporal al jugador en OnPlayerRequestClass.
Para la estructura con el signo de interrogaciуn: https://sampwiki.blast.hk/wiki/Control_Structures#.3F:
Em no entendi nada xD me podrias hacer el balance tu? los equipos son Team_Dra, Team_Cal, Team_Ile, Team_ Eje

Muchas Gracias
Reply
#7

No, pero te puedo explicar como funciona. En OnPlayerRequestClass el jugador escoje el personaje, el equipo depende de este personaje. Como un equipo puede estar lleno, debemos evitar que el jugador pueda entrar en el equipo lleno. їCuбl es el problema? OnPlayerRequestClass es llamado cuando cambias de personaje (con las teclas de felcha, izquierda y derecha), pero no cuando intentas escojer el persona (presionar spawn).

Por eso usamos OnPlayerRequestSpawn; usando "EquipoTemporal" para saber con que equipo el jugador estб intentando jugar. Para balancear los equipos verificas si el equipo temporal que intenta escoger el jugador tiene mбs personas que el o los otros equipos, si ese es el caso, se envнa un mensaje de error y se retorna "0".

Si no es asн (si el equipo que intenta escoger el jugador no tiene mбs personas que los otros) entonces deja que el jugador escoja ese equipo, y asнgnale el equipo temporal. (ejemplo: gTeam[playerid] = EquipoTemporal[playerid]). Mejor intenta y no dejes que otros hagan tu trabajo, despuйs de todo, es TU trabajo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)