Platin Posted May 24, 2015 Share Posted May 24, 2015 Un pedido cortito, de alguien que tenga un tiempo libre para entender el script de killmessages. Aviso que lo tengo modificado para que respete los HEX Codes, por lo cual lo dejo aca abajo en el spoiler killmessages_server.lua local config = { ["lines"] = 5, ["startY"] = 0.35, ["textHeight"] = 16, ["iconHeight"] = 20, ["iconSpacing"] = 4, ["defaultWeapon"] = 255, ["fadeTime"] = 5000, ["startFade"] = 15000, ["align"] = "right", ["startX"] = -10 } local default = { ["lines"] = 5, ["startY"] = 0.25, ["textHeight"] = 16, ["iconHeight"] = 20, ["iconSpacing"] = 4, ["defaultWeapon"] = 255, ["fadeTime"] = 5000, ["startFade"] = 15000, ["align"] = "right", ["startX"] = -10 } local vehicleIDs = { [50]=true,[49]=true,[31]=true,[38]=true,[52]=true } function KillMessages_onPlayerWasted ( totalammo, killer, killerweapon, bodypart ) ---These are special checks for certain kill types local usedVehicle if killerweapon == 19 and isElement(killer) then --rockets killerweapon = killer and getElementType ( killer ) == "player" and getPedWeapon(killer) if not killerweapon then killerweapon = 51 end elseif vehicleIDs[killerweapon] then --heliblades/rammed if ( isElement(killer) and getElementType ( killer ) == "vehicle" ) then usedVehicle = getElementModel ( killer ) killer = getVehicleOccupant ( killer, 0 ) end elseif ( killerweapon == 59 and isElement(killer) ) then if ( getElementType ( killer ) == "player" ) then local vehicle = getPedOccupiedVehicle(killer) if ( vehicle ) then usedVehicle = getElementModel ( vehicle ) end end end --finish this -- Got a killer? Print the normal "* X died" if not if ( killer and isElement(killer) and getElementType ( killer ) == "player" ) then local kr,kg,kb = getPlayerNametagColor ( killer ) if getPlayerTeam ( killer ) then kr,kg,kb = getTeamColor ( getPlayerTeam ( killer ) ) end -- Suicide? if (source == killer) then if not killerweapon then killerweapon = 255 end local triggered = triggerEvent ( "onPlayerKillMessage", source,false,killerweapon,bodypart ) --outputDebugString ( "Cancelled: "..tostring(triggered) ) if ( triggered ) then --eventTriggered ( source,false,killerweapon,bodypart,true,usedVehicle) return end end local triggered = triggerEvent ( "onPlayerKillMessage", source,killer,killerweapon,bodypart ) --outputDebugString ( "Cancelled: "..tostring(triggered) ) if ( triggered ) then eventTriggered ( source,killer,killerweapon,bodypart,false,usedVehicle) end else local triggered = triggerEvent ( "onPlayerKillMessage", getRandomPlayer(),false,killerweapon,bodypart ) --outputDebugString ( "Cancelled: "..tostring(triggered) ) if ( triggered ) then --eventTriggered ( source,false,killerweapon,bodypart,false,usedVehicle) end end end addEventHandler ( "onPlayerWasted", getRootElement(), KillMessages_onPlayerWasted ) addEvent ( "onPlayerKillMessage" ) function eventTriggered ( source,killer,weapon,bodypart,suicide,usedVehicle ) local wr,wg,wb = getPlayerNametagColor ( source ) if getPlayerTeam ( source ) then wr,wg,wb = getTeamColor ( getPlayerTeam ( source ) ) end local kr,kg,kb = false,false,false if ( killer ) then kr,kg,kb = getPlayerNametagColor ( killer ) if getPlayerTeam ( killer ) then kr,kg,kb = getTeamColor ( getPlayerTeam ( killer ) ) end end if ( usedVehicle ) then weapon = usedVehicle end outputKillMessage ( source, wr,wg,wb,killer,kr,kg,kb,weapon ) -- local extra = "" if ( usedVehicle ) then extra = " (Vehicle)" end if ( killer ) then if suicide then local weaponName = getWeaponNameFromID ( weapon ) if weaponName then outputConsoleKillMessage ( "* "..getPlayerName(source).." killed himself. ("..weaponName..")" ) else outputConsoleKillMessage ( "* "..getPlayerName(source).." killed himself."..extra ) end else local weaponName = getWeaponNameFromID ( weapon ) if weaponName then outputConsoleKillMessage ( "* "..getPlayerName(killer).." killed "..getPlayerName(source)..". ("..weaponName..")" ) else outputConsoleKillMessage ( "* "..getPlayerName(killer).." killed "..getPlayerName(source).."."..extra ) end end else outputConsoleKillMessage ( "* "..getPlayerName(source).." died."..extra ) end -- end function outputConsoleKillMessage ( text ) outputConsole ( text ) end function outputKillMessage ( killed, wr,wg,wb,killer,kr,kg,kb,weapon,width,resource ) if ( resource ) then resource = getResourceName(resource) end if not isElement(killed) then outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified",0,0,0,100) return false end if not getElementType(killed) == "player" then outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified",0,0,0,100) return false end return triggerClientEvent(getRootElement(),"onClientPlayerKillMessage",killed,killer,weapon,wr,wg,wb,kr,kg,kb,width,resource ) end function outputMessage ( message, visibleTo, r, g, b, font ) if type(message) ~= "string" and type(message) ~= "table" then outputDebugString ( "outputMessage - Bad 'message' argument", 0, 112, 112, 112 ) return false end if not isElement(visibleTo) then outputDebugString ( "outputMessage - Bad argument", 0, 112, 112, 112 ) return false end --Turn any resources into resource names if type(message) == "table" then for i,part in ipairs(message) do if type(part) == "table" and part[1] == "image" then if part.resource then message[i].resourceName = getResourceName(part.resource) else part.resourceName = getResourceName(sourceResource) end end end end return triggerClientEvent ( visibleTo, "doOutputMessage", visibleTo, message, r, g, b, font ) end function setKillMessageStyle ( startX,startY,align,lines,fadeStart,fadeAnimTime ) if ( not startX ) then startX = default.startX end if ( not startY ) then startY = default.startY end if ( not align ) then startY = align.startY end if ( not lines ) then lines = default.lines end if ( not fadeStart ) then fadeStart = default.startFade end if ( not fadeAnimTime ) then fadeAnimTime = default.fadeTime end config.startX = startX config.startY = startY config.align = align config.lines = lines config.startFade = fadeStart config.fadeTime = fadeAnimTime for k,v in ipairs(getElementsByType"player") do triggerClientEvent(v,"doSetKillMessageStyle",v,config.startX,config.startY,config.alignX,config.lines,config.startFade,config.fadeTime) end return true end addEvent ("onClientKillmessagesLoaded",true) addEventHandler ( "onClientKillmessagesLoaded", getRootElement(), function() triggerClientEvent(source,"doSetKillMessageStyle",source,config.startX,config.startY,config.alignX,config.lines,config.startFade,config.fadeTime) end ) Bueno, el tema es que me pase 30 minutos intentando acoplar este script con mi zombie_killmessages modificado para cada clase de zombie. El tema es el siguiente, no logro hacer que, cuando alguien mata un zombie atropellandolo - con una helice - con disparos de un Hunter/Seasparrow/Rustler , cuente como un asesinato y/o se agregue para subir de nivel. ¿Alguien me puede pasar una línea de código y las opciones que tengo que editar? Es que sinceramente, no entiendo como scriptea este chico. Intente pasarlas pero nada. Se agradece, se que es algo sencillo pero en serio, no entiendo las variables que puso, quizá sea por el cansancio o porque estan acopladas a los demás .lua Link to comment
Tomas Posted May 24, 2015 Share Posted May 24, 2015 El killmessages sólo muestra los mensajes de los kills.. Link to comment
Enargy, Posted May 24, 2015 Share Posted May 24, 2015 Se agradece, se que es algo sencillo pero en serio, no entiendo las variables que puso, quizá sea por el cansancio o porque estan acopladas a los demás .lua Sencillo pero no lo sabe hacer . En fin, te recomiendo que no toques el killmessages porque alguno de estas ocasiones vas a hacer que deje de funcionar. si ya lo tienes editado a tu preferencia y quieres agregar otra cosa como la que sugieres pues hazlo en otro script, usando algunas funciones de sí que se pueden exportar. exports: outputKillMessage -- creo que era esta. Link to comment
Platin Posted May 24, 2015 Author Share Posted May 24, 2015 Se agradece, se que es algo sencillo pero en serio, no entiendo las variables que puso, quizá sea por el cansancio o porque estan acopladas a los demás .lua Sencillo pero no lo sabe hacer . En fin, te recomiendo que no toques el killmessages porque alguno de estas ocasiones vas a hacer que deje de funcionar. si ya lo tienes editado a tu preferencia y quieres agregar otra cosa como la que sugieres pues hazlo en otro script, usando algunas funciones de sí que se pueden exportar. exports: outputKillMessage -- creo que era esta. Creo que no me supe explicar correctamente. Lo que trato de hacer es que detecte cuando un jugador mata a un ped pisandolo/con la helice del helicoptero/con la minigun del seasparrow, hunter No quiero saber como mandar un mensaje a la casilla de los kilmessages. Link to comment
Enargy, Posted May 24, 2015 Share Posted May 24, 2015 Prueba esto: addEventHandler("onPlayerWasted", root, function(_, killer) if killer ~= source then if isPlayerWastedByHelicopter( killer ) then outputChatBox(getPlayerName( source ).. " murió por un ".. getVehicleType( killer ), getRootElement()); end end end) function isPlayerWastedByHelicopter ( car ) if ( getElementType( car ) == "vehicle" and getVehicleType ( car ) == "Helicopter" ) then return true; end return false; end Link to comment
Platin Posted May 25, 2015 Author Share Posted May 25, 2015 Solo me funciono con los jugadores, con los peds cuando probe hacerlo no me funciono. Link to comment
Calculador Posted May 25, 2015 Share Posted May 25, 2015 Solo me funciono con los jugadores, con los peds cuando probe hacerlo no me funciono. Usa onPedWasted adicional a onPlayerWasted. Link to comment
Platin Posted May 26, 2015 Author Share Posted May 26, 2015 Solo me funciono con los jugadores, con los peds cuando probe hacerlo no me funciono. Usa onPedWasted adicional a onPlayerWasted. Me refiero, a la función que me entrego el @Enargy. Link to comment
Tomas Posted May 26, 2015 Share Posted May 26, 2015 addEventHandler("onPlayerWasted", root, function(_, killer) if killer ~= source then if isPlayerWastedByHelicopter( killer ) then outputChatBox(getPlayerName( source ).. " murió por un ".. getVehicleType( killer ), getRootElement()); end end end) addEventHandler("onPedWasted", root, function(_, killer) if killer ~= source then if isPlayerWastedByHelicopter( killer ) then outputChatBox(getPlayerName( killer ).. " mató a un ped ".. tostring ( source ), getRootElement()); end end end) function isPlayerWastedByHelicopter ( car ) if ( getElementType( car ) == "vehicle" and getVehicleType ( car ) == "Helicopter" ) then return true; end return false; end Link to comment
Recommended Posts