2009-06-21 9 views
6

वर्ल्ड वार्कक्राफ्ट के काम में लुआ में दो इमोट्स का कॉम्बो कैसे बनाते हैं?वर्ल्ड वार्कक्राफ्ट के काम में लुआ में दो इमोट्स का कॉम्बो कैसे बनाते हैं?

function Button2_OnClick() 
    PlaySoundFile("Interface\\Addons\\Fart\\common_fart[1].wav"); 
    DoEmote("moon"); 
    DoEmote("sit"); 
    DoEmote("dance"); 
    DoEmote("beckon"); 
end 

मैं वाह पर एक फार्ट एप्लिकेशन बनाने के लिए वाह एडन स्टूडियो का उपयोग कर रहा हूं। मैंने इस फ़ंक्शन का उपयोग किया, और केवल बैठने की गति दिखाई गई, और बेकन और चंद्रमा केवल चैट विंडो पर दिखाया गया। नृत्य भावना कहीं भी दिखाई नहीं दे रही थी।

+1

लॉक +1 वॉरक्राफ्ट प्रश्न की दुनिया के लिए प्रोग्रामिंग में बदल गया: पी – fmsf

+0

वाह के पास लुआ से एक पूर्ण एपीआई उपयोग योग्य है, इसलिए हाँ, यह प्रोग्रामिंग से संबंधित हो सकता है। – crashmstr

+0

क्या आप अलग-अलग परिणाम प्राप्त करते हैं यदि आप प्रत्येक में वाह में व्यक्तिगत रूप से करते हैं? – crashmstr

उत्तर

4

बर्फ़ीला तूफ़ान ने कुछ भी प्रतिबंधित कर दिया है जिसका उपयोग लुआ प्रतीक्षा या रोकने के लिए किया जा सकता है क्योंकि यह सोने की खनन या पीसने के लिए एक आवश्यक घटक है।

सभी सीपीयू का उपयोग किये बिना लुआ प्रतीक्षा करने के लिए मूल (यानी लुआ केवल) तरीका नहीं है। वाह क्लाइंट के बाहर, आप win.sleep या किसी अन्य तृतीय पक्ष API कॉल का उपयोग करेंगे जो होस्ट एप्लिकेशन या ऑपरेटिंग सिस्टम थ्रेडिंग फ़ंक्शंस में कॉल करता है।

एक लगातार घटना (जैसे चैट विंडो पर आने वाले पाठ) पर कोड निष्पादित करके प्रतीक्षा को अनुकरण करना संभव हो सकता है और फिर ईवेंट हैंडलर जांच में यह देखने के लिए कि अगली कमांड को निष्पादित करने के लिए पर्याप्त समय बीत चुका है या नहीं अनुक्रम में। यह शायद एक बहुत ही सटीक टाइमर नहीं होगा और यह जटिल होगा क्योंकि आपको कमांड के क्रम, प्रत्येक के बीच का समय, वर्तमान कमांड इत्यादि रखने के लिए डेटा संरचना बनाना होगा।

2

मैं सुझाव दूंगा कि आप अगली भावना देने से पहले कुछ समय प्रतीक्षा करें। जहां तक ​​मुझे पता है, यदि आप बहुत अधिक स्पैम करते हैं तो सर्वर आपको डिस्कनेक्ट करता है। यह हो सकता है कि इसे कभी-कभी ट्रिगर करें।

इसके अलावा, मुझे लगता है कि क्लाइंट को इसे रोकने का एक तरीका है? किसी भी मामले में, मैं सुझाव दूंगा कि आप भावनाओं के बीच एक-दूसरे की देरी को जोड़ दें।

चीयर्स,
अमित रॉन

3

यह खेल स्वचालन (botting) में रोकने के लिए एपीआई का एक जानबूझकर सीमा हो सकती है।

1

क्या यह हो सकता है कि आखिरी दो बैठे समय नहीं किया जा सकता?

3

मेरे लिए क्या काम किया गया है ग्लोबल वैरिएबल है जो लूप के माध्यम से बढ़ता है।

Integer count = 0; 
function Button2_OnClick() 
    i++ 
    switch 
    case(1) 
     PlaySoundFile("Interface\\Addons\\Fart\\common_fart[1].wav"); 
    case(2) 
     DoEmote("moon"); 
    case(3) 
     DoEmote("sit"); 
    case(4) 
     DoEmote("dance"); 
    case(5) 
     DoEmote("beckon"); 
    default 
     i=0; 
    end 
end 

के रूप में इस तरह के क्या आप तो ऐसा करने के लिए होता बटन पर कई बार क्लिक करने के लिए है, लेकिन आप प्रभाव आप के लिए जा रहे हैं मिलेगा।

+0

मेरे पास एक ही विचार था, लेकिन भावनाएं निष्पादित करने के लिए अपने समय के साथ वैश्विक कार्य सरणी पर जाती हैं (उदाहरण के लिए 1:32:20), और फिर ईवेंट हैंडलर विभिन्न प्रकार की सामान्य घटनाओं, कीडाउन, कुंजी अप, बटन, माउस मूव इत्यादि, और फिर प्रत्येक इवेंट हैंडलर एक इमोट के लिए वर्क एरे की जांच करेगा, अगर उस काम का समय आ गया था। – MatthewMartin

1

वास्तव में, integer i = 0, क्योंकि पूर्णांक 'गिनती' को परिभाषित करना और फिर मैं गलत उपयोग कर रहा हूं। :)

संबंधित मुद्दे