12.03.2019, 22:50
Boa noite, minha dъvida й simples, nгo й nenhum problema que ta acontecendo, mas uma duvida que surgiu.
Tenho um sistema de itens, ele tem que listar todos os itens numa dialog quando o player pressiona 'n'. Entгo eu criei uma string de 1000 cйlulas pra conter todos os nomes em uma dialog. A questгo que fiquei pensando й. Toda vez que o player apertar 'n', vai criar uma string de 1000 cйlulas, isso consome muito processamento?
Eu contei todos os caracteres dos itens e mais as quantidades, da perto de 1000.
Teria como fazer mais otimizado ou sу assim mesmo? e tem algum problema de desemprenho se for feito assim?
Tenho um sistema de itens, ele tem que listar todos os itens numa dialog quando o player pressiona 'n'. Entгo eu criei uma string de 1000 cйlulas pra conter todos os nomes em uma dialog. A questгo que fiquei pensando й. Toda vez que o player apertar 'n', vai criar uma string de 1000 cйlulas, isso consome muito processamento?
Eu contei todos os caracteres dos itens e mais as quantidades, da perto de 1000.
PHP Code:
if(newkeys == KEY_NO)
{
if(VariavelPlayer[playerid][nLoot] >= 0){
ObterListaItens(playerid);
new StringTemp[1000];
new VerfArr = 0, VerHaveItem = 0;
new numStr[5];
for(new i=0; i<sizeof(NomeItens); i++){
if(strcmp(VetorItensDialog[playerid][i], "a", true)){
if(!VerfArr){
strcat(StringTemp,VetorItensDialog[playerid][i]);
strcat(StringTemp,"\t");
if(!VetorMunDialog[playerid][i][tipoItem]){
valstr(numStr, sitens[VariavelPlayer[playerid][nLoot]][AllItens][VetorMunDialog[playerid][i][Iteration]]);
}else if(VetorMunDialog[playerid][i][tipoItem] == 1){
valstr(numStr, uitens[VariavelPlayer[playerid][nLoot]][AllItens][VetorMunDialog[playerid][i][Iteration]]);
}else{
valstr(numStr, titens[VariavelPlayer[playerid][nLoot]][AllItens][VetorMunDialog[playerid][i][Iteration]]);
}
strcat(StringTemp, numStr);
VerfArr = 1;
}else{
strcat(StringTemp,"\n");
strcat(StringTemp,VetorItensDialog[playerid][i]);
strcat(StringTemp,"\t");
if(!VetorMunDialog[playerid][i][tipoItem]){
valstr(numStr, sitens[VariavelPlayer[playerid][nLoot]][AllItens][VetorMunDialog[playerid][i][Iteration]]);
}else if(VetorMunDialog[playerid][i][tipoItem] == 1){
valstr(numStr, uitens[VariavelPlayer[playerid][nLoot]][AllItens][VetorMunDialog[playerid][i][Iteration]]);
}else{
valstr(numStr, titens[VariavelPlayer[playerid][nLoot]][AllItens][VetorMunDialog[playerid][i][Iteration]]);
}
strcat(StringTemp, numStr);
}
VerHaveItem = 1;
}
}
if(VerHaveItem){
ShowPlayerDialog(playerid, DialogLoot, DIALOG_STYLE_TABLIST, "LOOT", StringTemp, "Pegar", "Cancelar");
}else{
SendClientMessage(playerid, -1, "{ffffff}Este {ff0000}loot {ffffff}nгo possui mais {ff0000}itens{ffffff}!");
}
}