duda chat
#1

hola que tal mi duda es como podria bloquear el chat al conectarse y que solo se pudiera usar si el jugador spawnea gracias de antemano
Reply
#2

has una variable global, que cuando un jugador se conecte estй en false a playerid, luego en OnPlayerText usas una restricciуn que si esa variable de playerid estб en false retorne 0. Luego en OnPlayerRequestSpawn pones esto:

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    Variable[playerid] = true;
    return 1;
}
Es sencillo, puedes hacerlo
Reply
#3

Arriba de todo tu GM

pawn Код:
new VariableBloqueo[MAX_PLAYERS];
en OnPlayerConnect
pawn Код:
public OnPlayerConnect(playerid)
{
    VariableBloqueo[playerid] = 1;
    // lo que tengas
    return 1;
}
En OnPlayerText
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(VariableBloqueo[playerid] == 0)
    {
    // Lo que tengas
    return 0;
}
y en OnPlayerSpawn
pawn Код:
public OnPlayerSpawn(playerid)
{
    VariableBloqueo[playerid] = 0;
    //lo que tengas
    return 1;
}
Reply
#4

Quote:
Originally Posted by ErickPuga234
Посмотреть сообщение
Arriba de todo tu GM

pawn Код:
new VariableBloqueo[MAX_PLAYERS];
en OnPlayerConnect
pawn Код:
public OnPlayerConnect(playerid)
{
    VariableBloqueo[playerid] = 1;
    // lo que tengas
    return 1;
}
En OnPlayerText
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(VariableBloqueo[playerid] == 0)
    {
    // Lo que tengas
    return 0;
}
y en OnPlayerSpawn
pawn Код:
public OnPlayerSpawn(playerid)
{
    VariableBloqueo[playerid] = 0;
    //lo que tengas
    return 1;
}
no me funciono e.e
Reply
#5

Quote:
Originally Posted by Zodiaco
Посмотреть сообщение
no me funciono e.e
ASI FUNCIONARIA

public OnPlayerText(playerid, text[])
{
if(VariableBloqueo[playerid] == 1) return 0;
//todo lo otro que tengas
return 1;
}
Reply
#6

OK ahн te va mi shavo xD

okay okay definimos la variable que vamos a usar :3

pawn Код:
new SAS_PlayerSpawned[MAX_PLAYERS];
y luego vienen las cosas que solo quieres copiar y pegar
pawn Код:
//esta funcion te puede servir para muchas otras cosas, asн que decidi hacerla de esta forma xd aunque existe otra.
stock IsPlayerSpawned(playerid) return SAS_PlayerSpawned[playerid];

public OnPlayerConnect(playerid)
{
      SAS_PlayerSpawned[playerid] = 0;
      //tus codigos aqui mi shavo
      return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
      SAS_PlayerSpawned[playerid] = 0;
      //tus codigos aqui mi shavo
      return 1;
}

public OnPlayerSpawn(playerid)
{
      SAS_PlayerSpawned[playerid] = 1;
      //tus codigos aqui mi shavo
      return 1;
}

public OnPlayerDeath(playerid,killerid,reason)
{
      SAS_PlayerSpawned[playerid] = 0;
      //tus codigos aqui mi shavo
      return 1;
}
y luego finalmente:

pawn Код:
public OnPlayerText(playerid,text[])
{
    if(!IsPlayerSpawned(playerid)) return SendClientMessage(playerid,-1,"Para utilizar el chat debes spawnear.");
    //mas copypastes tuyos aqui abajo ↓ ↓ mi querido shaval :v xd
    return 1;
}
DE NADA
Reply
#7

el return de OnPlayerText debe de estar en 0 (tambiйn).
https://sampwiki.blast.hk/wiki/OnPlayerText_Es
Reply
#8

Quote:
Originally Posted by OTACON
Посмотреть сообщение
el return de OnPlayerText debe de estar en 0 (tambiйn).
https://sampwiki.blast.hk/wiki/OnPlayerText_Es
eh? el quiere que cuando NO estй spawneado NO pueda usarlo. Para que le dices que ponga return 0 en OnPlayerText? no podrб usarlo si en ningъn momento...

sencillamente esto es lo que йl quiere hacer:

pawn Код:
new bool:Variable[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    Variable[playerid] = false;
    return 1;
}

public OnPlayerText(playerid, text[])
{
    if(Variable[playerid] == false)
    {
        SendClientMessage(playerid,-1,"Debes estar spawneado para usar el chat.");
        return 0;
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    Variable[playerid] = true;
    return 1;
}
Reply
#9

Quote:
Originally Posted by aoEXE
Посмотреть сообщение
eh? el quiere que cuando NO estй spawneado NO pueda usarlo. Para que le dices que ponga return 0 en OnPlayerText? no podrб usarlo si en ningъn momento...

sencillamente esto es lo que йl quiere hacer:

pawn Код:
new bool:Variable[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    Variable[playerid] = false;
    return 1;
}

public OnPlayerText(playerid, text[])
{
    if(Variable[playerid] == false)
    {
        SendClientMessage(playerid,-1,"Debes estar spawneado para usar el chat.");
        return 0;
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    Variable[playerid] = true;
    return 1;
}
return 0 se coloca para que no saldrб el chat por defecto de sa-mp (no es ejecutado por SendClientMessage o otra similar), el texto dentro del call es ejecutado por SendClientMessage o otra similar. (lo aclare ya que le dieron opciones con el return 1 y el usuario dice que no le funciono, puede que este funcionando y sea el return el problema).

saludos.

.
Reply
#10

Quote:
Originally Posted by aoEXE
Посмотреть сообщение
eh? el quiere que cuando NO estй spawneado NO pueda usarlo. Para que le dices que ponga return 0 en OnPlayerText? no podrб usarlo si en ningъn momento...

sencillamente esto es lo que йl quiere hacer:

pawn Код:
new bool:Variable[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    Variable[playerid] = false;
    return 1;
}

public OnPlayerText(playerid, text[])
{
    if(Variable[playerid] == false)
    {
        SendClientMessage(playerid,-1,"Debes estar spawneado para usar el chat.");
        return 0;
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    Variable[playerid] = true;
    return 1;
}
Eso no funciona si me suicido y estoy en OnPlayerRequestClass, xd o si muere .-.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)