Olá pessoal, hoje vamos falar de algo que destrói a cabeça de novatos no MTA: Quando e onde devo usar source?
Então vamos a primeira pergunta que surge, mas o que diabos é source no MTA?
source nada mais é do que: parâmetro determinado por uma função ou evento.
Você agora você deve estar perguntando o que é parâmetro.
É muito simples, pense comigo na função addCommandHandler. Ela tem 2 parâmetros predeterminados que são (Quem_Executou, Nome_Do_Comando), como na imagem abaixo:
Como você pode ver na imagem, ela tem os 2 parâmetros citados acima. Lembrando que: a própria wiki fala sobre os parâmetros.
playerSource: O jogador que acionou o comando ou o console do servidor. Se não for acionado por um jogador (por exemplo, por administrador) ou console de servidor, isso será falso.
commandName: O nome do comando que foi acionado. Isso é útil se vários comandos passarem por uma mesma função.
Mesmo o parâmetro sendo predeterminado, você pode botar o nome que você quiser, por ex:
O parâmetro de quem executou o comando é playerSource, mas você pode botar qualquer nome como: p, player, sujeito, shuppinga e etc.... da mesma maneira o commandName (nome do comando), você pode botar (nome_do_comando, comando).
Como você prefere. (mas é claro, siga um padrão a qual os outros programadores possam entender seu código !!)
_____________________________________________________________
Mas quando devo usar source então?
Simples, quando não existe o parâmetro que indique o sujeito. Por exemplo, o evento onPlayerWasted.
O evento onPlayerWasted tem o seguintes parâmetros:
totalAmmo - A munição total que a vitima tinha quando morreu,
killer - O assassino que matou a vitima,
killerWeapon - O id da arma do assassino,
bodyPart - A parte do corpo da vítima que foi atingida quando ela morreu,
stealth - Um valor booleano representando se esta foi ou não uma morte furtiva.
Note que não existe o parâmetro vítima.
Então aqui que entra o source. Mas como saber o que é o source?
A própria wiki diz, basta ler
A source deste evento é o jogador que morreu ou foi morto.
Então o tutorial fica por aqui :), bye bye.
(lembrando que essas fontes são próprias, então pode ser um conteúdo incorreto, mas espero ter ajudado a tirar a dúvida, lembrando que ela pode ser corrigida por alguém de bom conhecimento sobre do conteúdo.)