[AJUDA] Ajuda ae *-*
#21

PROBLEMA RESOLVIDO ... TIREI O IsPlayerConnect e pronto =D

Mas c sabe como coloca aquela frase na cabeзa do adm:

"Administrador: Posso ajudar ?!" e "AFK: Administrador Ausente !"
Reply
#22

Nгo precisava de tirar, como eu coloquei estб correto.
Reply
#23

Nao tava nao .. Deu outro erro: Loose Indenation e alem disso ja ta programado para mais que 600 de ping entao ta Ok. vlw ae

Mas c sabe fazer isso q eu perguntei ?
Reply
#24

Tipo eu e vocк tamos falando no servidor, e eu sou administrador e digo: "Precisa de algo?" e por cima do meu skin aparece a msg que digitei?
Reply
#25

Quote:
Originally Posted by Diogo_Bras
View Post
Tipo eu e vocк tamos falando no servidor, e eu sou administrador e digo: "Precisa de algo?" e por cima do meu skin aparece a msg que digitei?
e algo relacionado a Buble essa funзao...
Reply
#26

O seu "Ping-Kicker" nгo irб funcionar corretamente. Tente:

Em OnGameModeInit:
Code:
SetTimer("ChecarPing", 50000, 1);
Alguma parte do seu script:
Code:
forward ChecarPing();
public ChecarPing()
{
	for(new j = GetMaxPlayers( ), i; i < j; i++ )
	{
		if(IsPlayerConnected(i))
		{
			new 
			    ping;
			
			ping = GetPlayerPing(i);
			if(ping >= 600 && ping <= 65000)
			return SendClientMessage(i,COLOR_RED," Seu PING estб maior ou igual а 600."),
			SendClientMessage(i,COLOR_RED," Caso ele atinga 1000 vocк serб kickado automaticamente pelo servidor.");

			if(ping >= 800 && ping <= 65000)
			return SendClientMessage(i,COLOR_RED," Seu PING estб maior ou igual а 800."),
			SendClientMessage(i,COLOR_RED," Caso ele atinga 1000 vocк serб kickado automaticamente pelo servidor.");			
	
			if(ping >= 1000 && ping <= 65000)
			return SendClientMessage(i,COLOR_RED," Seu PING estб maior ou igual а 1000. Kickado!"), Kick(i);
		}
	}
	return 1;
}
Lembrando que vocк pode utilizar "OnPlayerUpdate" ao invйs de um temporizador. Tal foi apenas um exemplo.
______________
Quanto ao texto em cima da Skin, use a funзгo SetPlayerChatBubble
Reply
#27

e eu coloco oq pra nao expirar ? ponho 999999999 msm ? ou tem alguma coisa em especifico ?
Reply
#28

Quote:
Originally Posted by Shadoww5
View Post
e eu coloco oq pra nao expirar ? ponho 999999999 msm ? ou tem alguma coisa em especifico ?
O tempo й em milisegundos, coloque o valor que vocк achar melhor. Apenas recomendei "SetPlayerChatBubble" pois a maioria destes sistemas "Admin (Nгo) Trabalhando" й baseando nele, pesquise aqui no fуrum e vai encontrar. Entretanto, existem outras maneiras, como: Attach3DTextLabelToPlayer.
Reply
#29

E como eu coloco pra avisar ao server todo que esse cara foi kikado ?
Reply
#30

Quote:
Originally Posted by Shadoww5
View Post
PROBLEMA RESOLVIDO ... TIREI O IsPlayerConnect e pronto =D

Mas c sabe como coloca aquela frase na cabeзa do adm:

"Administrador: Posso ajudar ?!" e "AFK: Administrador Ausente !"
Eu criei um FS avanзado de ChatBubble procure :}
Reply
#31

Quote:
Originally Posted by Shadoww5
View Post
Eu mudei o ping de 1000 para 5 so pra testar

Entгo quando eu entro no sv ja sou kickado
Bom, eu testei aqui e funcionou perfeitamente. O problema й que, geralmente quando o jogador se conecta ao servidor seu ping й instбvel (na maioria das vezes acima de 6 mil) por alguns segundos. Tal a questгo que faz vocк ser kickado. Apenas mude o valor de 6500 para, por exemplo, 2000. Lembrando que, se vocк tiver NPC em seu servidor modifique a linha:

Code:
if(IsPlayerConnected(i))
para:
Code:
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
Resolverб o seu problema.
Reply
#32

pawn Code:
public OnPlayerDisconnect(playerid, reason)
{
    new name[MAX_PLAYER_NAME];
    new str[128];
    GetPlayerName(playerid, name, sizeof(name));
    switch(reason)
    {
    case 0: format(str, sizeof(str), "[ATENCAO] %s saiu do servidor. (PROBLEMAS DE CONEXГO)", name);
    case 1: format(str, sizeof(str), "[ATENCAO] %s saiu do servidor. (VONTADE PRУPRIA)",name);
    case 2: format(str, sizeof(str), "[ATENCAO] %s saiu do servidor. (KICKADO/BANIDO)", name);
    }
    ABroadCast(BLUE,str,1);
    new hour, minute, second;
    gettime(hour, minute, second);
    switch(reason)
    {
    case 0: format(str, sizeof(str), "   [ATENCAO] %s saiu do servidor. (PROBLEMAS DE CONEXГO) || %d:%d:%d\n", name, hour, minute, second);
    case 1: format(str, sizeof(str), "   [ATENCAO] %s saiu do servidor. (VONTADE PRУPRIA) || %d:%d:%d\n",name, hour, minute, second);
    case 2: format(str, sizeof(str), "   [ATENCAO] %s saiu do servidor. (KICKADO/BANIDO) || %d:%d:%d\n", name, hour, minute, second);
    }
    LogoutLog(str);
Eu coloquei isso aqui pra avisar quando o cara desloga do servidor, mas eu queria saber como que o servidor sabe se й KICK/BAN, VONTADE PROPRIA ou CONEXГO.

Como que ele consegue diferenciar ... Se alguem souber agradeзo caso responda.
Reply
#33

Quote:
Originally Posted by Shadoww5
View Post
pawn Code:
public OnPlayerDisconnect(playerid, reason)
{
    new name[MAX_PLAYER_NAME];
    new str[128];
    GetPlayerName(playerid, name, sizeof(name));
    switch(reason)
    {
    case 0: format(str, sizeof(str), "[ATENCAO] %s saiu do servidor. (PROBLEMAS DE CONEXГO)", name);
    case 1: format(str, sizeof(str), "[ATENCAO] %s saiu do servidor. (VONTADE PRУPRIA)",name);
    case 2: format(str, sizeof(str), "[ATENCAO] %s saiu do servidor. (KICKADO/BANIDO)", name);
    }
    ABroadCast(BLUE,str,1);
    new hour, minute, second;
    gettime(hour, minute, second);
    switch(reason)
    {
    case 0: format(str, sizeof(str), "   [ATENCAO] %s saiu do servidor. (PROBLEMAS DE CONEXГO) || %d:%d:%d\n", name, hour, minute, second);
    case 1: format(str, sizeof(str), "   [ATENCAO] %s saiu do servidor. (VONTADE PRУPRIA) || %d:%d:%d\n",name, hour, minute, second);
    case 2: format(str, sizeof(str), "   [ATENCAO] %s saiu do servidor. (KICKADO/BANIDO) || %d:%d:%d\n", name, hour, minute, second);
    }
    LogoutLog(str);
Eu coloquei isso aqui pra avisar quando o cara desloga do servidor, mas eu queria saber como que o servidor sabe se й KICK/BAN, VONTADE PROPRIA ou CONEXГO.

Como que ele consegue diferenciar ... Se alguem souber agradeзo caso responda.
Isso й interno da SA-MP. Funciona basicamente assim: Digamos que existem 3 possнveis motivos para o jogador sair do servidor. 1є Conexгo, 2є Simplesmente saiu, 3є Expulso (Kickado ou Banido), em SA-MP estes trкs motivos sгo separados, como eu disse acima, por 0,1,2. Quando vocк coloca "case 0 ", se refere ao primeiro primeiro: "problemas com conexгo"... O servidor sabe se vocк caiu, se vocк saiu, ou foi expulso. Da mesma maneira que ele sabe se vocк se matou ou foi assassinado, se vocк esta dirigindo um veнculo ou a pй... basta apenas definir.
Reply
#34

Ahh blz ! Mas c sabe como bloquear os outros tipos de /su ?

Tipo .. Permitir somente DOP, TH, DA ...

Coloquei assim:

pawn Code:
if(strcmp(cmd, "/suspeito", true) == 0 || strcmp(cmd, "/su", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(OnDuty[playerid] != 1  && PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pMember] == 21 && PlayerInfo[playerid][pMember] == 14 && PlayerInfo[playerid][pMember] == 2)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo estб indentificado, pegue seu crachб no LSPD HQ.");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: (/su)speito [playerid/Parte-do-Nick] [descriзгo crime]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pLeader] == 14 || PlayerInfo[playerid][pLeader] == 21 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pMember] == 14)
            {
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        if (gTeam[giveplayerid] != 2 || PlayerInfo[giveplayerid][pMember] != 7 || PlayerInfo[giveplayerid][pLeader] != 7 || PlayerInfo[giveplayerid][pLeader] != 21 || PlayerInfo[giveplayerid][pMember] != 21)
                        {
                            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            new length = strlen(cmdtext);
                            new crime;
                            while ((idx < length) && (cmdtext[idx] <= ' '))
                            {
                                idx++;
                            }
                            new offset = idx;
                            new result[64];
                            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                            {
                                result[idx - offset] = cmdtext[idx];
                                idx++;
                            }
                            result[idx - offset] = EOS;
                            if(!strlen(result))
                            {
                                SendClientMessage(playerid, COLOR_GRAD2, "USO: (/su)speito [playerid/Parte-do-Nick] [descriзгo crime]");
                                return 1;
                            }
                            if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se dar su!"); return 1; }
                            switch(crime)
                            {
                            case 0: {(strcmp(result,"DOP",true) == 0) { result = "Desobediкncia a ordem policial"; }}//LINHA 33998
                            case 1: {(strcmp(result,"TH",true) == 0) { result = "Tentativa de homicнdio"; }}
                            case 2: {(strcmp(result,"AP",true) == 0) { result = "Ajuste de pena"; }}
                            case 3: {(strcmp(result,"CA",true) == 0) { result = "Contrabando de armas"; }}
                            case 4: {(strcmp(result,"CD",true) == 0) { result = "Contrabando de drogas"; }}
                            case 5: {(strcmp(result,"RV",true) == 0) { result = "Roubo de Veнculo"; }}
                            case 6: {(strcmp(result,"RM",true) == 0) { result = "Rejeiзгo de multa"; }}
                            case 7: {(strcmp(result,"RP",true) == 0) { result = "Resistencia a prisгo"; }}
                            case 8: {(strcmp(result,"ILR",true) == 0) { result = "Invasгo a Local Restrito"; }}
                            case 9: {(strcmp(result,"RMD",true) == 0) { result = "Rejeiзгo a Mostrar Documentos"; }}
                            case 10: {(strcmp(result,"DA",true) == 0) { result = "Desacato б Autoridade"; }}
                            case 11: {(strcmp(result,"PIA",true) == 0) { result = "Porte Ilegal de Armas"; }}
                            case 12: {(strcmp(result,"CF",true) == 0) { result = "Cumplice de Fugas"; }}
                            }
                            if(WantedPoints[giveplayerid] == 0) { WantedPoints[giveplayerid] += 1; }
                            else{WantedPoints[giveplayerid]+= 1;}
                            SetPlayerCriminal(giveplayerid,playerid, result);
                            WantedPoints[giveplayerid] += 1;
                            TextDrawHideForPlayer(giveplayerid,tGP2[giveplayerid]);
                            TextDrawShowForPlayer(giveplayerid,tGP3[giveplayerid]);
                            return 1; // TEM MAIS LINHAS AQUI ABAIXO MAS NUM VO COLOCAR
Mas ta dando esses erros:

pawn Code:
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(33998) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(33999) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34000) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34001) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34002) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34003) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34004) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34005) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34006) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34007) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34008) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34009) : error 029: invalid expression, assumed zero
D:\samp03csvr_win32\samp03csvr_win32\gamemodes\BFL.pwn(34010) : error 029: invalid expression, assumed zero
Reply
#35

Entгo pelo menos alguem sabe como faz pra bloquear os /su que nao seja DOP, DA, ILR, RM, TH ... ?
Reply
#36

Alguma soluзгo ? Mais de 450 visualizaзхes e ninguem responde ? Please me ajudem
Reply
#37

1° : Para de Dar "Tripe Post"
2° : Como assim 'Bloquear' os outros tipos de /Su?
Reply
#38

So sera permitido usar os /su pre-definidos:

Desobediкncia a ordem policial
Tentativa de homicнdio
Ajuste de pena
Contrabando de armas
Contrabando de drogas
Roubo de Veнculo
Rejeiзгo de multa
Resistencia a prisгo
Invasгo a Local Restrito
Rejeiзгo a Mostrar Documentos
Desacato б Autoridade
Porte Ilegal de Armas
Cumplice de Fugas

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)