Tudo que lorenzo2014 postou
- Player não falar no default
-
Crash TFS 0.3.6 Ajuda!
Olá galerá meu servidor as vezes da um crash quando vou ligar o servidor quando vai carregar o item.xml, nem sempre acontece o crash, mas as vezes acontece. Segue o Log: Error report - Mon Dec 29 10:51:08 2014 Compiler Info - GNU C++ version 4.4.0 Compilation Date - Dec 14 2014 12:36:14 Memory load: 66 Total phys: 4080920 K available phys: 1386584 K Start time: 29-12-2014 12:50:59 Kernel time: 0:0:0.218 User time: 0:0:0.125 Threads: 4 Exception: 0xc0000005 at eip = 0x4976b6(Items::parseItemNode(_xmlNode*, unsigned int) - 0x495178) eax = 0x1 ebx = 0xfffffffd ecx = 0x76229a22 -> 0x75ff85c3 edx = 0x78e0000 esi = 0x51492d8 -> 0 edi = 0x48a2c70 -> 0x6fdf18 ebp = 0x401f87c -> 0x401f9ac esp = 0x401f794 -> 0x51492d8 efl = 0x10202 ---Stack Trace--- From: 0x401f794 to: 0x4020000 0x401f794 | 0x51492d8 -> 0 0x401f798 | 0x6cba3f -> 0x756c6176 0x401f79c | 0x401f814 -> 0xfffffffd 0x401f7a0 | 0x75f400 -> 0x6fcd68 0x401f7a4 | 0x6 0x401f7a8 | 0x6 0x401f7ac | 0x401f7cc -> 0x4 0x401f7b0 | 0x5309aa8 -> 0x31313131 0x401f7b4 | 0x2 0x401f7b8 | 0x2 0x401f7bc | 0x401f7dc -> 0x48a2d48 0x401f7c0 | 0 0x401f7c4 | 0x10 0x401f7c8 | 0 0x401f7cc | 0x4 0x401f7d0 | 0x75f400 -> 0x6fcd68 0x401f7d4 | 0x5309aa8 -> 0x31313131 0x401f7d8 | 0x5309aa8 -> 0x31313131 0x401f7dc | 0x48a2d48 -> 0x6bcc90 0x401f7e0 | 0x75f42c -> 0 0x401f7e4 | 0x75f430 -> 0 0x401f7e8 | 0x2b6a 0x401f7ec | 0x48a2d44 -> 0x6bcc90 0x401f7f0 | 0x48a2d3c -> 0x6bcc90 0x401f7f4 | 0x48a2d40 -> 0x6bcc90 0x401f7f8 | 0x75f42c -> 0 0x401f7fc | 0x48a2d38 -> 0x5408894 0x401f800 | 0xffffffff 0x401f804 | 0x762d1538 -> 0x1 0x401f808 | 0 0x401f80c | 0x54089fc -> 0x6f736261 0x401f810 | 0x5408a9c -> 0x6f736261 0x401f814 | 0xfffffffd 0x401f818 | 0xd90000 -> 0xad75aebf 0x401f81c | 0 0x401f820 | 0x76229a22 -> 0x75ff85c3 0x401f824 | 0xdf6a2b24 0x401f828 | 0x75f400 -> 0x6fcd68 0x401f82c | 0x5149878 -> 0 0x401f830 | 0x5309aa8 -> 0x31313131 0x401f834 | 0 0x401f838 | 0xa 0x401f83c | 0 0x401f840 | 0x1 0x401f844 | 0x401f824 -> 0xdf6a2b24 0x401f848 | 0x7622eb72 -> 0x5d10c483 0x401f84c | 0x401fe84 -> 0x401ff74 0x401f850 | 0x7624b2cd -> 0x8b55ff8b 0x401f854 | 0xad494948 0x401f858 | 0xfffffffe 0x401f85c | 0x76229a22 -> 0x75ff85c3 0x401f860 | 0x55f44f -> 0xc48301b0 0x401f860 readXMLInteger(_xmlNode*, char const*, int&)(0x55f417) 0x401f864 | 0x5309aa8 -> 0x31313131 0x401f868 | 0x6ccb02 -> 0x66006469 0x401f86c | 0x401fe84 -> 0x401ff74 0x401f870 | 0x2b6a 0x401f874 | 0x5149878 -> 0 0x401f878 | 0x75f400 -> 0x6fcd68 0x401f87c | 0x401f9ac -> 0x401fd1c \\\\\\ stack frame ////// 0x401f880 | 0x49a4ea -> 0x51be9 <-- ret 0x401f880 Items::loadFromXml()(0x499f5a) 0x401f884 | 0x75f400 -> 0x6fcd68 0x401f888 | 0x5149878 -> 0 0x401f88c | 0x2b6a 0x401f890 | 0x7624b2cd -> 0x8b55ff8b 0x401f894 | 0xad494948 0x401f898 | 0xfffffffe 0x401f89c | 0x76229a22 -> 0x75ff85c3 0x401f8a0 | 0x444b90 -> 0x5b2cc483 0x401f8a0 FileLoader::~FileLoader()(0x444918) 0x401f988 | 0x413949b -> 0 0x401f98c | 0 0x401f990 | 0x32a7 0x401f994 | 0x401f974 -> 0xdf6a2ad4 0x401f998 | 0x6d4819 -> 0x616e5500 0x401f99c | 0x401fe84 -> 0x401ff74 0x401f9a0 | 0 0x401f9a4 | 0x6b7070 -> 0x1 0x401f9a8 | 0x6bd368 -> 0x6fc108 0x401f9ac | 0x401fd1c -> 0x401fd3c \\\\\\ stack frame ////// 0x401f9b0 | 0x4f6d00 -> 0x850fc084 <-- ret 0x401f9b0 otserv(ServiceManager*)(0x4f5677) 0x401f9b4 | 0x75f400 -> 0x6fcd68 0x401f9b8 | 0x401fc64 -> 0x412c12c 0x401f9bc | 0x401fc68 -> 0x381314c 0x401f9c0 | 0x6d47f9 -> 0x4c203e3e 0x401f9c4 | 0x6f31a0 -> 0x34 0x401f9c8 | 0x6f3220 -> 0x2c 0x401f9cc | 0x6f31e0 -> 0x34 0x401f9d0 | 0x1 0x401fcf8 | 0 0x401fcfc | 0x7622df53 -> 0x75ff85c3 0x401fd00 | 0xdf6a2e44 0x401fd04 | 0x20c 0x401fd08 | 0xd9e388 -> 0x76c61cfd 0x401fd0c | 0x779ca68c -> 0x900014c2 0x401fd10 | 0x376b750 -> 0x6fca18 0x401fd14 | 0x3760a18 -> 0x3760bf8 0x401fd18 | 0x6bd2c0 -> 0x6fb0a8 0x401fd1c | 0x401fd3c -> 0x401fd9c \\\\\\ stack frame ////// 0x401fd20 | 0x5e32f5 -> 0x5590c3c9 <-- ret 0x401fd24 | 0x3e1fe0c -> 0x6fbfe8 0x401fd28 | 0x6ade2450 0x401fd2c | 0x401fd38 -> 0x6bd2c0 0x401fd30 | 0x76235797 -> 0x9090c35d 0x401fd34 | 0xd9e598 -> 0xdc906a84 0x401fd38 | 0x6bd2c0 -> 0x6fb0a8 0x401fd3c | 0x401fd9c -> 0x401ff0c \\\\\\ stack frame ////// 0x401fd40 | 0x5c2e5f -> 0x5b4cc483 <-- ret 0x401fd44 | 0x376b764 -> 0x4f5677 0x401fd48 | 0x7622a5f4 -> 0x9090c35d 0x401fd4c | 0x762d1848 -> 0x762d1a9c 0x401fd50 | 0x401fd90 -> 0x376b750 0x401fd54 | 0x7622dfa2 -> 0x9090c359 0x401fd58 | 0xdf6a2e24 0x401fd5c | 0x401fd9c -> 0x401ff0c 0x401fd60 | 0x4fd57f -> 0x3e8b9 0x401fd60 OutputMessagePool::startExecutionFrame()(0x4fd56a) 0x401fd74 TalkAction::guildCreate(Creature*, std::string const&, std::string const&)(0x555eb6) 0x401fd78 | 0x401fd64 -> 0x401fd88 0x401fd7c | 0x961982f0 0x401fd80 | 0x14a 0x401fd84 | 0x7624b2cd -> 0x8b55ff8b 0x401fd88 | 0x54a14e36 0x401fd8c | 0xb40263 0x401fd90 | 0x376b750 -> 0x6fca18 0x401fd94 | 0x3760a18 -> 0x3760bf8 0x401fd98 | 0x6bd2c0 -> 0x6fb0a8 0x401fd9c | 0x401ff0c -> 0x401ff2c \\\\\\ stack frame ////// 0x401fda0 | 0x557446 -> 0x202404c7 <-- ret 0x401fda0 Dispatcher::dispatcherThread(void*)(0x556c26) 0x401fda4 | 0x376b750 -> 0x6fca18 0x401fda8 | 0 0x401fdac | 0x779cd6c7 -> 0x8b90458b 0x401fdb0 | 0xdfd9a600 0x401fdb4 | 0x3723f78 -> 0x2d75ae3f 0x401fdb8 | 0xd90000 -> 0xad75aebf 0x401fdbc | 0x3723f80 -> 0 0x401fdc0 | 0 0x401fe88 _SEHHandler(_EXCEPTION_RECORD*, void*, _CONTEXT*, void*)(0x4428f1) 0x401fee8 | 0 0x401feec | 0 0x401fef0 | 0 0x401fef4 | 0 0x401fef8 | 0 0x401fefc | 0 0x401ff00 | 0x8894a0 -> 0x6ff4f0 0x401ff04 | 0 0x401ff08 | 0 0x401ff0c | 0x401ff2c -> 0x401ff4c \\\\\\ stack frame ////// 0x401ff10 | 0x5dd926 -> 0x8955c3c9 <-- ret 0x401ff14 | 0x6bd2c0 -> 0x6fb0a8 0x401ff18 | 0x762d1c70 -> 0x5 0x401ff1c | 0x3723f80 -> 0 0x401ff20 | 0x8894a0 -> 0x6ff4f0 0x401ff24 | 0 0x401ff28 | 0 0x401ff2c | 0x401ff4c -> 0x401ff84 \\\\\\ stack frame ////// 0x401ff30 | 0x5a608f -> 0xfffe1ce8 <-- ret 0x401ff34 | 0x8894a0 -> 0x6ff4f0 0x401ff38 | 0x8894a0 -> 0x6ff4f0 0x401ff3c | 0x7622a629 -> 0x5ec68b5f 0x401ff40 | 0 0x401ff44 | 0 0x401ff48 | 0x3723f80 -> 0 0x401ff4c | 0x401ff84 -> 0x401ff8c \\\\\\ stack frame ////// 0x401ff50 | 0x76230bc4 -> 0x27e850 <-- ret 0x401ff54 | 0x8894a0 -> 0x6ff4f0 0x401ff58 | 0xdf6a2cfc 0x401ff5c | 0 0x401ff60 | 0 0x401ff64 | 0x3723f80 -> 0 0x401ff68 | 0x401ff58 -> 0xdf6a2cfc 0x401ff6c | 0x401ff58 -> 0xdf6a2cfc 0x401ff70 | 0x401ffcc -> 0x401ffe4 0x401ff74 | 0x401ffcc -> 0x401ffe4 0x401ff78 | 0x7624b2cd -> 0x8b55ff8b 0x401ff7c | 0xad48d8a8 0x401ff80 | 0 0x401ff84 | 0x401ff8c -> 0x401ff98 \\\\\\ stack frame ////// 0x401ff88 | 0x76230cec -> 0x909090cc <-- ret 0x401ff8c | 0x401ff98 -> 0x401ffdc 0x401ff90 | 0x75c6919f -> 0xb015ff50 <-- ret 0x401ff94 | 0x3723f80 -> 0 0x401ff98 | 0x401ffdc -> 0x401ffec \\\\\\ stack frame ////// 0x401ff9c | 0x779e0bbb -> 0xfefc45c7 <-- ret 0x401ffa0 | 0x3723f80 -> 0 0x401ffa4 | 0xdfd9a76c 0x401ffa8 | 0 0x401ffac | 0 0x401ffb0 | 0x3723f80 -> 0 0x401ffb4 | 0 0x401ffb8 | 0 0x401ffbc | 0 0x401ffc0 | 0 0x401ffc4 | 0x401ffa4 -> 0xdfd9a76c 0x401ffc8 | 0 0x401ffcc | 0x401ffe4 -> 0xffffffff 0x401ffd0 | 0x77a227e1 -> 0x8b55ff8b 0x401ffd4 | 0xac465378 0x401ffd8 | 0 0x401ffdc | 0x401ffec -> 0 \\\\\\ stack frame ////// 0x401ffe0 | 0x779e0b91 -> 0x909090cc <-- ret 0x401ffe4 | 0xffffffff 0x401ffe8 | 0x779cc9bf -> 0x90909090 0x401ffec | 0 \\\\\\ stack frame ////// 0x401fff0 | 0 <-- ret 0x401fff4 | 0x76230ca7 -> 0x8b55ff8b 0x401fff8 | 0x3723f80 -> 0 0x401fffc | 0 Alguém pode me dar uma solução para esse erro?
-
Catch Window v1.3
@Orochi Elf Sistema perfeito com player, mais com GM, group = 6, não funciona, não abre o Catch Window!
-
Catch Window v1.3
Sistema perfeito, testado e funcionando 100% Orochi Elf, o melhor scripter ativo da atualidade! Parabéns pelo ótimo trabalho!
- Player não falar no default
-
Player não falar no default
Boa noite, alguém pode me ajudar com o seguinte script, pode ser lua ou source. Se o player tiver uma storage X, ele não consiga mandar mensagem no default, mais consiga mandar mensagem nos demais canais? Otserv 0.3.6 std::string value = "1"; if(!player->getStorage(uint32_t(123456), value)) return true; Tentei bloquear no game.ccp, porém bloqueou todos os canais.
- AJUDA SCRIPT Bloquear ataque NPC Ginásio
- AJUDA SCRIPT Bloquear ataque NPC Ginásio
- AJUDA SCRIPT Bloquear ataque NPC Ginásio
-
AJUDA SCRIPT Bloquear ataque NPC Ginásio
Bom dia, estou adaptando o npc Ginásio do PDA para meu servidor, terminei o npc, porém precisava bloquear para quem não estiver em batalha com o npc não poder atacar o summon do npc, alguém pode me ajudar? Script do npc local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local pokeNpc = nil local pokeChalenger = nil local afk_limit_time = 300 -- seconds local afk_time = 0 -- don't change local battle_turn = 0 -- don't change local challenger_turn = 0 -- don't change local pokemons = { {name = "Rattata", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "normal"}, {name = "Pidgey", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "normal"}, -- {name = "Vaporeon", optionalLevel = 300, sex = SEX_FEMALE, nick = "", ball = "normal"}, -- {name = "Golduck", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "normal"}, -- {name = "Blastoise", optionalLevel = 300, sex = SEX_MALE, nick = "", ball = "normal"}, -- {name = "Starmie", optionalLevel = 300, sex = SEX_FEMALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) battle_turn = battle_turn + 1 local this = npc if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] pokeNpc = doSummonCreature(it.name, getThingPos(this)) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(pokeNpc), balleffect) setPlayerStorageValue(pokeNpc, 990, this) setPlayerStorageValue(pokeNpc, 991, "battle") setPlayerStorageValue(pokeNpc, 8595, 1) setPlayerStorageValue(this, 990, 1) addEvent(adjustWildPoke, 15, pokeNpc, it.optionalLevel) mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", it.name) doCreatureSay(this, mgo, 1) fighting = true end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Hello "..getCreatureName(cid)..", my name is Misty and I'm Cerulean's Gym Leader. How may I help you?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then --if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then -- selfSay("You have already won my Cascade Badge, maybe some other day we can fight.") -- focus = 0 --return true --end -- if not hasPokemon(cid) then -- selfSay("To battle agains't a gym leader you need pokemons.") -- return true -- end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) setPlayerStorageValue(cid, 999, 1) selfSay("Yea, let's fight!") talk_start = os.clock() setPlayerStorageValue(getThis(), 990, 1) addEvent(doSummonGymPokemon, 5, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("It is better for you to refuse a battle against me!") return true end local function doRemove(npc) local it = pokemons[battle_turn] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(pokeNpc), balleffect) doRemoveCreature(pokeNpc) end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) setPlayerStorageValue(focus, 999, -1) addEvent(doRemove, 50, this) focus = 0 return true end end local afk_warning = false function checkPoke(player, poke) end function onThink() if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 0 afk_time = 0 afk_warning = false setPlayerStorageValue(getThis(), 990, -1) return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if #getCreatureSummons(challenger) >= 1 then if pokeChalenger == nil then pokeChalenger = getCreatureName(getCreatureSummons(challenger)[1]) afk_time = 0 challenger_turn = challenger_turn + 1 elseif pokeChalenger == getCreatureName(getCreatureSummons(challenger)[1]) then afk_time = 0 else afk_time = 0 challenger_turn = challenger_turn + 1 pokeChalenger = getCreatureName(getCreatureSummons(challenger)[1]) end else afk_time = afk_time + 0.5 end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("I have waited too long, come back when you are ready!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if getPlayerStorageValue(getThis(), 990) == 0 then if battle_turn >= #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end setPlayerStorageValue(getThis(), 990, 1) addEvent(doSummonGymPokemon, 1000, getThis()) end if challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end Tentativa que fiz para bloquear o ataque para quem não estar em duel com o npc. function onTarget(cid, target) if getPlayerStorageValue(target, 990) ~= -1 then if getPlayerStorageValue(target, getPlayerStorageValue(target, 999)) == 1 then if getPlayerStorageValue(cid, getPlayerStorageValue(target, 999)) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end
-
[OPEN]Launcher(Updater)
Gabriel, tudo bem, o arquivo Thumbs.db é gerado, mais e se eu hospedar o servidor, o player irá instalar o cliente em seu computador, e se ele não tiver removido o Thumbs.db, ele não conseguirá atualizar também, certo?
- PDA By: [GOD Anna]
-
[OPEN]Launcher(Updater)
Vou tentar explicar melhor, quando eu uso o programa para fazer o launcher, ele cria uma arquivo .z, esse arquivo contém o que quero fazer o update, se eu kizer fazer update de um arquivo dentro da pasta module por exemplo, o arquivo não vai pra dentro da pasta module, e sim para a pasta raiz do otclient, uma duvida, para editar a pasta module/inventory por exemplo, tenho q fazer o patcher da pasta module inteira? E quando vou fazer o patcher de uma pasta, no meu caso de quase 2MB, ele não atualiza os arquivos, aparece a mensagem de espaço insuficiente e não atualiza os arquivos.
-
[OPEN]Launcher(Updater)
Gabriel, um problema, quando eu vou fazer o launcher, ele gera o arquivo em branco, ou seja, não tem nada dentro da pasta. Quando faço o exe generator, ai sim ele funciona, ficou claro o erro? Ele atualiza apenas arquivos da pasta raiz?
- [TFS 0.4][8.54]Pokemon Dash Advanced (PDA) + Sources
-
Catch Window v1.3
Não funcionou no dash advanced!
-
Pokémon dash v8 (Open source)
Vou contribuir com o que eu puder, mas estou igual o gristony, tb estou sem tempo. Estou terminando meu trabalho de conclusão de curso, trabalho o dia todo. Mas assim que sobrar um tempinho eu ajudo o servidor! Mas já vou logo avisando, se eu ver nego aqui só pedindo e não ajudar em nada, ai podem esquecer, pois quero ajudar em um desenvolvimento de servidor e não criar um servidor para outros colocarem online sem o minimo esforço. Acredito que todos devem cooperar com o servidor.
- Pokémon dash v8 (Open source)
- Pokémon dash v7 (Open source)
- Pokémon dash v7 (Open source)
- [Pokemon] Torneio System