LiOneLMeSsIShoT Posted March 16, 2014 Posted March 16, 2014 I'm Trying to make a script to shakehands with another player when command be written so i tried to do it function kiss (thePlayer, cmd, otherPlayer) local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer) local x, y, z = getElementPosition(thePlayer) local tx, ty, tz = getElementPosition(otherPlayer) if (getPedOccupiedVehicle(thePlayer) == false and getPedOccupiedVehicle(otherPlayer) == false) and otherPlayer then if (getDistanceBetweenPoints3D(x, y, z, tx, ty, tz)<1) then setPedAnimation (thePlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) setPedAnimation (otherPlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) end end end addCommandHandler ("kiss", kiss) Errors: [16:42:47] ERROR: call: failed to call 'ID_System:getPlayerFromPartialName' [string "?"] [16:42:47] WARNING: Animation_system\Kiss_Anim\anim.lua:4: Bad argument @ 'getElementPosition' [Expected element at argument 1, got boolean] [16:42:47] WARNING: Animation_system\Kiss_Anim\anim.lua:5: Bad argument @ 'getPedOccupiedVehicle'
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 I'm Trying to make a script to shakehands with another player when command be written so i tried to do it function kiss (thePlayer, cmd, otherPlayer) local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer) local x, y, z = getElementPosition(thePlayer) local tx, ty, tz = getElementPosition(otherPlayer) if (getPedOccupiedVehicle(thePlayer) == false and getPedOccupiedVehicle(otherPlayer) == false) and otherPlayer then if (getDistanceBetweenPoints3D(x, y, z, tx, ty, tz)<1) then setPedAnimation (thePlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) setPedAnimation (otherPlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) end end end addCommandHandler ("kiss", kiss) Errors: [16:42:47] ERROR: call: failed to call 'ID_System:getPlayerFromPartialName' [string "?"] [16:42:47] WARNING: Animation_system\Kiss_Anim\anim.lua:4: Bad argument @ 'getElementPosition' [Expected element at argument 1, got boolean] [16:42:47] WARNING: Animation_system\Kiss_Anim\anim.lua:5: Bad argument @ 'getPedOccupiedVehicle' Any help please?
Wei Posted March 16, 2014 Posted March 16, 2014 That is because ID_system does not return an element, you should check that Try replacing with this... local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(otherPlayer)
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 That is because ID_system does not return an element, you should check thatTry replacing with this... local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(otherPlayer) Alright this is the Id_system Function, so what's the problem?> function getPlayerFromPartialName ( source, player_name, script ) if ( player_name ) then local sucess, value = getNameMatches ( player_name ) if ( sucess ) then local matches = ( type ( value ) == "table" ) and #value or 1 if ( matches == 1 ) then if ( script ) then return value else local player_nick = getPlayerName ( value ) local player_id = getElementData ( value, "ID" ) outputChatBox ( "(" .. player_id .. ") " .. player_nick, source, 255, 255, 0 ) end else outputChatBox ( "Players matching your search are: ", source, 255, 255, 0 ) for k, player in ipairs ( value ) do local player_nick = getPlayerName ( value[k] ) local player_id = getElementData ( value[k], "ID" ) outputChatBox ( "(" .. player_id .. ") " .. player_nick, source, 255, 255, 0 ) end return true, true end else if ( script ) then return false else outputChatBox ( "Players matching your search are: ", source, 255, 255, 0 ) outputChatBox ( value, source, 255, 0, 0 ) end end end end
Weii. Posted March 16, 2014 Posted March 16, 2014 local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer, true) if (not otherPlayer) then return end Try that, I think it should work
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer, true) if (not otherPlayer) then return end Try that, I think it should work NOw tried it : function kiss (thePlayer, cmd, otherPlayer) local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer, true) local x, y, z = getElementPosition(thePlayer) local tx, ty, tz = getElementPosition(otherPlayer) if (not otherPlayer) then return end if (getPedOccupiedVehicle(thePlayer) == false and getPedOccupiedVehicle(otherPlayer) == false) then if (getDistanceBetweenPoints3D(x, y, z, tx, ty, tz)<1) then setPedAnimation (thePlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) setPedAnimation (otherPlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) end end end addCommandHandler ("kiss", kiss) Still the same errors.
Castillo Posted March 16, 2014 Posted March 16, 2014 Which errors? This one? ERROR: call: failed to call 'ID_System:getPlayerFromPartialName' [string "?"]
Spajk Posted March 16, 2014 Posted March 16, 2014 Check if the resource is running and check if the function has been added as export in the meta.xml.
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 Which errors?This one? ERROR: call: failed to call 'ID_System:getPlayerFromPartialName' [string "?"] Yep this one's the error.
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 Check if the resource is running and check if the function has been added as export in the meta.xml. Man, Everything already work.
WhoAmI Posted March 16, 2014 Posted March 16, 2014 Check exported functions in ID_System in meta.xml.
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 Check exported functions in ID_System in meta.xml. It's Exported yes...in meta and the resource started.
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 And it is exported as server side function? Aha actually i know the problem now and fixed it but now there's another problem here: help please [23:54:27] WARNING: Animation_system\Kiss_Anim\anim.lua:5: Bad argument @ 'getEl ementPosition' [Expected element at argument 1, got nil]
madis Posted March 16, 2014 Posted March 16, 2014 local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer) A little advice (might not help to solve your problem). Don't reuse variable names, however convenient it seems. It seems that at first otherPlayer is player's nickname and later otherPlayer is a player element.
LiOneLMeSsIShoT Posted March 16, 2014 Author Posted March 16, 2014 local otherPlayer = exports["ID_System"]:getPlayerFromPartialName(thePlayer, otherPlayer) A little advice (might not help to solve your problem). Don't reuse variable names, however convenient it seems. It seems that at first otherPlayer is player's nickname and later otherPlayer is a player element. Thanks for your advice, so could you fix it please if you can?
LiOneLMeSsIShoT Posted March 17, 2014 Author Posted March 17, 2014 Alright actually i'm almost got the solution and tried it but still there's a problem: function kiss (thePlayer, cmd, arg) if arg then local id = tonumber(arg) if id then otherPlayer = exports.ID_System:getPlayerFromID(id) else otherPlayer = getPlayerFromName (arg) end local x, y, z = getElementPosition(thePlayer) local tx, ty, tz = getElementPosition(otherPlayer) if otherPlayer ~= player then if (getPedOccupiedVehicle(thePlayer) == false and getPedOccupiedVehicle(otherPlayer) == false) then if (getDistanceBetweenPoints3D(x, y, z, tx, ty, tz)<1) then setPedAnimation (thePlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) setPedAnimation (otherPlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) bindKey (thePlayer, "space", "down", StopCommand) end end end end end addCommandHandler ("kiss", kiss) function StopCommand ( source ) setPedAnimation ( source ) unbindKey ( source, "space", "down", StopCommand) end when i try to /kiss thePlayer and not /kiss otherPlayer it work on the air 2- when i write a wrong name i get a couple of Errors: [11:56:53] WARNING: Animation_system\Kiss_Anim\anim.lua:10: Bad argument @ 'getE lementPosition' [Expected element at argument 1, got boolean] [11:56:53] WARNING: Animation_system\Kiss_Anim\anim.lua:12: Bad 'ped' pointer @ 'getPedOccupiedVehicle'(1) [11:56:53] WARNING: Animation_system\Kiss_Anim\anim.lua:12: Bad argument @ 'getP edOccupiedVehicle' [11:56:53] WARNING: Animation_system\Kiss_Anim\anim.lua:13: Bad argument @ 'getD istanceBetweenPoints3D' [11:56:53] ERROR: Animation_system\Kiss_Anim\anim.lua:13: attempt to compare boo lean with number
Castillo Posted March 17, 2014 Posted March 17, 2014 You must check if the player exists. function kiss ( thePlayer, cmd, arg ) if ( arg ) then local id = tonumber ( arg ) if ( id ) then otherPlayer = exports.ID_System:getPlayerFromID ( id ) else otherPlayer = getPlayerFromName ( arg ) end if ( otherPlayer ) then local x, y, z = getElementPosition ( thePlayer ) local tx, ty, tz = getElementPosition ( otherPlayer ) if ( otherPlayer ~= thePlayer ) then if ( getPedOccupiedVehicle ( thePlayer ) == false and getPedOccupiedVehicle ( otherPlayer ) == false ) then if ( getDistanceBetweenPoints3D ( x, y, z, tx, ty, tz ) < 1 ) then setPedAnimation ( thePlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) setPedAnimation ( otherPlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) bindKey ( thePlayer, "space", "down", StopCommand ) end end end end end end addCommandHandler ( "kiss", kiss ) function StopCommand ( source ) setPedAnimation ( source ) unbindKey ( source, "space", "down", StopCommand ) end
LiOneLMeSsIShoT Posted March 17, 2014 Author Posted March 17, 2014 You must check if the player exists. function kiss ( thePlayer, cmd, arg ) if ( arg ) then local id = tonumber ( arg ) if ( id ) then otherPlayer = exports.ID_System:getPlayerFromID ( id ) else otherPlayer = getPlayerFromName ( arg ) end if ( otherPlayer ) then local x, y, z = getElementPosition ( thePlayer ) local tx, ty, tz = getElementPosition ( otherPlayer ) if ( otherPlayer ~= thePlayer ) then if ( getPedOccupiedVehicle ( thePlayer ) == false and getPedOccupiedVehicle ( otherPlayer ) == false ) then if ( getDistanceBetweenPoints3D ( x, y, z, tx, ty, tz ) < 1 ) then setPedAnimation ( thePlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) setPedAnimation ( otherPlayer, "KISSING", "Grlfrd_Kiss_03", -1, true, false, false ) bindKey ( thePlayer, "space", "down", StopCommand ) end end end end end end addCommandHandler ( "kiss", kiss ) function StopCommand ( source ) setPedAnimation ( source ) unbindKey ( source, "space", "down", StopCommand ) end oh....Thanks man
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