manawydan Posted March 12, 2013 Share Posted March 12, 2013 ola, existe um bug que "proibi" que peds poção criar projetil quando atira com alguma arma explosiva( todas as bombas, bazooka e lançador de missel). estava pensando como "vencer" esse bug. tentei usar onClientPedWeaponFire com as armas explosivas e a função não retorno os dados. function CheckNemesisFire(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement) if weapon = 35 then outputChatBox ("#9E0000Funciono",getRootElement(), 255, 255, 255, true ) end end addEventHandler ( "onClientPedWeaponFire", getRootElement(), CheckNemesisFire) como posso "vencer" esse bug?(chegar quando um ped com armas explosivas mira e tenta atira. assim usarei createProjectil) obrigado edit: tentei function CheckNemesisFire(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement) if (getElementData(source, "nemesis") == true ) then if weapon == 16 then local x, y, z = getElementPosition(source) outputChatBox ("#9E0000Teste",getRootElement(), 255, 255, 255, true ) createProjectile(source(), 16, x, y, z) end end end addEventHandler ( "onClientPedWeaponFire", getRootElement(), CheckNemesisFire) a mensagem funciona porem o projetil não é criado Link to comment
DNL291 Posted March 13, 2013 Share Posted March 13, 2013 Na linha 5 de seu código você esta chamando uma função no argumento que deve ser elemento que criou o projetil. Use apenas o elemento source do evento que deve ser o que você esta querendo. Link to comment
manawydan Posted March 14, 2013 Author Share Posted March 14, 2013 function NemesisShotRocktLancer(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement) if (getElementData(source, "nemesis") == true) then local resultado = math.random(1,4) if resultado == 1 then createProjectile(source(), 20, hitX, hitY, hitZ) end end end addEventHandler ( "onClientPedWeaponFire", getRootElement(), NemesisShotRocktLancer) tentei usa matematica aleatoria mais o projectil não se cria Link to comment
Anderl Posted March 14, 2013 Share Posted March 14, 2013 Porque 'source' é uma variável, não uma função. Link to comment
manawydan Posted March 14, 2013 Author Share Posted March 14, 2013 então meu erro foi bobo. getRootElement para root? Link to comment
Anderl Posted March 14, 2013 Share Posted March 14, 2013 E para que você quer o elemento root? Link to comment
manawydan Posted March 14, 2013 Author Share Posted March 14, 2013 não entendi por que o source não funciono. poderia me explicar? Link to comment
DNL291 Posted March 15, 2013 Share Posted March 15, 2013 não entendi por que o source não funciono. poderia me explicar? Já foi explicado. Você está chamando uma função em um argumento que deve ser apenas a o elemento do evento que criou o projetil, ou seja, a source do evento que você quer. Se não entendeu aqui está o código... function NemesisShotRocktLancer(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement) if (getElementData(source, "nemesis") == true) then local resultado = math.random(1,4) if resultado == 1 then createProjectile(source, 20, hitX, hitY, hitZ) end end end addEventHandler ( "onClientPedWeaponFire", getRootElement(), NemesisShotRocktLancer) Além disso, deixe seu código mais organizado. Link to comment
Anderl Posted March 15, 2013 Share Posted March 15, 2013 http://lua.gts-stolberg.de/en/Variablen.php http://www.lua.org/pil/5.html Se você ainda não entende o problema com isso, então.. Link to comment
manawydan Posted March 15, 2013 Author Share Posted March 15, 2013 desculpe. tenho que estudar mais lua. eu não percebi "()" desculpe, por causar tanta "confusão" por um erro tão simples e bobo. agradeço, não por me passar o código mas, por explicar! muito obrigado e me desculpe pelo GRANDE incomodo que causei! Link to comment
manawydan Posted March 16, 2013 Author Share Posted March 16, 2013 function NemesisShotRocktLancer(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement) if (getElementData(source, "nemesis") == true) then local resultado = math.random(1,4) if resultado == 1 then local xw, yw, zw = getPedWeaponMuzzlePosition ( source ) createProjectile(source, 20, xw, yw, zw, 0.1, getLocalPlayer()) end end end addEventHandler ( "onClientPedWeaponFire", getRootElement(), NemesisShotRocktLancer) bom tudo certo só uma coisa que eu queria "melhorar". o missel é criado e ele me segue(por um tempo) mas ele não explode. como poderia arrumar isso? Link to comment
DNL291 Posted March 17, 2013 Share Posted March 17, 2013 Se você quer que o projetil seja sincronizado para todos, o elemento que criou o projetil deve ser localPlayer (getLocalPlayer()). Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now