RottenFlesh Posted August 28, 2011 Share Posted August 28, 2011 (edited) Hola a todos... Necesito su ayuda para encontrar el error en unos scripts que estoy haciendo para mi gamemode... Lo que deberian hacer es que cada hora, si el jugador ha estado por mas de 10 minutos jugando, le de una pequeña cantidad de dinero como recompensa... Esta medio trabado, espero que puedan ayudarme aca el server side function payDay () local hora = getRealTime() if (hora.minute == 0 and hora.second == 0) then --Tambien intente con hora.minute == '0' and hora.second =='0', con las comillas y tampoco funciono, aca esta el error pero no se como areglarlo triggerClientEvent("isTimeToPayDay") else outputChatBox("Error", root, 255, 0, 0) end end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function () setTimer(payDay, 300,0) end) tambien pongo el client side por si encuentran algun error function onClientStart () startTime = getTickCount() end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onClientStart) function onPayDay () payTime = getTickCount() local totalTime = startTime - payTime if (totalTime <= 600000) then --si no han pasado mas de 10 minutos jugando outputChatBox("[server]: No tienes sufucuente tiempo jugando para un PayDay.", 200, 200, 200) else local gananacia = getPlayerMoney(thePlayer) * 0.01 local dineroTotal = getPlayerMoney(thePlayer) + ganancia outputChatBox("[[------------ Pay Day ------------]]", 70, 200, 0) outputChatBox(" ") outputChatBox("Dinero Actual -| "..getPlayerMoney(thePlayer), 250, 250, 250) outputChatBox("Ganancias -| "..ganancia, 250, 250, 250) outputChatBox("Saldo Total -| "..dineroTotal, 250, 250, 250) outputChatBox(" ") outputChatBox("[[---------------------------------]]", 70, 200, 0) givePlayerMoney(ganancia) end end addEvent("isTimeToPayDay", true) addEventHandler("isTimeToPayDay", getRootElement(), onPayDay) y el resultado es que cuando es el minuto 0 y el segundo 0 osea cuando es una hora exacta, se spamea el chat con el mensaje de "error" que puse en el server side y paran de salir mensajes luego de unos 20 segundos... a alguien se le ocurre algo para solucionarlo? Edited September 7, 2011 by Guest Link to comment
diegofkda Posted August 29, 2011 Share Posted August 29, 2011 Seria más simple: Client-side: setTimer ( function () outputChatBox ( "Ha pasado una hora!" ) end, 60000*10, 0 ) Link to comment
RottenFlesh Posted August 30, 2011 Author Share Posted August 30, 2011 Si, seria mas conveniente pero lo que busco no es que pase cada hora despues de iniciar el script sino que cada hora real El error tiene que estar en esta parte: local hora = getRealTime() if (hora.minute == 0 and hora.second == 0) then Lo malo es que no se manejar muy bien esta funcion Link to comment
Serginix Posted August 30, 2011 Share Posted August 30, 2011 yo tampoco se usar usar esa funcion mucho y afuerzas la nesesito para un resource... ai lo q digan me puede ser util xDyo tampoco se usar usar esa funcion mucho y afuerzas la nesesito para un resource... ai lo q digan me puede ser util Link to comment
diegofkda Posted August 31, 2011 Share Posted August 31, 2011 Hola a todos...Necesito su ayuda para encontrar el error en unos scripts que estoy haciendo para mi gamemode... Lo que deberian hacer es que cada hora, si el jugador ha estado por mas de 10 minutos jugando, le de una pequeña cantidad de dinero como recompensa... Esta medio trabado, espero que puedan ayudarme aca el server side function payDay () local hora = getRealTime() if (hora.minute == 0 and hora.second == 0) then --Tambien intente con hora.minute == '0' and hora.second =='0', con las comillas y tampoco funciono, aca esta el error pero no se como areglarlo triggerClientEvent("isTimeToPayDay") else outputChatBox("Error", root, 255, 0, 0) end end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function () setTimer(payDay, 300,0) end) tambien pongo el client side por si encuentran algun error function onClientStart () startTime = getTickCount() end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onClientStart) function onPayDay () payTime = getTickCount() local totalTime = startTime - payTime if (totalTime <= 600000) then --si no han pasado mas de 10 minutos jugando outputChatBox("[server]: No tienes sufucuente tiempo jugando para un PayDay.", 200, 200, 200) else local gananacia = getPlayerMoney(thePlayer) * 0.01 local dineroTotal = getPlayerMoney(thePlayer) + ganancia outputChatBox("[[------------ Pay Day ------------]]", 70, 200, 0) outputChatBox(" ") outputChatBox("Dinero Actual -| "..getPlayerMoney(thePlayer), 250, 250, 250) outputChatBox("Ganancias -| "..ganancia, 250, 250, 250) outputChatBox("Saldo Total -| "..dineroTotal, 250, 250, 250) outputChatBox(" ") outputChatBox("[[---------------------------------]]", 70, 200, 0) givePlayerMoney(ganancia) end end addEvent("isTimeToPayDay", true) addEventHandler("isTimeToPayDay", getRootElement(), onPayDay) y el resultado es que cuando es el minuto 0 y el segundo 0 osea cuando es una hora exacta, se spamea el chat con el mensaje de "error" que puse en el server side y paran de salir mensajes luego de unos 20 segundos... a alguien se le ocurre algo para solucionarlo? function payDay () local time = getRealTime() local minutes = time.minute local seconds = time.second if minute == 0 and minute == 0 then triggerClientEvent("isTimeToPayDay") else outputChatBox("Error", root, 255, 0, 0) end end addEventHandler("onResourceStart", resourceRoot, function () setTimer(payDay, 300,0) end) Link to comment
RottenFlesh Posted September 2, 2011 Author Share Posted September 2, 2011 Haaa solo era de cambiarle el hora por time ya funciona esa parte pero por alguna razon no funciona la parte del client side Me quedo asi server function payDay () local time = getRealTime() local minutes = time.minute local seconds = time.second if minutes == 0 and seconds == 0 then triggerClientEvent("isTimeToPayDay", getRootElement()) outputChatBox("asd") -- con este outputChatBox comprobe que hasta aqui funciona bien end end addEventHandler("onResourceStart", resourceRoot, function () setTimer(payDay, 1000,0) end) Client: function onPayDay () local gananacia = getPlayerMoney(getLocalPlayer()) * 0.01 -- tambien intente quitando los parametros de getLocalPlayer y tampoco funciono local dineroTotal = getPlayerMoney(getLocalPlayer()) + ganancia outputChatBox("------------ Pay Day ------------", 70, 200, 0) outputChatBox(" ") outputChatBox("Dinero Actual -| "..getPlayerMoney(getLocalPlayer()), 250, 250, 250) outputChatBox("Ganancias -| "..ganancia, 250, 250, 250) outputChatBox("Saldo Total -| "..dineroTotal, 250, 250, 250) outputChatBox(" ") outputChatBox("---------------------------------", 70, 200, 0) givePlayerMoney(ganancia) end end addEvent( "isTimeToPayDay", true) addEventHandler( "isTimeToPayDay", getRootElement(), onPayDay) Le ven algun error el client side? no se por que no funciona Link to comment
diegofkda Posted September 2, 2011 Share Posted September 2, 2011 En el client-side hay 2 end, quedate con 1. Link to comment
RottenFlesh Posted September 2, 2011 Author Share Posted September 2, 2011 Haaaa ya vi hahaha si ya lo aregle pero ahora con el debugscript me dice asi : main_client.lua:3: attempt to perform arithmetic on global "ganancia" (a nil value) Link to comment
RottenFlesh Posted September 3, 2011 Author Share Posted September 3, 2011 Listo ya lo aregle tuve que cambiarle un par de cosas pero al fin ya funciona Voy a postear el codigo por si a alguien le sirve server-side function payDay () local time = getRealTime() local minutes = time.minute local seconds = time.second if minutes == 00 and seconds == 0 then triggerClientEvent("isTimeToPayDay", getRootElement()) end end addEventHandler("onResourceStart", resourceRoot, function () setTimer(payDay, 1000,0) end) client-side function onPayDay () local dinero = getPlayerMoney(getLocalPlayer()) outputChatBox(" ") outputChatBox("|||------------ Pay Day ------------|||", 70, 200, 0) outputChatBox(" ") outputChatBox("Dinero Actual -| #EEDDAA"..dinero, 250, 250, 250, true) outputChatBox("Ganancias -| #EEDDAA"..(dinero * 0.01), 250, 250, 250, true) outputChatBox("Saldo Total -| #EEDDAA"..dinero + (dinero * 0.01), 250, 250, 250, true) outputChatBox(" ") outputChatBox("|||------------------------------------|||", 70, 200, 0) givePlayerMoney(dinero * 0.01) end addEvent( "isTimeToPayDay", true) addEventHandler( "isTimeToPayDay", getRootElement(), onPayDay) Gracias denuevo por su ayuda Link to comment
Recommended Posts