[Ajuda] Problema com uma cmd (cmd doida)
#1

Eai Feras, coloquei um comando a mais para uma profissгo no caso uma barraca para os mendigos.
sу que assim, para a profissгo de mendigo chega a criar mas ela nгo deleta pela outra cmd.
ou seja o mendigo cria a barraca mas nгo pode deletar sendo que ta definido para a prуpria profissгo.
entretanto todas as outras profissхes criam a barraca e deleta normalmente sem estar envolvido.
gostaria que alguйm mais experiente olhasse o cуdigo e me dizer o que esta errado.
Код:
	if (strcmp(cmd, "/pbarraca", true)==0)
	{
		if(dini_Int(file, "Profissao") == Mendigo || dini_Int(file, "aAdmin") == 1)return SendClientMessage(playerid, Amarelo, "Vocк nгo й Mendigo!");
		if (PlayerInfo[playerid][pBarraca] != 0) return SendClientMessage(playerid, COLOR_GREY, "Vocк sу pode implantar uma barraca por vez, /rbarraca - para remover sua barraca.");
		new Float:X, Float:Y, Float:Z, Float:A;
		GetPlayerPos(playerid, X, Y, Z);
		GetPlayerFacingAngle(playerid, A);
		PlayerInfo[playerid][pBarraca] = CreateObject(1457, X, Y, Z, 0.0, 0.0, A+180);
		SetPlayerPos(playerid, X, Y, Z+4);
		GameTextForPlayer(playerid, "~w~Barraquinha ~r~Criada", 5000, 5);
		SendClientMessage(playerid, COLOR_GREEN, "Barraca Implantada... Use /rbarraca para remover e poder criar em outro lugar!.");
		SendClientMessage(playerid, Amarelo, "Agora vocк pode trafegar ou dormir em sua barraca");
		return true;
	}
	if(strcmp(cmd, "/rbarraca", true)==0)
	{
	if(dini_Int(file, "Profissao") == Mendigo || dini_Int(file, "aAdmin") == 1)return SendClientMessage(playerid, Amarelo, "Vocк nгo й Mendigo!");
	if (PlayerInfo[playerid][pBarraca] == 0)
		{
		SendClientMessage(playerid, COLOR_GREY, "Vocк nгo criou nenhuma barraca!");
		return true;
		}
	RemoveBarraca(playerid);
	SendClientMessage(playerid, COLOR_GREEN, "Barracas removidas com sucesso.");
	return true;
	}
Reply
#2

Vocк nгo utilizou '!' para verificar se ele nгo for mendigo, aparece a mensagem, entгo o correto seria assim

PHP код:
    if (strcmp(cmd"/pbarraca"true)==0)
    {
        if(!
dini_Int(file"Profissao") == Mendigo || !dini_Int(file"aAdmin") == 1)return SendClientMessage(playeridAmarelo"Vocк nгo й Mendigo!");
        if (
PlayerInfo[playerid][pBarraca] != 0) return SendClientMessage(playeridCOLOR_GREY"Vocк sу pode implantar uma barraca por vez, /rbarraca - para remover sua barraca.");
        new 
Float:XFloat:YFloat:ZFloat:A;
        
GetPlayerPos(playeridXYZ);
        
GetPlayerFacingAngle(playeridA);
        
PlayerInfo[playerid][pBarraca] = CreateObject(1457XYZ0.00.0A+180);
        
SetPlayerPos(playeridXYZ+4);
        
GameTextForPlayer(playerid"~w~Barraquinha ~r~Criada"50005);
        
SendClientMessage(playeridCOLOR_GREEN"Barraca Implantada... Use /rbarraca para remover e poder criar em outro lugar!.");
        
SendClientMessage(playeridAmarelo"Agora vocк pode trafegar ou dormir em sua barraca");
        return 
true;
    }
    
    if(
strcmp(cmd"/rbarraca"true)==0)
    {
        if(!
dini_Int(file"Profissao") == Mendigo || !dini_Int(file"aAdmin") == 1)return SendClientMessage(playeridAmarelo"Vocк nгo й Mendigo!");
        if (
PlayerInfo[playerid][pBarraca] == 0)
        {
            
SendClientMessage(playeridCOLOR_GREY"Vocк nгo criou nenhuma barraca!");
            return 
true;
        }
        
RemoveBarraca(playerid);
        
SendClientMessage(playeridCOLOR_GREEN"Barracas removidas com sucesso.");
        return 
true;
    } 
Reply
#3

Quote:

entretanto todas as outras profissхes criam a barraca e deleta normalmente sem estar envolvido.

Se um Player de Qualquer Profisгo deleta sua barraca todas baracas somem й isto que intendi? , Se for poste a Stock " RemoverBarraca(playerid); " ...
Reply
#4

Adejair, obrigado pela resposta.

Exemplo: cada profissгo cria e deleta sua prуpria barraca sem ser mendigo.
e a profissгo do mendigo й a unica que somente cria e nгo deleta
entгo o que tem de estranho й isso.
- todas as profissoes podem fazer a barraca;
- mendigo cria mas da erro de que nгo й da profissгo.

foi testado o cуdigo fornecido e deu os seguintes erros.

Код:
C:\Users\Lucas & yasmin\Desktop\dm\gamemodes\1.pwn(13597) : warning 213: tag mismatch
C:\Users\Lucas & yasmin\Desktop\dm\gamemodes\1.pwn(13597) : warning 213: tag mismatch
C:\Users\Lucas & yasmin\Desktop\dm\gamemodes\1.pwn(13612) : warning 213: tag mismatch
C:\Users\Lucas & yasmin\Desktop\dm\gamemodes\1.pwn(13612) : warning 213: tag mismatch
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase

Header size:           9904 bytes
Code size:          1358784 bytes
Data size:          4012640 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 5397712 bytes

4 Warnings.
jб a stock que me pediu seria isto?

Код:
public RemoveBarraca(playerid)
{
	DestroyObject(PlayerInfo[playerid][pBarraca]);
	PlayerInfo[playerid][pBarraca] = 0;
}
Reply
#5

Poste Linha 13162 Ela que Esta Ocasionando o erro ..
Reply
#6

Poste as linhas para mim resolver
13597 || 13612
Reply
#7

Assim, o cуdigo mencionado inicialmente compila normal, porem durante o jogo pude notar o que foi relatado.
os erros mostrados sгo de sгo cуdigo com as linhas.

Код:
if(!dini_Int(file, "Profissao") == Mendigo || !dini_Int(file, "aAdmin") == 1)return SendClientMessage(playerid, Amarelo, "Vocк nгo й Mendigo!");
Код:
if(!dini_Int(file, "Profissao") == Mendigo || !dini_Int(file, "aAdmin") == 1)return SendClientMessage(playerid, Amarelo, "Vocк nгo й Mendigo!");
ambas na autorizaзгo sobre quem pode usar.
se puder identificar o problema ficarei grato.
Reply
#8

Tenta Agora...
pawn Код:
if (strcmp(cmd, "/pbarraca", true)==0)
    {
        if(dini_Int(file, "Profissao") != Mendigo || dini_Int(file, "aAdmin") != 1)return SendClientMessage(playerid, Amarelo, "Vocк nгo й Mendigo!");
        if (PlayerInfo[playerid][pBarraca] != 0) return SendClientMessage(playerid, COLOR_GREY, "Vocк sу pode implantar uma barraca por vez, /rbarraca - para remover sua barraca.");
        new Float:X, Float:Y, Float:Z, Float:A;
        GetPlayerPos(playerid, X, Y, Z);
        GetPlayerFacingAngle(playerid, A);
        PlayerInfo[playerid][pBarraca] = CreateObject(1457, X, Y, Z, 0.0, 0.0, A+180);
        SetPlayerPos(playerid, X, Y, Z+4);
        GameTextForPlayer(playerid, "~w~Barraquinha ~r~Criada", 5000, 5);
        SendClientMessage(playerid, COLOR_GREEN, "Barraca Implantada... Use /rbarraca para remover e poder criar em outro lugar!.");
        SendClientMessage(playerid, Amarelo, "Agora vocк pode trafegar ou dormir em sua barraca");
        return true;
    }
    if(strcmp(cmd, "/rbarraca", true)==0)
    {
    if(dini_Int(file, "Profissao") == Mendigo || dini_Int(file, "aAdmin") == 1)return SendClientMessage(playerid, Amarelo, "Vocк nгo й Mendigo!");
    if (PlayerInfo[playerid][pBarraca] == 0)
        {
        SendClientMessage(playerid, COLOR_GREY, "Vocк nгo criou nenhuma barraca!");
        return true;
        }
    RemoveBarraca(playerid);
    SendClientMessage(playerid, COLOR_GREEN, "Barracas removidas com sucesso.");
    return true;
    }
Reply
#9

Adejair, Obrigado, foi compilado normalmente e foi testado e como resultado o problema das demais profissхes ter acesso ao comando foi resolvido. mas ainda persistiu o problema do mendigo nгo poder deletar acusando que nгo era da profissгo. observei que vocк alterou o comando do criar mais nгo do deletar apenas copiei e colei seu cуdigo e agora pega normalmente.
esta й a terceira vez que vocк me salva, vou seguir seu exemplo de cуdigo para futuros erros do gкnero.
Obrigadгo pela forзa e pela paciкncia fera.
Obrigado tambйm ao Ynexus, em uma outra ocasiгo tu me ajudou tambйm.
atй a prуxima!
Reply
#10

Desculpe-me pela dubla postagem. nгo achei necessбrio criar um novo tуpico.
Poderia me falar um pouco sobre o que vocк fez? achei que eu tinha entendido mas percebo que nгo.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)