SA-MP Forums Archive
[AJUDA] Ajuda ae *-* - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [AJUDA] Ajuda ae *-* (/showthread.php?tid=245990)

Pages: 1 2


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 02.04.2011

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 !"


Re: [AJUDA] Ajuda ae *-* - Diogo_Bras - 02.04.2011

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


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 02.04.2011

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 ?


Re: [AJUDA] Ajuda ae *-* - Diogo_Bras - 02.04.2011

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?


Re: [AJUDA] Ajuda ae *-* - [Ips]Guh - 02.04.2011

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...


Re: [AJUDA] Ajuda ae *-* - LuxurioN™ - 02.04.2011

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


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 02.04.2011

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


Re: [AJUDA] Ajuda ae *-* - LuxurioN™ - 02.04.2011

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.


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 02.04.2011

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


Re: [AJUDA] Ajuda ae *-* - Macintosh - 02.04.2011

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 :}


Re: [AJUDA] Ajuda ae *-* - LuxurioN™ - 03.04.2011

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.


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 03.04.2011

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.


Re: [AJUDA] Ajuda ae *-* - LuxurioN™ - 03.04.2011

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.


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 03.04.2011

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



Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 03.04.2011

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


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 03.04.2011

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


Re: [AJUDA] Ajuda ae *-* - [Ips]Guh - 03.04.2011

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


Re: [AJUDA] Ajuda ae *-* - Shadoww5 - 03.04.2011

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