SQlite й o melhor sistema de salvamentos, sem dъvidas. Mysql й muito bom tambйm, mas precisa de plugin e se vocк estiver em um sistema operacional que nгo lida muito bem vai ser uma
chatice ligar o servidor.
Com relaзгo ao streamer, sem dъvidas o do Icognito, jб utilizei muitos streamers, mas sу este vi diferenзa notбvel, isto porque ele usa threads e um sistema de бreas para carregar os objetos. Testei com n0minal um sistema de gerar objetos que fiz, consegui ligar
2 milhхes de objetos no servidor
Se for um projeto pequeno, use DOF2 para arquivos INI, ou bLines para fazer salvamentos por linha (neste caso й mais dificil, porйm й bastante seguro e bem mais rбpido que DOF2). Mas eu aconselho usar SQL mesmo, porque se tiver que fazer sistema de ranking, ou algo que envolva todas contas de usuбrios, vai dar problema caso tiveres usando arquivo, isto porque em SQL dб pra dar um SORT, enquanto nos arquivos vocк precisarб ler toda pasta, ler todos arquivos para depois classifica-los. Uma tarefa que pode levar vбrios minutos travando seu servidor em caso de muitas contas!
Com relaзгo ao comando, nгo sei te responder, hб tantos e a maioria tem tudo velocidade igual, zcmd й mais usado por questгo de convenзгo, mas jб hб alguns processadores infinitamente melhores e mais rбpidos, no meu sistema de Apocalipse nгo usarei nenhum processador de comandos, estou pensando em fazer comandos com 1 letra para poder facilitar a leitura de parвmetros e deixar TODO script absolutamente rбpido, sem ter que cortar espaзos e processar. Й algo praticamente instantaneo. iCmd й mais rбpido que zcmd por exemplo, contudo ele tem um pйssimo problema na limitaзгo dos comandos, isto й, comandos como /ajuda e /aduja podem entrar em conflito, porйm iCmd й a escolha perfeita para um servidor com poucos comandos, ou com comandos escolhidos a dedo.
Aqui um exemplo de comandos com uma letra
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {
switch(cmdtext[1]) {
case 'a': {
SendClientMessage(playerid, -1, "Vocк digitou /a");
return true;
}
case 'v': {
if(strlen(cmdtext) < 3)
return SendClientMessage(playerid, -1, "Digite /v valor ");
SendClientMessage(playerid, -1, "Vocк modificou sua vida");
SetPlayerHealth(playerid, float(strval(cmdtext[3])))
return true;
}
}
return SendClientMessage(playerid, -1, "Comando desconhecido!!");
}
Como nгo й feita a filtragem de parвmetros, esse mйtodo й infinitamente mais rбpido que qualquer sistema de comandos
Para loops a coisa complica, o sistema mais rбpido de loops й o Vector Plugin, que armazena tudo de forma dinвmica, alйm de ser rбpido da uma economia no .amx:
http://forum.sa-mp.com/showpost.php?...0&postcount=15
Mas se nгo quiser usar plugin, tem o
foreach com uma velocidade muito boa e
ieach tambйm, que funcionam no algorнtimo de
lista ligada contudo o ieach por ser mais leve na questгo do cуdigo e executar as entradas e saidas dos vetores de forma mais rбpida que o foreach, eu uso ele no meu gamemode. Tambйm que eu tentei usar foreach mas nгo obtive boas experiкncias.
Espero ter ajudado.
Valeu