[CODE] Quest Helper

#1
Quest Helper:
#Agregados
- Agregado un texto en el Quest Dialog para poder habilitar y desabilitar el Quest Helper Dialog.
- Sacado el sprite del dialog para la funcion DrawQuestHelper(), para que no moleste la vista.
- Modificadas las cords y tama?o del dialog, antes cubria la mitad de la pantalla un dialog "invisible".
- Agregado un texto que "salte" al terminar un quest.
- Agregado un chequeador de Quest para el texto "Quest Completed!", antes al terminar/cancelar un quest, se quedaba este texto.
- Se acortaron los textos a lo justo y nesesario.
- Agregada la opcion que al hacer click derecho sobre el "Quest Helper" este se desabilita.

Quest Helper - Aceptado el Quest, muestra la opcion "Quest Helper".
<img src="http://img391.imageshack.us/img391/4173 ... enufj4.jpg" alt="" border="0">

Quest Helper - Mouse arriba de la opcion.
Image
Quest Helper - Click a la opcion, se activa el "Quest Helper"
Image
Quest Helper - Se activa el texto "Quest Completed!" al completar el quest
Image
Abrir tus Src del client, en el Game.h agregar:

Code: Select all

    //50Cent - Quest Helper
    void DrawQuestHelper();
Luego en el lan_eng.h, alfinal agregar:

Code: Select all

//50Cent - Quest Helper
#define DEF_QUESTHELPER            "Quest Helper"
#define DEF_QUESTHELPERCOMPLETE    "Quest Completed!"
Despues en el Game.cpp buscar:

Code: Select all

    //Guild Hall Menu Dialog
    m_stDialogBoxInfo[51].sX = 337;
    m_stDialogBoxInfo[51].sY = 57;
    m_stDialogBoxInfo[51].sSizeX = 258;
    m_stDialogBoxInfo[51].sSizeY = 339;
y justo abajo agregar esto:

Code: Select all

    //50Cent - Quest Helper
       m_stDialogBoxInfo[55].sX = 530;
    m_stDialogBoxInfo[55].sY = 130;
    m_stDialogBoxInfo[55].sSizeX = 110;
       m_stDialogBoxInfo[55].sSizeY = 36;
Luego busquen esto:

Code: Select all

        case 51: // Gail
            DrawDialogBox_CMDHallMenu(msX, msY);
            break;
y justo abajo agreguen esto:

Code: Select all

        case 55: //50Cent - Quest Helper
            DrawQuestHelper();
            break;
Ahora en la funcion:

Code: Select all

void CGame::DrawDialogBox_Quest(int msX, int msY)
Busquen:

Code: Select all

            if (m_stQuest.bIsQuestCompleted == FALSE)
                 PutAlignedString(sX, sX + szX, sY + 50, DRAW_DIALOGBOX_QUEST2, 55,25,25); // "You are on a monster conquering quest."
            else PutAlignedString(sX, sX + szX, sY + 50, DRAW_DIALOGBOX_QUEST3, 55,25,25); // "You accomplished the monster conquering quest."
y justo arriba de eso agreguen esto:

Code: Select all

            if (m_stQuest.sQuestType == 1)//Verifica si estas en Quest type hunt
            {    if ((msX > sX + 92) && (msX < sX + 165) && (msY > sY + 232) && (msY < sY + 245))
                  PutAlignedString(sX, sX + szX, sY + 230, DEF_QUESTHELPER, 90, 0, 0);
             else PutAlignedString(sX, sX + szX, sY + 230, DEF_QUESTHELPER, 200, 0, 0);
            }else PutAlignedString(sX, sX + szX, sY + 230, DEF_QUESTHELPER, 65, 65, 65);
Luego vayanse al final del Game.cpp y agreguen esta funcion:

Code: Select all

//50Cent - Quest Helper
/*************************************************************************************************
**  void CGame::DrawQuestHelper()                                                                **
*************************************************************************************************/
void CGame::DrawQuestHelper()
{
    char cTemp[21], cTxt[120];
    if (m_stQuest.sQuestType != NULL) {
        PutString2(530, 130, DEF_QUESTHELPER, 255,200,0);//"Quest Helper"
        ZeroMemory(cTemp, sizeof(cTemp));
        GetNpcName(m_stQuest.sTargetType, cTemp);
        ZeroMemory(cTxt, sizeof(cTxt));
        wsprintf(cTxt, "%s: %d/%d", cTemp, m_stQuest.sCurrentCount, m_stQuest.sTargetCount);
        PutString2(530, 142, cTxt, 255,255,255);//"Mob: (Lleva matado)/(Tiene que matar)
    }
    if (m_stQuest.sQuestType != NULL) {
        if (m_stQuest.sCurrentCount >= m_stQuest.sTargetCount) {
        PutString2(530, 154, DEF_QUESTHELPERCOMPLETE, 255, 0, 0);//"Quest Completed!"
    }
}
}
Por ultimo en la funcion:

Code: Select all

void CGame::DlgBoxClick_Quest(int msX, int msY)
Busquen:

Code: Select all

    if ((msX >= sX + DEF_RBTNPOSX) && (msX <= sX + DEF_RBTNPOSX + DEF_BTNSZX) && (msY > sY + DEF_BTNPOSY) && (msY < sY + DEF_BTNPOSY + DEF_BTNSZY)) {
        DisableDialogBox(28);
        PlaySound('E', 14, 5);
    }
y justo abajo de eso agreguen:

Code: Select all

    if ((msX > sX + 92) && (msX < sX + 165) && (msY > sY + 232) && (msY < sY + 245))
    {    
        if(m_bIsDialogEnabled[55] == FALSE){
            EnableDialogBox(55, NULL, NULL, NULL);
        }
        else{
            DisableDialogBox(55);
        }
        PlaySound('E', 14, 5);
    }
Eso es todo, creo que no se me olvida nada, espero que les sirva ;D
Centuu.-

Sol Lucet Omnibus.-

Who is online

Users browsing this forum: No registered users and 1 guest

cron