Enargy, Posted November 1, 2015 Share Posted November 1, 2015 Tu script estaba del todo mal, intentabas conseguir la posición de una tabla y extraer un valor que no existe' peds' y es ped . Ya funciona -- Tabla de los peds -- Se usa [skin] [x] [y] [z] [rotacion x] [rotacion y] [rotacion z] local peds = { {201, x, y, z, 0}, {}, } local mensajes = { "Hola", "Buenas tardes", "Buenas", "Oli", "EQUISDE" } function creacionPeds ( ) for k, v in ipairs ( peds ) do local skin = v[1] local x, y, z, rz = v[2], v[3], v[4], v[5] if ( skin and x and y and z and rz ) then createPed ( skin, x, y, z, rz ) outputDebugString ( "[interaccion] Peds creados satisfactoriamente." ) else outputDebugString ( "[interaccion] No has colocado los datos de creación de PEDS bien." ) end end end addEventHandler ( "onResourceStart", getRootElement(), creacionPeds ) function sendMessageToNearbyPlayers( message, messageType ) if messageType == 0 then for index, ped in ipairs(getElementsByType ( "ped" )) do if ped and getElementType(ped) == "ped" then local x, y, z = getElementPosition ( source ) local x1, y1, z1 = getElementPosition ( ped ) local distance = getDistanceBetweenPoints3D ( x, y, z, x1, y1, z1 ) if distance < 1 then for _, txt in ipairs(mensajes) do if string.find ( message, txt ) then outputChatBox ( "Ped#"..index.." dice: Hola buenas tardes, ¿En qué le puedo ayudar?", source, 255, 255, 255 ) end end end end end end end -- attach our new chat handler to onPlayerChat addEventHandler( "onPlayerChat", getRootElement(), sendMessageToNearbyPlayers ) Link to comment
aka Blue Posted November 1, 2015 Author Share Posted November 1, 2015 Gracias @Enargy, me funcionó. Ahora bien, tengo una duda, ¿podría hacer que el índex sea el nombre del ped para poder distinguirlos? Es decir, algo así: ["Enargy"] = {299, 2038.013671875, 1532.7841796875, 10.671875, 0 }, ["Blue Pie"] = {102, 30.013671875, 12.7841796875, 4.671875, 0 }, Link to comment
Enargy, Posted November 1, 2015 Share Posted November 1, 2015 Yo use el index para poder identificarlos y no confundirme, pero en la misma tabla agregas otra columna que te indique el nombre local peds = { {"Enargy", 201, x, y, z, 0}, {}, } local mensajes = { "Hola", "Buenas tardes", "Buenas", "Oli", "EQUISDE" } function creacionPeds ( ) for k, v in ipairs ( peds ) do local skin = v[1] local name, x, y, z, rz = v[1], v[2], v[3], v[4], v[5] if ( skin and x and y and z and rz ) then ped = createPed ( skin, x, y, z, rz ) setElementData(ped,"name", tostring(name)) outputDebugString ( "[interaccion] Peds creados satisfactoriamente." ) else outputDebugString ( "[interaccion] No has colocado los datos de creación de PEDS bien." ) end end end addEventHandler ( "onResourceStart", getRootElement(), creacionPeds ) function sendMessageToNearbyPlayers( message, messageType ) if messageType == 0 then for index, ped in ipairs(getElementsByType ( "ped" )) do if ped and getElementType(ped) == "ped" then local x, y, z = getElementPosition ( source ) local x1, y1, z1 = getElementPosition ( ped ) local distance = getDistanceBetweenPoints3D ( x, y, z, x1, y1, z1 ) local name = getElementData(ped, "name") or "N/A" if distance < 1 then for _, txt in ipairs(mensajes) do if string.find ( message, txt ) then outputChatBox ( name.." dice: Hola buenas tardes, ¿En qué le puedo ayudar?", source, 255, 255, 255 ) end end end end end end end -- attach our new chat handler to onPlayerChat addEventHandler( "onPlayerChat", getRootElement(), sendMessageToNearbyPlayers ) Link to comment
aka Blue Posted November 1, 2015 Author Share Posted November 1, 2015 Cierto, ElementData, no me vino jaja, gracias @Enargy, PD: Solucionado, gracias a todos. Link to comment
Recommended Posts