Anzo Posted October 23, 2016 Posted October 23, 2016 Pues estaba haciendo un panel para poder crear armas por medio de botones, las armas se crean pero, solo las puedo ver yo, los demás jugadores no sienten daño ni las pueden ver. Quería saber que puedo hacer o usar para que las armas lo puedan ver los demás y no solo el jugador local. Si lo estuviera haciendo por comandos sería más fácil... Pero con botones no se me ocurre nada. Una explicación a lo que quiero es: Tengo un panel donde puedo ponerle armas al cuerpo del jugador con attachElements, por ahí todo bien, el problema es que los demás jugadores no sienten el daño de esa arma creada y no la pueden ver; quiero que la puedan ver y que les baje vida si les dispara esa arma. EJ: Tengo un botón que dice "M4", le doy click y me pone una M4 en el cuerpo, pero solo la puedo ver yo; y quiero que los demás puedan ver el arma también.
Enargy, Posted October 23, 2016 Posted October 23, 2016 Tendrías que hacer un tipo de callback o como se le diga, para hacer trigger de cliente a servidor y luego trigger de server a cliente para todos los players.
Anzo Posted October 23, 2016 Author Posted October 23, 2016 6 minutes ago, Gaberiel said: Tendrías que hacer un tipo de callback o como se le diga, para hacer trigger de cliente a servidor y luego trigger de server a cliente para todos los players. Pensé en eso pero no entiendo como hacerlo, sabes alguna manera?
Enargy, Posted October 23, 2016 Posted October 23, 2016 1 hour ago, Anzo said: Pensé en eso pero no entiendo como hacerlo, sabes alguna manera? Donde creas el arma lo eliminas y haces un trigger para el serverside, luego en el otro lado haces de nuevo el trigger pero para todos los players usando un loop o simplemente root.
Anzo Posted October 23, 2016 Author Posted October 23, 2016 Sigo sin entender... lo que tengo es esto: function equip_armas() if (source == Equipar_armamento) then vehicleh = getPedOccupiedVehicle(localPlayer) if vehicleh then local x,y,z = getElementPosition(vehicleh) local mdel = getElementModel(vehicleh) if (guiComboBoxGetSelected(comboArmas) == 0) then weapons[1] = createWeapon("m4", x,y ,z) weapons[2] = createWeapon("m4", x,y ,z) if vehs[mdel] then attachElements(weapons[1], vehicleh, 0-0.4, 0+0.9, 0+0.5,0,0,90) attachElements(weapons[2], vehicleh, 0+0.4, 0+0.9, 0+0.5,0,0,90) else attachElements(weapons[1], vehicleh, 0-0.4, 0+0.9, 0+0.2,0,0,90) attachElements(weapons[2], vehicleh, 0+0.4, 0+0.9, 0+0.2,0,0,90) end setWeaponClipAmmo(weapons[1], 99999) setWeaponClipAmmo(weapons[2], 99999) guiSetEnabled(Equipar_armamento, false) guiSetEnabled(destruir_objetos, true) end end elseif (source == destruir_objetos) then guiSetEnabled(Equipar_armamento, true) guiSetEnabled(destruir_objetos, false) for i,v in ipairs(weapons) do if isElement(v) == true then destroyElement(v) end end end end addEventHandler("onClientGUIClick", root, equip_armas) ¿Qué puedo hacer ahora para que todos vean las armas?
Enargy, Posted October 23, 2016 Posted October 23, 2016 Client. weapons = {} function equip_armas() if (source == Equipar_armamento) then vehicleh = getPedOccupiedVehicle(localPlayer) if vehicleh then if (guiComboBoxGetSelected(comboArmas) == 0) then triggerServerEvent("installWeapon", localPlayer) end end elseif (source == destruir_objetos) then guiSetEnabled(Equipar_armamento, true) guiSetEnabled(destruir_objetos, false) triggerServerEvent("deleteWeapon", localPlayer) end end addEventHandler("onClientGUIClick", root, equip_armas) addEvent("setupWeapon", true) addEventHandler("setupWeapon", root, function() local x,y,z = getElementPosition(vehicleh) local mdel = getElementModel(vehicleh) weapons[1] = createWeapon("m4", x,y ,z) weapons[2] = createWeapon("m4", x,y ,z) if vehs[mdel] then attachElements(weapons[1], vehicleh, 0-0.4, 0+0.9, 0+0.5,0,0,90) attachElements(weapons[2], vehicleh, 0+0.4, 0+0.9, 0+0.5,0,0,90) else attachElements(weapons[1], vehicleh, 0-0.4, 0+0.9, 0+0.2,0,0,90) attachElements(weapons[2], vehicleh, 0+0.4, 0+0.9, 0+0.2,0,0,90) end setWeaponClipAmmo(weapons[1], 99999) setWeaponClipAmmo(weapons[2], 99999) guiSetEnabled(Equipar_armamento, false) guiSetEnabled(destruir_objetos, true) end) addEvent("cleanAttachedWeapons", true) addEventHandler("cleanAttachedWeapons", root, function() if #weapons ~= 0 then for i,v in ipairs(weapons) do if isElement(v) then destroyElement(v) end end end end) Server addEvent("installWeapon", true) addEventHandler("installWeapon", root, function() triggerClientEvent(source, "setupWeapon", root) end ) addEvent("deleteWeapon", true) addEventHandler("deleteWeapon", root, function() triggerClientEvent(source, "cleanAttachedWeapons", root) end )
Tomas Posted October 23, 2016 Posted October 23, 2016 -- Client side: function equip_armas() if (source == Equipar_armamento) then vehicleh = getPedOccupiedVehicle(localPlayer) if vehicleh then local x,y,z = getElementPosition(vehicleh) if (guiComboBoxGetSelected(comboArmas) == 0) then triggerServerEvent("__CreateWeapon", root, "m4", x, y, z, vehicleh, localPlayer) triggerServerEvent("__CreateWeapon", root, "m4", x, y, z, vehicleh, localPlayer) guiSetEnabled(Equipar_armamento, false) guiSetEnabled(destruir_objetos, true) end end elseif (source == destruir_objetos) then guiSetEnabled(Equipar_armamento, true) guiSetEnabled(destruir_objetos, false) triggerServerEvent("__DestroyWeapon", root, localPlayer) end end addEventHandler("onClientGUIClick", root, equip_armas) local weapons = {} addEvent("__CreateWeapon", true) function __CreateWeapon(wep, x, y, z, vehicle, creator) if ( not weapons[creator] ) then weapons[creator] = {} end local slot = ( #weapons[creator] + 1 ) or 1 weapons[player][slot] = createWeapon(wep, x, y, z) local model = getElementModel(vehicle) if vehs[model] then attachElements(weapons[creator][slot], vehicle, 0-0.4, 0+0.9, 0+0.5,0,0,90) else attachElements(weapons[creator][slot], vehicle, 0-0.4, 0+0.9, 0+0.2,0,0,90) end end addEventHandler("__CreateWeapon", root, __CreateWeapon) addEvent("__DestroyWeapon", true) function __DestroyWeapon(creator) if ( weapons[creator] ) then for k, weapon in pairs(weapons[creator]) do destroyElement(weapon) weapons[creator][k] = nil end end end addEventHandler("__DestroyWeapon", root, __DestroyWeapon) -- Server side: addEvent("__CreateWeapon", true) addEventHandler("__CreateWeapon", root, function (wep, x, y, z, vehicle, creator) triggerClientEvent(root, "__CreateWeapon", wep, x, y, z, vehicle, creator) end ) addEvent("__DestroyWeapon", true) addEventHandler("__DestroyWeapon", root, function () triggerClientEvent(root, "__DestroyWeapon", client) end )
Anzo Posted October 24, 2016 Author Posted October 24, 2016 @Gaberiel Me crea el arma normal, pero los demás no la pueden ver aún @Tomas Me da error en esta linea: triggerClientEvent(root, "__CreateWeapon", wep, x, y, z, vehicle, creator)
Anzo Posted October 24, 2016 Author Posted October 24, 2016 Ya pude hacer que lo vean todos, gracias a los dos por darme una idea.
Recommended Posts