Ir para conteúdo

Qwizer

Héroi
  • Registro em

  • Última visita

Tudo que Qwizer postou

  1. entra no phpmyadmin entra na database clica em sql e executa o comando: ALTER TABLE `accounts` ADD `vip_time` INT( 11 ) NOT NULL DEFAULT '0' ;
  2. e so criar a coluna vip_time em accounts. como disse esse erro e pro causa do tfs, o tfs que uso com cast não da esses bugs, eu vou atualizar os scripts pra posta no v5 e quanto a demon oak esta por missao tem que dar a volta nela depois volta e troca o npc e quando ao holy tible só depois que fizer a missão da demon oak ou voce vai al e faz a quest pra pegar. Closingdoor function onStepOut(cid, item, position, fromPosition) local tile = position:getTile() if tile:getCreatureCount() > 0 then return true end local newPosition = {x = position.x + 1, y = position.y, z = position.z} local query = Tile(newPosition):queryAdd(cid) if query ~= RETURNVALUE_NOERROR or query == RETURNVALUE_NOTENOUGHROOM then newPosition.x = newPosition.x - 1 newPosition.y = newPosition.y + 1 query = Tile(newPosition):queryAdd(cid) end if query == RETURNVALUE_NOERROR and query ~= RETURNVALUE_NOTENOUGHROOM then tile:relocateTo(newPosition) end local i, tileItem, tileCount = 1, true, tile:getThingCount() while tileItem and i < tileCount do tileItem = tile:getThing(i) if tileItem and tileItem:getUniqueId() ~= item.uid and tileItem:getType():isMovable() then tileItem:remove() else i = i + 1 end end Item(item.uid):transform(item.itemid - 1) return true end
  3. Potions Heal Friend TFS 1.0 Em alguns ots que usam tfs 1.0 as potions tem um bug que não da pra healar outros players, então vou postar o scripts desbugado funcionando 100% local ultimateHealthPot = 8473 local greatHealthPot = 7591 local greatManaPot = 7590 local greatSpiritPot = 8472 local strongHealthPot = 7588 local strongManaPot = 7589 local healthPot = 7618 local manaPot = 7620 local smallHealthPot = 8704 local antidotePot = 8474 local greatEmptyPot = 7635 local strongEmptyPot = 7634 local emptyPot = 7636 local antidote = createCombatObject() setCombatParam(antidote, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(antidote, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(antidote, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE) setCombatParam(antidote, COMBAT_PARAM_AGGRESSIVE, FALSE) setCombatParam(antidote, COMBAT_PARAM_DISPEL, CONDITION_POISON) local exhaust = createConditionObject(CONDITION_EXHAUST_HEAL) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 100)) -- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion. function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid ~= 1 or itemEx.type ~= THING_TYPE_PLAYER then return true end if(getCreatureCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if(item.itemid == antidotePot) then if(doCombat(cid, antidote, numberToVariant(cid)) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == smallHealthPot) then if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 75, 125, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == healthPot) then if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 130, 180, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == manaPot) then if(doTargetCombatMana(0, itemEx.uid, 70, 130, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == strongHealthPot) then if(not(isKnight(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by paladins and knights of level 50 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 270, 320, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == strongManaPot) then if(not(isSorcerer(cid) or isDruid(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by sorcerers, druids and paladins of level 50 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatMana(0, itemEx.uid, 115, 185, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == greatSpiritPot) then if(not(isPaladin(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by paladins of level 80 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) == LUA_ERROR or doTargetCombatMana(0, cid, 100, 200, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == greatHealthPot) then if(not(isKnight(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by knights of level 80 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 425, 575, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == greatManaPot) then if(not(isSorcerer(cid) or isDruid(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by sorcerers and druids of level 80 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatMana(0, itemEx.uid, 150, 250, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) elseif(item.itemid == ultimateHealthPot) then if(not(isKnight(cid)) or (getPlayerLevel(cid) < 130)) and not(getPlayerGroupId(cid) >= 2) then doCreatureSay(cid, "This potion can only be consumed by knights of level 130 or higher.", TALKTYPE_ORANGE_1) return TRUE end if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 650, 850, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then return FALSE end doAddCondition(cid, exhaust) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1) end return TRUE end e isso pessoal.
  4. nesse caso você vai ter que fazer um action ou um talkactions onde você consegue pegar as novas montarias e addons.
  5. sim ai fica dahora. local errado mais e so por em players group_id 3 e em accounts type 5.
  6. entra em creaturescripts/others/vipstatus.lua ai vai ter la duas funçoes da promotion e so remover as 2 salvar e pronto. player:PlayerPromotion(cid, 2) player:PlayerPromotion(cid, 1) esses errinho vou remover tudo na v5, e que e coisa atoa agente nen presta atenção. Atualizado erros ao abrir corrigido.
  7. isso ai mesmo, quando der um tempinho vou fazer a atulização pra nova versao do tfs. eu vo atualizar o ot pra versão atual do tfs 1.0
  8. e por causa das sources, essas sources que postei e a original do TFS 1.0 as que uso nos ot e sources com cast, creio que e só pegar o arquivo no tfs 1.0 e trocar no ot que deva funcionar sem erro, como você deve saber, as novas animações são do tibia 10.55 esse e 10.53, vou ver se consigo as source sem o cast pra postar pois essa com cast não posso postar para download.
  9. vai demorar não, eu ia postar já nessa porem fiz cagada de importar o mapa encima do outro bugou tudo salvei sem perceber que não tinha feito bkp, mais esta em uns 70% depois se poder compilar as sources pra windows sem o debug das mounts, eu agradesço.
  10. tem sim e so alterar o RSA key do ot e criar um cliente proprio com a RSA key do ot ai seu ot nao vai se conectar com outro cliente a nao ser o proprio.
  11. tem que fazer monte de mudança, nao e facil.
  12. acho que e proibido postar link de outro, me add no skype.
  13. Qwizer postou uma resposta no tópico em Formação de Equipe
    você já tem um otserv base para iniciar o projeto?
  14. adianta não por que o tibia.exe só suporta 50 montarias, se usar ot cliente você não vai ter problemas com isso, pois la e ilimitado.
  15. no meu caso so coloquei pra nao dar debug for (const Mount& mount : Mounts::getInstance()->getMounts()) { if (player->hasMount(&mount)) { mounts.push_back(&mount); } if (mounts.size() == 50) { break; } } vai aparecer qualquer montaria pro player desde que seja no máximo 50, se passar de 50 só mostra as 50 primeiras.
  16. vou tentar fazer aqui, pra ip local acho que so com hex não sei mexer nele direito.
  17. to usando cliente próprio, kiltera já ta trabalhando pra atualizar o ipchanger pra 10.55-10.56

Informação Importante

Confirmação de Termo