#DeltaSCR Posted March 20, 2019 Author 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...
Other Languages Moderators Lord Henry Posted March 20, 2019 Other Languages Moderators 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
#DeltaSCR Posted March 20, 2019 Author 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)
Other Languages Moderators Lord Henry Posted March 20, 2019 Other Languages Moderators 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
#DeltaSCR Posted March 20, 2019 Author 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
Other Languages Moderators Lord Henry Posted March 20, 2019 Other Languages Moderators 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.
#DeltaSCR Posted March 21, 2019 Author 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?
#DaNiLiN Posted March 21, 2019 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
#DeltaSCR Posted March 21, 2019 Author 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.
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