[Ajuda] Times
#1

PHP код:
#include a_samp
#include sscanf2
#include zcmd
#include DOF2
#define MAX_TIMES               25
enum tInfo {
tKills,
tMortes,
tDinheiro,
tNivel,
tPontos,
tRank
};
new 
TimeInfo[MAX_TIMES][tInfo];
CMD:criartime(playerid,params[])
{
    
format(pArquivo,sizeof(pArquivo),CAMINHO_CONTAS,pNome(playerid));
    if(
PlayerInfo[playerid][pLider] == true) return SendClientMessage(playerid,-1,"Vocк jб й lider de um time.");
    new 
NomeTime[40],esc[40];
    if(
sscanf(params,"s",esc)) return SendClientMessage(playerid,-1,"Servidor: use /criartime [nome]");
    
format(NomeTime,sizeof(NomeTime),CAMINHO_TIMES,esc);
    
DOF2_CreateFile(esc);
    
DOF2_SetInt(esc,"Cofre",TimeInfo[MAX_TIMES][tDinheiro]); //239
    
DOF2_SetInt(esc,"Nivel",TimeInfo[MAX_TIMES][tNivel]); //240
    
DOF2_SaveFile();
    return 
1;

Код HTML:
C:\Users\Win 7\Desktop\samp\SAWARS\gamemodes\SAWARS.pwn(239) : error 032: array index out of bounds (variable "TimeInfo")
C:\Users\Win 7\Desktop\samp\SAWARS\gamemodes\SAWARS.pwn(240) : error 032: array index out of bounds (variable "TimeInfo")
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Minha idйia й fazer um comando que crie um time(clan) para um gamemode de TDM. Alguйm pode me explicar por que esses erros aparecem e como solucionar?
Reply
#2

Sу procurar, tem varios...
https://sampforum.blast.hk/showthread.php?tid=372164
Reply
#3

PHP код:
CMD:criartime(playerid,params[])
{
    
format(pArquivo,sizeof(pArquivo),CAMINHO_CONTAS,pNome(playerid));
    if(
PlayerInfo[playerid][pLider] == true) return SendClientMessage(playerid,-1,"Vocк jб й lider de um time.");
    new 
NomeTime[40],esc[40];
    if(
sscanf(params,"s",esc)) return SendClientMessage(playerid,-1,"Servidor: use /criartime [nome]");
    
format(NomeTime,sizeof(NomeTime),CAMINHO_TIMES,esc);
    new 
time GetPlayerTeam(playerid);
    
DOF2_CreateFile(esc);
    
DOF2_SetInt(esc,"Cofre",TimeInfo[time][tDinheiro]); //239
    
DOF2_SetInt(esc,"Nivel",TimeInfo[time][tNivel]); //240
    
DOF2_SaveFile();
    return 
1;

Reply
#4

Quote:
Originally Posted by Dark.Angel
Посмотреть сообщение

Se vc prestar atenзгo, nao to pedindo um sistema pronto e ruim como esse q passou. Quero resolver os problemas do meu.

Sera que tem uma alma capacitada pra isso que possa me ajudar?



Quote:
Originally Posted by Fel486
Посмотреть сообщение
PHP код:
CMD:criartime(playerid,params[])
{
    
format(pArquivo,sizeof(pArquivo),CAMINHO_CONTAS,pNome(playerid));
    if(
PlayerInfo[playerid][pLider] == true) return SendClientMessage(playerid,-1,"Vocк jб й lider de um time.");
    new 
NomeTime[40],esc[40];
    if(
sscanf(params,"s",esc)) return SendClientMessage(playerid,-1,"Servidor: use /criartime [nome]");
    
format(NomeTime,sizeof(NomeTime),CAMINHO_TIMES,esc);
    new 
time GetPlayerTeam(playerid);
    
DOF2_CreateFile(esc);
    
DOF2_SetInt(esc,"Cofre",TimeInfo[time][tDinheiro]); //239
    
DOF2_SetInt(esc,"Nivel",TimeInfo[time][tNivel]); //240
    
DOF2_SaveFile();
    return 
1;


Ah taa.. vou testar obg,mas vc poderia me explicar o pq?
Reply
#5

pawn Код:
#define MAX_TIMES               25
Ao declarar um vector
pawn Код:
new TimeInfo[MAX_TIMES][tInfo];
com o MAX_TIMES quer dizer que o vector vai entre o index 0 e o 24.
pawn Код:
DOF2_SetInt(esc,"Cofre",TimeInfo[MAX_TIMES][tDinheiro]); //239
DOF2_SetInt(esc,"Nivel",TimeInfo[MAX_TIMES][tNivel]); //240
Aqui estбs a tentar aceder o index 25, que nгo existe.
Reply
#6

Ao meu haver, й porque vocк definiu o valor mбximo pra 25. Ou seja, o valor da array pode ser atй 24, porque o ъltimo valor conta como espaзo "vazio".

Basta observar quando fazemos isto:

PHP код:
for(new 0MAX_PLAYERSa++)
{
    
// ...

Em toda funзгo fazemos isso. Se esse MAX_PLAYERS fosse 5, por exemplo, o cуdigo checaria o A como 0, 1, 2, 3, 4.

Ou seja, seria ENQUANTO o "a" fosse menor que o MAX_PLAYERS, que й 5.
Reply
#7

Quote:
Originally Posted by Fel486
Посмотреть сообщение
porque o ъltimo valor conta como espaзo "vazio".
Totalmente errado.
Nуs contamos a partir de um
O computador "conta" a partir de zero.

Portanto, o "ъltimo valor" nгo existe, porque nгo foi alocado na memуria.
Reply
#8

Quote:
Originally Posted by Kikito
Посмотреть сообщение
Totalmente errado.
Nуs contamos a partir de um
O computador "conta" a partir de zero.

Portanto, o "ъltimo valor" nгo existe, porque nгo foi alocado na memуria.
Nгo dei contra-resposta na sua. Eu jб estava digitando e nгo atualizei.

Sim, por isso que eu falei "vazio", porque eu quis dizer que ele nгo utilize o ъltimo, apenas do 0 ao 24. Й um modo de falar.

Espero que nгo me leve a mal.
Reply
#9

Quote:
Originally Posted by Fel486
Посмотреть сообщение
Й um modo de falar.
Ok, na boa
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)