Jump to content

Como criar um comando e a funcionalidade do Client-Side e Server-Side


Recommended Posts

Boa noite a todos me chamo Leonardo Bradoks, bom eu venho do SA-MP Programador a cerca de 8 anos.

Seguinte estou tentando migrar para o MTA porém estou com dificuldades em relação a adicionar as funções no servidor.

Criei 3 arquivos dentro da pasta ModsEmDesenvolvimento o caminho dela é: C:\Program Files (x86)\MTA San Andreas 1.5\server\mods\deathmatch\resources\[ModsEmDesenvolvimento]

 


  1. Client-side.lua
  2. Server-side.lua
  3. meta.xml

 

Client-side.lua:

function darDinheiro(playerid)
	givePlayerMoney(playerid, 500)
	outputChatBox("#FFFFFFVoce ganhou #00FF00R$500")
end

Server-side.lua:

addCommandHandler("grana", darDinheiro)

meta.xml:

<meta>
<script src="Server-side.lua" type="server" />
<script src="Client-side.lua" type="client" />
</meta>

 

No arquivo mtaserver.conf localizado em: C:\Program Files (x86)\MTA San Andreas 1.5\server\mods\deathmatch\mtaserver.conf adicionei a seguinte função:

<resource src="ModsEmDesenvolvimento" startup="1" protected="0" />

Abaixo de suas respectivas irmãs:

    <resource src="admin" startup="1" protected="0" />
    <resource src="defaultstats" startup="1" protected="0" />
    <resource src="helpmanager" startup="1" protected="0" />
    <resource src="joinquit" startup="1" protected="0" />
    <resource src="mapcycler" startup="1" protected="0" />
    <resource src="mapmanager" startup="1" protected="0" />
    <resource src="parachute" startup="1" protected="0" />
    <resource src="performancebrowser" startup="1" protected="0" />
    <resource src="reload" startup="1" protected="0" />
    <resource src="resourcebrowser" startup="1" protected="1" default="true" />
    <resource src="resourcemanager" startup="1" protected="1" />
    <resource src="scoreboard" startup="1" protected="0" />
    <resource src="spawnmanager" startup="1" protected="0" />
    <resource src="voice" startup="1" protected="0" />
    <resource src="votemanager" startup="1" protected="0" />
    <resource src="webadmin" startup="1" protected="0" />
    <resource src="ModsEmDesenvolvimento" startup="1" protected="0" />

Porém ligo o servidor e digito o comando /grana e não funciona, alguém pode me ajudar ? Estou começando do básico no MTA pois SA-MP para mim já passou dos limites.

Programo Pawn (SA-MP) de olhos fechados porém lá temos muitas limitações então eu queria migrar para MTA para tentar algo novo, Desde já agradeço a atenção de todos e quero deixar ressaltado aqui que não sou nenhum moleque pois sei que em fóruns possui muitos, Tenho 21 anos casado já então espero que venha respostas construtivas.

 

Atenciosamente Leonardo Bradoks.

Link to comment
  • Other Languages Moderators

Não use a função givePlayerMoney no lado Client, pois vai setar uma "grana falsa" na sua tela, mas no servidor vc vai continuar tendo a grana de antes.
E isso não vai funcionar
 

<resource src="ModsEmDesenvolvimento" startup="1" protected="0" />


Pois você deve colocar o nome do resource e não o nome da pasta principal.

Faça assim:

  • Na sua pasta [ModsEmDesenvolvimento], crie outra pasta dentro dela com o nome darGrana. (pode ser outro, é um exemplo) O nome desta sub-pasta será o nome do seu resource.
  • Dentro da pasta darGrana, crie 2 arquivos.txt vazios. Depois renomeie 1 deles para server.lua (pode ser qualquer coisa.lua) e o outro para meta.xml (tem q ser exatamente assim)
  • Abra o meta.xml e cole isso: (oq importa é a linha do script, mas é importante vc já saber colocar as infos no seu resource.)
  • <meta>
        <info author="Leonardo" version="1.0.0" name="Dar dinheiro" description="Dá $500 para si mesmo ao usar o comando /grana." type="script" ></info>
        <script src="server.lua" type="server" />
    </meta>
  • Salve e feche o meta.xml, depois abra o server.lua e cole isso:
    function receberGrana (thePlayer)
    	givePlayerMoney (thePlayer, 500)
    end
    addCommandHandler ("grana", receberGrana)

     

  • Salve e feche o server.lua.
  • Vá no seu servidor, e use /refresh.
  • Abra o painel admin, na aba resources, dê refresh na lista de resources e procure por darGrana.
  • Selecione-o e clique em Start.
  • Feche o painel admin, e use o comando /grana
  • E receba os $500 que vc programou no script.
  • Não se esqueça de colocar o seu resource para iniciar automaticamente ao ligar o server. Coloque isso no mtaserver.conf:
    <resource src="darGrana" startup="1" protected="0" />

     

Para verificar se há problemas em seu script, deixe o /debugscript 3 ativado.

Qualquer dúvida, volte a perguntar aqui mesmo.
Espero ter ajudado, boa sorte.

Edited by Lord Henry
  • Thanks 1
Link to comment
  • Other Languages Moderators

Já que vc está começando a estudar a linguagem Lua do MTA, sugiro que leia a Wiki: https://wiki.multitheftauto.com/wiki/PT-BR/Introdução_ao_Scripting

10 minutes ago, Leonardo Bradoks said:

Certo eu fiz isto porém na parte do /refresh está dando acesso não permitido (acess denied).

Como prossigo para resolver isto ? estou iniciante de tudo aqui no MTA, mas assim que engrenar já era rs.

Você precisa ser administrador do seu servidor para poder mexer nele. :|

Ou então vc pode ir no Console (aquela espécie de Prompt de Comando que aparece quando vc liga seu servidor) e mandar o comando refresh nele. (não se usa a / ali) e depois usar start darGrana

Mas de qualquer forma, você vai precisar ter acesso admin no seu servidor para fazer as coisas nele.

Edited by Lord Henry
  • Like 1
Link to comment
  • Other Languages Moderators
20 minutes ago, Leonardo Bradoks said:

Bom consegui, porém existe alguma forma de eu fazer com que essa resource se inicie automaticamente com o servidor ?

Quote

Não se esqueça de colocar o seu resource para iniciar automaticamente ao ligar o server. Coloque isso no mtaserver.conf:


<resource src="darGrana" startup="1" protected="0" />

 

 

  • Like 1
Link to comment

Sobre a pasta [ModsEmDesenvolvimento] que você nomeou para o resource, talvez você já tenha entendido como funciona, mas explicando o uso dos colchetes: Isso serve como uma pasta para deixar tudo melhor organizado, por exemplo, você quer separar scripts em desenvolvimento no seu servidor, então você cria uma pasta [desenvolvimento] na pasta de resources, e dentro dela, todos seus resources ao qual se aplica a essa pasta. Assim como já vem as pastas padrão do MTA gamemodes, managers, gameplay, etc.

Então no comando resource src dentro do mtaserver.conf, você carrega resource por resource.

Parâmetros:

startup - 1 : ligado; 0 : desligado

protected - 1 : não será possível parar o resource; 0 : padrão

Com relação ao código Lua, você está separando a parte do comando e da função em lados diferentes, te aconselho a ir se aprofundando em tutoriais sobre server e client, não sei se você já tem um conceito básico sobre client em multiplayer (isso facilitaria mais pra você aprender mais rapidamente), mas enfim, qualquer dúvida é só perguntar aqui.

Sendo assim, o seu código que é do lado server, deve ser colocado todo junto assim como o Lord já explicou.

Edited by DNL291
  • Like 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...