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.

Site
Navegação
Ferramentas