2016-12-24 45 views
-1

我試圖「修復」一個遊戲中的一個問題,有.cpp文件和兩個版本,也許我找到了包。什麼性差異beetwen這個代碼2個例子:C++語法和代碼

例子#1

// not supposed to do anything while evocate 
    if (m_creature->HasAura(SPELL_EVOCATION)) 
    { 
     return; 
    } 

例2

// not supposed to do anything while evocate 
if (m_creature->HasAura(SPELL_EVOCATION)) 
    return; 

也許它`愚蠢的問題,我不是C++開發者,只是只知道蟒蛇我是新手。那麼這段代碼的邏輯有什麼不同呢?非常感謝。

+2

沒有區別。 – drescherjm

+1

避免用一種你不知道的編程語言來「調試」一個程序(例如C++是爲你準備的)。而C++是一門非常複雜的編程語言。 –

+0

好吧生病儘量避免它,但沒有逃脫;) –

回答

2

沒有區別。它們是等價的。 當if正文中只有一條語句時,可以省略大括號。

+0

謝謝你的回答,我試圖找到bug,但在C++沒有expirience(這裏是2代碼版本: 我使用它: https://github.com /mangos/ScriptDev3/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp 而這裏第二個(更老的): https://github.com/scriptdev2/scriptdev2/blob/master/scripts/eastern_kingdoms/ karazhan/boss_curator.cpp 問題是暴徒每秒召喚一次召喚,並召喚另一個小怪,但他必須投20秒「招魂」咒語,而不要做任何事情;( –

0

它們是相同的。

如果您在if-statement之後沒有加上大括號,那麼只有下一行將被視爲您的if-statement的一部分。

如果您想要在您的if-statement中包含多行代碼,請使用大括號。如果您只想在您的if-statement中包含一行代碼,則可以在第二個代碼段中完成,而不使用大括號。

+0

謝謝你的回答,我試圖找到bug ,但沒有在C++ expirience(這裏是2版本的代碼: 我使用它: https://github.com/mangos/ScriptDev3/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp 在這裏,第二個(至極更年長): https://github.com /scriptdev2/scriptdev2/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp 問題是,暴徒每秒召喚一個召喚,並召喚另一個小怪,但他必須投20秒的「招魂」咒語,而不要做任何事情;( –

0

在運行代碼方面沒有區別,您會得到相同的結果。但你在評論中的第二個問題並不是真的具體。您可以針對您的問題的具體信息提出第二個問題,或者您可以谷歌您的錯誤。 編輯:我沒有真正理解這個問題,但如果你正在尋找兩個版本的代碼差異。在您添加的第一個版本中:

struct boss_curator : public CreatureScript 
{ 
    boss_curator() : CreatureScript("boss_curator") {} 
+0

謝謝!它在遊戲中的具體問題。老闆必須停止做任何事情並且施放拼寫「Evocation」 - 在「chaneling模式」中(不要打破它),但是他多次執行並且一次又一次地開始,並且在每次stopt \ start之後他召喚新的小怪。這個代碼有2個版本,我使用「新」版本的https:// github。com/mangos/ScriptDev3/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp - 但存在舊版https://github.com/scriptdev2/scriptdev2/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp我試圖比較一下 –