2017-01-05 23 views
0

私はavalible関数を作成された関数に置き換えるゲーム用のスクリプトを実行しようとしています。だから、これは私のLUAコードです:私がやりたい利用可能な関数から関数を作成する

function ifEmotePlayed(playerName, emoteID) 
if emoteID == 0 then 
print(playerName.." is dancing!") 
end 
end 
return 
function eventEmotePlayed(playerName, emoteID) 
end 

正確なことはifEmotePlayed機能をeventEmotePlayed機能を交換することである可能性が高い

function ifEmotePlayed(playerName, emoteID) 
if emoteID==0 then 
print(playerName.." is dancing!") 
end 
end 

代わり

function eventEmotePlayed(playerName, emoteID) 
if emoteID==0 then 
print(playerName.." is dancing!") 
end 
end 

の誰がどのように知っていますそれ?

+0

私はあなたが何を求めているのか完全にはわかりません。あなたの質問を明確化/言い換えできますか? –

+0

私は関数eventEmotePlayedをifEmotePlayedに置き換えたいと思いますし、eventEmotePlayedと同じものを使用したいと思います。説明するのは難しいです:L –

+0

local foo = function()print( 'first')のようなものend foo = function ()print( 'second')end'?これはfooを2番目の関数定義に置き換えます。 –

答えて

1

あなたは、単にそのようにそれを行う機能名前を変更したい場合:

myNewFunctionName = originalFunctionName 

を次にmyNewFunctionName()を呼び出すとmyNewFunctionNameとしてoriginalFunctionName()を呼び出すと同じになりますが、今originalFunctionNameと同じ機能をいいます。

Luaの関数は変数です。

また、元の関数を呼び出す関数を定義し、同様にパラメータを渡すことができます。

function myNewFunction(a,b) 
    return originalFunction(a,b) 
end 

しかし、あなたは一つの追加の関数呼び出しを行う必要があるとして、これは明らかのように効率的ではありません。

元の関数を実行するのではなく、元の関数 "名前"に関数を代入するように関数を独自の関数に置き換えたい場合(実際に元の関数を参照する変数を作成する今)今から独自の関数を参照してください

function originalFunction(a,b) 
    return a + b 
end 

function myOwnFunction(a,b) 
    return a * b 
end 

originalFunction = myOwnFunction 

originalFunctionは、あなたの関数を参照してoriginalFunction(a,b)を呼び出すと代わりに和abの積を返します。最初の例と同じですが、まったく逆です。