Mixters Posted October 12, 2012 Share Posted October 12, 2012 Hola, alguien me podría ayudar con esto? quiero que cuando el jugador elija un skin todos puedan verlo. mi problema es que cuando lo eligen solo lo ven ellos los demás lo ven con el skin default ( CJ ) aqui les dejo lo que tengo hasta ahora.. client 1: local screen = {} screen.w, screen.h = guiGetScreenSize() -- разрешение local default = { text = "", font = "default-bold", scale = 1.0, color = tocolor(255,255,255,255), bColor = tocolor(0,0,0,255), outline = 1, alignX = "left", alignY = "top", clip = false, wordBreak = false, postGUI = false, x = 0, y = 0 } local ms = { locked = false, show = false, text = "", font = "default-bold", scale = 1.0, color = tocolor(255,255,255,255), bColor = tocolor(0,0,0,255), outline = 1, x = 0, y = 0 } local hideTimer = false function dxMessages_onRender ( ) if ms.show then -- обводка if ms.outline > 0 then dxDrawText( ms.text, ms.x + ms.outline, ms.y + ms.outline, ms.x, ms.y, ms.bColor, ms.scale, ms.font, default.alignX, default.alignY, default.clip, default.wordBreak, default.postGUI ) dxDrawText( ms.text, ms.x - ms.outline, ms.y - ms.outline, ms.x, ms.y, ms.bColor, ms.scale, ms.font, default.alignX, default.alignY, default.clip, default.wordBreak, default.postGUI ) dxDrawText( ms.text, ms.x + ms.outline, ms.y - ms.outline, ms.x, ms.y, ms.bColor, ms.scale, ms.font, default.alignX, default.alignY, default.clip, default.wordBreak, default.postGUI ) dxDrawText( ms.text, ms.x - ms.outline, ms.y + ms.outline, ms.x, ms.y, ms.bColor, ms.scale, ms.font, default.alignX, default.alignY, default.clip, default.wordBreak, default.postGUI ) end -- текст dxDrawText( ms.text, ms.x, ms.y, ms.x, ms.y, ms.color, ms.scale, ms.font, default.alignX, default.alignY, default.clip, default.wordBreak, default.postGUI ) end end addEventHandler( "onClientResourceStart", getResourceRootElement(), function ( ) addEventHandler( "onClientRender", getRootElement(), dxMessages_onRender ) end ) function showMessage ( text, x, y, font, scale, color, backColor, outline, hideDelay, lock ) if ms.locked then return end if isTimer(hideTimer) then killTimer(hideTimer) end if type(text) ~= "string" then text = default["text"] end if type(x) ~= "number" then x = default["x"] end if type(y) ~= "number" then y = default["y"] end if type(font) ~= "string" then font = default["font"] end if type(scale) ~= "number" then scale = default["scale"] end if type(color) ~= "number" then color = default["color"] end if type(backColor) ~= "number" then backColor = default["bColor"] end if type(outline) ~= "number" then outline = default["outline"] end if x > 0 and x < 1 then x = x * screen.w end if y > 0 and y < 1 then y = y * screen.h end ms["show"] = false ms["x"] = x ms["y"] = y ms["text"] = text ms["font"] = font ms["scale"] = scale ms["color"] = color ms["bColor"] = backColor ms["outline"] = outline ms["show"] = true if lock then ms["locked"] = true else ms["locked"] = false end if type(hideDelay) == "number" and hideDelay > 0 then hideTimer = setTimer( hideMessage, hideDelay, 1 ) end end function hideMessage ( ) ms.show = false ms.locked = false end function lockMessage ( ) ms.locked = true end function unlockMessage ( ) ms.locked = false end Client 2: local me = getLocalPlayer() local skins = { 0,1,9,10,11,12,13,14,15,16,17,18,19,20, 21,23,24,25,26,27,28,29,31,32,33,34,36, 37,38,40,41,43,44,45,46,48,49,50,51,52, 53,56,57,58,59,60,61,62,63,p64,66,69,71, 72,75,76,79,80,81,82,83,85,87,88,90,91, 93,96,98,99,100,101,102,103,104,106, 107,108,109,110,111,112,113,114,115,116, 117,118,121,122,123,124,125,126,127,128, 129,131,132,133,134,136,137,138,139,140, 141,142,143,144,145,146,147,148,150,151, 152,153,154,155,156,157,158,159,160,161, 162,163,164,167,168,169,170,171,172,173, 174,175,176,177,178,180,181,183,184,186, 187,190,192,193,194,195,196,197,198,199, 201,202,203,204,205,206,207,209,210,211, 112,113,114,115,116,218,219,221,222,223, 224,225,226,227,228,229,230,232,233,234, 235,237,238,239,240,241,242,243,244,245, 246,247,248,249,250,251,252,254,255,256, 257,258,259,260,261,262,263,264,268,269, 270,271,272,274,274,276,277,278,279,290, 291,292,295,296,297,298,299,300,301, 302,303,304,305,306,307,308,309,310,311 } local maxSkinPos = #skins -- local curSkinPos = 1 -- local function getNextSkinPos ( curPos ) triggerServerEvent ( "onSkins1", getLocalPlayer() ) curPos = curPos + 1 if curPos > maxSkinPos then curPos = 1 end return curPos end -- local function getPrevSkinPos ( curPos ) triggerServerEvent ( "onSkins2", getLocalPlayer() ) curPos = curPos - 1 if curPos < 1 then curPos = maxSkinPos end return curPos end local ssms = { -- whileSelecting = { -- text = "ENGLISH \n" .. "LEFT / RIGHT arrow keys - change skin, \n" .. "ENTER key - apply skin. \n" .. "SPANISH \n" .. "IZQUIERDA / DERECHA teclas de flechas - Para cambiar el skin, \n" .. "Presiona Enter Para ponerte el skin. ", font = "default-bold", scale = 1.0, color = tocolor(0xFF,0x8D,0x42,255), bColor = tocolor(0,0,0,200), outline = 1, x = 0.25, y = 0.83 }, afterSelecting = { -- text = "ENGLISH \n" .. "You can change your skin to another one if you want.. \n" .. "F4 - To change your skin \n" .. "SPANISH \n" .. "Usted puede cambiar su piel a otra si quieres .. \n" .. "F4 - Para cambiar tu skin. ", font = "default-bold", scale = 1.0, color = tocolor(255,255,255,200), bColor = tocolor(0,0,0,200), outline = 1, x = 0.25, y = 0.83, hideDelay = 4000 -- мсек } } function setNextSkinForMe ( ) curSkinPos = getNextSkinPos(curSkinPos) triggerServerEvent ( "onSkins1", getLocalPlayer() ) setElementModel( me, skins[curSkinPos] ) end function setPrevSkinForMe ( ) curSkinPos = getPrevSkinPos(curSkinPos) triggerServerEvent ( "onSkins2", getLocalPlayer() ) setElementModel( me, skins[curSkinPos] ) end local selecting = false function startSkinSelection ( ) if selecting then return end selecting = true toggleAllControls( false, true, false ) bindKey( "arrow_l", "up", setPrevSkinForMe ) bindKey( "arrow_r", "up", setNextSkinForMe ) bindKey( "enter", "up", stopSkinSelection ) showMessage( ssms["whileSelecting"]["text"], ssms["whileSelecting"]["x"], ssms["whileSelecting"]["y"], ssms["whileSelecting"]["font"], ssms["whileSelecting"]["scale"], ssms["whileSelecting"]["color"], ssms["whileSelecting"]["bColor"], ssms["whileSelecting"]["outline"], 0, true ) end function stopSkinSelection ( ) -- если не выбирает, ничо не надо делать if not selecting then return end selecting = false toggleAllControls( true, true, false ) unbindKey( "arrow_l", "up", setPrevSkinForMe ) unbindKey( "arrow_r", "up", setNextSkinForMe ) unbindKey( "enter", "up", stopSkinSelection ) unlockMessage() showMessage( ssms["afterSelecting"]["text"], ssms["afterSelecting"]["x"], ssms["afterSelecting"]["y"], ssms["afterSelecting"]["font"], ssms["afterSelecting"]["scale"], ssms["afterSelecting"]["color"], ssms["afterSelecting"]["bColor"], ssms["afterSelecting"]["outline"], ssms["afterSelecting"]["hideDelay"] ) triggerServerEvent( "saveMySkin", me, skins[curSkinPos] ) end addEventHandler( "onClientResourceStart", getResourceRootElement(), function ( ) bindKey( "F4", "up", startSkinSelection ) end ) Server : -- skin = {} -- addEvent( "saveMySkin", true ) addEventHandler( "saveMySkin", getRootElement(), function ( playerSkin ) skin[source] = playerSkin setElementModel( source, playerSkin ) end ) addEventHandler( "onPlayerJoin", getRootElement(), function() skin[source] = 0 end ) addEventHandler( "onPlayerQuit", getRootElement(), function() skin[source] = nil end ) ¿ Me ayudan ? Link to comment
NodZen Posted October 12, 2012 Share Posted October 12, 2012 Eso lo hiciste Tu? Tiene muchos errores. Link to comment
Arsilex Posted October 12, 2012 Share Posted October 12, 2012 pon lo setElementModel en server-side Link to comment
Mixters Posted October 12, 2012 Author Share Posted October 12, 2012 Eso lo hiciste Tu? Tiene muchos errores. No lo ise yo, solo acomode unas cosas y funciona 5/5. solo que no muestra los skins de forma server Link to comment
Recommended Posts