Mensaje antes del kick
#1

Hola, bueno tengo este codigo para kickear mediante un dialogo, seguramente los que hayan leido mi post anterior sepan como va la cosa...

pawn Код:
new playername[24];
                GetPlayerName(playerid, playername, 24);
                new clickedplayerid = GetPVarInt(playerid,"ClickedPlayer");
                new string[126];
                format(string, sizeof(string), "Has sido expulsado del servidor");
                SendClientMessageToAll(colorrojo,string);
                Kick(clickedplayerid);
                return 1;
Lo que pasa es que quiero que el mensaje se muestre al jugador kickeado, todos lo vemos cuando alguien es expulsado, pero el jugador expulsado no ve nada, solo el "server closed the connection". Ya habia hecho un post similar pero con esto no entiendo como hacerlo.. se que es con un timer pero ni idea de como se hace, si alguien me puede explicar como lo agradecerнa.

Saludos
Reply
#2

http://forum.sa-mp.com/showpost.php?...45&postcount=7
Reply
#3

pawn Код:
new playername[24];
                GetPlayerName(playerid, playername, 24);
                new clickedplayerid = GetPVarInt(playerid,"ClickedPlayer");
                //new string[126];
                //format(string, sizeof(string), "Has sido expulsado del servidor");
                //SendClientMessage(clickedplayerid ,colorrojo,string);
                KickWithMessage(clickedplayerid , "You have been kicked.");

stock KickWithMessage(playerid, message[])
{
    SendClientMessage(playerid, 0xFF4444FF, message);
    SetTimerEx("KickPublic", 1000, 0, "d", playerid);     //Delay of 1 second before kicking the player so he recieves the message
}
                return 1;
https://sampforum.blast.hk/showthread.php?tid=411763&page=2
Reply
#4

Hazlo mediante timer.
Reply
#5

Creo que no me han entendido bien, esto estб dentro de un dialogo

(Lo modifique un poco, asн va)
pawn Код:
if(listitem == 6)
            {
                new pName[24];
                GetPlayerName(playerid, pName, 24);
                new clickedplayerid = GetPVarInt(playerid,"ClickedPlayer");
                new string[126];
                format(string, sizeof(string), "%s ha kickeado a %s del server", pName, GetPlayerNameEx(clickedplayerid));
                SendClientMessageToAll(colorrojo,string);
                Kick(clickedplayerid);
                return 1;
            }
Y quiero que el mensaje de kick se muestre al expulsado, sй que es con un timer pero NO se como hacerlo.
Reply
#6

mбs claro que te lo pasу zume no creo que haya xD solo cambia playerid por clickedplayerid e.e
Reply
#7

no te funciona por que....

https://sampwiki.blast.hk/wiki/Kick_ES
Quote:
Originally Posted by Nota Importante
A partir de SA-MP 0.3x, cualquier acciуn no funcionarб; se deberб de usar un timer para retrasar la funciуn Kick(). Por ejemplo, el envнo de un mensaje con SendClientMessage antes de Kick() no funcionarб.
solucion:

pawn Код:
stock Fix_Kick(playerid) SetTimerEx("kick_fix",1000,false,"d",playerid);
forward kick_fix(playerid); public kick_fix(playerid) Kick(playerid);
#define Fix_Kick Kick
saludos.
Reply
#8

Disculpen mi grandнsima ignorancia.. pero me da este error:

error 021: symbol already defined: "SetTimerEx"

la linea es esta:

SetTimerEx("KickJugador",500,false,"i",clickedplay erid );

EDITO:
Listo ya compilo, me ayude con esto https://sampwiki.blast.hk/wiki/Kick voy a ver si funciona
Reply
#9

Quote:
Originally Posted by FlavioCesar
Посмотреть сообщение
Disculpen mi grandнsima ignorancia.. pero me da este error:

error 021: symbol already defined: "SetTimerEx"

la linea es esta:

SetTimerEx("KickJugador",500,false,"i",clickedplay erid );
pawn Код:
#include <a_samp>
Reply
#10

Puedes hacer algo, es definir el fix del kick en una funciуn (o sea, el fix es el temporizador).

pawn Код:
KickEx(playerid, interval = 500){
    if(!IsPlayerConnected(playerid))
        return 0;

    SetTimerEx("_@Kick", interval, false, "i", playerid);
    return 1;
}
forward _@Kick(playerid); public _@Kick(playerid){
    Kick(playerid);
}
y hookeas la funciуn, asн lo usas normal o como gustes, pero el fix es ese.

pawn Код:
#if defined _ALS_Kick
    #undef Kick
#else
    #define _ALS_Kick
#endif
 
#define Kick KickEx
pawn Код:
public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, -1, "El servidor esta cerrado, no puedes entrar.");
    KickEx(playerid);
    return 1;
}
o hookeado lo usarнas normal

pawn Код:
public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, -1, "El servidor esta cerrado, no puedes entrar.");
    Kick(playerid);
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)