RyanG Posted March 4, 2020 Share Posted March 4, 2020 Estou criando um servidor de dayz e estou adicionando mais armas com mesmo id, só estou com um pequeno problema na munição da sniper. Tudo funciona muito bem, exceto a munição.. exemplo: a munição está 1/10 se eu atirar e continuar mirando ou apenas com a sniper na mão, vai ir pra "0/10" e volta pra "1/10" (ela recarrega) mas se eu atirar e tirar a sniper da mão antes que o "0/10" volte a ser "'1/10" ela simplesmente não recarrega, fica no "'0/10".. ai eu tenho que equipa-la novamente para voltar ao normal. é como se eu atirasse e fosse obrigado a recarregar mas não apertando "R" e sim indo no inventário e equipando a arma novamente. elementWeaponBack = {} function weaponSwitchBack ( previousWeaponID, currentWeaponID ) local weapon1 = getElementData(source,"currentweapon_1") if not weapon1 then return end local ammoData1, weapID1 = getWeaponAmmoType(weapon1) local x,y,z = getElementPosition(source) local rx,ry,rz = getElementRotation(source) triggerClientEvent(source, "NovasArmas", source) if previousWeaponID == weapID1 then if elementWeaponBack[source] then detachElementFromBone(elementWeaponBack[source]) destroyElement(elementWeaponBack[source]) elementWeaponBack[source] = false end if weapon1 == "AS50 Sniper" then elementWeaponBack[source] = createObject(358,x,y,z) setObjectScale(elementWeaponBack[source],0.875) elseif weapon1 == "CZ550 Sniper" then elementWeaponBack[source] = createObject(358,x,y,z) setObjectScale(elementWeaponBack[source],0.875) elseif weapon1 == "AWP Assimov Sniper" then elementWeaponBack[source] = createObject(358,x,y,z) setObjectScale(elementWeaponBack[source],0.875) elseif weapon1 == "AWP Dragon Lore Sniper" then elementWeaponBack[source] = createObject(358,x,y,z) setObjectScale(elementWeaponBack[source],0.875) else elementWeaponBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) setObjectScale(elementWeaponBack[source],0.875) end if elementBackpack[source] then attachElementToBone(elementWeaponBack[source],source,3,0.19,-0.31,-0.1,0,270,-90) else attachElementToBone(elementWeaponBack[source],source,3,0.19,-0.11,-0.1,0,270,10) end elseif currentWeaponID == weapID1 then detachElementFromBone(elementWeaponBack[source]) destroyElement(elementWeaponBack[source]) elementWeaponBack[source] = false end end addEventHandler ( "onPlayerWeaponSwitch", getRootElement(), weaponSwitchBack) function NovasArmas() if getElementData(getLocalPlayer(),"currentweapon_1") == "AS50 Sniper" then txd = engineLoadTXD("models/weap/AS50.txd", 358) engineImportTXD(txd, 358) dff = engineLoadDFF("models/weap/AS50.dff", 358) engineReplaceModel(dff, 358) elseif getElementData(getLocalPlayer(),"currentweapon_1") == "CZ550 Sniper" then txd = engineLoadTXD("models/weap/CZ550.txd", 358) engineImportTXD(txd, 358) dff = engineLoadDFF("models/weap/CZ550.dff", 358) engineReplaceModel(dff, 358) elseif getElementData(getLocalPlayer(),"currentweapon_1") == "AWP Assimov Sniper" then txd = engineLoadTXD("models/weap/AWPASSIMOV.txd", 358) engineImportTXD(txd, 358) dff = engineLoadDFF("models/weap/AWPASSIMOV.dff", 358) engineReplaceModel(dff, 358) elseif getElementData(getLocalPlayer(),"currentweapon_1") == "AWP Dragon Lore Sniper" then txd = engineLoadTXD("models/weap/AWPLORE.txd", 358) engineImportTXD(txd, 358) dff = engineLoadDFF("models/weap/AWPLORE.dff", 358) engineReplaceModel(dff, 358) end end addEventHandler("onClientResourceStart", getResourceRootElement(), NovasArmas) addEvent("NovasArmas", true) addEventHandler("NovasArmas", getRootElement(), NovasArmas) Link to comment
Angelo Pereira Posted March 4, 2020 Share Posted March 4, 2020 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) 1 Link to comment
RyanG Posted March 4, 2020 Author Share Posted March 4, 2020 (edited) 3 hours ago, Angelo Pereira said: 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) Então eu já tentei isso, porém quando você segura o mouse1 ela atira quase numa velocidade de uma m4.. a sniper padrão ela vem com apenas uma bala no clip e recarrega automaticamente, não é possivel fazer isso com as cópias? Edited March 4, 2020 by RyanG Link to comment
Angelo Pereira Posted March 4, 2020 Share Posted March 4, 2020 2 hours ago, RyanG said: Então eu já tentei isso, porém quando você segura o mouse1 ela atira quase numa velocidade de uma m4.. a sniper padrão ela vem com apenas uma bala no clip e recarrega automaticamente, não é possivel fazer isso com as cópias? 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 ! Link to comment
RyanG Posted March 4, 2020 Author Share Posted March 4, 2020 31 minutes ago, Angelo Pereira said: 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 ! Eu já corrigi de outra forma, muito obrigado novamente. 1 Link to comment
#RooTs Posted March 6, 2020 Share Posted March 6, 2020 (edited) On 04/03/2020 at 20:15, RyanG said: Eu já corrigi de outra forma, muito obrigado novamente. Pode nos explicar de qual forma você resolveu?... isso pode ajudar mais pessoas com esse mesmo problema.. Edited March 6, 2020 by #RooTs Link to comment
RyanG Posted March 7, 2020 Author Share Posted March 7, 2020 (edited) On 06/03/2020 at 02:44, #RooTs said: Pode nos explicar de qual forma você resolveu?... isso pode ajudar mais pessoas com esse mesmo problema.. setWeaponProperty("sniper", "pro", "maximum_clip_ammo", 0) setWeaponProperty("sniper", "std", "maximum_clip_ammo", 0) setWeaponProperty("sniper", "poor", "maximum_clip_ammo", 0) Isso resolveu, claro, a hud ficou com o clip no 0/ammo permanentemente mas resolveu. Edited March 7, 2020 by RyanG Link to comment
abandonz Posted June 6 Share Posted June 6 On 3/7/2020 at 2:53 PM, RyanG said: setWeaponProperty("sniper", "pro", "maximum_clip_ammo", 0) setWeaponProperty("sniper", "std", "maximum_clip_ammo", 0) setWeaponProperty("sniper", "poor", "maximum_clip_ammo", 0) This resolved it, of course, the hud had the clip at 0/ammo permanently but it resolved it. I have the same problem, and setting the clip to 0 doesn't work Link to comment
Recommended Posts