Jump to content

xkillmt2

Member
  • Content count

    38
  • Joined

  • Last visited

  • Days Won

    8
  • Feedback

    N/A

xkillmt2 last won the day on August 13

xkillmt2 had the most liked content!

Community Reputation

70 Neutral

About xkillmt2

  • Rank
    Member

Recent Profile Visitors

204 profile views
  1. xkillmt2

    Dúvida Brilhos das Armaduras

    Porque não faz pela source ? Exemplo: Vá em UserInterface\InstanceBase.cpp e pesquise por: if (pItem->GetSubType() == CItemData::ARMOR_BODY) { DWORD vnum = pItem->GetIndex(); if (12010 <= vnum && vnum <= 12049) { __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL); __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2); } } Depois crie uma nova linha em baixo da condição " if (12010 <= vnum && vnum <= 12049)" if (pItem->GetSubType() == CItemData::ARMOR_BODY) { DWORD vnum = pItem->GetIndex(); if (12010 <= vnum && vnum <= 12049) { __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL); __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2); } // Novo efeito na armadura X if (20760 <= vnum && vnum <= 20959) { __AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL3); } } Agora vá em UserInterface\InstanceBase.h e pesquise por: EFFECT_BODYARMOR_SPECIAL, // °©¿Ê 4-2-1 EFFECT_BODYARMOR_SPECIAL2, // °©¿Ê 4-2-2 Adicione abaixo: EFFECT_BODYARMOR_SPECIAL3, // 21 Parte cliente Vá em root->playersettingmodule.py e pesquise por: chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+19, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse") Adicione abaixo: chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1.mse") ## Caminho onde está o efeito
  2. Vá em root->uiguild.py e pesquise por : JOB_NAME = { 0 : localeInfo.JOB_WARRIOR, 1 : localeInfo.JOB_ASSASSIN, 2 : localeInfo.JOB_SURA, 3 : localeInfo.JOB_SHAMAN, } Substitua por: JOB_NAME = { 0 : localeInfo.JOB_WARRIOR, 1 : localeInfo.JOB_ASSASSIN, 2 : localeInfo.JOB_SURA, 3 : localeInfo.JOB_SHAMAN, 4 : localeInfo.JOB_WOLFMAN, }
  3. xkillmt2

    Bug /purge metin2

    Verifique seu root->uichat.py, talvez você tenha o sistema de bloquear comandos de GMs. Exemplo: commands = ("/set", "/sex", "/dick", "/big", "/uuu", "/purge") def __SendChatPacket(self, text, type): # Block other command in function chat import stringCommander get_table = stringCommander.commands if text in get_table: return if net.IsChatInsultIn(text): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING) else: net.SendChatPacket(text, type)
  4. xkillmt2

    Alquimia pedra Rubi antiga

    Achei isso no fórum Bug Sistema de Pedras do Dragão faz o teste, lá diz completo.
  5. xkillmt2

    Dragon_soul.quest

    Compare a sua quest com essa que mandei no anexo. add em questlib.lua function drop_gamble_with_flag(drop_flag) local dp, range = pc.get_killee_drop_pct() dp = 40000 * dp / game.get_event_flag(drop_flag) if dp < 0 or range < 0 then return false end return dp >= number(1, range) end dragon_soul.lua
  6. xkillmt2

    Quest de Matança! [Ajuda]

    Acho que é isso que queres: quest xkillmt2 begin state start begin when login with pc.get_level() <= 5 begin set_state(combat) end end state combat begin when letter begin send_letter("Missão de Combate #1") end when button or info begin say_title("Olá, "..pc.get_name()) say("") say("Nessa primeira missão de combate você terá de mata") say("20 "..mob_name(101)..".") say("") set_state(kill) end end state kill begin when enter begin pc.setqf("mobcount", 0) end when leave begin pc.setqf("mobcount", 0) q.done() end when letter begin q.set_counter(string.format("Faltam %d.", xkillmt2.isMobCount())) end when 101.kill begin local count = pc.getqf("mobcount")+1 pc.setqf("mobcount", count) q.set_counter(string.format("Faltam %d.", xkillmt2.isMobCount())) if xkillmt2.isMobCompleted() then say_title("Missão de Combate #1 Completada") say("") say("Eu acho que você completou a missão adequadamente.") say("") say("Obrigado, a sua missão foi concluída com êxito.") say("Vou lhe dar a sua recompensa por me ajudar.") say("") wait() xkillmt2.isMobGive() set_state(stone) q.done() end end -- w function isMobCompleted() return pc.getqf("mobcount")>=20 end function isMobCount() return 20-pc.getqf("mobcount") end function isMobGive() local i = {{19,1},{29,1},{39,1}} local n = number(1,table.getn(i)) return pc.give_item2(tonumber(i[n][1]), tonumber(i[n][2])) end when letter begin send_letter("Derrote 20 Cão Selvagem") end when button or info begin say_title("Derrote 20 "..mob_name(101)) say("") say("Você ainda não completou a missão de combate.") say("") say_reward(string.format("Faltam: %d", xkillmt2.isMobCount())) say("") end end -- s kill state stone begin when letter begin send_letter("Missão de Combate #2") end when button or info begin say_title("Olá, "..pc.get_name()) say("") say("Nessa segunda missão de combate você terá de destroi") say("3 Metins diferentes.") say("") say("1 - "..mob_name(8001)) say("1 - "..mob_name(8002)) say("1 - "..mob_name(8003)) say("") set_state(metin) end end state metin begin when enter begin pc.setqf("metincount", 0) pc.setqf("metin8001", 0) pc.setqf("metin8002", 0) pc.setqf("metin8003", 0) end when leave begin pc.setqf("metincount", 0) pc.setqf("metin8001", 0) pc.setqf("metin8002", 0) pc.setqf("metin8003", 0) q.done() end when letter begin q.set_counter(string.format("Faltam %d.", xkillmt2.isMetinCount())) end when kill with xkillmt2.isMetin(npc.get_race()) == true begin local count = pc.getqf("metincount")+1 pc.setqf("metincount", count) q.set_counter(string.format("Faltam %d.", xkillmt2.isMetinCount())) if xkillmt2.isMetinCompleted() then say_title("Missão de Combate #2 Completada") say("") say("Eu acho que você completou a missão adequadamente.") say("") say("Obrigado, a sua missão foi concluída com êxito.") say("Vou lhe dar a sua recompensa por me ajudar.") say("") wait() xkillmt2.isMetinGive() set_state(__COMPLETE__) q.done() end end -- w function isMetinCompleted() return pc.getqf("metincount")>=3 end function isMetinCount() return 3-pc.getqf("metincount") end function isMetinGive() local i = {{50028,1},{50029,1},{50030,1}} local n = number(1,table.getn(i)) return pc.give_item2(tonumber(i[n][1]), tonumber(i[n][2])) end function isMetin(race) if race == 8001 and pc.getqf("metin8001") == 0 then pc.setqf("metin8001", 1) return true end if race == 8002 and pc.getqf("metin8002") == 0 then pc.setqf("metin8002", 1) return true end if race == 8003 and pc.getqf("metin8003") == 0 then pc.setqf("metin8003", 1) return true end return false end when letter begin send_letter("Destroi 3 Metins diferentes!") end when button or info begin say_title("Destroi 3 Metins diferentes!") say("") say("Você ainda não completou a missão de combate.") say("") say(mob_name(8001)..", você destruiu: "..pc.getqf("metin8001")) say(mob_name(8002)..", você destruiu: "..pc.getqf("metin8002")) say(mob_name(8003)..", você destruiu: "..pc.getqf("metin8003")) say("") say_reward(string.format("Faltam: %d", xkillmt2.isMetinCount())) say("") end end -- s metin state __COMPLETE__ begin end -- s end -- q
  7. xkillmt2

    pc.getqf de outra quest

    quest getcount begin state start begin -- when kill with not npc.is_pc() begin when 101.kill begin local c = pc.getqf("count")+1 pc.setqf("count", c) end when login with pc.getqf("count") < 0 begin pc.setqf("count", 0) end when letter begin send_letter("Contagem de Mortos") end when button or info begin say_title("Olá, "..pc.get_name()) say("") say("Você matou: "..pc.getqf("count")) say("") end end end
  8. xkillmt2

    [QUEST] Teleport error.

    Missed closings on options quest inventario_teleport begin state start begin when login begin cmdchat("Teleport "..q.getcurrentquestindex()) end when button or info begin say_title("Anillo teletransportador:") say("A que mapa deseas teletransportarte ?") say("") -- 7 opções local s = select("Imperios","Regiones Forestales","Cuevas de Arañas","Zonas de Atlantea","Otras Regiones","Mapas de Leveo","Cerrar") if s == 1 then say_title("Anillo teletransportador:") say("") -- start ss // Imperios local ss = select("Reino Shinsoo","Reino Chunjo","Reino Jinno","Cerrar") if ss == 1 then say_title("Anillo teletransportador:") say("") local ciudades = select("Ciudad 1","Ciudad 2","Cerrar") if ciudades == 1 then pc.warp(473900,954600) elseif ciudades == 2 then pc.warp(352300,882700) else return -- Cerrar end elseif ss == 2 then say_title("Anillo teletransportador:") say("") local citys = select("Ciudad 1","Ciudad 2","Cerrar") if citys == 1 then pc.warp(63200,166700) elseif citys == 2 then pc.warp(145700,239800) else return -- Cerrar end elseif ss == 3 then say_title("Anillo teletransportador:") say("") local citys = select("Ciudad 1","Ciudad 2","Cerrar") if citys == 1 then pc.warp(959600,269700) elseif citys == 2 then pc.warp(863800,246000) else return -- Cerrar end else return -- Cerrar end -- end ss elseif s == 2 then say_title("Anillo teletransportador:") say("") -- start sss // Regiones Forestales local sss = select("Bosque","Bosque Rojo (Inicio)","Bosque Rojo (Final)","Cerrar") if sss == 1 then pc.warp(288700,5700) elseif sss == 2 then pc.warp(1119900,70800) elseif sss == 3 then pc.warp(1118100,8600) else return -- Cerrar end -- end sss elseif s == 3 then say_title("Anillo teletransportador:") say("") -- start zindan // Cuevas de Arañas local zindan = select("Caverna de Arañas (V1)","Caverna de Arañas (V2)","Cerrar") if zindan == 1 then pc.warp(59800,497300) elseif zindan == 2 then pc.warp(704100,521900) else return -- Cerrar end -- end zindan elseif s == 4 then say_title("Anillo teletransportador:") say("") -- start atlantea // Zonas de Atlantea local atlantea = select("Gruta del Exilio (Lv 40)","Sala del Dragón (Lv 70)","Cerrar") if atlantea == 1 then if pc.get_level() < 40 then pc.warp(0,1203200) else return end elseif atlantea == 2 then if pc.get_level() < 80 then pc.warp(819200,1049600) else return end else return -- Cerrar end -- end atlantea elseif s == 5 then say_title("Anillo teletransportador:") say("") -- start sssssss // Otras Regiones local sssssss = select("Valle de Seungryong","Monte Sohan","Desierto Yongbi","Tierra de Fuego","Tierra de Gigantes","Torre de Demonios","Cerrar") if sssssss == 1 then pc.warp(336000,755600) elseif sssssss == 2 then pc.warp(436400,215600) elseif sssssss == 3 then pc.warp(296800,547400) elseif sssssss == 4 then pc.warp(600800,687400) elseif sssssss == 5 then pc.warp(829900,763300) elseif sssssss == 6 then pc.warp(590500,110500) else return -- Cerrar end -- end sssssss elseif s == 6 then say_title("Anillo teletransportador:") say("") -- start sssssss // Mapas de Leveo local sssssss = select("Acantilado de Gautama (90)","Bahía Nefrite (90)","Cabo del Dragón (90)","Cerrar") if sssssss == 1 then if pc.get_level() < 90 then pc.warp(1177600,1664000) else return end elseif sssssss == 2 then if pc.get_level() < 90 then pc.warp(1049600,1510400) else return end elseif sssssss == 3 then if pc.get_level() < 90 then pc.warp(1024000,1664000) else return end end -- end else return -- Cerrar end end end end
  9. Estranho aqui não ocorre nenhum erro. Build VC141/BSD11:
  10. Vá em db/src/ClientManager.cpp e pesquise por: void CClientManager::ChargeCash(const TRequestChargeCash* packet) Depois altere por: void CClientManager::ChargeCash(const TRequestChargeCash* packet) { char szQuery[512]; if (ERequestCharge_Cash == packet->eChargeType) // cash to coins sprintf(szQuery, "update account set `coins` = `coins` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID); else if(ERequestCharge_Mileage == packet->eChargeType) sprintf(szQuery, "update account set `mileage` = `mileage` + %d where id = %d limit 1", packet->dwAmount, packet->dwAID); else { sys_err ("Invalid request charge type (type : %d, amount : %d, aid : %d)", packet->eChargeType, packet->dwAmount, packet->dwAID); return; } sys_err ("Request Charge (type : %d, amount : %d, aid : %d)", packet->eChargeType, packet->dwAmount, packet->dwAID); CDBManager::Instance().AsyncQuery(szQuery, SQL_ACCOUNT); }
  11. xkillmt2

    Slot Montadas

    Erro de posição, verifique em common\length.h: enum EWearPositions { WEAR_BODY, // 0 WEAR_HEAD, // 1 WEAR_FOOTS, // 2 WEAR_WRIST, // 3 WEAR_WEAPON, // 4 WEAR_NECK, // 5 WEAR_EAR, // 6 WEAR_UNIQUE1, // 7 WEAR_UNIQUE2, // 8 WEAR_ARROW, // 9 WEAR_SHIELD, // 10 WEAR_ABILITY1, // 11 WEAR_ABILITY2, // 12 WEAR_ABILITY3, // 13 WEAR_ABILITY4, // 14 WEAR_ABILITY5, // 15 WEAR_ABILITY6, // 16 WEAR_ABILITY7, // 17 WEAR_ABILITY8, // 18 WEAR_COSTUME_BODY, // 19 WEAR_COSTUME_HAIR, // 20 WEAR_COSTUME_MOUNT, // 21 Posição do Slot WEAR_COSTUME_ACCE, // 22 WEAR_COSTUME_WEAPON, // 23 WEAR_RING1, // 24 : ½Å±Ô ¹ÝÁö½½·Ô1 (¿ÞÂÊ) WEAR_RING2, // 25 : ½Å±Ô ¹ÝÁö½½·Ô2 (¿À¸¥ÂÊ) WEAR_BELT, // 26 : ½Å±Ô º§Æ®½½·Ô WEAR_MAX = 32 // }; Continuando no common verifique o subtype em item_length.h: enum ECostumeSubTypes { COSTUME_BODY = ARMOR_BODY, // 0 subtype COSTUME_HAIR = ARMOR_HEAD, // 1 subtype COSTUME_MOUNT, // 2 subtype COSTUME_ACCE, // 3 subtype COSTUME_WEAPON, // 4 subtype COSTUME_NUM_TYPES, }; Verifique em db/src/ProtoReader.cpp static string arSub28[] = { "COSTUME_BODY", "COSTUME_HAIR", "COSTUME_MOUNT", "COSTUME_ACCE", "COSTUME_WEAPON" }; Verifique em Client\UserInterface\GameType.h: #ifdef ENABLE_COSTUME_SYSTEM const DWORD c_Costume_Slot_Start = c_Equipment_Start + 19; // [ÁÖÀÇ] ¼ýÀÚ(19) ÇϵåÄÚµù ÁÖÀÇ. ÇöÀç ¼­¹ö¿¡¼­ ÄÚ½ºÃõ ½½·ÔÀº 19ºÎÅÍÀÓ. ¼­¹ö common/length.h ÆÄÀÏÀÇ EWearPositions ¿­°ÅÇü Âü°í. const DWORD c_Costume_Slot_Body = c_Costume_Slot_Start + 0; // 19 const DWORD c_Costume_Slot_Hair = c_Costume_Slot_Start + 1; // 20 const DWORD c_Costume_Slot_Mount = c_Costume_Slot_Start + 2; // 21 Posição do Slot const DWORD c_Costume_Slot_Acce = c_Costume_Slot_Start + 3; // 22 const DWORD c_Costume_Slot_Weapon = c_Costume_Slot_Start + 4; // 23 const DWORD c_Costume_Slot_Count = 5; const DWORD c_Costume_Slot_End = c_Costume_Slot_Start + c_Costume_Slot_Count; #endif Correção do slot belt e ring_left e ring_right: #ifdef ENABLE_NEW_EQUIPMENT_SYSTEM const DWORD c_New_Equipment_Start = c_Equipment_Start + 24; // 24 Posição de slot const DWORD c_New_Equipment_Count = 3; const DWORD c_Equipment_Ring1 = c_New_Equipment_Start + 0; // 24 const DWORD c_Equipment_Ring2 = c_New_Equipment_Start + 1; // 25 const DWORD c_Equipment_Belt = c_New_Equipment_Start + 2;; // 26 #endif Verifique em Client\UserInterface\PythonItemModule.cpp: #ifdef ENABLE_COSTUME_SYSTEM PyModule_AddIntConstant(poModule, "ITEM_TYPE_COSTUME", CItemData::ITEM_TYPE_COSTUME); // Item Sub Type PyModule_AddIntConstant(poModule, "COSTUME_TYPE_BODY", CItemData::COSTUME_BODY); PyModule_AddIntConstant(poModule, "COSTUME_TYPE_HAIR", CItemData::COSTUME_HAIR); PyModule_AddIntConstant(poModule, "COSTUME_TYPE_MOUNT", CItemData::COSTUME_MOUNT); PyModule_AddIntConstant(poModule, "COSTUME_TYPE_ACCE", CItemData::COSTUME_ACCE); PyModule_AddIntConstant(poModule, "COSTUME_TYPE_WEAPON", CItemData::COSTUME_WEAPON); // Àκ¥Å丮 ¹× Àåºñâ¿¡¼­ÀÇ ½½·Ô ¹øÈ£ PyModule_AddIntConstant(poModule, "COSTUME_SLOT_START", c_Costume_Slot_Start); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_COUNT", c_Costume_Slot_Count); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_BODY", c_Costume_Slot_Body); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_HAIR", c_Costume_Slot_Hair); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_MOUNT", c_Costume_Slot_Mount); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_ACCE", c_Costume_Slot_Acce); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_WEAPON", c_Costume_Slot_Weapon); PyModule_AddIntConstant(poModule, "COSTUME_SLOT_END", c_Costume_Slot_End); #endif Verifique em uiscript->costumewindow.py: "slot" : ( {"index":COSTUME_START_INDEX+0, "x":62, "y":45, "width":32, "height":64},# 19 - Posição de slot {"index":COSTUME_START_INDEX+1, "x":62, "y": 9, "width":32, "height":32},# 20 {"index":COSTUME_START_INDEX+2, "x":13, "y":126, "width":32, "height":32},# 21 {"index":COSTUME_START_INDEX+3, "x":62, "y":126, "width":32, "height":32},# 22 {"index":COSTUME_START_INDEX+4, "x":13, "y":13, "width":32, "height":96},# 23 ),
  12. xkillmt2

    Bug Montarias

    @Marcos verifica se no seu root->npclist.txt está definido corretamente, caso esteja tudo OK verifique o pack e por ultimo verifique o arquivo responsável pelo carregamento dos arquivos em GameLib->RaceManager.cpp. Observação: montarias novas é necessário criar um novo load em RaceManager.cpp.
  13. xkillmt2

    Erro mysql | mudar de nome

    Bem, isso está relacionado com root->introselect.py: def OpenChangeNameDialog(self): import uiCommon nameInputBoard = uiCommon.InputDialogWithDescription() nameInputBoard.SetTitle(localeInfo.SELECT_CHANGE_NAME_TITLE) nameInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputName)) nameInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputName)) nameInputBoard.SetMaxLength(chr.PLAYER_NAME_MAX_LEN) nameInputBoard.SetBoardWidth(200) nameInputBoard.SetDescription(localeInfo.SELECT_INPUT_CHANGING_NAME) nameInputBoard.Open() nameInputBoard.slot = self.slot self.nameInputBoard = nameInputBoard def OnChangeName(self, id, name): self.SelectSlot(id) self.sendedChangeNamePacket = False self.PopupMessage(localeInfo.SELECT_CHANGED_NAME) def AcceptInputName(self): changeName = self.nameInputBoard.GetText() if not changeName: return self.sendedChangeNamePacket = True net.SendChangeNamePacket(self.nameInputBoard.slot, changeName) return self.CancelInputName() def CancelInputName(self): self.nameInputBoard.Close() self.nameInputBoard = None return True Aqui ocorreu esse bug quando adicione o sistema de faixas, resolvi alterando o locale na source bin.
  14. xkillmt2

    Limite 4 Refines

    Sim é possível aumentar, basta ir em common/item_length.h Find: REFINE_MATERIAL_MAX_NUM = 5, Replace: REFINE_MATERIAL_MAX_NUM = 6, Agora vá em ClientManagerBoot.cpp Find: "SELECT id, cost, prob, vnum0, count0, vnum1, count1, vnum2, count2, vnum3, count3, vnum4, count4 FROM refine_proto%s", Replace: "SELECT id, cost, prob, vnum0, count0, vnum1, count1, vnum2, count2, vnum3, count3, vnum4, count4, vnum5, count5 FROM refine_proto%s", Part Client: Vá em UserInterface/Packet.h Find: REFINE_MATERIAL_MAX_NUM = 5, Replace: REFINE_MATERIAL_MAX_NUM = 6, Part Database: ALTER TABLE `refine_proto` ADD COLUMN `vnum5` int(10) unsigned NOT NULL DEFAULT '0' AFTER `count4`; ALTER TABLE `refine_proto` ADD COLUMN `count5` smallint(6) NOT NULL DEFAULT '0' AFTER `vnum5`;
  15. xkillmt2

    Link Direto Freebsd

    Acho que é necessário instalar o apache24.
×

Important Information

By using this site, you agree to our Terms of Use.

Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.
You will be able to see content when you disable your adblocker and enable javascript.