Jump to content

Meu script não funciona de emprego


Recommended Posts

Galera, olá novamente, acho que estou entendendo como se programa mas falta corrigir erros, o script que eu fiz é um emprego que vai gerando de um a 20 empregos, por momento tem 3, o que ele faz é mostrar onde o jogador tem que ir, mas sempre mudando o local de entrega, porém ele nem inicia, nem solta o aviso ao tocar na marca inicial, algum erro?

markerEntrar = createMarker(-716.23865, 1266.40942, 10.73082,"cylinder",1,0,191,255,155)

blip = createBlipAttachedTo(markerEntrar, 53, 3, 255, 0, 0, 255, 0, 65535, source)

function aviso (source)
outputChatBox ("#00FF00[INFO] #FFFFFFTrabalho de entregador de intorpecentes. Digite #00FF00/aceitar1 #FFFFFFpara iniciar ",source,255,255,255,true)
end
addEventHandler("onMarkerHit", markerEntrar, aviso)

function aceitar (source)
markerRandom = math.random(1, 3)
outputChatBox ("#00FF00[INFO] #FFFFFFEntregue os intorpecentes nos locais maracados em circulos #FFFF00amarelos #FFFFFFno mapa. ",source,255,255,255,true)
local x,y,z = getElementPosition(source)
veh[source] = createVehicle(499, -331.63663, -1207.03967, 4.45000)
warpPedIntoVehicle (source,veh[source])
end
addCommandHandler ( "aceitar1", markerRandom, aceitar)

if (markerRandom == 1) then
	outputChatBox ("#00FF00[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Downtown. ",source,255,255,255,true)
	markerTrab1 = createMarker(-623.43188, 858.27588, 10.55048,"cylinder",1,0,191,255,155)
	blip = createBlipAttachedTo(markerTrab1, 53, 3, 255, 0, 0, 255, 0, 65535, source)
	setElementVisibleTo ( markerTrab1, source, true )
	local dinheiro = math.random(70, 300)
	givePlayerMoney (source,dinheiro)
end
	addEventHandler( "onMarkerHit", markerRandom, markerTrab1)

if (markerRandom == 2) then
	outputChatBox ("#00FF00[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Little Haiti. ",source,255,255,255,true)
	markerTrab2 = createMarker(-863.37274, 108.24522, 9.33671,"cylinder",1,0,191,255,155)
	blip = createBlipAttachedTo(markerTrab2, 53, 3, 255, 0, 0, 255, 0, 65535, source)
	setElementVisibleTo ( markerTrab3, source, true )
	local dinheiro = math.random(70, 300)
	givePlayerMoney (source,dinheiro)
end
	addEventHandler( "onMarkerHit", markerRandom, markerTrab2)

if (markerRandom == 3) then
	outputChatBox ("#00FF00[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Little Haiti. ",source,255,255,255,true)
	markerTrab3 = createMarker(-1139.22083, -111.46038, 11.40691,"cylinder",1,0,191,255,155)
	blip = createBlipAttachedTo(markerTrab3, 53, 3, 255, 0, 0, 255, 0, 65535, source)
	setElementVisibleTo ( markerTrab3, source, true )
	local dinheiro = math.random(70, 300)
	givePlayerMoney (source,dinheiro)
end
	addEventHandler( "onMarkerHit", markerRandom, markerTrab3)

Sei que faltam avisos no final dizendo quanto foi ganho mas isso vou fazer ainda... Obrigado a todos q responder sempre de coração :D

Edited by R1S1NG
Link to comment
  • Other Languages Moderators

 

3 hours ago, R1S1NG said:

[...] algum erro?

Isso é você que tem que responder antes de perguntar.

Como vc espera programar algo se você não é capaz nem de olhar os erros de sintaxe no console? Testando seu script, de cara já veio esses erros:

  • Warning: server.lua:17: Bad argument 'addCommandHandler' [Expected function at argument 2, got nil]
  • Warning: server.lua:27: Bad argument 'addEventHandler' [Expected element at argument 2, got nil]
  • Warning: server.lua:37: Bad argument 'addEventHandler' [Expected element at argument 2, got nil]
  • Warning: server.lua:47: Bad argument 'addEventHandler' [Expected element at argument 2, got nil]

Também já vi vários outros erros que não foram detectados pois não é erro de sintaxe e sim de lógica.

Edited by Lord Henry
Link to comment

Evite usar também nomes em funções iguais como:

markerRandom você usou 3 vezes esse mesmo nome para definir, pode causar algum certo conflito, por que não use nomes diferentes como  por exemplo:

markerRandom1, markerRandom2, organize seu script, pra que espaço nessas linhas:


	addEventHandler( "onMarkerHit", markerRandom, markerTrab2)

São coisas pequenas, mas que deixam o script organizado e fácil de entender.

Edited by OverKILL
Link to comment
6 minutes ago, R1S1NG said:

Acho que entendi, obrigado... Vou começar a pedir menos aqui kkj e estudar +, eu olhei o console mas como a maioria dos scripts da o warning achei q era normal kkj bgd de coração :D

Você pode pedir auxilio aqui, sempre vai ter um pessoal de bom coração pra ajudar, porém você deve ver o que esta acontecendo no seu script antes, assim facilita pra nós que estamos tentando lhe ajudar,  e facilita receber o auxilio, por exemplo, se você tivesse testado com o debugscript ligado seu script você já saberia os erros  e teria colocado aqui, oque bastava fazer era apenas auxiliar você a resolver os erros.

Edited by OverKILL
Link to comment
Just now, OverKILL said:

Você pode pedir auxilio aqui, porém você deve ver o que esta acontecendo no seu script antes, assim facilita pra nós que estamos tentando lhe ajudar,  e facilita receber o auxilio, por exemplo, se você tivesse testado com o debugscript ligado seu script você já saberia os erros  e teria colocado aqui, oque bastava fazer era apenas auxiliar você a resolver os erros.

Eu não sabia bem que tinha isso, agora sei :D

Link to comment
5 minutes ago, R1S1NG said:

Eu não sabia bem que tinha isso, agora sei :D

Use /debugscript 3, se subir alguns erros/warnings você checa o local do lado do warning mostra o local do arquivo, se for o script que esta trabalhando no momento você anota e posta no fórum junto com a sua dúvida.

Exemplo:

uzVZE5u.png

Pode ver que mostra o WARNING: Local do arquivo e o erro que esta ocorrendo, então, você copie e cole aqui em forma de screenshot ou escreva mesmo. se não me engano esses erros são salvos na pasta log's do servidor tem que dar uma procurada lá nos arquivos.

 

Edited by OverKILL
  • Thanks 1
Link to comment
33 minutes ago, OverKILL said:

Use /debugscript 3, se subir alguns erros/warnings você checa o local do lado do warning mostra o local do arquivo, se for o script que esta trabalhando no momento você anota e posta no fórum junto com a sua dúvida.

Exemplo:

uzVZE5u.png

Pode ver que mostra o WARNING: Local do arquivo e o erro que esta ocorrendo, então, você copie e cole aqui em forma de screenshot ou escreva mesmo. se não me engano esses erros são salvos na pasta log's do servidor tem que dar uma procurada lá nos arquivos.

 

ok, eu li esse debug, mas, não entendi onde vejo o que é esse erro? ali da bad argument @addeventhandler tal tal tal  at argument 2, got nil].

Como sei que erro é? ele aceita o emprego e lança outputchatbox porém, ele não faz nada, da erro, queria entender isso =/ pra achar erros e outra coisa, esse MarkerRandom, se ele for 1, o mta identifica que o MarkerRandom1 é o mesmo math do MarkerRandom, pois queria q ele gerasse locais diferentes sempre

Edited by R1S1NG
Link to comment
  • Other Languages Moderators

Dai vc tem que saber inglês mano. Pra fazer qualquer coisa com informática tem que saber inglês básico pelo menos.

Ali ele está dizendo que esperava um elemento no segundo argumento do addEventHandler, mas em vez disso recebeu nulo.

addEventHandler ("argumento1", argumento2, argumento3)

 

Aliás, programar sem saber inglês é extremamente difícil, na minha opinião. Pois vc não vai conseguir entender o que está fazendo nem conseguir estudar a Wiki.

Edited by Lord Henry
Link to comment
  • Other Languages Moderators

Client-side:

markerEntrar = createMarker (-716.23865, 1266.40942, 10.73082, "cylinder", 1, 0, 191, 255, 155)
blip = createBlipAttachedTo (markerEntrar, 53, 3, 255, 0, 0, 255, 0, 5000)

function aviso (hitElement)
	if hitElement == localPlayer then
		outputChatBox ("[INFO] #FFFFFFTrabalho de entregador de intorpecentes. Digite #00FF00/aceitar1 #FFFFFFpara iniciar.", 0, 255, 0, true)
		function aceitar (thePlayer)
			markerRandom = math.random (1, 3)
			outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes nos locais marcados em círculos #FFFF00amarelos #FFFFFFno mapa.", 0, 255, 0, true)
			triggerServerEvent ("giveMyVeh1", localPlayer)
			if (markerRandom == 1) then
				outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Downtown.", 0, 255, 0, true)
				markerTrab = createMarker (-623.43188, 858.27588, 10.55048, "cylinder", 1, 0, 191, 255, 155)
				trabBlip = createBlipAttachedTo (markerTrab, 53, 3, 255, 0, 0, 255, 0, 5000)
				addEventHandler ("onClientMarkerHit", markerTrab, finish)
			elseif (markerRandom == 2) then
				outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Little Haiti.", 0, 255, 0, true)
				markerTrab = createMarker (-863.37274, 108.24522, 9.33671, "cylinder", 1, 0, 191, 255, 155)
				trabBlip = createBlipAttachedTo (markerTrab, 53, 3, 255, 0, 0, 255, 0, 5000)
				addEventHandler ("onClientMarkerHit", markerTrab, finish)
			elseif (markerRandom == 3) then
				outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Little Haiti.", 0, 255, 0, true)
				markerTrab = createMarker (-1139.22083, -111.46038, 11.40691, "cylinder", 1, 0, 191, 255, 155)
				trabBlip = createBlipAttachedTo (markerTrab, 53, 3, 255, 0, 0, 255, 0, 5000)
				addEventHandler ("onClientMarkerHit", markerTrab, finish)
			end
			removeCommandHandler ("aceitar1", aceitar)
		end
		addCommandHandler ("aceitar1", aceitar)
	end
end
addEventHandler ("onClientMarkerHit", markerEntrar, aviso)

function finish (hitElement)
	if hitElement == localPlayer then
		local dinheiro = math.random(70, 300)
		triggerServerEvent ("giveMyMoney1", localPlayer, dinheiro)
		outputChatBox ("[INFO] #FFFFFFConcluído.", 0, 255, 0, true)
		removeEventHandler ("onClientMarkerHit", markerTrab, finish)
		destroyElement (trabBlip)
		trabBlip = nil
		destroyElement (markerTrab)
		markerTrab = nil
	end
end

Server-side:

veh = {}

function spawnMyVeh ()
	local x,y,z = getElementPosition (client)
	veh[client] = createVehicle (499, x, y, z)
	warpPedIntoVehicle (client, veh[client])
end
addEvent ("giveMyVeh1", true)
addEventHandler ("giveMyVeh1", getRootElement(), spawnMyVeh)

function setMyMoney (cash)
	givePlayerMoney (client, cash)
	if veh[client] then
		destroyElement (veh[client])
		veh[client] = nil
	end
end
addEvent ("giveMyMoney1", true)
addEventHandler ("giveMyMoney1", getRootElement(), setMyMoney)

 

  • Thanks 1
Link to comment
29 minutes ago, Lord Henry said:

Client-side:


markerEntrar = createMarker (-716.23865, 1266.40942, 10.73082, "cylinder", 1, 0, 191, 255, 155)
blip = createBlipAttachedTo (markerEntrar, 53, 3, 255, 0, 0, 255, 0, 5000)

function aviso (hitElement)
	if hitElement == localPlayer then
		outputChatBox ("[INFO] #FFFFFFTrabalho de entregador de intorpecentes. Digite #00FF00/aceitar1 #FFFFFFpara iniciar.", 0, 255, 0, true)
		function aceitar (thePlayer)
			markerRandom = math.random (1, 3)
			outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes nos locais marcados em círculos #FFFF00amarelos #FFFFFFno mapa.", 0, 255, 0, true)
			triggerServerEvent ("giveMyVeh1", localPlayer)
			if (markerRandom == 1) then
				outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Downtown.", 0, 255, 0, true)
				markerTrab = createMarker (-623.43188, 858.27588, 10.55048, "cylinder", 1, 0, 191, 255, 155)
				trabBlip = createBlipAttachedTo (markerTrab, 53, 3, 255, 0, 0, 255, 0, 5000)
				addEventHandler ("onClientMarkerHit", markerTrab, finish)
			elseif (markerRandom == 2) then
				outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Little Haiti.", 0, 255, 0, true)
				markerTrab = createMarker (-863.37274, 108.24522, 9.33671, "cylinder", 1, 0, 191, 255, 155)
				trabBlip = createBlipAttachedTo (markerTrab, 53, 3, 255, 0, 0, 255, 0, 5000)
				addEventHandler ("onClientMarkerHit", markerTrab, finish)
			elseif (markerRandom == 3) then
				outputChatBox ("[INFO] #FFFFFFEntregue os intorpecentes em #00FF00Little Haiti.", 0, 255, 0, true)
				markerTrab = createMarker (-1139.22083, -111.46038, 11.40691, "cylinder", 1, 0, 191, 255, 155)
				trabBlip = createBlipAttachedTo (markerTrab, 53, 3, 255, 0, 0, 255, 0, 5000)
				addEventHandler ("onClientMarkerHit", markerTrab, finish)
			end
			removeCommandHandler ("aceitar1", aceitar)
		end
		addCommandHandler ("aceitar1", aceitar)
	end
end
addEventHandler ("onClientMarkerHit", markerEntrar, aviso)

function finish (hitElement)
	if hitElement == localPlayer then
		local dinheiro = math.random(70, 300)
		triggerServerEvent ("giveMyMoney1", localPlayer, dinheiro)
		outputChatBox ("[INFO] #FFFFFFConcluído.", 0, 255, 0, true)
		removeEventHandler ("onClientMarkerHit", markerTrab, finish)
		destroyElement (trabBlip)
		trabBlip = nil
		destroyElement (markerTrab)
		markerTrab = nil
	end
end

Server-side:


veh = {}

function spawnMyVeh ()
	local x,y,z = getElementPosition (client)
	veh[client] = createVehicle (499, x, y, z)
	warpPedIntoVehicle (client, veh[client])
end
addEvent ("giveMyVeh1", true)
addEventHandler ("giveMyVeh1", getRootElement(), spawnMyVeh)

function setMyMoney (cash)
	givePlayerMoney (client, cash)
	if veh[client] then
		destroyElement (veh[client])
		veh[client] = nil
	end
end
addEvent ("giveMyMoney1", true)
addEventHandler ("giveMyMoney1", getRootElement(), setMyMoney)

 

Acho que estou entendendo a diferença de client e server, é que eu não entendia esse nil mas ficou claro eu acho e o else e if estarem juntos entendi agora, só tenho a agradecer a vocês

Edited by R1S1NG
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...