[Ajuda] Sistema de Mochila
#1

Eu estava criando um sistema de mochila para meu server porйm me deparei com um pequeno problema que esta me dando dor de cabeзa, eu iria colocar imagens porйm acho melhor por um video https://www.yo utu be.com/watch?v=CB...ure=yo utu .besempre que tento pegar a primeira arma da lista as outras simplesmente nгo aparecem no dialog porйm ainda consigo pega-las.

Codigos que eu usei

PHP Code:
//public OnDialogResponse
new armaidmunicoesarma;
switch(
dialogid)
{
case 
DIALOG_MOCHILA_PEGAR:
{
if(
response)
{
arma armamento[playerid][listitem+1][a_armaid];
municoes armamento[playerid][listitem+1][a_municoes];
armamento[playerid][listitem+1][a_armaid] = 0;
armamento[playerid][listitem+1][a_municoes] = 0;
format(_stringsizeof(_string), "[ MOCHILA ] Vocк pegou a arma %s com %d de muniзгo"NomeArmas[arma], municoes);
SendClientMessage(playerid, -1_string);
GivePlayerWeapon(playeridarmamunicoes);
//cancelar
}
case 
DIALOG_MOCHILA:
{
if(
response)
{
if(
listitem == 0// Guardar Arma
{
if(
GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid0xFF0000FF"Vocк nгo estб com nenhuma arma na mгo!");
for(new 
1MAX_ARMASy++)
{
if(
armamento[playerid][y][a_armaid] != 0) continue;
armaid y;
break;
}
arma GetPlayerWeapon(playerid), municoes GetPlayerAmmo(playerid);
armamento[playerid][armaid][a_armaid] = arma;
armamento[playerid][armaid][a_municoes] = municoes;
format(_stringsizeof(_string), "[ MOCHILA ] Vocк guardou a arma %s com %d de muniзгo em sua mochila"NomeArmas[arma], municoes);
SendClientMessage(playerid, -1_string);
RemovePlayerWeapon(playeridarma);
}
if(
listitem == 1// Pegar Arma
{
new 
string[1024],string2[256];
for(new 
1MAX_ARMASy++)
{
if(
armamento[playerid][y][a_armaid] > 0)
{
armaid armamento[playerid][y][a_armaid];
municoes armamento[playerid][y][a_municoes];
if(
== 1)
{
format(string2sizeof(string2), "{FFFFFF}Arma\t{FFFFFF}Muniзгo\n0%d. {FF6347}%s\t{D3D3D3}%d\n"yNomeArmas[armaid], municoes);
strcat(stringstring2);
} else {
format(string2sizeof(string2), "\n0%d. {FF6347}%s\t{D3D3D3}%d"yNomeArmas[armaid], municoes);
strcat(stringstring2);
}
}
}
ShowPlayerDialog(playeridDIALOG_MOCHILA_PEGARDIALOG_STYLE_TABLIST_HEADERS"MOCHILA"string"Selecionar""Cancelar");
}
//
}
}

Reply
#2

Vocк tentou guarda a arma dnv? eu acho que й ai o problema, vocк nгo seta outra arma no lugar da AK que foi pega a arma que saiu do index 1 nгo entra outra nesse index tente verificar isso, tente colocar a AK de volta e ve se aparece a deagle.
Reply
#3

Quote:
Originally Posted by Felipealves
View Post
Vocк tentou guarda a arma dnv? eu acho que й ai o problema, vocк nгo seta outra arma no lugar da AK que foi pega a arma que saiu do index 1 nгo entra outra nesse index tente verificar isso, tente colocar a AK de volta e ve se aparece a deagle.
Se eu colocar a AK de volta aparece as duas, o problema й esse se eu tirar qualquer arma do listitem 0 as outras nгo aparecem, teria como atualizar os listitem apos eu remover uma arma do 0? por exemplo eu tenho 4 armas na lista e se eu remover a arma numero 1, a arma que esta no numero 2 se torna a numero 1...
Reply
#4

Tente assim:

Code:
for(new y = 0; y < MAX_ARMAS; y++)
Reply
#5

Quote:
Originally Posted by RIPOrkut
View Post
Tente assim:

Code:
for(new y = 0; y < MAX_ARMAS; y++)
Eu ja tentei, o real problema e que quando eu pego a arma do slot 0 a arma que esta no slot 1 nao desce pro zero ela continua no slot 1
Reply
#6

coloca abaixo qnd remove
PHP Code:
AjustarArma(playerid){
    for(new 
0MAX_ARMASi++){
        if(
armamento[playerid][i][a_armaid] != 0){ // se essa arma for diferente de 0 verifica se a anterior й 0
            
for(new 0MAX_ARMASy++){
                if(
armamento[playerid][y][a_armaid] == 0){ // essa й a anterior!
                    
armamento[playerid][y][a_armaid] = armamento[playerid][i][a_armaid];
                    
armamento[playerid][y][a_municoes] = armamento[playerid][i][a_municoes];
                    
// antiga posiзгo recebe 0
                    
armamento[playerid][i][a_armaid] = 0;
                    
armamento[playerid][i][a_municoes] = 0;
                }
            }
        }
    }

Reply
#7

Quote:
Originally Posted by Felipealves
View Post
coloca abaixo qnd remove
PHP Code:
AjustarArma(playerid){
    for(new 
0MAX_ARMASi++){
        if(
armamento[playerid][i][a_armaid] != 0){ // se essa arma for diferente de 0 verifica se a anterior й 0
            
for(new 0MAX_ARMASy++){
                if(
armamento[playerid][y][a_armaid] == 0){ // essa й a anterior!
                    
armamento[playerid][y][a_armaid] = armamento[playerid][i][a_armaid];
                    
armamento[playerid][y][a_municoes] = armamento[playerid][i][a_municoes];
                    
// antiga posiзгo recebe 0
                    
armamento[playerid][i][a_armaid] = 0;
                    
armamento[playerid][i][a_municoes] = 0;
                }
            }
        }
    }

Muito obrigado, vocк й um mito!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)