منظمة قانون التطور - Evolution Law Organization
موضوع بعنوان :شرح : تركيب دالتين كويست pc_get_ip و pc_set_max_health
الكاتب :CSS


سلام عليكم ورحمة الله وبركاتة
جبت لكم دالتين كويست راح تفيدكم وانتم تخترعون كويستات
نبدا بأول داله والي هي
pc_get_ip

هذي الدالة مفيده جدا في سيرفرات المبارزه
ف مثلا لما تسوي كويست اذا ذبحت لاعب يعطيك 10صناديق تفعيلات مثلا
يقدر اللاعب هذا يسوي حسابات من جهازه ويذبح حساباته بسهوله ويجمع صناديق تفعيلات بالهبل
او اذا خليت التطوير من ذبح اللاعبين يمديه يطور حسابه بسهوله من خلال ذبح حساباته
واغلب السيرفرات ما تبي كذا
هذي الداله مفيده ممكن تركبها في الكويست الي عندك وتخليه مايقدر يجمع من نفس الايبي
الدالة الثانيه وهي:
pc_set_max_health

هذي الداله تجعل دم الاعب فل
تقدر تسوي فيها كويست اذا ذبح زعيم يخلي دم اللاعب فل او اذا ذبح لاعب تخلي دمه فل 
اشياء كثيره تقدر تسوي فيها بس انت فكر واخترع
المهم نبدا بالتركيب بسم الله:
اولاً ندخل سورس سيرفر ونخش جيم ونفتح ملف
questlua_pc.cpp

نبحث عن
        lua_pushnumber(L, ch->ChangeEmpire((unsigned char)lua_tonumber(L, 1)));

        return 1;
    }

ونضيف تحتها
#ifdef lb_h_org
    ALUA(pc_get_ip)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        lua_pushstring(L, ch->GetDesc()->GetHostName());
        return 1;
    }
        ALUA(pc_set_max_health)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
        ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
        return 0;
    }
#endif

ثم نبحث عن
luaL_reg pc_functions

ونضيف اسفلها
داخل القوس
#ifdef lb_h_org
            { "set_max_health",        pc_set_max_health    },
            { "get_ip",            pc_get_ip            },
#endif

هنا انتهينا من سورس 
نروح لمسار الكويستات في الفايل زيلا
ونفتح ملف
quest_functions

(الملف الذي يجمع جميع الدوال لانشاء اي كويست)
ونضيف في اخر السطر
pc_set_max_health
pc_get_ip

وانتهينا من التركيب لا تنسى تسوي كومبايل لسورس وريبوت للسيرفر
ومبروك التركيب
(ملاحظه: الدالتين سحبتها من سورس مارتي المنشور)
لا تنسون الدعاء