Jump to content

Angelo Pereira

Members
  • Posts

    251
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by Angelo Pereira

  1. Você pode utilizar : outputChatBox(getPlayerName(source)) Caso não funciona, é o que eu sempre faço é assim : Linha 2 Client. triggerServerEvent ( "onGreeting", getRootElement(), localPlayer, guiGetText ( GUIEditor.edit[1] ) ) Server. function greetingHandler ( source, message ) local data = getAccountData ( getAccount("database", "senha"), message ) if data then outputChatBox("Jogador : "..getPlayerName(source).."", source, 255, 255, 255, true) else outputChatBox("Não achei :(", source, 255,255,255, true) end end addEvent( "onGreeting", true ) addEventHandler( "onGreeting", getRootElement(), greetingHandler )
  2. Envie o jeito que você tentou fazer e acabou errando
  3. Como é client não é necessário declarar esse arg, então faça o seguinte : outputChatBox ("Texto", 255,255,255, true)
  4. Quando utilizar esse script, pra não acontece de da erro, e volta aqui, remova no final do createMarker o v (Caso não identifica o erro)
  5. Assim por cima, notei uns control C cabuloso, mas, para salvar na conta do player se utiliza setAccountData. Fiz algumas melhorias (ou melhor, dei uma geral), e dentre disso, você verá seus erro, e te ajudará. -- SCRIPT DO PICKUP -- SERVER SIDE -- local pickup = createPickup(1766.3364257813,-1788.8395996094,16.325000762939, 3, 1275, 1) function skin (hit) local accName = getAccountName ( getPlayerAccount ( hit ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Mecanico") ) then if getElementData(hit,"Servico") == "Sim" then local outSkin = tonumber(getElementData(hit,"skinout")) or 0 setElementModel (hit,outSkin) --/> Alterado setElementData(hit, "Servico", "Não") exports.Scripts_Dxmessages:outputDx(hit, "Você saiu de Serviço com sucesso!", "success") return end local skinatual = getElementModel(hit) --/> Alterado setElementModel (hit, 50) --/> Alterado setElementData(hit, "Servico", "Sim") setElementData(hit, "skinout", skinatual) exports.Scripts_Dxmessages:outputDx(hit, "Você entrou em Serviço com sucesso, Bom Trabalho!", "success") else exports.Scripts_Dxmessages:outputDx(hit, "Você não é um mecanico para poder entrar em Serviço!", "error") end end addEventHandler("onPickupHit", pickup,skin) -- ADICIONADO DEPOIS DO PICKUP -- function player_quit ( ) local account = getPlayerAccount (source) if account and not isGuestAccount(account) then local skinserv = getElementData ( source, "skinout" ) or 0 --/> Alterado local servi = getElementData ( source, "Servico" ) or "Não" --/> Alterado setAccountData ( account, "skinout", skinserv ) --/> Alterado setAccountData ( account, "Servico", servi ) --/> Alterado end end addEventHandler ("onPlayerQuit", getRootElement(), player_quit) function player_login ( ) local account = getPlayerAccount (source) if account and not isGuestAccount(account) then local skinserv = getAccountData ( account, "skinout" ) or 0 local servi = getAccountData ( account, "Servico" ) or "Não" setElementData ( source, "skinout", skinserv ) setElementData ( source, "Servico", servi ) end end addEventHandler ("onPlayerLogin", getRootElement(), player_login ) function start_resource ( ) --/> Alterado / Quase tudo... for i, player in ipairs(getElementsByType("player")) do --/> Adicionado local account = getPlayerAccount (player) --/> Adicionado if account and not isGuestAccount(account) then --/> Adicionado local skinserv = getAccountData ( account, "skinout" ) or 0 local servi = getAccountData ( account, "Servico" ) or "Não" setElementData ( player, "skinout", skinserv ) setElementData ( player, "Servico", servi ) end end end addEventHandler ( "onResourceStart", resourceRoot, start_resource ) --/> Alterado function stop_resource ( ) --/> Alterado / Quase tudo... for i, player in ipairs(getElementsByType("player")) do --/> Adicionado local account = getPlayerAccount (player) --/> Adicionado if account and not isGuestAccount(account) then --/> Adicionado local skinserv = getElementData ( player, "skinout" ) or 0 --/> Alterado local servi = getElementData ( player, "Servico" ) or "Não" --/> Alterado setAccountData ( account, "skinout", skinserv ) --/> Alterado setAccountData ( account, "Servico", servi ) --/> Alterado end end end addEventHandler ( "onResourceStop", resourceRoot, stop_resource ) --/> Alterado
  6. Utilize o Evento "onClientResourceStart" do lado do client-side : addEventHandler("onClientResourceStart", resourceRoot, function() -- Adicione o Script ... end)
  7. Alguns erros que deve ser de usar control+C e control+V. Deixei assinalado os seus erros... timer = { } --/> Adicionado PegarArma = { } tempo = 2400000 --/ 60.000 (= 1 Minuto) x 40 (= 40 Minutos) = 2.400.000 milissegundos function consoleGive ( thePlayer --[[ Removido : commandName, weaponID, ammo ]] ) local money = getPlayerMoney ( thePlayer ) if money >= 200 then if (PegarArma[thePlayer] --[[Alteração Para thePlayer]] ) then return outputChatBox ( "Aguarde 40 minutos para pegar essa belezura", thePlayer --[[Alteração Para thePlayer]], 225, 0, 0 ) end giveWeapon ( thePlayer, 16, 1, true ) outputChatBox("#FFFF00Você acaba de pegar uma belezura bombinha", thePlayer --[[Alteração Para thePlayer]], 255, 255, 255, true) takePlayerMoney ( thePlayer, 200 ) PegarArma[thePlayer --[[Alteração Para thePlayer]]] = true timer[thePlayer] = setTimer( function( thePlayer --[[Alteração Para thePlayer]]) PegarArma[thePlayer --[[Alteração Para thePlayer]]] = false end, tempo, 1, thePlayer--[[Adicionado thePlayer]]) else outputChatBox("Você tem que gastar 200 real apenas hoje pra pegar essa belezura(",thePlayer, 255, 0, 0) end end addCommandHandler ( "pegarbomba", consoleGive ) addEventHandler("onPlayerQuit", root, function() if isTimer(timer[source]) then killTimer(timer[source]) timer[source] = nil end if PegarArma[source] then PegarArma[source] = nil end end)
  8. É bom dar uma lida nesse tópico vídeo tudo sobre este fórum ! Farei um pequeno exemplo... addCommandHandler("receber", function(player, _, valor) if tonumber(valor) then outputChatBox("Você Pegou R$: "..tonumber(valor).." Reais.", player, 255,255,255, true) givePlayerMoney(player, tonumber(valor)) else outputChatBox("Error, Adicione o Valor.", player, 255,255,255, true) end end)
  9. Acho, que fazendo dessa maneira markers[thePlayer]["StartMarker"], vai retorna em nil value.
  10. Humm, bom saber disso, na WIKI Vehicle, está desatualizado então, pois, dentro de Bike estão motos e bikes
  11. Para podermos ajuda-lo você precisa cria-lo, e se tiver dificuldades em algum código, damos suporte a isso. Para ajuda-lo a criar, deixarei umas funções que necessitará : -- server-side : createObject() --/> Criará o Objeto. createColSphere() --/> Criará uma Esfera de Colisão, caso queira abrir o painel, ao chegar perto. triggerClientEvent() --/> Usa um Trigger Para Abrir o Painel. -- client-side : https://wiki.multitheftauto.com/wiki/GuiCreateWindow --/> Criar um Painel CEGUI / Abaixo tem um pequeno exemplo muito útil !
  12. Problema, que também afetaria as motos. Tente isso : -- Script Full factor = 0.03 --[[function createVehicles( player ) for i,v in ipairs(getElementsByType("vehicle")) do local fuel = math.random(95,100) setElementData(v, "fuel", fuel) end end--]] function processFuel ( ) for i, v in ipairs(getElementsByType("vehicle")) do if not (getElementModel(v) == 509) and not (getElementModel(v) == 481) and not (getElementModel(v) == 510) then --/> Adicione os ID que Bloqueará ! local fuel = getElementData(v, "fuel") or math.random(95,100) if getVehicleEngineState(v) and fuel > 0 then fuel = fuel - factor setElementData(v, "fuel", fuel) end if (fuel <= 0.99) then fuel = 0 setVehicleEngineState(v, false) end end end end --createVehicles() --/> Não é necessário, o timer já fez isso. setTimer(processFuel, 1000, 0)
  13. Quase fez certo, porem, você poderia ter bloqueado diretamente no timer de combustivel. function processFuel(player) for i,v in ipairs(getElementsByType("vehicle")) do local id = getElementModel ( v ) if (id == 509) or (id == 481) or (id == 510) then return end --/> Verifica o ID, caso for o ID da Bike, Então retorna. --id 509 :Bike id 481: BMX id 510 : Mountain Bike local fuel = getElementData(v, "fuel") or math.random(95,100) if (getVehicleEngineState(v) and fuel > 0 ) then fuel = fuel - factor end if (fuel <= 0.99) then fuel = 0 setVehicleEngineState(v, false) end setElementData(v, "fuel", fuel) end end ou, bloquei diretamente na função que cria gasolina nos veiculos.
  14. Envie o código para podermos ajuda-lo !
  15. Farei uma pequena demostração : local emprego = {} function adicionar (player) emprego[player] = "ifood" end addCommandHandler("adicionar", adicionar) function verificar (player) if emprego[player] == "ifood" then outputChatBox("Tem Emprego de ifood.") else outputChatBox("Sem Emprego.") end end addCommandHandler("verificar", verificar) function remover (player) if emprego[player] == "ifood" then emprego[player] = nil --/> Removerá da Tabela. end end addCommandHandler("remover", remover)
  16. O que eu notei nas suas prints, são quando você olha para as bicicletas, elas estão com texturas? ou seja, é uma quantidade muito grande de spam de bicicletas, com textura, onde a quantidade pode influencia em uma queda de FPS ao olhar para os mesmo, pois, são muitos veiculos spawnado com uma certa textura, que sua placa não pode está suportando. Pode ser que seja, como pode ser que não seja, verifique isso
  17. Eu faria essa função no lado server-side, eu não sei sé é possível chama um marker do lado server-side, para o client-side, acho que isso dará erro. Ou pode fazer o seguinte, faça um marker invisível do lado client-side na mesma posição : local trabjob = createMarker(2384.421, 2088.01, 9.835, "cylinder", 1.1, 0,0,0,0) E então utilize o que o Jonas^ Passou acima.
  18. Então o problema é quando ele atira, e tira a arma do punho, e quando coloca novamente, a munição no clip fica 0? Uma solução para isto eu não tenho conhecimento, agora em meio scripts daria pra corrigir "Com possibilidades de bugs" : --/> Client-Side (Teste) function verificar_clip (_, proximo_id_slot) if ( proximo_id_slot == 6 ) and ( getWeaponNameFromID ( getPedWeapon (localPlayer, 6)) == "Sniper" ) then if getPedAmmoInClip(localPlayer, 6) <= 0 then --/> Verificará se o Clip da Sniper Está em 0 Balas ! local weapom = getElementData(source,"currentweapon_1") if not weapom then return end setWeaponState( weapom, "reloading" ) --/> Recarregará a Sniper ! -- ou /> Caso Funcionar /> Teste com : Caso queira ! -- setWeaponClipAmmo ( weapom, 1 ) --/> Adicionara 1 Bala no Clip da Sniper ! outputDebugString("Carregado com Sucesso!") --/> Verifique se Irá da Certo ! end end end addEventHandler ( "onClientPlayerWeaponSwitch", getLocalPlayer(), verificar_clip ) --/> Evento Next Weapom ! / Trocar Para a Próxima Arma --/> Lembrando, isso é para teste, você pode adaptar no seu evento "onPlayerWeaponSwitch" do lado server-side (Se Funcionar) ! Isso é apenas para você fazer um teste, possa funciona ou não, não testei, se alguém tiver uma melhor forma, é melhor !
  19. Isso ocorre por que a sniper somente tem uma bala no clip, você precisará aumenta o clip de balas usando : setWeaponProperty("sniper", "pro", "maximum_clip_ammo", 10) setWeaponProperty("sniper", "std", "maximum_clip_ammo", 10) setWeaponProperty("sniper", "poor", "maximum_clip_ammo", 10)
  20. Linha 47, substitua por : function enterVehicle ( thePlayer, seat, jacked ) if seat == 0 then if ( boats[getElementModel ( source )] ) and ( not getElementData ( thePlayer, "boatLicense" ) ) then outputChatBox ( "#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Você não possui uma licença para conduzir um Veiculo.", thePlayer, 255, 100, 100, true ) outputChatBox ( "#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Você pode comprar em San Fierro perto da escola de condução.. ", thePlayer, 255, 150, 140, true ) setControlState ( thePlayer, "enter_exit", false ) --/> Esta função faz o player sair do veiculo. receber_estrelas(thePlayer) elseif ( aero[getElementModel ( source )] ) and ( not getElementData ( thePlayer, "aeroLicense" ) ) then outputChatBox ( "#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Você não possui uma licença para operar o transporte aéreo.", thePlayer, 255, 100, 100, true ) outputChatBox ( "#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Você pode comprar em San Fierro perto da escola de condução.", thePlayer, 255, 150, 140, true ) setControlState ( thePlayer, "enter_exit", false ) --/> Esta função faz o player sair do veiculo. receber_estrelas(thePlayer) elseif ( not getElementData ( thePlayer, "carLicense" ) and not isVehicleNoNeed ( getElementModel ( source )) ) then outputChatBox ( "#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Você não tem uma licença para dirigir um carro.", thePlayer, 255, 100, 100, true ) outputChatBox ( "#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Você pode comprar em San Fierro perto da escola de condução.", thePlayer, 255, 150, 140, true ) setControlState ( thePlayer, "enter_exit", false ) --/> Esta função faz o player sair do veiculo. receber_estrelas(thePlayer) end end end addEventHandler ( "onVehicleEnter", getRootElement(), enterVehicle ) function receber_estrelas ( source ) local level = getPlayerWantedLevel (source) outputChatBox("#FFFFFF[ #000000MINIGUN #FFFFFF]#010101-#F80000Auto Escola#FFFF00 Por Não Possuir CNH, Você Recebeu +3 Estrelas.",source,255,255,255,true) if level <= 3 then --/> Se o Player Tiver Abaixo de 3 ou igual a 3 Estrelas então fazer : setPlayerWantedLevel (source, level + 3) --/> Somará o nível de estrela que já tem + 3 estrelas. else --/> Se o Player Tiver Acima de 4 então fazer : setPlayerWantedLevel( source, 6 ) --/> Adicionará 6 estrelas, pos, o player já tem 4,5,6 estrela e soma sempre dará 6. end end
  21. Eu não vejo problema em relação a isso, eu acho que o proposito desse sub fórum é compartilharmos nossas dúvidas obtidas em qualquer resource que não esta conseguindo resolver um problema, e mais, você sempre vai obter mais informação e conhecimento, e consequentemente podendo até esta ajudando outras pessoas com o mesmo problema, mas, se tivesse uma proibição, acho que haveria algum aviso sobre, e sempre seria repassado pelos responsáveis dessa sessão. Até porquê estamos aqui para ajudar a todos, independente da situação, e pra mim, em fase de aprendizado, aprimoro sempre meus conhecimentos, e ajudo sempre quando posso, e sempre quando posso, tento compartilha-lo.
  22. Sim, eu apenas estava demostrando um jeito por tabela, pra não precisa usa elementos (Apenas pra seguir um raciocínio deixado nos posts hehe) Mas, o problema do código que ele enviou não era nada misterioso, era apenas o getElement..("AirNewSCR_LiberarXP"), apenas deixei um outro exemplo, que ele poderia utilizar, porem aprimorar, sacou? Eu apenas peguei a parte de 10 Minutos citado, e dei um exemplo desse comentário.
  23. Eu entendo, e concordo sobre dar dicas para melhorar, é algo valioso, mas, não estamos aqui pra causar discussão. Fiz de uma maneira funcional. -- Script only Server-Side-- function timecount ( ) for i, player in ipairs(getElementsByType("player")) do local acc = getPlayerAccount(player) if acc and not isGuestAccount(acc) then local level = getElementData(player,"Level") or 0 if tonumber(level) == nil then level = 0 end local exp = getElementData(player,"LSys:EXP") or 0 if tonumber(exp) == nil then exp = 0 end local onlinetime = getElementData(player,"LSys:Online") or 0 if tonumber(onlinetime) == nil then onlinetime = 0 end local mins = getElementData(player,"LSys:Mins") or 0 if tonumber(mins) == nil then mins = 0 end if tonumber(mins) >= 600 then --/> Se o Player Tiver 600 Segundos Então Faça : outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. (".. tonumber(exp)+1 .."/20)", player, 255, 255, 255, true ) setElementData(player,"LSys:EXP", tonumber(exp) + 1 ) setElementData(player,"LSys:Mins", 0) playSoundFrontEnd ( player, 44 ) end if tonumber(exp) >= 20 then --/> Se o Player Tiver 20 EXP Então faça : setElementData(player,"LSys:EXP",0) setElementData(player,"Level",tonumber(level)+1) outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Juntou 20 de Experiência e Ganhou +1 Level ("..tonumber(level)+1 ..")", player, 255, 255, 255, true ) playSoundFrontEnd ( player, 45 ) --DarSalario (player) -- Efetua os Pagamentos dos Jogadores end if tonumber(mins) < 600 then --/> Se o Player Tiver Abaixo de 600 Segundos, Então Faça : setElementData(player,"LSys:Mins", tonumber(mins) + 10 ) --/>A Cada 10 Segundos Receberá + 10 s em seu Elemento Mins. setElementData(player,"LSys:Online",tonumber(onlinetime) + 10 ) end end end end setTimer ( timecount, 10000, 0 ) --/> 10 Segundos -- Calculo : -- 10000 s --> Adiciona +10s / em 60 Segundos Terá 1 Minuto = total de 60000 segundos / em 10 min atingirá 600000 onde receberá +1 EXP Aumentei o tempo como mencionei, para não fica disparando em 1 em 1s.
  24. Amigo, eu dei exemplo, não irei introduzir tudo o que é preciso, ou seja, "não que vou fazer tudo", apenas mostrei uma forma e uma estrutura de como pode ser feito. Entende isso? E Exatamente, cada um teu seu jeito, cada um vai passa uma parte do seu conhecimento, não que dizer que temos que fazer tudo. Vamos ter mais humildade, não sou eu que fico falando mal de códigos dos outros, mas, eu encerro por aqui.
×
×
  • Create New...