Jump to content

FECHADO | Script de Trabalho


Recommended Posts

Alguém poderia mim ajudar a arrumar 1 bug e acrescentar 1 settime no trabalho.

O Bug que quero arrumar é que quando o jogador passa por cima do marker com um veiculo é entrar no trabalho e spawna varios veículos.

e queria acrescentar um tempo para levar o caminhão do x até o y. ( Não precisa concertar o mod é só das as funções que possa trabalhar nisso )

local MarkTrab = createMarker(2849.9343261719, -1055.3076171875, 22, "cylinder", 2, 255, 0, 0, 255) 
local MarkChego = createMarker(2569.125, 1034.0930175781, 8, "cylinder", 4, 255, 0, 0, 255) 
  
cam = {} 
blipxxx = {} 
  
function TrabBus (source) 
local account = getAccountName (getPlayerAccount(source)) 
local x,y,z = getElementPosition(source) 
if (getElementData(source, "Trab", true)) then outputChatBox ("#FF0000Você já está Trabalhando.", source, 255, 255, 255, true) return end 
cam[source] = createVehicle (403, 2858, -1049, 23) 
setElementRotation(cam[source], 0,0,-90) 
warpPedIntoVehicle (source, cam[source]) 
aclGroupAddObject (aclGetGroup("Truck"), "user."..account) 
blipxxx[source] = createBlip (2569.125, 1034.0930175781, 10, 19) 
setElementData(source, "Trab", true) 
setPedSkin(source,309) 
outputChatBox(" ") 
outputChatBox(" ") 
outputChatBox("#ff00ff===========================Caminhao===========================", source, 255, 255, 255, true) 
outputChatBox("#00FF9E--Leve o Caminhão até a Bandeira Vermelha.", source, 255, 255, 255, true) 
outputChatBox("#00FF9E--Você Ganhará R$ 12.000 pra fazer esta Viagem.", source, 255, 255, 255, true) 
outputChatBox("#00FF9E--para sair do Trabalho digite /sairtrab1.",source, 255, 255, 255, true) 
outputChatBox("#FF0000--Trabalho de Caminhoneiro feito por : StG^.",source, 255, 255, 255, true) 
outputChatBox("#ff00ff============================Caminhao===========================",source, 255, 255, 255, true) 
end 
addEventHandler ("onMarkerHit", MarkTrab, TrabBus) 
  
function rreem (source) 
local accounat = getAccountName (getPlayerAccount(source)) 
aclGroupRemoveObject (aclGetGroup("Truck"), "user."..accounat) 
outputChatBox ('#ffff00* Caminhoneiro: #ffffffVocê desistiu de Trabalhar.',source,255,255,255,true) 
setPedSkin (source,0) 
destroyElement(cam[source]) 
setElementData(source, "Trab", false) 
end 
addCommandHandler("sairtrab1",rreem) 
  
function TrabBusChego (source) 
if cam[source] and isElement(cam[source]) and getElementData (source, "Trab", true) then 
destroyElement (blipxxx[source]) 
destroyElement (cam[source]) 
local accounat = getAccountName (getPlayerAccount(source)) 
aclGroupRemoveObject (aclGetGroup("Truck"), "user."..accounat) 
setElementData(source, "Trab", false) 
givePlayerMoney (source, 12000) 
setPedSkin (source,0) 
setElementData(source, "Trab", false) 
end 
end 
addEventHandler ("onMarkerHit", MarkChego, TrabBusChego) 
  
function NSPode (source) 
if (cam[source]) and isElement(cam[source]) then 
outputChatBox ('#FF5100* #ffffffVocê tem #FF510010 #ffffffSegundos parar voltar para o Caminhão.', source, 255, 255, 255, true) 
T11 = setTimer (destroyElement, 10000,1, blipxxx[source]) 
T22 = setTimer (destroyElement, 10000,1, cam[source]) 
T33 = setTimer (setElementData, 10000,1, source, "Trab", false) 
T44 = setTimer (function() 
Trabalho = false 
setPedSkin (source,0) 
outputChatBox ('#FF5100* #ffffffVocê ficou muito tempo fora do Veículo e perdeu o Trabalho!.', source, 255, 255, 255, true) 
setElementData(source, "Trab", false) 
end, 10000, 1) 
   end 
end 
addEventHandler ("onVehicleExit", root, NSPode) 
  
function SNPode (source) 
if (cam[source]) and isElement(cam[source]) then 
killTimer (T11) 
killTimer (T22) 
killTimer (T33) 
killTimer (T44) 
   end 
end 
addEventHandler ("onVehicleEnter", root, SNPode) 
  

Edited by Guest
Link to comment
getElementData(source, "Trab", true) 

Aí você está passando três argumentos quando essa função exige dois. O correto é:

getElementData(source, "Trab") == true -- aqui verifica se o retorno é igual a [i]true[/i] 

Outra coisa, na função TrabBus você deveria verificar se o elemento que atingiu a marca, isto é, source, é o jogador. Porque se não for você receberá um erro com a função getPlayerAccount.

Também, evite fazer scripts executados só para determinado jogador no lado server, em vez disso uso o lado client.

Nesse script, por exemplo, o blip e a marca estarão visíveis para todos, pra evitar isso você pode usar setElementVisibleTo.

Sobre o tempo, você pode usar setTimer na própria função TrabBus. Armazene o tempo numa variável (pode ser na tabela cam mesmo) pra quando precisar destruí-lo quando o jogador atingir a marca da chagada.

E chame uma função que dará a falha no trabalho quando o tempo esgotar.

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