Alterações de scripting na versão 0.1 Beta 1
De IV:MP Brasil Wiki
Na versão 0.1 Beta 1, houve várias mudanças relacionadas à parte de scripting. Para tornar seu script compatível com esta versão, é necessário fazer algumas modificações. As alterações serão mostradas a seguir.
Tabela de conteúdo |
Funções renomeadas
Nesta versão, algumas funções tiveram seus nomes trocados. São elas:
| Nome antigo | Nome atual |
|---|---|
| destroyVehicle | deleteVehicle |
| addPlayerWeapon | givePlayerWeapon |
| togglePlayerRagdoll | togglePlayerPhysics |
| getPlayersOnServer | getPlayerCount |
Funções removidas
getVersion
A função getVersion foi removida, sendo substituída pela constante padrão IVMP_VERSION.
getTimestamp
A função getTimestamp foi removida, devido ao fato de já existir uma função nativa (time), que desempenha o mesmo papel.
Novas funções
Nesta versão foram incluídas várias novas funções. Para vê-las, veja a categoria Funções incluídas na versão 0.1 Beta 1.
Funções com sintaxe alterada
Na versão 0.1 Beta 1, algumas funções tiveram sua sintaxe alterada. São elas:
sendPlayerMessage e sendMessageToAll
Nestas duas funções, a ordem dos parâmetros foi alterada. Agora a mensagem enviada vem antes da cor nas duas funções. Exemplos:
| Sintaxe antiga | Sintaxe atual |
|---|---|
sendPlayerMessage(playerid, 0xFFFFFFFF, "Oi"); | sendPlayerMessage(playerid, "Oi", 0xFFFFFFFF); |
sendMessageToAll(0xFFFFFFFF, "Oi"); | sendMessageToAll("Oi", 0xFFFFFFFF); |
Além disso, o parâmetro de cor passa a ser opcional. Caso ele seja omitido, a mensagem será escrita na cor branca.
sendMessageToAll("Mensagem na cor branca");
setTimer
A função setTimer teve sua sintaxe alterada, tal que agora o nome da função não precisa mais estar entre aspas, e o último parâmetro expressa o número de vezes que a função será repetida (para repetir infinitas vezes, usa-se o valor -1). Além disso, você pode definir parâmetros adicionais, que serão passados à função chamada pelo timer.
function meuTimer() { sendMessageToAll("Obrigado por jogar em meu servidor"); } setTimer(meuTimer, 60000, -1);
Sistema de Eventos
O sistema de callbacks do IV:MP foi removido na versão 0.1 Beta 1, e agora o gerenciamento de acontecimentos do servidor é feito pelo novo sistema de Eventos.
Para adaptar o seu script ao novo sistema de eventos não é preciso muitas alterações. Basta chamar a função addEvent, informando que você quer associar uma determinada função a um determinado evento.
function onPlayerConnect(playerid) { sendPlayerMessage(playerid, "Bem-vindo ao meu servidor"); } addEvent("playerConnect", onPlayerConnect); //agora toda vez que um jogador entrar no servidor, a função onPlayerConnect será chamada
Loops de jogadores
Com a versão 0.1 Beta 1, há também uma forma mais eficiente de se fazer loops entre todos os jogadores do servidor. Antigamente, os loops tinham esse formato:
const MAX_PLAYERS = 50; //número máximo de jogadores no servidor for(local i = 0; i < MAX_PLAYERS; i++) //traça um loop sobre todos os IDs de jogadores do servidor { if(isPlayerConnected(i)) //checa se o ID pertence a um jogador do servidor { //conteúdo do loop } }
Agora, com a função getPlayers, introduzida na versão 0.1 Beta 1, podemos fazer loops mais eficientes. Esta função retorna uma table contendo todos os jogadores, na qual podemos fazer uma iteração usando a keyword foreach.
foreach(i in getPlayers()) { //conteúdo do loop }
Constantes padrão
Nesta versão do IV:MP, foi adicionado suporte à constantes padrão que representam aspectos do servidor, não sendo mais preciso declará-las. Para vê-las, veja o artigo Constantes Padrão.