[L2Npc]Some Castle/Residence functions bug.

Issue #51 resolved
Zconll created an issue

Castle_GetPledgeId() Castle_GetPledgeName() Castle_GetOwnerName() Residence_GetTaxRateCurrent()

Return incorrrect data (Castle without owner have clan). Use this nasc code for checking functions and setup castle to a clan.

//set_castle_owner gludio_castle <clan_name>

Code for testing:

class trader_simplon : default_npc {
parameter:
    string fnHi = "chi.htm";
    string fnFeudInfo = "defaultfeudinfo.htm";
    string fnNoFeudInfo = "nofeudinfo.htm";
    int HavePet = 0;
    int silhouette = @orc;

handler:
    EventHandler TALKED(talker) {
        ShowPage(talker, fnHi);
    }

    EventHandler CREATED() {
        if (HavePet == 1) {
            CreateOnePrivateEx(silhouette, "pet_around_pet_manager", 0, 0, FloatToInt(myself.sm.x + 10), FloatToInt(myself.sm.y + 10), FloatToInt(myself.sm.z), 0, 0, 0);
        }

        super;
    }

    EventHandler MENU_SELECTED(ask, fhtml0, reply, talker) {
        if (ask == -1000) {
            if (reply == 0) {
                ShowPage(talker, fnHi);
            } else if (reply == 1) {
                if (myself.sm.residence_id > 0) {
                    if (Castle_GetPledgeId()) {
                        FHTML_SetFileName(fhtml0, fnFeudInfo);
                        FHTML_SetStr(fhtml0, "my_pledge_name", Castle_GetPledgeName());
                        FHTML_SetStr(fhtml0, "my_owner_name", Castle_GetOwnerName());
                        FHTML_SetInt(fhtml0, "current_tax_rate", Residence_GetTaxRateCurrent());
                    } else {
                        FHTML_SetFileName(fhtml0, fnNoFeudInfo);
                    }

                    FHTML_SetStr(fhtml0, "kingdom_name", MakeFString(1001000, "", "", "", "", ""));
                    FHTML_SetStr(fhtml0, "feud_name", MakeFString(1001000 + myself.sm.residence_id, "", "", "", "", ""));
                    ShowFHTML(talker, fhtml0);
                } else {
                    FHTML_SetFileName(fhtml0, fnNoFeudInfo);
                    FHTML_SetStr(fhtml0, "kingdom_name", MakeFString(1001100, "", "", "", "", ""));
                    FHTML_SetStr(fhtml0, "feud_name", MakeFString(1001009, "", "", "", "", ""));
                    ShowFHTML(talker, fhtml0);
                }
            }
        }
    }
}

Fstring:

1001000 [Aden Kingdom]
1001001 [Gludio]
1001002 [Dion]
1001003 [Giran]
1001004 [Oren]
1001005 [Aden]
1001100 [Elmore Kingdom]
1001009 [Schuttgart]

Comments (7)

  1. Master Toma repo owner

    Btw, looks like Castle_GetPledgeName and Castle_GetOwnerName are unused in original C1 AI scripts. Anyway, I will fix it, if original L2NPC.exe works fine with those functions. Only "chi.htm" file is needed

  2. Log in to comment