Bueno, estaba creando un pequeño script con interacción con peds y querría vuestra ayuda para ver si está bien para publicarlo en la sección de aportes y ahorrarme comentarios estúpidos por parte de algunos.
PD: No es gran cosa, simplemente, al encontrar la palabra 'Hola' en el chat y al estar el jugador cerca de un ped (a una distancia concreta) le responde un mensaje. Lo hice para jugar un poco con el string.find.
-- Tabla de los peds
-- Se usa [skin] [x] [y] [z] [rotacion x] [rotacion y] [rotacion z]
local peds =
{
{201, x, y, z, 0, 0, 0},
{}
{}
}
function creacionPeds ( )
for k, v in ipairs ( peds ) do
local skin = v[1]
local x, y, z = v[2], v[3], v[4]
local rx, ry, rz = v[5], v[6], v[7]
if ( skin and x, y, z and rx, ry, rz ) then
createPed ( skin, x, y, z, rx, ry, 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
local peds = getElementsByType ( "peds" )
local x, y, z = getElementPosition ( source )
local x1, y1, z1 = getElementPosition ( peds )
local distance = getDistanceBetweenPoints3D ( x, y, z, x1, y1, z1 )
if peds then
if distance < 3 then
if string.find ( message, "Hola" ) then
outputChatBox ( "Ped dice: Hola buenas tardes, ¿En qué le puedo ayudar?", source, 255, 255, 255 )
end
end
end
end
end
-- attach our new chat handler to onPlayerChat
addEventHandler( "onPlayerChat", getRootElement(), sendMessageToNearbyPlayers )