SuperBrandy Posted January 12, 2015 Share Posted January 12, 2015 Hey there! I am searching a solution for a function export problem. What i want to do is: - replace functions with a script( that will work for all the code in the same script) - the replaced functions should be accessible for other resources Example: - resource A replaces outputChatBox() so every text called with this will be green - resource B contains the outputChatBox() and the text created there should automatically be green without IMPORTING anything Hopefully there are some smarter guys out there, thanks for your help! Link to comment
Gallardo9944 Posted January 12, 2015 Share Posted January 12, 2015 I'm pretty sure you can't replace exported functions without editing meta AND restarting the required resource. But you can always do that somewhere outside of that resource. Though you can make predefined exported functions and replace these functions in other resources so they call that resource. If you don't really need exports to get function results, you can simply use events + replaced functions in another resource. A replaced resource should look something like: function outputChatBox(text,player) return triggerEvent("outputChatBoxEvent",player,text,player) end That should be more flexible. If you really need replacements with dynamc exports and stuff, this should require MTA codebase changes. Link to comment
MTA Team botder Posted January 12, 2015 MTA Team Share Posted January 12, 2015 Edit: You could also copy the "util" code to each resource but you would have to maintain the code in each resource. Resource A: (e.g. called util) This resource only serves the code by calling its exported function. <meta> <script src="script.lua"/> <export function="getCode"/> </meta> LUACODE = [===[ local _outputChatBox = outputChatBox function outputChatBox(message, target, _, _, _, colorcoded) return _outputChatBox(message, target, 0, 255, 0, colorcoded) end ]===] function getCode() return LUACODE end Resource B This resource has to load the code from util on start. <meta> <include resource="util"/> <script src="script.lua"/> </meta> loadstring(exports.util:getCode())() Link to comment
SuperBrandy Posted January 12, 2015 Author Share Posted January 12, 2015 I am gonna try this! Thanks 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