Jump to content

Seleccionar Un Skin Al Entrar.¿Como Hacerlo?


Recommended Posts

Hola. Queria Adelantarme Un Poco Mas. Queria Que Me Ayudaran A Crear Un Seleccionador De Skin Cuando Una Persona Entra. Tengo Funciones Abansada. Y Las Funciones Lo Consegi Con Un Resource, No Es Que Lo Estoy Robando. Solo Es Copia. Quiero Hacer Este Proyecto Como El Seleccionador De Skin Del "SA:MP" y Me Gustaria Ponerlo En El Mta.

function CreateSelectorWindow() 
wdwselector = guiCreateWindow(0.438,0.880,0.15,0.10,"Elige Tu Skin!",true) 
guiWindowSetMovable(wdwselector,false) 
btnLeft = guiCreateButton(0.0,0.4,0.200,0.350,"<-",true,wdwselector) 
btnRight = guiCreateButton(0.76,0.4,0.200,0.350,"->",true,wdwselector) 
btnSelect = guiCreateButton(0.30,0.4,0.400,0.350,"Select",true,wdwselector) 
guiSetVisible(wdwselector, false) 
end 
  
function selectorenable () 
CreateSelectorWindow() 
 addEventHandler("onClientGUIClick", btnLeft, clientSkinLeft, false) 
 addEventHandler("onClientGUIClick", btnSelect, clientSkinSelect, false) 
 addEventHandler("onClientGUIClick", btnRight, clientSkinRight, false) 
            if (wdwselector ~= nil) then 
                 guiSetVisible(wdwselector, true) 
                 triggerServerEvent("FrontCamera", getRootElement()) 
            end  
            showCursor(true) 
    end 
  
function clientSkinSelect(button) 
    if button == "left" then 
        guiSetVisible(wdwselector, false) 
        showCursor(false) 
        triggerServerEvent("SkinSelected", getRootElement()) 
    end 
end 
  
function clientSkinRight(button) 
    if button == "left" then 
    triggerServerEvent("SkinRight", getRootElement()) 
    end 
end 
  
function clientSkinLeft(button) 
    if button == "left" then 
    triggerServerEvent("SkinLeft", getRootElement()) 
    end 
end 

¿Como Puedo Hacer Primero Para Que Funcione Cuando Entra Una Persona? Agradesco Sus Ayuda.

Link to comment

Prueba con esto :

addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()),selectorenable ) 

tenias malo el evento :P ya que es client creo o no ?

si es sv-side

[lua]addEventHandler("onResourceStart", getResourceRootElement(getThisResource()),selectorenable ) 

[/lua]

Link to comment

yo ise esto para mi script ai sacas lo que necesites

    elseif source == GUIEditor_Button[1] then 
        if (button == "left" and state == "up") then 
            if(numero == 0) then numero = 288 setElementModel(ped,numero) end 
            numero = numero - 1 
            setElementModel(ped,numero) 
        end 
        guiSetText(GUIEditor_Edit[1], "  "..getElementModel(ped).."") 
    elseif source == GUIEditor_Button[2] then 
        if (button == "left" and state == "up") then 
            if (numero == 289) then numero = 0 setElementModel(ped,numero) end 
            numero = numero + 1 
            setElementModel(ped,numero) 
        end 
        guiSetText(GUIEditor_Edit[1], "  "..getElementModel(ped).."") 

Link to comment

Esta Muy Dificil Sacarlo De Tu Script. Aqui esta la otra parte del resource:

function camf() 
if (client) then 
local px,py,pz = getElementPosition( client ) 
local rot = setPedRotation(client, 1) 
setCameraMatrix( source, 1468.8785400391, -919,25317382813, 100.153465271 , 1468,388671875, -918,42474365234, 99.881813049316) 
end 
end 
addEvent("FrontCamera", true) 
addEventHandler("FrontCamera", getRootElement(), camf) 
  
function selected() 
if (client) then 
fadeCamera(client, true) 
setCameraTarget(client, client) 
outputChatBox("Skin successfully changed!", client) 
end 
end 
addEvent("SkinSelected", true) 
addEventHandler("SkinSelected", getRootElement(), selected) 
  
function skinright() 
local skin = getPedSkin(client) 
if (client) then 
if (skin == 0) then 
setPedSkin(client, 7) 
elseif (skin == 7) then 
setPedSkin(client, 9) 
elseif (skin == 41) then 
setPedSkin(client, 43) 
elseif (skin == 64) then 
setPedSkin(client, 66) 
elseif (skin == 85) then 
setPedSkin(client, 87) 
elseif(skin == 118) then 
setPedSkin(client, 120) 
elseif(skin == 148) then 
setPedSkin(client, 150) 
elseif(skin == 207) then 
setPedSkin(client, 209) 
elseif(skin == 238) then 
setPedSkin(client, 240) 
elseif(skin == 264) then 
setPedSkin(client, 274) 
elseif(skin == 288) then 
setPedSkin(client, 0) 
else 
setPedSkin(client, skin+1) 
end 
end 
end 
addEvent("SkinRight", true) 
addEventHandler("SkinRight", getRootElement(), skinright) 
  
function skinleft() 
local skin = getPedSkin(client) 
if (client) then 
if (skin == 7) then 
setPedSkin(client, 0) 
elseif (skin == 9) then 
setPedSkin(client, 7) 
elseif (skin == 43) then 
setPedSkin(client, 41) 
elseif (skin == 66) then 
setPedSkin(client, 64) 
elseif (skin == 87) then 
setPedSkin(client, 85) 
elseif(skin == 120) then 
setPedSkin(client, 118) 
elseif(skin == 150) then 
setPedSkin(client, 148) 
elseif(skin == 209) then 
setPedSkin(client, 207) 
elseif(skin == 240) then 
setPedSkin(client, 238) 
elseif(skin == 274) then 
setPedSkin(client, 264) 
elseif(skin == 0) then 
setPedSkin(client, 288) 
else 
setPedSkin(client, skin-1) 
end 
end 
end 
addEvent("SkinLeft", true) 
addEventHandler("SkinLeft", getRootElement(), skinleft) 

Fijate Si Hay Que Modificar Algo, Porque Estaba Con Cmd y Como Le Pusimos La Funcion "onClientResourceStart" Seguramente Hay Que Cambiar Las Funciones. Como Lo Puedo Solucionar? Y Faltaria Las Posiciones De La Camaras.

Link to comment

mmm :/ nose man es muy diferente al mio

Buee aqui te dejo todo el mio no lo copies solo saca lo mas importante

cl

GUIEditor_Button = {} 
GUIEditor_Edit = {} 
rotation = 0 
  
  
addEvent("onVisibleButtons", true) 
addEventHandler("onVisibleButtons", getLocalPlayer(), 
function() 
    GUIEditor_Button[1] = guiCreateButton(0.3688,0.84,0.0625,0.055,"<",true) 
  
    GUIEditor_Button[2] = guiCreateButton(0.5013,0.84,0.0625,0.055,">",true) 
  
    GUIEditor_Button[3] = guiCreateButton(0.4013,0.9067,0.1287,0.065,"Empezar a Jugar",true) 
  
    GUIEditor_Edit[1] = guiCreateEdit(0.4412,0.8367,0.05,0.0567,"0",true) 
    guiEditSetReadOnly(GUIEditor_Edit[1],true) 
    lsT() 
    showCursor(true) 
    bindKey("space", "down", theR) 
    ped = createPed( 0, 756.03051757813, -1239.4184570313, 13.552116394043 ) 
    setElementData(ped,"City","LS") 
end) 
  
numero = 0 
addEventHandler("onClientGUIClick", root,function(button,state) 
    if source == GUIEditor_Button[3] then 
        local elements ={GUIEditor_Button[1],GUIEditor_Button[2],GUIEditor_Button[3],GUIEditor_Edit[1]} 
        for i,v in ipairs(elements)do 
            destroyElement(v) 
        end 
        showCursor(false) 
        setCameraTarget( localPlayer ) 
        triggerServerEvent("giveWeapons", getLocalPlayer()) 
        destroyElement(ped) 
        unbindKey("space","down",theR) 
        local renders = {lsT,lvT,sfT} 
        for k,b in ipairs(renders)do 
            removeEventHandler("onClientRender",root,b) 
        end 
        setPedSkin(localPlayer,numero) 
        setElementFrozen(localPlayer,false) 
    elseif source == GUIEditor_Button[1] then 
        if (button == "left" and state == "up") then 
            if(numero == 0) then numero = 288 setElementModel(ped,numero) end 
            numero = numero - 1 
            setElementModel(ped,numero) 
        end 
        guiSetText(GUIEditor_Edit[1], "  "..getElementModel(ped).."") 
    elseif source == GUIEditor_Button[2] then 
        if (button == "left" and state == "up") then 
            if (numero == 289) then numero = 0 setElementModel(ped,numero) end 
            numero = numero + 1 
            setElementModel(ped,numero) 
        end 
        guiSetText(GUIEditor_Edit[1], "  "..getElementModel(ped).."") 
    end 
end,true) 
  
addEventHandler("onClientRender", root,function( ) 
    if isElement ( ped ) then 
        rotation = rotation + 1 
        if ( rotation > 359 ) then 
            rotation = 0 
        end 
  
        setPedRotation ( ped, rotation ) 
    end 
end) 
  
function lsT() 
    addEventHandler("onClientRender", root, lsT) 
    dxDrawText("Los Santos",433.0,539.0,641.0,585.0,tocolor(255,255,255,255),3.0,"default","left","top",false,false,true) 
end 
  
function bLV() 
if source == GUIEditor_Button[3] then 
setElementPosition( localPlayer, 2137.7775878906, 1480.8577880859, 10.8203125 ) 
end 
end 
  
function bSF() 
if source == GUIEditor_Button[3] then 
setElementPosition( localPlayer, -1695.2707519531, 950.0751953125, 24.890625 ) 
end 
end 
  
function bLS() 
if source == GUIEditor_Button[3] then 
setElementPosition( localPlayer, 731.21276855469, -1276.6033935547, 17.6484375 ) 
end 
end 
  
function theR() 
    if(getElementData(ped,"City")=="LS")then 
        removeEventHandler("onClientRender", root, lsT) 
        setTimer(lvT,1000,1) 
        triggerServerEvent("onCameraLV", getLocalPlayer()) 
        setElementData(ped,"City","LV") 
        setElementPosition(ped, 2323.7517089844, 1283.2214355469, 97.592704772949 ) 
        addEventHandler("onClientGUIClick", root, bLV) 
    elseif(getElementData(ped,"City")=="LV")then 
        removeEventHandler("onClientRender",root,lvT) 
        setTimer(sfT,1000,1) 
        triggerServerEvent("onCameraSF", getLocalPlayer()) 
        setElementData(ped,"City","SF") 
        setElementPosition(ped,-1480.8948974609, 920.17132568359, 71.350372314453) 
        addEventHandler("onClientGUIClick", root, bSF) 
    elseif(getElementData(ped,"City")=="SF")then 
        removeEventHandler("onClientRender",root,sfT) 
        setTimer(lsT,1000,1) 
        triggerServerEvent("onCameraLS", getLocalPlayer()) 
        setElementData(ped,"City","LS") 
        setElementPosition(ped,756.03051757813, -1239.4184570313, 13.552116394043) 
        addEventHandler("onClientGUIClick", root, bLS) 
    end 
end 
  
addCommandHandler("target",  
function() 
setCameraTarget( localPlayer ) 
end 
) 
  
function lvT() 
    addEventHandler("onClientRender", root, lvT) 
    dxDrawText("Las Venturas",433.0,539.0,641.0,585.0,tocolor(255,255,255,255),3.0,"default","left","top",false,false,true) 
end 
function sfT() 
    addEventHandler("onClientRender", root, sfT) 
    sf = dxDrawText("San Fierro",433.0,539.0,641.0,585.0,tocolor(255,255,255,255),3.0,"default","left","top",false,false,true) 
end 
  
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), 
function() 
triggerServerEvent("onMyStart", getLocalPlayer()) 
end 
) 

sv-side

function visible() 
    triggerClientEvent(source, "onVisibleButtons", root) 
    setCameraMatrix(source,755.94171142578, -1258.78125, 18.399745941162, 756.03051757813, -1239.4184570313, 13.552116394043) 
    fadeCamera(source,true) 
end 
addEvent("onVisibleDead", true) 
addEventHandler("onPlayerWasted", getRootElement(), visible) 
addEventHandler("onPlayerLogin",root, visible) 
  
addEvent("onCameraLV", true) 
addEventHandler("onCameraLV", root,function() 
    setCameraMatrix( client, 2322.7954101563, 1257.611328125, 102.61512756348, 2323.7517089844, 1283.2214355469, 97.592704772949 ) 
end) 
  
addEvent("onCameraSF", true) 
addEventHandler("onCameraSF",root, 
function() 
setCameraMatrix( client, -1509.7048339844, 921.08612060547, 75.827659606934, -1480.8948974609, 920.17132568359, 71.350372314453 ) 
end 
) 
  
addEvent("onCameraLS", true) 
addEventHandler("onCameraLS", root, 
function() 
setCameraMatrix( client, 755.94171142578, -1258.78125, 18.399745941162, 756.03051757813, -1239.4184570313, 13.552116394043 ) 
end) 
  
  
addEvent("giveWeapons", true) 
addEventHandler("giveWeapons", getRootElement(),  
function() 
giveWeapon( source, 31, 999 ) 
giveWeapon( source, 32, 999 ) 
end 
) 
  

Link to comment

hay Ubique El Lugar De La Camara:

function camf() 
if (client) then 
local px,py,pz = getElementPosition( client ) 
local rot = setPedRotation(client, 1) 
setCameraMatrix(source,755.94171142578, -1258.78125, 18.399745941162, 756.03051757813, -1239.4184570313, 13.552116394043) 
fadeCamera(source,true) 
end 
end 
addEvent("FrontCamera", true) 
addEventHandler("FrontCamera", getRootElement(), camf) 

El Problema Es La Posicion De Los Ped.Para Que Se Vean Los Skin.¿Como Puedo Obtener Eso?

Link to comment

Encontre Una Manera Me Parece A Mi Mas Facil. Hise Esto En Modo De Prueba..

function spawnScreen ( source) 
                                            
        setTimer ( setCameraPosition, 1000, 1, source, 98.5163,2246.3232,125.1528 ) -- Set the coordinates of the camera 
        setTimer ( setCameraLookAt, 1000, 1, source, 95.1860,2239.7947,126.7486 )      -- Make the camera look at specified coordinates       
end 
addCommandHandler ( "prueba", spawnScreen ) 

Pongo El Comando Para Probarlo Pero No Funciona.. Lo Quiero Probar Para Segir Avanzando. ¿Que Problema Hay?

Link to comment

Hola. Estoy El Que Estabamos. Em Ahora Me Falta La Rotacion Del Skin.. No Se Como Ponerlo. Y Cuando Selecciona Quiero Ponerle Un Teleport.. Osea Un Spawn... Como Hago? Aqui Les Dejo Todo..

Server:

function camf() 
if (client) then 
setElementPosition( client,98.5163, 2246.3232, 125.1528 ) 
local rot = setPedRotation(client, 1) 
setCameraMatrix( source, 95.1860, 2239.7947, 126.7486, 98.5163, 2246.3232, 125.1528) 
end 
end 
addEvent("FrontCamera", true) 
addEventHandler("FrontCamera", getRootElement(), camf) 
  
function selected() 
if (client) then 
fadeCamera(client, true) 
setCameraTarget(client, client) 
outputChatBox("Skin successfully changed!", client) 
end 
end 
addEvent("SkinSelected", true) 
addEventHandler("SkinSelected", getRootElement(), selected) 
  
function skinright() 
local skin = getPedSkin(client) 
if (client) then 
if (skin == 0) then 
setPedSkin(client, 7) 
elseif (skin == 7) then 
setPedSkin(client, 9) 
elseif (skin == 41) then 
setPedSkin(client, 43) 
elseif (skin == 64) then 
setPedSkin(client, 66) 
elseif (skin == 85) then 
setPedSkin(client, 87) 
elseif(skin == 118) then 
setPedSkin(client, 120) 
elseif(skin == 148) then 
setPedSkin(client, 150) 
elseif(skin == 207) then 
setPedSkin(client, 209) 
elseif(skin == 238) then 
setPedSkin(client, 240) 
elseif(skin == 264) then 
setPedSkin(client, 274) 
elseif(skin == 288) then 
setPedSkin(client, 0) 
else 
setPedSkin(client, skin+1) 
end 
end 
end 
addEvent("SkinRight", true) 
addEventHandler("SkinRight", getRootElement(), skinright) 
  
function skinleft() 
local skin = getPedSkin(client) 
if (client) then 
if (skin == 7) then 
setPedSkin(client, 0) 
elseif (skin == 9) then 
setPedSkin(client, 7) 
elseif (skin == 43) then 
setPedSkin(client, 41) 
elseif (skin == 66) then 
setPedSkin(client, 64) 
elseif (skin == 87) then 
setPedSkin(client, 85) 
elseif(skin == 120) then 
setPedSkin(client, 118) 
elseif(skin == 150) then 
setPedSkin(client, 148) 
elseif(skin == 209) then 
setPedSkin(client, 207) 
elseif(skin == 240) then 
setPedSkin(client, 238) 
elseif(skin == 274) then 
setPedSkin(client, 264) 
elseif(skin == 0) then 
setPedSkin(client, 288) 
else 
setPedSkin(client, skin-1) 
end 
end 
end 
addEvent("SkinLeft", true) 
addEventHandler("SkinLeft", getRootElement(), skinleft) 

Client:

function CreateSelectorWindow() 
wdwselector = guiCreateWindow(0.438,0.880,0.15,0.10,"Nich's Skinslector v1.0",true) 
guiWindowSetMovable(wdwselector,false) 
btnLeft = guiCreateButton(0.0,0.4,0.200,0.350,"<-",true,wdwselector) 
btnRight = guiCreateButton(0.76,0.4,0.200,0.350,"->",true,wdwselector) 
btnSelect = guiCreateButton(0.30,0.4,0.400,0.350,"Select",true,wdwselector) 
guiSetVisible(wdwselector, false) 
end 
  
function selectorenable () 
CreateSelectorWindow() 
 addEventHandler("onClientGUIClick", btnLeft, clientSkinLeft, false) 
 addEventHandler("onClientGUIClick", btnSelect, clientSkinSelect, false) 
 addEventHandler("onClientGUIClick", btnRight, clientSkinRight, false) 
            if (wdwselector ~= nil) then 
                 guiSetVisible(wdwselector, true) 
                 triggerServerEvent("FrontCamera", getRootElement()) 
            end  
            showCursor(true) 
    end 
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()),selectorenable ) 
  
function clientSkinSelect(button) 
    if button == "left" then 
        guiSetVisible(wdwselector, false) 
        showCursor(false) 
        triggerServerEvent("SkinSelected", getRootElement()) 
    end 
end 
  
function clientSkinRight(button) 
    if button == "left" then 
    triggerServerEvent("SkinRight", getRootElement()) 
    end 
end 
  
function clientSkinLeft(button) 
    if button == "left" then 
    triggerServerEvent("SkinLeft", getRootElement()) 
    end 
end 

Link to comment

Reevivo tema porque nesesito la ayuda de ustedes.. Tengo Un Problema Con La Seleccion De SKin...

function selected() 
if (client) then 
fadeCamera(client, true) 
setCameraTarget(client, client) 
local skin = getElementModel ( client ) 
spawnPlayer(client, -2026.5035, 156.7506, 29.0391, 269.1424, skin) 
outputChatBox("Skin successfully changed!", client) 
end 
end 
addEvent("SkinSelected", true) 
addEventHandler("SkinSelected", getRootElement(), selected) 
  
function skinright() 
local skin = getPedSkin(client) 
if (client) then 
if (skin == 0) then 
setPedSkin(client, 7) 
elseif (skin == 7) then 
setPedSkin(client, 9) 
elseif (skin == 41) then 
setPedSkin(client, 43) 
elseif (skin == 64) then 
setPedSkin(client, 66) 
elseif (skin == 85) then 
setPedSkin(client, 87) 
elseif(skin == 118) then 
setPedSkin(client, 120) 
elseif(skin == 148) then 
setPedSkin(client, 150) 
elseif(skin == 207) then 
setPedSkin(client, 209) 
elseif(skin == 238) then 
setPedSkin(client, 240) 
elseif(skin == 264) then 
setPedSkin(client, 274) 
elseif(skin == 288) then 
setPedSkin(client, 0) 
else 
setPedSkin(client, skin+1) 
end 
end 
end 
addEvent("SkinRight", true) 
addEventHandler("SkinRight", getRootElement(), skinright) 
  
function skinleft() 
local skin = getPedSkin(client) 
if (client) then 
if (skin == 7) then 
setPedSkin(client, 0) 
elseif (skin == 9) then 
setPedSkin(client, 7) 
elseif (skin == 43) then 
setPedSkin(client, 41) 
elseif (skin == 66) then 
setPedSkin(client, 64) 
elseif (skin == 87) then 
setPedSkin(client, 85) 
elseif(skin == 120) then 
setPedSkin(client, 118) 
elseif(skin == 150) then 
setPedSkin(client, 148) 
elseif(skin == 209) then 
setPedSkin(client, 207) 
elseif(skin == 240) then 
setPedSkin(client, 238) 
elseif(skin == 274) then 
setPedSkin(client, 264) 
elseif(skin == 0) then 
setPedSkin(client, 288) 
else 
setPedSkin(client, skin-1) 
end 
end 
end 
addEvent("SkinLeft", true) 
addEventHandler("SkinLeft", getRootElement(), skinleft) 

Cuando Hay Gente En La Seleccion De Skin El Problema Es Que Todo Se Ven En La Seleccion Skin. Se Entiende?

Osea Yo Veo Como Se Cambian Los Skin, No Solo Yo Si No Tambien Los Que Estan Jugando O Los Que Estan Eligiendo Skin.Porfavor Nesesito Sus Ayuda! Gracias Se Los Agradesco..

Link to comment

En ese código no está el error, creo. El error está en la parte que envías al jugador a la selección de skin, me parece. Éste razonamiento lo saco porque ese script que dejaste es de parte del cliente, deja el de parte del servidor.

PD: Soy nuevo en esto así que no estoy seguro.

Link to comment

Tiene Que Esta Hay Porque En El Client Tengo Solamente Las Flechitas.. Lo Que Yo Digo Es Cuando Entra Y Esta En La Seleccion De Skin Que Este Como En Otro world Para Que Nadie Vean Que Se Estan Eligiendo Los Skin. ¿Se Entiende?

Link to comment

Yo No Se Si Es La Dimension.. Miren La Imagen De Lo Que Pasa: La Chica Vendria Ser Yo Eligiendo El Skin y El Que Esta Adelante Es Otra Persona Que Esta Eligiendo , Los Otros Dos Se Teletrasportaron. Y Es Lo Que No Querio Que Esten Juntos. Que Nadie Se Vea. Que Estan Eligiendo.

img11052012111104.png

Quiero Que Lo Que Estan Eligiendo Skin Que No Vea A Los Otros. Osea Separarlo Como Diciendo En El Mismo Lugar Pero A Otro Mundo.. Se Entiende?

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...