Jump to content

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


Recommended Posts

Posted

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.

  • Other Languages Moderators
Posted (edited)

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
Posted

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.

  • Other Languages Moderators
Posted (edited)

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
  • Other Languages Moderators
Posted
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
Posted (edited)

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

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...