31/05/2021 17:44 
(Esta mensagem foi modificada pela última vez a: 31/05/2021 17:45 por robertjwx.)
	
	
	
		Existe alguma forma no pawn de passar uma função por parametro?
Eu estou com um problema de performace nessa função:
Isso porque o meu #define MAX_BIZZ é 5000
Então o loop é muito grande...
Pra resolver isso seria bom se desse pra passar uma função dentro de outra, tipo:
Mas parece que não da...
Ou da?
E agora, o que eu faço?
	
	
	
Eu estou com um problema de performace nessa função:
Código:
public AtualizarRoubos() {
    // atualizar roubos
    for(new bizzid = 1; bizzid < MAX_BIZZ; bizzid++) {
        BizzInfo[bizzid][rexaustedrobbery] -= 5;
        if(BizzInfo[bizzid][rexaustedrobbery] < 0) BizzInfo[bizzid][rexaustedrobbery] = 0;
    }
}Isso porque o meu #define MAX_BIZZ é 5000
Então o loop é muito grande...
Pra resolver isso seria bom se desse pra passar uma função dentro de outra, tipo:
Código:
forward LoopAllBizz(func);
forward ActionLoopRangeBizz(func, idStart, idEnd);
forward PrintBizzName(bizzid);
public LoopAllBizz(func) {
    SetTimerEx("ActionLoopRangeBizz", 10, false, "iii", func, 1, 1000);
    SetTimerEx("ActionLoopRangeBizz", 20, false, "iii", func, 1001, 2000);
    SetTimerEx("ActionLoopRangeBizz", 30, false, "iii", func, 2001, 3000);
    SetTimerEx("ActionLoopRangeBizz", 40, false, "iii", func, 3001, 4000);
    SetTimerEx("ActionLoopRangeBizz", 50, false, "iii", func, 4001, 5000);
}
public ActionLoopRangeBizz(func, idStart, idEnd) {
    for(new bizzid = idStart; bizzid <= idEnd; bizzid++) {
        func();
    } 
}
function PrintBizzName(bizzid) {
  print("[%i]: %s", bizzid, BizzInfo[bizzid][bizzName] )
}
CMD:test(playerid) {
    LoopAllBizz(PrintBizzName(bizzid));
    return true;
}Mas parece que não da...
Ou da?
E agora, o que eu faço?

 
	   
	

 

 

