Ir para conteúdo
  • Cadastre-se

TFS 1.3 [Recrutamento] RPG server NEW SYSTEMS


Posts Recomendados

  • Administrador

Sobre o projeto.

Spoiler

Vamos la começando com o projeto é o seguinte

no momento estrou trabalhando muitos aspectos do servidor vou deixar destacados aqui os que já estão disponível, porem precisam ser implementado em todo o servidor, o servidor sera baseado em XP 1 com o balanceamento e criação de novos monstros e conceitos para a jogabilidades de tais.

 

Exemplo Look

  Ocultar conteúdo

image.thumb.png.6a2fbbe6f0eb0fb8709f1d9e097b1dd7.png

 

Essa parte do jogo seria a rookguard que vai até o level 100 onde você tera acesso a novas promotions e missoes etc...

 

 

System Spell

Agora os item recebem skill, e  não existe "Classe" as Vocações do jogador são suas "patentes dentro do servidor de acordo com o rpg, cada npc ou quest influencia ou adverte esse sistema.

Cada skill pode ser adquirida dropando uma GEM SKILL que muda e tem atributos novas de acordo com a sua raridade 1, 2, 3, normal, raro,super-raro(Com os updates ja sabem.)

Alguns item ja vem com skills como item obtidos em quests e drop de monstros, item craftados podem conter 1 ou até 3 espaços para spells.


Ability Short Slash

  Ocultar conteúdo

 

Specs 

Carlin Sword Spec

Casting System

Slot Without Spells


Sword Without Spellimage.png.255a251229c4c7364cf457f4d0fe5e50.png

image.png.7d3785a8c36996ef8fc0a2389b3ea6e6.png

Spell Working

image.png.56214c3fce366f8ac6ef1625727c2ea8.png

image.png

 

 

 

Abilisty Defensive
 

  Ocultar conteúdo

 

Specs -  (Absorb all damage 1%)

image.png.16938121f01f86f6c806ee3c219689f1.png

Casting System

Slot Wihout Spells

image.png.ea07bed8fdd803c5113a965fddefeb37.pngimage.png.255a251229c4c7364cf457f4d0fe5e50.png

image.png.1b64729e94522bedff9403a1c171d43b.png

Spell Working

image.png.baf57b68cc4887f27813e10a1fa18368.png

image.png.68a83877707d0a23d24dc9c6d22a6c30.png

 

 

Estou Mudando algumas coisas na ui do servidor até o dia 17 o servidor estará disponível só para min a partir do dia 17, o server passa a ficar online.
quem pode-a entrar no servidor?

Aqueles que entrarem para Equipe do servidor(Conhecimento LUA), aqueles que querem jogar o teste server.

O conhecimento em lua deve ser baseado nos sistemas do tfs 1.0+.

A partir disso vamos trabalhar em sistemas para uma UI NOVA para o otclient em lua.

O mapa eu estou fazendo por hora, então a partir do dia 17 Estaremos recrutando mappers.

 

 

 

Aqueles que ja tiverem ideias ou sistemas para discutir e debater sobre RPG e tenha conhecimento para botar em ação me adicione.

no discord. para conversarmos.

Mande me pm ou fala ai.

Updates Mensais todo primeiro dia do més.
menos no natal claro.

Feliz natal.

Estou a procura de sprite maker,novatos são bem vindos, o primeiro passo sera criar novos Character Newtypes com Addons,Mounts.

 

 


IMAGENS ( MAPA EM DESENVOLVIMENTO)  # 1

  Ocultar conteúdo

 

image.thumb.png.9148a5ca836a009bdb8a88c4951a61ae.png

image.thumb.png.223417f25077c61b72fc578435bd0991.png

image.thumb.png.45cc0a7bbd99756bf414c862d3d53c91.png

image.thumb.png.ce2b95686bac4787c18c2311825ab678.png

image.thumb.png.19514477299bce367316d72b60081c03.png

image.thumb.png.9bb3af91021d8d6c4cf67e4a792685a5.png

image.thumb.png.43530993f25ca83e8c4153df8fcad2d2.png

image.thumb.png.71a6c110b0341738914fa3251dbd3f6d.png

image.thumb.png.dfbca12b1ca755f64ebcba556eb6311d.png

image.thumb.png.f261742d8865fc757151ac2d40dd28ac.png

image.thumb.png.7155da685954ed17e80bfb19c56bae49.png

image.thumb.png.fd340f6f569bd91e27c956d60706457d.png

 

 

 

 

Atualização Map 0.0.2

Creditos: @Ledgardo

  Ocultar conteúdo

 

 

31c57d84cf4458fbf457c4aa38998959.png

730c2e884cc8e7c276d3be06b54ef058.png

93fb4008641d41bef07484f9cf8bbc49.jpg

b04a599e7694e5539fe03d95bee39b9f.png

305bdfb2be1df140ddb38d2e8b77592a.jpg
17c55213d9a4d77ecaa2b7b099d02b3f.png

3a2dffd8c58e63ba9bd2259da3ecd1af.png

305bdfb2be1df140ddb38d2e8b77592a.jpg

2e7113e122314349457b6346c83208e6.png
2e7113e122314349457b6346c83208e6.png

47cf4760d8a186880c8b0941aa1e29a8.png

1ea14882e2ca567f8145fb63c68d0ad8.jpg
5b4873e086cdb864a305ba096d223c67.png

69435080820ff5364f38b292159dbdda.jpg

843684b0190b503a849f29ff819bd920.jpg

27cc3f02bcc2713e6646c84f3819d9f8.png

cb5206f6ccd767f720ddb1f76a70c751.jpg

e6f5e6e2ac63cfc9678b640b76234ae8.png

967d07ad70b39760e54087c0313ed889.png

35b14a9a6fd941f437bfd8d641b14387.jpg

 

 

 

 

Olá a todos a baixo formulário para preenchimento.

 

Vagas necessárias

Citar

 

Spriter 0/2

Programmer 1/2

Webmaster 1/2

OTUI/OTMOD editor 1/2

Mapper 0/2

History maker 0/

 


 

Formulaio :

Citar

 

Nome :

Idade :

Cargo :

Tempo de experiência :

Tempo disponível :

 

 

No momento necessito de um spriter seja ele iniciante ou não.

Mappers iniciantes ou não também são bem vindos, na parte de programação pelo menos conhecimento avançando em lua.

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites
  • Erimyth mudou o título para [Recrutamento] RPG server NEW SYSTEMS

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Mask Ghoul
      Olá Tibiaking
      Hoje vim trazer como aumentar Efeitos / Missile na source TFS e OTX 1.3 Utilize 8.60 OLDCLIENT estendida unit16
      então resolvi eu mesmo mexer e consegui achar e estou trazendo para vocês!

      Esse Tópico é especifico para TFS E OTX 1.3, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 2k efeitos, e mais de 500 efeitos em Distância.  Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 2k, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou DistanceEffect), caso queria os dois, use ambos. 
       
      Vamos começar em Magic Effects e DistanceShoot:
       
      Boa sorte vcs ?
      Recompila Source LINUX / Windows TFS E OTX 1.3

       
      Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar.
       
      Tópico exclusivo do Tibaking, proibido posta em outro site, blog ou fórum! 
    • Por Erimyth
      Este script funciona perfeitamente qual quer problema comente no topico.
      basta ser adicionado em action.xml com um action e adicionado ao mapa.
      local t = { players = { -- posições que os players devem ficar ao puxar a alavanca [1] = Position(33395,32661,6), [2] = Position(33394,32662,6), [3] = Position(33395,32662,6), [4] = Position(33395,32663,6), [5] = Position(33396,32662,6) }, boss = {name = "Scarlett Etzel", create_pos = Position(33396,32642,6)}, destination = Position(33395,32656,6), -- posição para qual os players serão teleportados cooldown = {0, "sec"}, -- tempo para ser teleportado novamente. Ex.: {2, "sec"}, {5, "min"}, {10, "hour"}, {3, "day"} storage = 56482 -- storage não utilizado no seu servidor } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local players, tab = {}, t.players for i = 1, #tab do local tile = Tile(tab) if tile then local p = Player(tile:getTopCreature()) if p then if p:getStorageValue(t.storage) <= os.time() then players[#players + 1] = p:getId() end end end end if #players == 0 then player:sendCancelMessage("One or all players did not wait " .. getStrTime(t.cooldown) .. " to go again.") return true end for i = 1, #tab do local playerTile = Tile(tab) local playerToGo = Player(playerTile:getTopCreature()) if playerToGo then if isInArray(players, playerToGo:getId()) then playerToGo:setStorageValue(t.storage, mathtime(t.cooldown) + os.time()) playerTile:relocateTo(t.destination) tab:sendMagicEffect(CONST_ME_POFF) end end end t.destination:sendMagicEffect(CONST_ME_TELEPORT) Game.createMonster(t.boss.name, t.boss.create_pos) item:transform(item.itemid == 36319 or 1946 or 1945) return true end local boss_room = {fromPos = Position(33386, 32639, 6), toPos = Position(33405, 32659, 6)} local bossplayer = Player(cid) local exit = Position(33395, 32659, 6) if bossplayer and isInRange(bossplayer:getPosition(), boss_room.fromPos, boss_room.toPos) then bossplayer:teleportTo(exit) end function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1](60^(v == unit[4] and 2 or i-1))(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end function getStrTime(table) -- by dwarfer local unit = {["sec"] = "second",["min"] = "minute",["hour"] = "hour",["day"] = "day"} return tostring(table[1].." "..unit[table[2]]..(table[1] > 1 and "s" or "")) end
      ? Crédito total ao Desenvolvedor que disponibilizou para toda nossa comunidade: @Underewar
      Obrigado pela Contribuição!
    • Por Codex NG
      Not tested but I wrote them anyway... this is a means of adding the missing stat information in TFS 1.3 & OTX 3 for 10.98 & up.
       
      This is the previous code protocolgame.cpp in TFS 1.3
      void ProtocolGame::AddPlayerStats(NetworkMessage& msg) { msg.addByte(0xA0); msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getMaxHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint32_t>(player->getFreeCapacity()); msg.add<uint32_t>(player->getCapacity()); msg.add<uint64_t>(player->getExperience()); msg.add<uint16_t>(player->getLevel()); msg.addByte(player->getLevelPercent()); msg.add<uint16_t>(100); // base xp gain rate msg.add<uint16_t>(0); // xp voucher msg.add<uint16_t>(0); // low level bonus msg.add<uint16_t>(0); // xp boost msg.add<uint16_t>(100); // stamina multiplier (100 = x1.0) msg.add<uint16_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getMaxMana(), std::numeric_limits<uint16_t>::max())); msg.addByte(std::min<uint32_t>(player->getMagicLevel(), std::numeric_limits<uint8_t>::max())); msg.addByte(std::min<uint32_t>(player->getBaseMagicLevel(), std::numeric_limits<uint8_t>::max())); msg.addByte(player->getMagicLevelPercent()); msg.addByte(player->getSoul()); msg.add<uint16_t>(player->getStaminaMinutes()); msg.add<uint16_t>(player->getBaseSpeed() / 2); Condition* condition = player->getCondition(CONDITION_REGENERATION); msg.add<uint16_t>(condition ? condition->getTicks() / 1000 : 0x00); msg.add<uint16_t>(player->getOfflineTrainingTime() / 60 / 1000); msg.add<uint16_t>(0); // xp boost time (seconds) msg.addByte(0); // enables exp boost in the store } The focus of what we want to change here is this
      msg.add<uint16_t>(100); // base xp gain rate msg.add<uint16_t>(0); // xp voucher msg.add<uint16_t>(0); // low level bonus msg.add<uint16_t>(0); // xp boost msg.add<uint16_t>(100); // stamina multiplier (100 = x1.0) and this
      msg.add<uint16_t>(0); // xp boost time (seconds) msg.addByte(0); // enables exp boost in the store  
       
      To do this we'll use storage values that are referenced via methods of the player class.
      Our new code will look something like this.
      // base xp gain rate msg.add<uint16_t>(player->getBaseXpGain()); // xp voucher msg.add<uint16_t>(player->getVoucherXpBoost()); // low level bonus msg.add<uint16_t>(player->getGrindingXpBoost()); // xp boost msg.add<uint16_t>(player->getStoreXpBoost()); // stamina multiplier (100 = x1.0) msg.add<uint16_t>(player->getStaminaXpBoost()); and this
      // xp boost time (seconds) msg.add<uint16_t>(player->getExpBoostStamina()); // enables exp boost in the store msg.addByte(1);  
      In player.h
      Under
      #include "mounts.h" place this
      #include "configmanager.h"  
       
      Under
      class Guild; place this
      extern ConfigManager g_config;  
       
      Under
      bool hasLearnedInstantSpell(const std::string& spellName) const; place this
      uint16_t getBaseXpGain() const { uint32_t key = g_config.getNumber(ConfigManager::BASEXPGAIN_STORAGE); int32_t value; getStorageValue(key, value); return (value < 0 ? 100 : (uint16_t)value); } uint16_t getVoucherXpBoost() const { uint32_t key = g_config.getNumber(ConfigManager::VOUCHERXPBOOST_STORAGE); int32_t value; getStorageValue(key, value); return (value < 0 ? 100 : (uint16_t)value); } uint16_t getGrindingXpBoost() const { uint32_t key = g_config.getNumber(ConfigManager::GRINDINGXPBOOST_STORAGE); int32_t value; getStorageValue(key, value); return (value < 0 ? 100 : (uint16_t)value); } uint16_t getStoreXpBoost() const { uint32_t key = g_config.getNumber(ConfigManager::STOREXPBOOST_STORAGE); int32_t value; getStorageValue(key, value); return (value < 0 ? 100 : (uint16_t)value); } uint16_t getStaminaXpBoost() const { uint32_t key = g_config.getNumber(ConfigManager::STATMINAXPBOOST_STORAGE); int32_t value; getStorageValue(key, value); return (value < 0 ? 100 : (uint16_t)value); } uint16_t getExpBoostStamina() { uint32_t key = g_config.getNumber(ConfigManager::EXPBOOSTSTAMINA_STORAGE); int32_t value; getStorageValue(key, value); return (value < 0 ? 100 : (uint16_t)value); }  
       
      Next we'll go into configmanger.cpp and find
      integer[MAX_PACKETS_PER_SECOND] = getGlobalNumber(L, "maxPacketsPerSecond", 25); and place this under it
      integer[BASEXPGAIN_STORAGE] = getGlobalNumber(L, "baseXpGain", 18000); integer[VOUCHERXPBOOST_STORAGE] = getGlobalNumber(L, "voucherXpBoost", 18001); integer[GRINDINGXPBOOST_STORAGE] = getGlobalNumber(L, "grindingXpBoost", 18002); integer[STOREXPBOOST_STORAGE] = getGlobalNumber(L, "storeXpBoost", 18003); integer[STATMINAXPBOOST_STORAGE] = getGlobalNumber(L, "staminaXpBoost", 18004); integer[EXPBOOSTSTAMINA_STORAGE] = getGlobalNumber(L, "expBoostStamina", 18005);  
      Then open up configmanager.h and find
      MAX_PACKETS_PER_SECOND, and place these under it
      BASEXPGAIN_STORAGE, VOUCHERXPBOOST_STORAGE, GRINDINGXPBOOST_STORAGE, STOREXPBOOST_STORAGE, STATMINAXPBOOST_STORAGE, EXPBOOSTSTAMINA_STORAGE,  
      Then add this to your config.lua
      -- storages for player stats baseXpGain = 18000 voucherXpBoost = 18001 grindingXpBoost = 18002 storeXpBoost = 18003 staminaXpBoost = 18004 expBoostStamina = 18005  
      Since it is just storage values then its just a matter of setting the correct storages to set the bonuses. if no value is set then it is set to a default of 100.
      Here is a screen shot to show you that this works

       
      This code is incomplete I will update it when I have time. :)
    • Por .Smile
      Olá a todos, atualmente estou aprendendo programação e desenvolvendo um Servidor, uma das coisas chatas a se fazer era ficar alternando entre um Personagem PLAYER e outro GOD para testar algumas coisas, com esses 2 scripts eu resolvi esse problema.

      É um script simples que eu pretendo futuramente melhorá-lo.

      What does the command do?
      /adm - Transforma seu personagem em GOD e kika ele
      /player - Transforma seu personagem em PLAYER e kika ele
       
      LEMBRANDO QUE: Não é qualquer que consegue usar esse comando, você precisa ter dado a sua conta o acesso de god, assim podendo ter esse comando num Servidor Online com outros jogadores sem que os mesmos possam usar.

      \data\talkactions
      talkactions.xml
      Code: <talkaction words="/player" script="player.lua" /> <talkaction words="/adm" script="adm.lua" /> \data\talkactions\scripts 
      adm.lua
      Code: function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(3)) position:sendMagicEffect(14) player:remove() return false end \data\talkactions\scripts
      player.lua
      function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(1)) position:sendMagicEffect(13) player:remove() return false end  
    • Por luanluciano93
      Vá em talkactions/talkactions.xml e add as tags:
      <talkaction words="!aol" script="!aol.lua"/> <talkaction words="!bless" script="!bless.lua"/> Agora crie 2 arquivos .lua em talkactions/scripts/ com os nomes: !aol.lua e !bless.lua.

      Depois coloque o código dentro dos respectivos arquivos:
       
      !aol.lua
       
      !bless.lua


      Bem simples pessoal, abraços!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo