Ir para conteúdo

Ahamaladha

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Ahamaladha recebeu reputação de Striker Macabrus em Projeto Hasiatic - RPG Inovador   
    Muito boa a ideia. Imagino que nesse contexto guerras de territórios (algo que ocorre muito em outros jogos) ficaria muito interessante. Ansioso por mais noticias.
  2. Gostei
    Ahamaladha recebeu reputação de Striker Macabrus em Como colocar group   
    Cara olha em talkactions vê se tem algo errado lá, se tiver algo errado (ou não) avisa.
  3. Gostei
    Ahamaladha recebeu reputação de Striker Macabrus em Ajuda !! Acesso a locais liberados   
    So usar os SAMPLE que tenham o acesso, ai os outros personagens criados apartir dele ja terão o acesso.
     
     
  4. Gostei
    Ahamaladha recebeu reputação de Striker Macabrus em Retirar potions infinitas.   
    Tenta 
    local config = { removeOnUse = "yes", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "no", realAnimation = "no", -- make text effect visible only for players in range 1x1 healthMultiplier = 1.0, manaMultiplier = 1.0 } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {200, 300}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {300, 500}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion [7591] = {empty = 7635, splash = 2, health = {600, 800}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {900, 1100}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {150, 250}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {200, 300}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion [7590] = {empty = 7635, splash = 7, mana = {350, 450}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {300, 400}, mana = {300, 400}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion } local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return TRUE end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return TRUE end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_ORANGE) if(not realAnimation) then doCreatureSay(itemEx.uid, "Baiakziin...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Baiakziin...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust) if(not potion.empty or config.removeOnUse) then doRemoveItem(item.uid, 1) return TRUE end doRemoveItem(item.uid, 0) doPlayerAddItem(cid, potion.empty, 0) doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty)) doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty)) return TRUE end  
  5. Gostei
    Ahamaladha deu reputação a TonyHalk em Pasta Data - Funções Em Lua   
    Parte I – Funções Lua


    irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
    Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
    Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).

    Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui

    Funções Get
    São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
    Dividi elas em dois grupos, a get simples e a get com parametros.

    Funções get simples
    São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
    Os que há creature pode ser usados em monstros (a maioria).
    São elas :

    getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
    getCreatureHealth(cid) – Verifica a health atual do player.
    getCreatureMaxHealth(cid) – Verifica a health maxima do player.
    getCreatureMana(cid) – Verifica a mana atual do player.
    getCreatureMaxMana(cid) – Verifica a mana maxima do player.
    getPlayerLevel(cid) – Verifica o level do player.
    getPlayerExperience(cid) – Verifica a experiencia.
    getPlayerMagLevel(cid) – Verifica o magic level.
    getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
    getPlayerTown(cid) - Verifica o id da cidade natal do player.
    getPlayerVocation(cid) – Verifica a vocação dele.
    getPlayerSoul(cid) – Verifica o soul points.
    getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
    getPlayerLight(cid) - Verifica o tamanho da luz do player.
    getPlayerGuildId(cid) – Verifica o id atual da guild do player.
    getPlayerGuildName(cid) – Verifica o nome da guild.
    getPlayerGuildRank(cid) - Verifica o posto dele na guild.
    getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
    getPlayerGuildLevel(cid) – Verifica o nivel da guild.
    getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
    getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
    getPlayerGUID(cid) – Verifica o id dele na database.
    getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
    getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
    getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
    getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
    getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
    getCreatureOutfit(cid) – Verifica o id da roupa do player.
    getCreaturePosition(cid) – Verifica a posição x,y,z do player.
    getCreatureSpeed(cid) – Verifica a velocidade atual do player.
    getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
    getCreatureName(cid) – Verifica o nome do player.
    getCreatureTarget(cid) – Verifica quem o player está atacando.
    getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
    getPlayerSkullType(cid) – Verifica qual skull o player possui.
    getPlayerBalance(cid) – Verifica o saldo bancario do player.
    getPlayerStamina(cid) – Verifica o tempo de stamina.
    getPlayerNoMove(cid) – Verifica se ele pode se mover.
    getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
    getPlayerPartner(cid) – Se o player está em parte ou não.
    getPlayerParty(cid) – Verifica informações da party do player.
    getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
    getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
    getCreatureSummons(cid) – Verifica os summons da criatura.


    A sintaxe dessas funções é essa :
    Exemplo :

    if getCreatureMana(cid) == 20 then

    Ou

    mana = getCreatureMana(cid)
    if mana == 20 then


    Funções get com parametros.

    Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
    Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
    São elas :


    getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
    getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
    getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
    getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
    getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
    getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
    getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
    getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
    getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
    getPlayerInstantSpellInfo(cid, index) - Desconheço
    getInstantSpellInfoByName(cid, name) - Verifica valores da magia
    getInstantSpellWords(name) - Retorna a palavra magica da magia.
    getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
    getCreatureByName(name) - Retorna o nome da criatura.
    getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
    getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
    getContainerSize(uid) - Verifica quantos slots tem o container.
    getContainerCap(uid) - Verifica quanto pesa o container.
    getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
    getDepotId(uid) - - Verifica o id da cidade do depot.
    getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
    getItemNameById(itemid) - - Pega o nome do item pelo id.
    getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
    getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
    getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
    getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
    getItemName(uid) - - Pega a descrição do item por uid.
    getItemAttack(uid) - Pega o ataque do item por uid.
    getItemPluralName(uid) - Pega o nome em plural por uid.
    getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
    getItemIdArticle(uid) - - Desconheço.
    getItemDefense(uid) - - Pega a defesa do item por uid.
    getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
    getItemArmor(uid) - - Pega o valor de armour por uid.
    getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
    getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
    getItemIdByName(name) - - Retorna o id do item pelo nome.
    getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
    getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
    getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
    getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.





    Funções Set
    São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
    Exemplo :

    Quote

    if getItemNameById(item.uid) == 'boots of haste' then
    setItemArmor(item.uid, 5)
    end

    No caso se o item se chamar boots of haste, o script coloca arm 5 nela.

    São elas :

    setItemAttack(uid, attack) - Modifica o ataque da arma
    setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
    setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
    setPlayerPartner(cid, guid) - Desconheço
    setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
    setItemName(uid) - Muda o nome do item.
    setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
    setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
    setItemDefense(uid, defense) - Modifica defesa no item
    setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
    setItemArmor(uid, armor) - Modifica a armor do item
    setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
    setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
    setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
    setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
    setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced




    Funções do
    Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
    A sintaxe dela é :
    if item.itemid == 2195 then
    doCreatureAddHealth(cid, -1000)
    end

    No caso se o item usado no script for 2195, ele remove 1000 de hp.

    São elas :
    doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
    doRemoveItem(uid, quantidade) - Remove o item do player.
    doPlayerFeed(cid, food) - Adiciona "comida" ao player.
    doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
    doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
    doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
    doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
    doCreatureSay(cid, text, type) - - Faz o player falar algo.
    doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
    doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
    doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
    doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
    doSetItemText(uid, text) - - Adiciona um texto ao item.
    doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
    doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
    doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
    doCreatureAddHealth(cid, health) - Adiciona life ao player.
    doCreatureAddMana(cid, mana) - Adiciona mana ao player.
    doPlayerSetTown(cid, townid) - Muda a cidade do player.
    doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
    doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
    doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
    doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
    doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
    doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
    doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
    doPlayerBroadcastMessage(cid, message, <optional> type) -
    doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
    doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
    doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
    doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
    doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
    doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
    doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
    doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
    doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
    doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
    doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
    doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
    doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
    doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
    doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
    doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
    doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
    doShowTextDialog(cid, itemid, text) - Mostra o texto do item
    doDecayItem(uid) - Decai o item (aprodecer)
    doCreateItem(itemid, type/count, pos) -
    doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
    doTileAddItemEx(pos, uid) - Cria um item2 em um tile
    doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
    doCreateTeleport(itemid, topos, createpos) - Cria um teleport
    doSummonCreature(name, pos) - Sumona um monstro

    Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.


    Stackpos
    Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
    O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.


    Quote

    0 – ground (chão)
    1- Qualquer objeto acima do chão (se houver chão)
    253 – player ou monstro
    255 – item mais alto de qualquer pilha
    65535 – dentro de um player

    Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
    Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim


    Quote

    0 – chão
    1 – mesa
    2 – bag
    Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.

    Quote

    0-chão
    1-mesa
    2-scarab coin
    3-backpack
    4-bag

    Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
    Veja esse exemplo :
    stackpos:

    Quote

    0-areia
    1-mesa
    2-backpack
    3-bag
    4-gold coin
    5-rope
    6-shovel
    7-machete
    8-dead human

    Nesse caso a ordem dos itens de baixo para cima é :
    Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
    Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.



    Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
    Peço desculpas se ele fico confuso
    Pois não estou vagal quanto antes e tenho pouco tempo...
    Esperem que virão mais tutoriais.

    Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
  6. Gostei
    Ahamaladha recebeu reputação de Alexcpa em Criando 1 servidor OT Para iniciantes   
    Se gosta de mapa custom tem esse Baiak Roxv4
    Se gostar de global Global 8.6
     
    Se tiver duvida de como deixa on tem esse tópico que pode te ajudar Criando OTSV
     
    Qualquer coisa se ajudei deixa um REP+
     
  7. Gostei
    Ahamaladha deu reputação a shakkur em Projeto Hasiatic - RPG Inovador   
    Projeto Hasiatic
    Contexto Buscando trazer um modo diferente de se jogar, aplicando conceitos que se perderam nos últimos anos do OTServ, venho por meio deste apresentar um projeto que visa inovar na forma de se jogar Tibia. Quero que este não seja somente uma ideia, mas sim, o começo de uma mudança nos paradigmas dos OTServers. Cabe ressaltar que, o projeto ainda não possui membros em sua equipe, é apenas uma ideia no papel, porém pronta para ser discutida, amadurecida e desenvolvida. Espero que haja interesse verdadeiro por parte dos membros deste fórum, a fim de tornar possível que o projeto seja levado em frente. Bom, vamos ao que interessa..
     
    Ideia Não sei se alguém aqui já jogou Rise of Nations, por tal irei dar uma briefing deste. RON é um jogo estilo Age of Empires, um Real Time Strategy (RTS) antigo, porém muito legal de se jogar. Ele possui como equipe jogáveis, nações que coexistem em tempos atuais, como Russia, Estados Unidos, China, e outras que, possuem raízes em alguns povos atuais, exemplo dos Persas (atualmente o Irã). 
     
    Nesta ideia, amadureci a ideia de criar um servidor com as nações atuais, utilizando o mapa do mundo atual, porém sem termos 193 países (fonte: ONU), mas sim algumas das maiores nações do nosso mundo.
     
    Pode parecer irrealista, um mapa espelhado no mundo atual, porém isto não é irrealista se o projeto crescer e ter passos definidos de como este crescimento será sustentável. O maior responsável por fazer isto acontecer é o feedback dos jogadores e desenvolvedores. Continuando..
     
    Falei do mapa, e voltarei a complementar posteriormente. Por ora, irei explicar a História para que tudo faça sentido.
     
    História Idade Média Alta, ano de 976 d.C, tempo de declínio de algumas das maiores nações que o mundo já teve conhecimento. O mundo se prepara para enfrentar um problema ainda maior, e não estamos falando de guerras religiosas e/ou políticas.
     
    Não estamos neste mundo como o topo da cadeia alimentar. Criaturas e Monstros agora não são mais parte de estórias. Eles existem, e teremos de enfrenta-los ou nos escondermos.
     
    Não existe uma explicação que permita explicar "o surgimento" deles, ou talvez exista?
     
    Quando o mundo teve de buscar alternativas de moradia após o colapso das nações, imediatamente a ideia de explorar terras não conhecidas foi uma solução obvia. Não esperávamos que, por traz de densas florestas, de terras imundadas ou montanhas monumentais, fossemos encontrar estas criaturas, que agora percebem um grande planeta para dominar.
     
    A partir de então, 1.040 anos se passaram. Fizemos muitos avanços científicos, mas nenhum que possibilitasse extinguirmos as criaturas e monstros que habitam nosso mundo, agora logo atras dos muros de nossas cidades.
     
    A magia, um de nossos maiores avanços, possibilitou enfrentarmos as criaturas mais maléficas, que antes destruíam cidades e devoravam exércitos.
     
    Agora, porém, construímos uma estabilidade que outrora não era possível. Nações poderosas, com exércitos aguerridos protegem os mais fracos habitantes, e de nossas fortalezas nenhum invasor irá adentrar.
     
    Mas por que escolhi a palavra "invasor"? Palavra um tanto vaga, muitos significados, certo?
     
    É ai que a brincadeira o projeto começa..
     
    Sistemas e Complementos Como dito anteriormente, a ideia é mudar os paradigmas dos OTServers futuros. Para isto, é melhor termos um arsenal de ideias que traduzam em jogabilidade nossos mais sinceros desejos.
     
    Mapa:
    Citei anteriormente a ideia de um mapa de nosso mundo atual. Obviamente é muito grande, muitos detalhes, mas nada inalcançável. Proponho então, iniciarmos o andamento do projeto com o continente da Ásia, construindo 2 países e suas ilhas circundantes, a China e o Japão. Serão duas capitais, ou melhor, cidades principais, Xangai e Tóquio. Arquitetura em seu estilo semelhante, aplicando características de relevo e clima. As cidades, próximas ao mar, serão as únicas que possibilitam viajar por navio para outra. Porém, como sabemos da história, China e Japão não são aliados, e nem pretendem ser. A disputa geopolítica será posta a prática, e frequentemente, teremos acontecimentos reais implementados na jogabilidade. Agora que temos o ponto base, iremos aos sistemas (ainda idéias) que proponho.
     
    Apêndice 1: O mundo será implementado de tal forma que, as fronteiras da China com os outros países será bloqueada por terrenos intransponíveis, de forma que, ao final do processo de desenvolvimento de novos territórios, estes fiquem acessíveis através de missões em grupo, a fim de abrirem o caminho dos novos territórios. Pensem no quão legal deverá ser, juntar Chineses e Japoneses para abrir terreno em novos territórios
     
    Sistemas:
    Busco muita variedade de acontecimentos no jogo, torná-lo dinâmico, não ficar preso no marasmo de caçar e arrumar confusão para buscar guerras. Para isto, é necessário ingredientes que atraiam a atenção ao jogo.
     
    Como disse antes, China e Japão não são lá muito amigos, as relações bilaterais são puramente no sentido econômico e de boa vizinhança. Com isto, teremos cidadães Chineses e Japoneses, jogadores que escolheram viver em uma das terras. O divertido é que, quem formenta o relacionamento das duas nações é a guilda predominante no território. Podendo haver líderes que queiram guerras, invasões, enquanto poderá haver outros que queiram a paz, relações cordiais, ainda mais quando perceberem que não são só as duas nações no mundo. 
     
    Em tempos de guerra, cidadãos de uma nação não poderão ir a outra nação, nem caçar em seu território, pois isto fará com que a guilda predominante e seus aliados busquem por estes aventureiros e os façam pagar por sua ousadia. Quer arriscar, arrisque, mas leve seu batalhão, ou faça aliança com as guildas menos favorecidas da outra nação, e force batalhas que sacrifiquem a predominância da guilda em sua própria nação, enfraquecendo-a para outra guilda tomar a posse do território (semelhante ao sistema político).
     
    As invasões são um ponto interessante, que deverá ser muito bem definido. Torres avançadas permitiram que os cidadãos da nação invadida tenha conhecimento prévio de invasão, e possam fechar a cidade, impedindo os inimigos de adentrar sua cidadela. Somente os mais bravos e preparados iram a batalha, com a benção de todos da nação.
     
    Inimigos poderão subornar certas pessoas da guilda predominante, a fim de que possam ingressar na outra nação, seja para espionar os guerreiros desta nação, seja para fins pacíficos, como caçar em suas terras. 
     
    Pretendo que a jogabilidade seja puramente no sentido diversão, não será permitido bots muito menos multi client, a fim de tornar o jogo melhor para todos.
     
    Imagino que para este tipo de jogo, os exp rate devam ser deverás baixo, nada como o global, mas algo que permita um desenvolvimento adequado aos jogadores.
     
    Outras Informações Irei incrementar este tópico com novas informações e ideias, e sentirei-me grato caso tenham interesse em participar do projeto.
     
    Espero que, quem leu até aqui, possa complementar este tópico com novas ideias, e caso tenha interesse, publique seu nome e função pretendida no projeto. Não irei desclassificar ninguém, acredito que o comprometimento deverá ser igual a todos, e é isto que nos rege.
     
    Equipe No momento, não conto com ninguém na equipe, pretendo que isto mude nos próximos dias. Fiz uma lista básica das funções que considero primordiais ao projeto, mas sintam-se a vontade para oferecer suas habilidades no projeto. Conto com o feedback de vocês.
     
    - Mapper (2 vagas)
    - Scripter (2 vagas)
    - Designer (1 vaga)
    - Programador (1 vaga)
    - Historiador (1 vaga)
     
    Agradeço a todos que leram este tópico, e fico a disposição a todo e qualquer questionamento plausível.
     
    Críticas construtivas serão bem vindas, estou aberto a discussão.
     
    Atenciosamente,
    Marlon Ferreira
     
  8. Gostei
    Ahamaladha recebeu reputação de Magalhaes92 em Ajuda Desbloquear Modem   
    Se não me engano quando, nesse modem seu quando você libera a porta pede o IP da maquina que você esta usando? Se pedir você coloca o IP do seu pc fixo e coloca o mesmo lá em NAT se der certo avisa ae.
  9. Gostei
    Ahamaladha recebeu reputação de dudukrusty em (Resolvido)Colocar OTServ online com internet de 2 MB.   
    Sei lá cara, pra alguns players, principalmente da sua região não terão  problema, já outros poderão sofre com o lag. Vai fazendo testes com os players sobre o problema do lag. Por que assim por cima fica difícil fazer uma estimativa.
  10. Gostei
    Ahamaladha deu reputação a Danihcv em (Resolvido)[Pedido]Vocations.xml   
    Essa tem alem das normais, tem as promotion 1.
  11. Gostei
    Ahamaladha deu reputação a KekezitoLHP em Site   
    Não recomendado. O site precisa ficar junto com o servidor, ou seja, no dedicado. Se você conecta o site no dedicado o site vai levar um certo tempo até se conectar ao mysql e pegar as informações e etc, isso pode um extremo lag no seu site, ou, se você conectar o seu servidor no mysql da hospedagem (não existe isso, ninguém faz) seu servidor não liga, se ligar ninguém joga.
    O site necessita ficar junto com o dedicado
     
     
    mais se pode fazer é o seguinte:
    fazer 2 sites

    um site é o seu site de controle, que só você pode acessá-lo e ele terá controle absoluto da sua base de dados, isso significa que ele vai ter que se conectar constantemente com a base e é muito recomendável que se mantenha ambos (base de dados (+ servidor) e site de controle) em um mesmo host

    o outro site é o site externo, que vai cuidar da apresentação do servidor e tudo mais
    esse daqui vai se conectar ao host como um convidado, e só vai poder fazer consultas em certas áreas da base de dados (isso significa que, mesmo que tenha algum erro no seu site [como gesior e outros por aí], o cara só vai conseguir acessar dados publicos) como ranking, numero de contas e jogadores, quantidade online etc
    esse site, preferencialmente, deve estar em uma localização proxima do host, de modo que minimize as consultas
    a criação de contas também ficará por conta deste site de apresentação, que enviará os dados de forma segura (criptografada) para a base de dados
  12. Gostei
    Ahamaladha deu reputação a Sammy em Erro na latestnews.php   
    Não uso gesior amigo, gesior = PEDINDO PRA TOMA HACKED.
    Use ModernAAC (:
     
    Download: http://www.mediafire.com/?273w72425q6jtrm

Informação Importante

Confirmação de Termo