WeeD1 Posted February 17, 2019 Share Posted February 17, 2019 Alguém pode me dizer oq há de errado com esse script? WARNING: [Mods]GlueX\glues.lua:2: Bad argument @ 'attachElements' [Expected at argument 2] function gluePlayer(slot, vehicle, x, y, z, rotX, rotY, rotZ) attachElements(source, vehicle, x, y, z, rotX, rotY, rotZ) setPedWeaponSlot(source, slot) end addEvent("gluePlayer",true) addEventHandler("gluePlayer",getRootElement(),gluePlayer) function ungluePlayer() detachElements(source) end addEvent("ungluePlayer",true) addEventHandler("ungluePlayer",getRootElement(),ungluePlayer) Link to comment
DNL291 Posted February 17, 2019 Share Posted February 17, 2019 Tem um problema com o parâmetro da função, 'vehicle' não está retornando um elemento. 1 Link to comment
WeeD1 Posted February 17, 2019 Author Share Posted February 17, 2019 Como posso solucionar isso? Link to comment
Other Languages Moderators Lord Henry Posted February 17, 2019 Other Languages Moderators Share Posted February 17, 2019 Colocando um verificador antes. if getElementType (vehicle) == "vehicle" then 1 Link to comment
WeeD1 Posted February 18, 2019 Author Share Posted February 18, 2019 Estou com outro problema nesse mesmo Mod, tentei procurar alguma função pra isso porém não achei, é o seguinte. Esse mod ele é aquele mod de Glue X que encontra por ai na internet, após o player apertar a letra X ele ficará grudado em cima do veículo. Porém recentemente descobri um bug nele, no qual a pessoa aperta a letra X pra grudar e depois cria um veículo pelo painel, como o veículo é spawnado junto com o player, acaba que mesmo depois de spawnado o veículo, ele continua no local que grudou com o X. Aqui está um vídeo sobre como funciona isso: https://www.youtube.com/watch?v=Ubnrwa8nmh4 , se alguém poder me ajudar a solucionar isso de alguma forma, agradeço. Código: --client-side function glue() local player = getLocalPlayer() if not getPedOccupiedVehicle(player) then local vehicle = getPedContactElement(player) if vehicle then if getElementType(vehicle) == "vehicle" then local px, py, pz = getElementPosition(player) local vx, vy, vz = getElementPosition(vehicle) local sx = px - vx local sy = py - vy local sz = pz - vz local rotpX = 0 local rotpY = 0 local rotpZ = getPedRotation(player) local rotvX,rotvY,rotvZ = getElementRotation(vehicle) local t = math.rad(rotvX) local p = math.rad(rotvY) local f = math.rad(rotvZ) local ct = math.cos(t) local st = math.sin(t) local cp = math.cos(p) local sp = math.sin(p) local cf = math.cos(f) local sf = math.sin(f) local z = ct*cp*sz + (sf*st*cp + cf*sp)*sx + (-cf*st*cp + sf*sp)*sy local x = -ct*sp*sz + (-sf*st*sp + cf*cp)*sx + (cf*st*sp + sf*cp)*sy local y = st*sz - sf*ct*sx + cf*ct*sy local rotX = rotpX - rotvX local rotY = rotpY - rotvY local rotZ = rotpZ - rotvZ local slot = getPedWeaponSlot(player) triggerServerEvent("gluePlayer", player, slot, vehicle, x, y, z, rotX, rotY, rotZ) unbindKey("x","down",glue) bindKey("x","down",unglue) bindKey("jump","down",unglue) end end end end addCommandHandler("glue",glue) function unglue () local player = getLocalPlayer() triggerServerEvent("ungluePlayer", player) unbindKey("jump","down",unglue) unbindKey("x","down",unglue) bindKey("x","down",glue) end addCommandHandler("unglue",unglue) bindKey("x","down",glue) --server-side function gluePlayer(slot, vehicle, x, y, z, rotX, rotY, rotZ) if getElementType (vehicle) == "vehicle" then attachElements(source, vehicle, x, y, z, rotX, rotY, rotZ) setPedWeaponSlot(source, slot) end end addEvent("gluePlayer",true) addEventHandler("gluePlayer",getRootElement(),gluePlayer) function ungluePlayer() detachElements(source) end addEvent("ungluePlayer",true) addEventHandler("ungluePlayer",getRootElement(),ungluePlayer) Link to comment
Other Languages Moderators Lord Henry Posted February 18, 2019 Other Languages Moderators Share Posted February 18, 2019 Adicione isso ao resource de grudar, no script server-side: addEventHandler ("onVehicleEnter", getRootElement(), function (thePlayer) local attach = getElementAttachedTo (thePlayer) -- attach = elemento que o jogador está grudado. Será false se não estiver grudado em algo. if attach then -- Se o jogador está grudado em algo, então: outputChatBox ("Não é possível entrar em um veículo enquanto está grudado em algo!", thePlayer, 255, 150, 0) -- Manda isso pra ele. removePedFromVehicle (thePlayer) -- Remove o Ped do veículo que ele acabou de entrar. end end) E no script client-side, ali na linha 8. Substitua isso: if getElementType(vehicle) == "vehicle" then Por isso: if vehicle and getElementType(vehicle) == "vehicle" then Isso fará com que não gere mais erro ao tentar grudar em nada. 1 Link to comment
WeeD1 Posted February 18, 2019 Author Share Posted February 18, 2019 funcionou aqui, muito obrigado! Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now