[AJUDA] Comando de plantar bomba
#1

Nгo importa o que se faзa este comando sу diz "Uma bomba jб foi plantada,vocк deverб esperar".
Sendo que nenhuma bomba foi plantada.

Код:
if(strcmp(cmd, "/plantarbomba", true)==0 || strcmp(cmd, "/pbomba", true)==0)
	{
		new org = GetPlayerOrg(playerid);
		GetPlayerName(playerid,playername,sizeof(playername));
		if(usarbombas == 1) return SendClientMessage(playerid, COLOR_GREY, "Uma bomba jб foi plantada,vocк deverб esperar");
	    {
		if (pbomba[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Vocк jб plantou uma bomba deverб esperar.");
        {
	        if(org == 6 || org == 15 || org == 23)
	        {
            format(string, sizeof(string), "Terrorista{23f518} %s {f5f3f0}Plantou uma bomba em algum local da cidade",playername);
  			SendClientMessageToAll(COLOR_WHITE, string);
  			GetPlayerPos(playerid,PosBombaX,PosBombaY,PosBombaZ);
  			ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
  			ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
  			new Float: X, Float: Y, Float: Z;
  			bombath = CreateObject(1279,X,Y,Z,0,0,0);
	        pbomba[playerid] = 0;
	        pbomba2[playerid] = 1;
	        usarbombas = 1;
	        SetTimer("usarbomba", 2700000, false);
		    return true;
			}
		}
		}
	}
Reply
#2

isso ta acontecendo pq a variavel 'usarbombas' ta com valor 1 antes do cara usar a bomba...
verifica c la no topo nгo estб assim:
pawn Код:
new usarbombas = 1;
Se tiver tira e coloca assim:
pawn Код:
new usarbombas;
da uma olhada nessa variavel ai...
Reply
#3

Se a variбvel 'usarbombas' for utilizar apenas dois valores vocк poderia passa-lб para booleana.

@TOPIC, como o acima disse, a variбvel nгo estб retornando false para que outra bomba possa ser plantada...

Poste a funзгo 'usarbomba' que vocк pos em SetTimer.
Reply
#4

A funзao 'usarbomba' nao deve ta retornando o valor da variavel 'usarbombas' pra 0..
Reply
#5

Tava assim:
new usarbombas = 0;
Eu coloquei assim:
new usarbombas;

Mas continua voltando esta mensagem.
Reply
#6

Bem eu jб tentei mudar aqui o new usarbombas tirando o =0 mas mesmo assim nada muda.


Код:
new usarbombas = 0;
Код:
if(strcmp(cmd, "/plantarbomba", true)==0 || strcmp(cmd, "/pbomba", true)==0)
	{
		new org = GetPlayerOrg(playerid);
		GetPlayerName(playerid,playername,sizeof(playername));
		if(usarbombas == 1) return SendClientMessage(playerid, COLOR_GREY, "Uma bomba jб foi plantada,vocк deverб esperar");
	    {
		if (pbomba[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Vocк jб plantou uma bomba deverб esperar.");
        {
	        if(org == 6 || org == 15 || org == 23)
	        {
            format(string, sizeof(string), "Terrorista{23f518} %s {f5f3f0}Plantou uma bomba em algum local da cidade",playername);
  			SendClientMessageToAll(COLOR_WHITE, string);
  			GetPlayerPos(playerid,PosBombaX,PosBombaY,PosBombaZ);
  			ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
  			ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
  			new Float: X, Float: Y, Float: Z;
  			bombath = CreateObject(1279,X,Y,Z,0,0,0);
	        pbomba[playerid] = 0;
	        pbomba2[playerid] = 1;
	        usarbombas = 1;
	        SetTimer("usarbomba", 2700000, false);
		    return true;
			}
		}
		}
	}
Reply
#7

Olha, aqui uma fs de Bomba excelent do Ambrуsio !
vocк vai gostar
pawn Код:
/*
      AA       MMMM          MM  BBBBBBB   RRRRRR      00     SSSSSS  II    00
     AAAA      MM MM      MM MM  BB    BB  RR   RR   00  00   SS      II  00  00
    AA  AA     MM   MM  MM   MM  BB    BB  RR   RR  00    00  SS      II 00   00
   AA    AA    MM     MM     MM  BBBBBB    RRRRR    00    00  SSSSSS  II 00   00
  AAAAAAAAAA   MM            MM  BB    BB  RR  RR   00    00      SS  II 00   00
 AA        AA  MM            MM  BB    BB  RR   RR   00  00       SS  II  00 00
AA          AA MM            MM  BBBBBBB   RR    RR    00     SSSSSS  II   00

*/


/*  Sistema de Bomba.
    Comandos /plantarbomba e /desativarbomba
*/


#include <a_samp>
//==============================================================================
new bombtimer[MAX_PLAYERS];
new Float: BombX[MAX_PLAYERS], Float: BombY[MAX_PLAYERS], Float: BombZ[MAX_PLAYERS], BombObject[MAX_PLAYERS], bool: BombArmed[MAX_PLAYERS];
forward BombTimer(playerid);
//==============================================================================
public OnFilterScriptInit()
{
    print("\nSistema de Bomba by Ambrуsio Ligado\n");
    return 1;
}
//==============================================================================
public OnFilterScriptExit()
{
    print("\nSistema de Bomba by Ambrуsio Desligado\n");
    return 1;
}
//==============================================================================
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp(cmdtext, "/plantarbomba", true)==0)
    {
        if(BombArmed[playerid] == false)
        {
            GetPlayerPos(playerid, BombX[playerid], BombY[playerid], BombZ[playerid]);
            GetXYInFrontOfPlayer(playerid, BombX[playerid], BombY[playerid], 0.7);
            SendClientMessage(playerid, 0x0066FFAA, "Bomba Plantada (explodirб em 20 segundos).");
            SendClientMessage(playerid, 0x0066FFAA, "Para desativa-la use: /desativarbomba.");
            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
            BombObject[playerid] = CreateObject(1252, BombX[playerid], BombY[playerid], BombZ[playerid] - 0.8,270,0,0);
            bombtimer[playerid] = SetTimerEx("BombTimer",20000,0, "d", playerid);
            BombArmed[playerid] = true;
        }
        else
        {
            SendClientMessage(playerid, 0xCC0000AA, "Vocк sу pode colocar uma bomba de cada vez!");
        }
        return 1;
    }
   
    if (strcmp(cmdtext, "/desativarbomba", true)==0)
    {
        if(PlayerInfo[playerid][pMembro] != 6 && PlayerInfo[playerid][pLider] != 6 && PlayerInfo[playerid][pMembro] != 15 && PlayerInfo[playerid][pLider] != 15 && PlayerInfo[playerid][pMembro] != 23 && PlayerInfo[playerid][pLider] != 23)
        if(IsPlayerInRangeOfPoint(playerid, 2.0,BombX[playerid], BombY[playerid], BombZ[playerid]))
        {
            KillTimer(bombtimer[playerid]);
            SendClientMessage(playerid, 0xAFAFAFAA, "Bomba desativada");
            DestroyObject(BombObject[playerid]);
            BombArmed[playerid] = false;
        }
        else
        {
            SendClientMessage(playerid, 0xAFAFAFAA, "Vocк precisa estar proximo a bomba para desativa-la.");
        }
        return 1;
    }
    return 0;
}
//==============================================================================
public BombTimer(playerid)
{
    CreateExplosion(BombX[playerid], BombY[playerid], BombZ[playerid], 10, 15);
    SendClientMessage(playerid, 0xAFAFAFAA, "Bomba explodida.");
    DestroyObject(BombObject[playerid]);
    BombArmed[playerid] = false;
    return 1;
}
//==============================================================================
GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
    new Float:a;

    GetPlayerPos(playerid, x, y, a);
    GetPlayerFacingAngle(playerid, a);

    if (GetPlayerVehicleID(playerid)) {
        GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    }

    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
}
//==============================================================================
Ajudei ? + RЈPp
Reply
#8

Os cara nгo procura.e vem pedindo =\
Reply
#9

Sу ta dando erro na linha 58

Код:
D:\SAMP SERVER\VXP V1.1\filterscripts\bomba.pwn(58) : error 017: undefined symbol "PlayerInfo"
D:\SAMP SERVER\VXP V1.1\filterscripts\bomba.pwn(58) : warning 215: expression has no effect
D:\SAMP SERVER\VXP V1.1\filterscripts\bomba.pwn(58) : error 001: expected token: ";", but found "]"
D:\SAMP SERVER\VXP V1.1\filterscripts\bomba.pwn(58) : error 029: invalid expression, assumed zero
D:\SAMP SERVER\VXP V1.1\filterscripts\bomba.pwn(58) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
Reply
#10

Tenta ae \/
pawn Код:
if(strcmp(cmd, "/plantarbomba", true)==0 || strcmp(cmd, "/pbomba", true)==0)
    {
        new org = GetPlayerOrg(playerid);
        GetPlayerName(playerid,playername,sizeof(playername));
        if(usarbombas == 1) return SendClientMessage(playerid, COLOR_GREY, "Uma bomba jб foi plantada,vocк deverб esperar");
        if (pbomba[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Vocк jб plantou uma bomba deverб esperar.");
        if(org == 6 || org == 15 || org == 23)
        {
            GetPlayerPos(playerid,PosBombaX,PosBombaY,PosBombaZ);
            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
            new Float: X, Float: Y, Float: Z;
            bombath = CreateObject(1279,X,Y,Z,0,0,0);
            pbomba[playerid] = 0;
            pbomba2[playerid] = 1;
            usarbombas = 1;
            SetTimer("usarbomba", 2700000, false);
            return 1;
        }
    }

Lembrando, que voce definiu aki\/

pawn Код:
SetTimer("usarbomba", 2700000, false); //2700000ms = 45min
Isso quer dizer que sу apуs se nгo me engano 45 min vai poder plantar a bomba novamente..
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)