SA-MP Forums Archive
[AJUDA]Bomba - 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]Bomba (/showthread.php?tid=260186)



[AJUDA]Bomba - FreeGellsTSSA - 07.06.2011

tenho uma duvida aqui, com meu sistema de bomba, gostaria que ficasse assim, se o player tiver bomba ele pode usar o comando, se nгo tiver, nгo pode, e um tempo para ela explodir!

aqui estб ele.

Bomba:

pawn Код:
if (strcmp("/comprarbomba", cmdtext, true, 10) == 0)
{
if(GetPlayerMoney(playerid)<50000)return SendClientMessage(playerid, AZULCLARINHO,"{FF5959}| ERRO |{FFFFFF} Vocк Nгo Tem {FF5959}${FFFFFF}50000!");
SetPlayerAttachedObject(playerid,2,1654,1,0.1000,0.2000,0.0000,0.0,90.0000,180.0000);
GivePlayerMoney(playerid, -50000);
SendClientMessage(playerid, BRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Comprou Uma Bomba!");
return 1;
}
E Aqui comando para explodir:

pawn Код:
if (strcmp("/explodirbomba", cmdtext, true, 10) == 0)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateExplosion(x, y, z, 12, 10.0);
    SetPlayerHealth(playerid, 0.0); //Ela nгo mata o player, por isso coloquei aqui, ajuda tb ;B
    SendClientMessage(playerid, BRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Se Explodiu! {FF5959}RAIIRAIRAIIRAIAR{FFFFFF}");
return 1;
}



Re: [AJUDA]Bomba - Shadoww5 - 07.06.2011

PHP код:
//COLOQUE ISTO NO TOPO DO GAME MODE \/
new Bomba[MAX_PLAYERS];
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp("/comprarbomba"cmdtexttrue10) == 0)
    {
        if(
GetPlayerMoney(playerid)<50000)return SendClientMessage(playeridAZULCLARINHO,"{FF5959}| ERRO |{FFFFFF} Vocк Nгo Tem {FF5959}${FFFFFF}50000!");
        
SetPlayerAttachedObject(playerid,2,1654,1,0.1000,0.2000,0.0000,0.0,90.0000,180.0000);
        
GivePlayerMoney(playerid, -50000);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Comprou Uma Bomba!");
        
Bomba[playerid] ++;
        return 
1;
    }
    if(
strcmp("/explodirbomba"cmdtexttrue10) == 0)
    {
        if(
Bomba[playerid] == 0) return SendClientMessage(playeridBRANCO,"Vocк nгo comprou nenhuma bomba !");
        
Bomba[playerid] --;
        new 
Float:xFloat:yFloat:z;
        
GetPlayerPos(playeridxyz);
        
CreateExplosion(xyz1110.0);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Se Explodiu! {FF5959}RAIIRAIRAIIRAIAR{FFFFFF}");
        return 
1;
    }
    return 
0;

Mande-nos o seu sistema de salvamente para que assim possamos salvar a quantidade de bombas que o player tem e quando ele relogar ficar com este mesmo numero. =D


Re: [AJUDA]Bomba - FreeGellsTSSA - 07.06.2011

Shadoww eu adoro vocк! ahuahauhauhauhuahauhau

mas enquanto o sistema de salvamento eu nгo tenho, Poderia ajudar?



Re: [AJUDA]Bomba - zbt_Daimyo - 07.06.2011

Sobro o Tempo para explodir ,escolha quanto segundos no Settimer

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/explodirbomba", cmdtext, true, 10) == 0)
    {
        if(Bomba[playerid] == 0) return SendClientMessage(playerid, BRANCO,"Vocк nгo comprou nenhuma bomba !");
        SetTimer("tempoexplodir", TEMPO,true);
        SendClientMessage(playerid, BRANCO,"{FF5959}| INFO |{FFFFFF} voce planto uma bomba e ela explodira em SEGUNDOS! {FF5959}RAIIRAIRAIIRAIAR{FFFFFF}");
        return 1;
    }
    return 0;
}


forward tempoexplodir(playerid);
public tempoexplodir(playerid)
{
        Bomba[playerid] --;
        new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);
        CreateExplosion(x, y, z, 11, 10.0);
        SendClientMessage(playerid, BRANCO,"{FF5959}| INFO |{FFFFFF} VOCE EXPLODIUU!! {FF5959}RAIIRAIRAIIRAIAR{FFFFFF}");
        return 1;
}



Re: [AJUDA]Bomba - Shadoww5 - 07.06.2011

PHP код:
#include <Dini>
new Bomba[MAX_PLAYERS];
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp("/comprarbomba"cmdtexttrue10) == 0)
    {
        if(
GetPlayerMoney(playerid)<50000)return SendClientMessage(playeridAZULCLARINHO,"{FF5959}| ERRO |{FFFFFF} Vocк Nгo Tem {FF5959}${FFFFFF}50000!");
        
SetPlayerAttachedObject(playerid,2,1654,1,0.1000,0.2000,0.0000,0.0,90.0000,180.0000);
        
GivePlayerMoney(playerid, -50000);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Comprou Uma Bomba!");
        
Bomba[playerid] ++;
        return 
1;
    }
    if(
strcmp("/explodirbomba"cmdtexttrue10) == 0)
    {
        if(
Bomba[playerid] == 0) return SendClientMessage(playeridBRANCO,"Vocк nгo comprou nenhuma bomba !");
        
Bomba[playerid] --;
        new 
Float:xFloat:yFloat:z;
        
GetPlayerPos(playeridxyz);
        
CreateExplosion(xyz1110.0);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Se Explodiu! {FF5959}RAIIRAIRAIIRAIAR{FFFFFF}");
        return 
1;
    }
    return 
0;
}
public 
OnPlayerConnect(playerid)
{
    new 
save[40], n[24];
    
GetPlayerName(playeridn24);
    
format(save40"/Acc/%s.txt",n);
    if(
fexist(save))
    {
        
Bomba[playerid] = dini_Int(save"Bombas");
    }
    else
    {
        
dini_Create(save);
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
save[40], n[24];
    
GetPlayerName(playeridn24);
    
format(save40"/Acc/%s.txt",n);
    
dini_IntSet(save"Bombas"Bomba[playerid]);
    return 
1;

#EDIT

Quando o jogador digita o comando /explodirbomba ele recebe a mensagem "Vocк se explodiu.", logo ele seria um homem-bomba e a bomba deve explodir sobre ele sem haver tempo de fuga

Mas caso queira que a bomba seja explodida apуs 10 segundos, por exemplo, use este codigo:

PHP код:
#include <Dini>
forward Explodir(Float:XFloat:YFloat:ZFloat:Raio);
new 
Bomba[MAX_PLAYERS];
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp("/comprarbomba"cmdtexttrue10) == 0)
    {
        if(
GetPlayerMoney(playerid)<50000)return SendClientMessage(playeridAZULCLARINHO,"{FF5959}| ERRO |{FFFFFF} Vocк Nгo Tem {FF5959}${FFFFFF}50000!");
        
SetPlayerAttachedObject(playerid,2,1654,1,0.1000,0.2000,0.0000,0.0,90.0000,180.0000);
        
GivePlayerMoney(playerid, -50000);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Comprou Uma Bomba!");
        
Bomba[playerid] ++;
        return 
1;
    }
    if(
strcmp("/explodirbomba"cmdtexttrue10) == 0)
    {
        if(
Bomba[playerid] == 0) return SendClientMessage(playeridBRANCO,"Vocк nгo comprou nenhuma bomba !");
        
Bomba[playerid] --;
        new 
Float:xFloat:yFloat:z;
        
GetPlayerPos(playeridxyz);
        
SetTimerEx("Explodir"10000false"fffd"xyz10);
        
SendClientMessage(playeridBRANCO,"Corraa !! A bomba irб explodir em 10 segundos !");
        return 
1;
    }
    return 
0;
}
public 
Explodir(Float:XFloat:YFloat:ZFloat:Raio)
{
    
CreateExplosion(XYZ11Raio);
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    new 
save[40], n[24];
    
GetPlayerName(playeridn24);
    
format(save40"/Acc/%s.txt",n);
    if(
fexist(save))
    {
        
Bomba[playerid] = dini_Int(save"Bombas");
    }
    else
    {
        
dini_Create(save);
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
save[40], n[24];
    
GetPlayerName(playeridn24);
    
format(save40"/Acc/%s.txt",n);
    
dini_IntSet(save"Bombas"Bomba[playerid]);
    return 
1;




Re: [AJUDA]Bomba - FreeGellsTSSA - 07.06.2011

Shadoww a intenзгo era, fazer com que o player programasse a bomba, para ela explodir em 10 segundos, agora testei em meu servidor e vi que ela explode naquele mesmo lugar em que digitei o comando, gostaria que ela continuase com o player xD qual a modificaзгo que terei que fazer?


Re: [AJUDA]Bomba - Shadoww5 - 07.06.2011

PHP код:
#include <Dini>
new Bomba[MAX_PLAYERS];
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp("/comprarbomba"cmdtexttrue10) == 0)
    {
        if(
GetPlayerMoney(playerid)<50000)return SendClientMessage(playeridAZULCLARINHO,"{FF5959}| ERRO |{FFFFFF} Vocк Nгo Tem {FF5959}${FFFFFF}50000!");
        
SetPlayerAttachedObject(playerid,2,1654,1,0.1000,0.2000,0.0000,0.0,90.0000,180.0000);
        
GivePlayerMoney(playerid, -50000);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Comprou Uma Bomba!");
        
Bomba[playerid] ++;
        return 
1;
    }
    if(
strcmp("/explodirbomba"cmdtexttrue10) == 0)
    {
        if(
Bomba[playerid] == 0) return SendClientMessage(playeridBRANCO,"Vocк nгo comprou nenhuma bomba !");
        
Bomba[playerid] --;
        new 
Float:xFloat:yFloat:z;
        
GetPlayerPos(playeridxyz);
        
CreateExplosion(xyz1110.0);
        
SendClientMessage(playeridBRANCO,"{FF5959}| INFO |{FFFFFF} Vocк Se Explodiu! {FF5959}RAIIRAIRAIIRAIAR{FFFFFF}");
        return 
1;
    }
    return 
0;




Re: [AJUDA]Bomba - FreeGellsTSSA - 07.06.2011

Acho que nгo intendeu amigo, deixa-se com o timer, como vocк fez antes, mas que a explosгo vocк junto com o player (: ele digitasse e depois de 10 segundos ela explodisse onde o player esta.. e nao onde eu digitei o comando xD


Re: [AJUDA]Bomba - Shadoww5 - 07.06.2011

PHP код:
forward Explodir(playerid);
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp("/explodirbomba"cmdtexttrue10) == 0)
    {
        if(
Bomba[playerid] == 0) return SendClientMessage(playeridBRANCO,"Vocк nгo comprou nenhuma bomba !");
        
Bomba[playerid] --;
        new 
Float:xFloat:yFloat:z;
        
GetPlayerPos(playeridxyz);
        
SetTimerEx("Explodir"10000false"i"playerid);
        
SendClientMessage(playeridBRANCO,"Corraa !! A bomba irб explodir em 10 segundos !");
        return 
1;
    }
    return 
0;
}
public 
Explodir(playerid)
{
    new 
Float:XYZ[3];
    
GetPlayerPos(playeridXYZ[0], XYZ[1], XYZ[2])
    
CreateExplosion(XYZ[0], XYZ[1], XYZ[2], 1110);
    return 
1;




Re: [AJUDA]Bomba - Shadoww5 - 07.06.2011

Troca a public Explodir por esta aqui:

PHP код:
public Explodir(playerid)
{
    new 
Float:XYZ[3];
    
GetPlayerPos(playeridXYZ[0], XYZ[1], XYZ[2]);
    
CreateExplosion(XYZ[0], XYZ[1], XYZ[2], 1010);
    return 
1;