25.08.2013, 01:43
(
Последний раз редактировалось Juniiro3; 03.09.2013 в 22:11.
)
Criando Funзхes
Funзхes Simples
pawn Код:
main()
{
return MinhaFuncao();
}
MinhaFuncao()
{
print("Olб Mundo!");
return 1;
}
Declarando Funcoes
Como eu disse, uma funзгo pode ser declarada e usada em qualquer de um Gm/Fs, desde que ela nгo seja declarada dentro de chaves "{ }". Para declarar uma funзгo, basta procurar o espaзo que quiser fora de chaves e escrever o nome dela. Depois disse, abra as chaves normalmente e use sua imaginaзгo.
pawn Код:
Funcao( playerid ) //Esses parenteses sao necessarios, mesmo sem nenhum parametro
{ //Abre Chave
if (vip[playerid] == 1)
return 1; //retorna 1 caso ele for vip
} //Fecha Chave
- Se й numйrico
- Se й booleano ( bool )
- Se й Float
- Se й String.
Funзхes Avanзadas
Se uma funзгo simples й uma com pouco ou nenhum parвmetro e com uma linguagem mais simplificada, uma funзгo avanзada ou complexa й aqeula com muitos parвmetros ou com uma complexibilidade maior. Por exemplo:
pawn Код:
MensagemProxima(playerid, cor, Float:distancia, texto[])
{
static Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
for (new i; i < MAX_PLAYERS; i++)
if (IsPlayerInRangeOfPoint(i, distancia, Pos[0], Pos[1], Pos[2]))
SendClientMessage(i, cor, texto);
return 1;
}
pawn Код:
MensagemProxima(playerid, cor, Float:distancia, texto[])
pawn Код:
MensagemProxima(asdasd , vodka, Float:aguadecoco, colchetesXD[])
Declarando Parametros e seus tipos
Vamos trabalhar em cima dessa funзгo:
pawn Код:
MensagemProxima(playerid, cor, Float:distancia, texto[])
{
static Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
for (new i; i < MAX_PLAYERS; i++)
if (IsPlayerInRangeOfPoint(i, distancia, Pos[0], Pos[1], Pos[2]))
SendClientMessage(playerid, cor, texto);
return 1;
}
Nas funзхes, declaramos de forma idкntica a outros scripts, usando:
pawn Код:
bool:TipoBoolean, Float:TipoFloat, string[size]
Voltando para nossa funзгo, conseguimos perceber o tipo de cada parвmetro que ela possui. Agora, precisamos usar eles dentro de nossa funзгo.
pawn Код:
static Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
for (new i; i < MAX_PLAYERS; i++)
if (IsPlayerInRangeOfPoint(i, distancia, Pos[0], Pos[1], Pos[2]))
SendClientMessage(i, cor, texto);
return 1;
Todos os parвmetros sгo variбveis, ou seja, "sгo passados por referкncia", assim como GetPlayerName e etc. Quando formos usar uma funзгo, nгo vamos usar esses parвmetros em si, mas sim de acordo com nossa necessidade. Essa funзгo, por exemplo, usada como Chat Prуximo, ficaria:
pawn Код:
public OnPlayerText(playerid, text[]) //Os parвmetros de public trabalham da mesma maneira
{
MensagemProxima( playerid , GetPlayerColor ( playerid ) , 50.0 , text);
return 0;
}
Avaliem o tutorial e me ajudem com o que nгo ficou bom
