iFoReX Posted September 20, 2012 Posted September 20, 2012 andaba aburrido jugando mta y se me occurio hacer algo para que los jugadores preguntasen y el server les respondiera y pues aqui esta : addCommandHandler("pr",function(playerSource, commandName, pregunta) local respuestas = {Si,No} outputChatBox(getPlayerName(playerSource)..",#00fbffAh preguntado : "..pregunta,getRootElement(),0,255,255,true) outputChatBox("Respuesta : " .. math.random ( #respuestas ),0,255,255,true) end ) pero, me da error en la linea 4, no aparece 'Respuesta : ' y al poner por ejemplo '/pr juegas MTA ?' solo aparece 'ElMota, ha preguntado : juegas'
Renkon Posted September 20, 2012 Posted September 20, 2012 Te falta el elemento al que va destinado el mensaje
iFoReX Posted September 20, 2012 Author Posted September 20, 2012 outputChatBox(getPlayerName(playerSource)..",#00fbffAh preguntado : "..pregunta,getRootElement(),0,255,255,true) ._.
Alexs Posted September 20, 2012 Posted September 20, 2012 2 Problemas, 2 Cosas: 1- Ah esta mal escrito, es Ha. 2- En el segundo OutputChatBox te falta un argumento, como te dijo Renkon, no pones a quien va destinado, solo lo pones en el primero.
iFoReX Posted September 20, 2012 Author Posted September 20, 2012 addCommandHandler("pr",function(playerSource, commandName, pregunta) local respuestas = {Si,No} outputChatBox(getPlayerName(playerSource).."#00fbff,Ah preguntado : #fff000"..pregunta,getRootElement(),0,255,255,true) outputChatBox("Respuesta : " .. math.random ( #respuestas ),getRootElement(),0,255,255,true) end ) sigue con los mismos problemas $
Alexs Posted September 20, 2012 Posted September 20, 2012 Quizá el problema sea que math.random solo aplica en números. Utiliza el ejemplo de esta función donde arroja al azar strings. addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), function() local xml = xmlLoadFile("welcome.xml") -- open the XML file local messageNodes = xmlNodeGetChildren(xml) -- get all child nodes of the root node () g_WelcomeMessages = {} -- create a new global variable to store the welcome messages for i,node in ipairs(messageNodes) do -- loop over all the message nodes g_WelcomeMessages[i] = xmlNodeGetValue(node) -- retrieve the text in each node end xmlUnloadFile(xml) -- close the XML file end ) addEventHandler("onPlayerJoin", getRootElement(), function() local numMessages = #g_WelcomeMessages -- get the number of messages local message = g_WelcomeMessages[math.random(numMessages)] -- pick a random message outputChatBox(message, source, 0, 255, 0) -- display it to the joining player end )
iFoReX Posted September 20, 2012 Author Posted September 20, 2012 mm la verdad no entiendo como modificar ese script
Alexs Posted September 20, 2012 Posted September 20, 2012 Es bastante simple, Si no puedes si quiera editarlo, comienza desde el principio con esto de los Strings.
Castillo Posted September 20, 2012 Posted September 20, 2012 Creo yo que tu problema es que no pusiste strings en la tabla. addCommandHandler ( "pr", function ( playerSource, commandName, pregunta ) local respuestas = { "Si", "No" } outputChatBox ( getPlayerName ( playerSource ) .."#00fbff, Ah preguntado: #fff000".. pregunta, getRootElement(), 0, 255, 255, true ) outputChatBox ( "Respuesta: ".. respuestas [ math.random ( #respuestas ) ], getRootElement(), 0, 255, 255, true ) end )
iFoReX Posted September 20, 2012 Author Posted September 20, 2012 Funciona Solid, pero pregunto 'Tu juegas MTA' y aparece 'ElMota, Ah preguntado: Tu' y luego aparece 'Respuesta: 2'
Alexs Posted September 20, 2012 Posted September 20, 2012 El primer error es por que son strings separados, usa table.concat y el segundo por lo que ya dije, math.random sirve con números y ponerle un # antes a una tabla, la convierte en números. {1,2,3,4,5,6}
Castillo Posted September 20, 2012 Posted September 20, 2012 Funciona Solid, pero pregunto 'Tu juegas MTA' y aparece 'ElMota, Ah preguntado: Tu' y luego aparece 'Respuesta: 2' Ya encontre el error, te habias olvidado de poner: respuestas [ math.random ( #respuestas ) ] copia el codigo de nuevo.
iFoReX Posted September 20, 2012 Author Posted September 20, 2012 Funciona ahora solo falta que la pregunta aparesca completa
Castillo Posted September 20, 2012 Posted September 20, 2012 Tenes que usar table.concat: addCommandHandler ( "pr", function ( playerSource, commandName, ... ) local respuestas = { "Si", "No" } outputChatBox ( getPlayerName ( playerSource ) .."#00fbff, Ah preguntado: #fff000".. table.concat ( { ... }, " " ), getRootElement(), 0, 255, 255, true ) outputChatBox ( "Respuesta: ".. respuestas [ math.random ( #respuestas ) ], getRootElement(), 0, 255, 255, true ) end )
Recommended Posts