#DeltaSCR Posted March 20, 2019 Author Share Posted March 20, 2019 Pser... O que era pra acontecer: Se o número de Kits do Jogador for maior que 0, então ele consegue executar o resto do código... Link to comment
Other Languages Moderators Lord Henry Posted March 20, 2019 Other Languages Moderators Share Posted March 20, 2019 (edited) Mas ele está considerando Kits como nil. No entanto a condição nil or 0 deveria resultar em 0. Testei aqui e ele está funcionando normal. Mesmo sem a data, ele considera como 0. function DeltaSCRFix () if getPedOccupiedVehicle(localPlayer) then Kits = tonumber(getElementData(localPlayer, "Kit")) or 0 print ("Kits = "..tostring(Kits)) if Kits > 0 then setElementData(localPlayer, "Kit", Kits -1) outputChatBox ("╔═════════════════════════════════════════════════╗", 200, 50, 0) outputChatBox ("INFO: #FFFFFFVocê usou seu Kit de Reparo com Sucesso.", 200, 50, 0, true) outputChatBox ("INFO: #FFFFFFVocê agora tem mais "..Kits.." usos.", 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", 200, 50, 0) end end end addCommandHandler ("seguro", DeltaSCRFix) O que provavelmente está acontecendo é que vc está anulando a variável global Kits em outra parte do código. Pois vc não está usando variável local. Edited March 20, 2019 by Lord Henry Link to comment
#DeltaSCR Posted March 20, 2019 Author Share Posted March 20, 2019 @Lord Henry As variáveis só são usadas ai: function verifyKits () local Kits = tonumber(getElementData(localPlayer, "Kit")) or 0 if Kits < 3 then setElementData(localPlayer, "Kit", Kits +1) else setElementData(localPlayer, "Kit", 3) end end -- @Reparar Veh function DeltaSCRFix () if getPedOccupiedVehicle(localPlayer) then Kits = tonumber(getElementData(localPlayer, "Kit")) or 0 if Kits > 0 then setElementData(localPlayer, "Kit", Kits -1) outputChatBox ("╔═════════════════════════════════════════════════╗", 200, 50, 0) outputChatBox ("INFO: #FFFFFFVocê usou seu Kit de Reparo com Sucesso.", 200, 50, 0, true) outputChatBox ("INFO: #FFFFFFVocê agora tem mais "..Kits.." usos.", 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", 200, 50, 0) end end end addCommandHandler ("seguro", DeltaSCRFix) Link to comment
DNL291 Posted March 20, 2019 Share Posted March 20, 2019 Recomendo fazer esse código no lado server. 1 Link to comment
Other Languages Moderators Lord Henry Posted March 20, 2019 Other Languages Moderators Share Posted March 20, 2019 Ah, por isso então. Na sua linha 14 ele está dando nil pois ele está tentando pegar a variável local da outra função, mas por ser local ela não existe fora de seu escopo. Faça Kits ser local também na linha 14. local Kits = tonumber(getElementData(localPlayer, "Kit")) or 0 Link to comment
#DeltaSCR Posted March 20, 2019 Author Share Posted March 20, 2019 (edited) Agora surgiu uma especie de Bug Grafico: O HP do Veiculo consta como 1000, mas a lataria permanece danificada - Código a Seguir... (Server-Side) function DeltaSCRFix (thePlayer) local playerInCar = getPedOccupiedVehicle(thePlayer) if playerInCar then local vehicleHealth = getElementHealth (playerInCar) / 10 if vehicleHealth < 85 then setElementHealth (playerInCar, 1000) end end end addCommandHandler ("fix", DeltaSCRFix) Edited March 20, 2019 by #DeltaSCR Link to comment
Other Languages Moderators Lord Henry Posted March 20, 2019 Other Languages Moderators Share Posted March 20, 2019 Isso não é bug. É normal acontecer isso. Experimente bater seu veículo e depois setar a vida dele em 1000 sem usar a função fixVehicle. Ele vai ficar com a vida cheia mas vai continuar amassado. O mesmo acontece se vc cancelar o dano no veículo sem blindá-lo com setVehicleDamageProof. Vai amassar normalmente mas não vai diminuir a vida. Link to comment
#DeltaSCR Posted March 21, 2019 Author Share Posted March 21, 2019 3 hours ago, Lord Henry said: Isso não é bug. É normal acontecer isso. Experimente bater seu veículo e depois setar a vida dele em 1000 sem usar a função fixVehicle. Ele vai ficar com a vida cheia mas vai continuar amassado. O mesmo acontece se vc cancelar o dano no veículo sem blindá-lo com setVehicleDamageProof. Vai amassar normalmente mas não vai diminuir a vida. Então como eu resolvo isso? Link to comment
#DaNiLiN Posted March 21, 2019 Share Posted March 21, 2019 (edited) Usa o fixVehicle ao invés de setElementHealth '- se tu prestar atenção na mensagem do lord diz"Experimente bater seu veículo e depois setar a vida dele em 1000 sem usar a função fixVehicle" se tu usar setElementHealth seu carro vai continuar "amassado" agora experimente usar fixVehicle e tu irá ver a mágica. Edited March 21, 2019 by #DaNiLiN Link to comment
#DeltaSCR Posted March 21, 2019 Author Share Posted March 21, 2019 4 hours ago, #DaNiLiN said: Usa o fixVehicle ao invés de setElementHealth '- se tu prestar atenção na mensagem do lord diz"Experimente bater seu veículo e depois setar a vida dele em 1000 sem usar a função fixVehicle" se tu usar setElementHealth seu carro vai continuar "amassado" agora experimente usar fixVehicle e tu irá ver a mágica. Realmente, na verdade eu nunca tinha usado fixVehicle, então quando o Lord falou, eu nem me atentei muito. 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