iFoReX Posted September 20, 2012 Share 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' Link to comment
Renkon Posted September 20, 2012 Share Posted September 20, 2012 Te falta el elemento al que va destinado el mensaje Link to comment
iFoReX Posted September 20, 2012 Author Share Posted September 20, 2012 no va destinado a nadie Link to comment
Renkon Posted September 20, 2012 Share Posted September 20, 2012 entonces pone getRootElement() Link to comment
iFoReX Posted September 20, 2012 Author Share Posted September 20, 2012 outputChatBox(getPlayerName(playerSource)..",#00fbffAh preguntado : "..pregunta,getRootElement(),0,255,255,true) ._. Link to comment
Alexs Posted September 20, 2012 Share 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. Link to comment
iFoReX Posted September 20, 2012 Author Share 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 $ Link to comment
Arsilex Posted September 20, 2012 Share Posted September 20, 2012 que te sale en el debug? Link to comment
Alexs Posted September 20, 2012 Share 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 ) Link to comment
iFoReX Posted September 20, 2012 Author Share Posted September 20, 2012 mm la verdad no entiendo como modificar ese script Link to comment
Alexs Posted September 20, 2012 Share Posted September 20, 2012 Es bastante simple, Si no puedes si quiera editarlo, comienza desde el principio con esto de los Strings. Link to comment
Castillo Posted September 20, 2012 Share 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 ) Link to comment
iFoReX Posted September 20, 2012 Author Share Posted September 20, 2012 Funciona Solid, pero pregunto 'Tu juegas MTA' y aparece 'ElMota, Ah preguntado: Tu' y luego aparece 'Respuesta: 2' Link to comment
Alexs Posted September 20, 2012 Share 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} Link to comment
Castillo Posted September 20, 2012 Share 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. Link to comment
iFoReX Posted September 20, 2012 Author Share Posted September 20, 2012 Funciona ahora solo falta que la pregunta aparesca completa Link to comment
Castillo Posted September 20, 2012 Share 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 ) Link to comment
iFoReX Posted September 20, 2012 Author Share Posted September 20, 2012 gracias solid funciona perfecto Link to comment
Recommended Posts