Ir para conteúdo

di12345d

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    di12345d recebeu reputação de Lucas Barbaresco em Não sei oque Aconteceu Com meu mapa   
    você vai na pasta do ot, que tá esse mapa, coloca o items.otb  e o items.xml e joga na pasta do remeres da versão do seu mapa no caso creio que seja a 8.60
     
     
    custa nada agradecer
  2. Gostei
    di12345d recebeu reputação de di12345di em GesiorACC 2019 8.60 UPDATE 29/06/2019   
    Natanael Beckman
    Natan to com seu gesior nota 10,http://prnt.sc/bo4nge
     
    enfim eu gostaria de saber se você poderia trocar esse ranking do inicio do site por esse com os 10 primeiros colocados com o addon atual do jogador é possivel ?
     
    http://prntscr.com/bo4ojv
  3. Gostei
    di12345d deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019   
    Atualização de 29/06/2019.
     
    Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
    Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
     
    - Foi mudado algumas imagens de layout para renovar a estrutura.

     
    - Server Info + Most Power Ful Guilds na mesma estrura.

     
    - Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
    a segurança do seu cliente e dificultando futuras dores de cabeças.

     
    - Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
    - Algumas mudanças de layout.
    - Nome do player abaixo linkado.

     
    - Adicionado um Box de doação, com a intenção apenas de complementar
    o layout enriquecendo a pagina.

     
    - Fixado o bug edit town, e melhorado o layout.

     
    - Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.

     
    - Visão normal.

     
    - Inventário completo.
    - Guilds com visão ampliada.

     
    - Detalhes...

     
    - Novo SHOP com as estrutura de layout melhorada e modernizada.
    - Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.

     
    - Detalhes...

     
    - Detalhes...

     
    - Detalhes...

     
    - Histórico do SHOP...

     
    DOWNLOAD SITE
    SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL   TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME   Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
  4. Gostei
    di12345d deu reputação a Xagah em VIP name correção   
    @di12345d, Vc quer que o nome do Sujeito fique aparecendo [VIP]?
     
    Claro que cada OTAdmin faz o que bem entende com seu próprio servidor, mas não seria mais elegante colocar isto na descrição do char? Assim, quando alguém desse um 'look' no char apareceria que ele é VIP.
     
    Penso que isto é mais fera. Além do mais, o gerenciamento PHP (no site) para controle de não repetição de 'names' já estaria pronto.
     
    Não bastasse o que já disse, o controle de remoção do comentário na descrição de cada 'player' seria automaticamente removido quando esta vantagem acabasse.
     
    O que acha?
  5. Gostei
    di12345d deu reputação a xWhiteWolf em Magnus Challenger   
    @di12345d faltou um end pra fechar o if do dodge:

     


    local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } function onLogin(cid) accountManager = "Account Manager" managerCounter = 0 for i, player in ipairs(getOnlinePlayers()) do if accountManager:lower() == player:lower() then managerCounter = managerCounter + 1 end end if managerCounter >= 3 then return false end local loss = getConfigValue('deathLostPercent') if(loss ~= nil) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10) end local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?") elseif(accountManager == MANAGER_ACCOUNT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.") end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end registerCreatureEvent(cid, "Mail") registerCreatureEvent(cid, "GuildMotd") registerCreatureEvent(cid, "Idle") if(config.useFragHandler) then registerCreatureEvent(cid, "SkullCheck") end registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "AdvanceSave") registerCreatureEvent(cid, "attackguild") registerCreatureEvent(cid, "advance") registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "SkullCheck") registerCreatureEvent(cid, "demonOakLogout") registerCreatureEvent(cid, "demonOakDeath") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "bluelegs") registerCreatureEvent(cid, "VipReceive") registerCreatureEvent(cid, "FirstItems") registerCreatureEvent(cid, "Promot") registerCreatureEvent(cid, "PlayerKill") registerCreatureEvent(cid, "KillingInTheNameOf") registerCreatureEvent(cid, "PythiusDead") registerCreatureEvent(cid, "ExpVip") registerCreatureEvent(cid, "levelplayer") registerCreatureEvent(cid, "PlayerAdvance") -----------GRAN CASTLE ----------- registerCreatureEvent(cid, "Gran Tower") registerCreatureEvent(cid, "Gran Aura") registerCreatureEvent(cid, "Gran Aura Stats") registerCreatureEvent(cid, "Gran Aura Logout") registerCreatureEvent(cid, "Gran Tower Target") registerCreatureEvent(cid,"tasksystem") registerCreatureEvent(cid, "dodge") if (InitArenaScript ~= 0) then InitArenaScript = 1 for i = 42300, 42309 do setGlobalStorageValue(i, 0) setGlobalStorageValue(i+100, 0) end end if getPlayerStorageValue(cid, 42309) < 1 then for i = 42300, 42309 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42319) < 1 then for i = 42310, 42319 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42329) < 1 then for i = 42320, 42329 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42355) == -1 then setPlayerStorageValue(cid, 42355, 0) end setPlayerStorageValue(cid, 42350, 0) setPlayerStorageValue(cid, 42352, 0) -------------- TASK SYSTEM -------------- if getPlayerStorageValue(cid, 95673) < 0 then setPlayerStorageValue(cid, 95673, 0) end if getPlayerStorageValue(cid, 95674) < 0 then setPlayerStorageValue(cid, 95674, 0) end ----------------dodge------------------- if getPlayerStorageValue(cid, 48902) == -1 then setPlayerStorageValue(cid, 48902, 0) end return true end
  6. Gostei
    di12345d deu reputação a xWhiteWolf em Dodge System 8.54+   
    Ae galera do TK, uns caras ficaram me mandando PM pedindo esse sistema aqui.. aparentemente tem em algum server e eles queriam replicar o sistema no OT deles. Não sei como funciona no outro server mas no script que eu fiz vai funcionar assim:
    Serão 100 livros que você poderá comprar de um npc específico, cada livro te dá 1 ponto a mais na skill Dodge e isso acarreta em 0.3% de chance a mais de desviar de um golpe e tomar só 50% de dano. Infelizmente eu nunca joguei no servidor que foi o pioneiro desse sistema (na vdd eu nem sei qual é) então eu não fiz igual o deles, na realidade o meu só funciona ao perder vida então se o mago usar utamo vita acabou os dodge's dele. Outra coisa importante é que o player tem uma chance rara de dar Dodge no Dodge, ou seja, levando 1/4 do dano. Só vai funcionar para ataques de criaturas, tanto melee quanto spells, ou seja, se o cara passar no fogo não tem chance dele desviar do dano 
    Sem mais delongas, vamos ao script:

    Crie um arquivo chamado dodge.lua na pasta creaturescripts\scripts e coloque isso dentro dele:
     

    agora adicione essa linha no creaturescripts.xml:
    <event type="statschange" name="dodge" event="script" value="dodge.lua"/> em creaturescripts\scripts\login.lua adicione isso antes do ultimo return true:
    registerCreatureEvent(cid, "dodge") if getPlayerStorageValue(cid, 48902) == -1 then         setPlayerStorageValue(cid, 48902, 0)      end agora vá em actions.xml e adicione essa linha aqui:
    <action itemid="1950" script="dodgebook.lua"/> note que vc pode mudar o ID do livro a hora que vc quiser.

    em items.xml, procure o item com o ID que vc irá utilizar e deixe ele assim:
    <item id="1950" article="a" name="Skill Book [DODGE]"> <attribute key="weight" value="1300" /> </item> agora crie um arquivo chamado dodgebook em actions\scripts e coloque isso dentro dele:
  7. Gostei
    di12345d recebeu reputação de xWhiteWolf em Magnus Challenger   
    cara esse sistema ficou show , irei só arrumar os monstros parabéns continue assim
  8. Gostei
    di12345d deu reputação a xWhiteWolf em Magnus Challenger   
    Fala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês!   

    Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda!

    Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores.
    Quem quiser pode ver um vídeo comentado de como o sistema funciona:




    Dito isso vou ensinar vocês como instalar isso no server:
    Pra começar vá em data\creaturescripts\scripts e procure login.lua, agora vá até o final do arquivo e antes do último return true coloque essas linhas abaixo

    ainda em creaturescripts procure creaturescripts.xml e adicione essa linha junto com as outras que já estão lá (seguindo o padrão)
    <!-- TASK SYSTEM --> <event type="kill" name="tasksystem" script="tasksystem.lua"/> Agora crie um arquivo em creaturescripts\scripts com o nome de tasksystem.lua e adicione o seguinte à ele:




    Terminada a parte da contagem de kill vamos ao NPC em si.
    Crie um arquivo chamado Magnus.xml em data\npc e coloque isso dentro dele:




    Agora em data\npc\scripts crie um arquivo chamado zezeniaa.lua e adicione esse conteúdo dentro do arquivo:





    ~~~~~~~~~~~~~~~~ FEITO ISSO ESTÁ TERMINADO ~~~~~~~~~~~~~~~~~~

    Agora aprendendo a configurar:
     
    No tasksystem vc pode editar isso daqui:
    Eu fiz um sistema onde se vc estiver em party com alguém e a pessoa matar os bixos conta como se você tivesse matado; Assim incentiva o pessoal a ir numa cave de Dragon e ao invés de matar quem está lá pra ficar sozinho na cave, eles vão chamar party pra fazerem a task juntos.. assim fazer amigos fica mais fácil e com maiores laços é maior a chance do povo não abandonar o seu server.

    Apenas digite "true" ou "false" pra ativar/desativar esse sistema e em baixo temos a distancia máxima pro monstro estar do cara que está fazendo a task pra contar o kill. Se a distancia entre o monstro e a pessoa for maior que 7 não vai contar pra ele a kill.


    No zezeniaa.lua as coisas que dão pra configurar são maiores mas são igualmente simples:
    Toda vez que vc pedir uma task short (curta) vc vai ter de 100 a 400 monstros pra matar, ele gera um número de 0 a 6 e multiplica por 5 e soma com os 100 iniciais.. o mesmo vale pra todos os outros valores.

    levelcollect é o level mínimo pra fazer tasks do tipo collect.
    time é o tempo em segundos que você vai ficar sem poder falar com o npc caso desista de alguma task, o padrão é 8 * 60 * 60 (8 horas)
    bonus é por quanto vai multiplicar caso vc permita que o npc escolha aleatoriamente entre todas as opções.. o padrão é 20% de bonus (1.2)
    multiplicador é uma coisa que eu adicionei pra ficar mais fácil mexer na fórmula sem cometer cagadas, se vc tá ganhando 10% de exp e quer ganhar 80% é só colocar 8 no multiplicador.

     
    Isso daqui é o banco de dados principal do sistema de kill, toda vez que vc escolher uma task do tipo fácil, médio, dificil ele vai acessar essas tabelas contendo o nome das criaturas.. vc pode facilmente adicionar novos nomes, o npc já está programado pra lidar com isso, apenas siga o padrão e mantenha sempre o último sem vírgula!

    Ex: adicionando Morgaroth na tabela de hard
    local hard = { [1] = "Giant Spider", [2] = "Dragon Lord", [3] = "Grim Reaper", [4] = "Demon", [5] = "Crystal Spider", [6] = "Demon Skeleton", [7] = "Juggernaut", [8] = "Destroyer", [9] = "Hand of Cursed Fate", [10] = "Morgaroth" } atente-se também pra não repetir o número no index.. se o anterior era [9] use [10].

    O restante das tabelas são separadas para o banco de dados das tasks de collect:
     
    segue a mesma lógica da de kill só que aqui você tem o id dos itens que serão usados... aquela count não tem nada a ver com o item pois ele vai gerar tanto o item aleatoriamente quanto à count;
    Ex: 
    [1] = {id = 5880, count = 20}, -- iron ore isso não significa que se cair iron ore (id 5880) irá cair sempre 20.. até porque eu poderia escolher uma task long e easy e pegar a task de trazer até 50 iron ores, apenas tente manter os padrões que são os intervalos definidos.
    No easy ele varia de 10 a 20, no medium ele varia de 20 a 35 e no hard de 40 a 50.



    Espero que vocês tenham curtido, é um sistema grande mas bem simples de se mexer... se tiverem quaisquer problemas podem comentar aqui. Deu trabalho fazer isso então se você gostou deixe o seu comentário aí e o seu "Gostei" que vai me incentivar a trazer mais coisas desse tipo pra cá. Abraços do lobo.


    PS: Pra sumonar o npc digite com o GOD: /n Magnus ou coloque ele pelo map editor.
  9. Gostei
    di12345d deu reputação a luanluciano93 em [2015] Gesior 1.0 - VictorWEBMaster   
    kk, quantos erros ....

     
    CREATE TABLE IF NOT EXISTS `reports` ( `id` int(20) NOT NULL auto_increment, `player_id` varchar(30) NOT NULL, `date` varchar(30) NOT NULL, `reason` varchar(255) NOT NULL, `description` varchar(100) NOT NULL, KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;
  10. Gostei
    di12345d deu reputação a alissonfgp em (Resolvido)[ERRO] Gesior não entrega Item comprado no SHOP   
    shop.lua
     

    -- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 19 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 -- ### END OF CONFIG ### function onThink(interval, lastExecution)     local result_plr = db.storeQuery("SELECT * FROM z_ots_comunication")     if(result_plr ~= false) then         repeat             local id = tonumber(result.getDataInt(result_plr, "id"))             local action = tostring(result.getDataString(result_plr, "action"))             local delete = tonumber(result.getDataInt(result_plr, "delete_it"))             local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))             if(cid) then                 local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))                 local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))                 local container_id = tonumber(result.getDataInt(result_plr, "param3"))                 local container_count = tonumber(result.getDataInt(result_plr, "param4"))                 local add_item_type = tostring(result.getDataString(result_plr, "param5"))                 local add_item_name = tostring(result.getDataString(result_plr, "param6"))                 local received_item = 0                 local full_weight = 0                 if(add_item_type == 'container') then                     container_weight = getItemWeight(container_id, 1)                     if(isItemRune(itemtogive_id)) then                         items_weight = container_count * getItemWeight(itemtogive_id, 1)                     else                         items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)                     end                     full_weight = items_weight + container_weight                 else                     full_weight = getItemWeight(itemtogive_id, itemtogive_count)                     if(isItemRune(itemtogive_id)) then                         full_weight = getItemWeight(itemtogive_id, 1)                     else                         full_weight = getItemWeight(itemtogive_id, itemtogive_count)                     end                 end                 local free_cap = getPlayerFreeCap(cid)                 if(full_weight <= free_cap) then                     if(add_item_type == 'container') then                         local new_container = doCreateItemEx(container_id, 1)                         local iter = 0                         while(iter ~= container_count) do                             doAddContainerItem(new_container, itemtogive_id, itemtogive_count)                             iter = iter + 1                         end                         received_item = doPlayerAddItemEx(cid, new_container)                     else                         local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)                         received_item = doPlayerAddItemEx(cid, new_item)                     end                     if(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then                         doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')                         db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")                         db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")                     else                         doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')                     end                 else                     doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')                 end             end         until not result.next(result_plr)         result.free(result_plr)     end     return true end
  11. Negativo
    di12345d recebeu reputação de Wakon em O seu novo Tibia King!   
    mais niguem me ajuda oque eu posso fazer é só dar uma ideia é nada demais mais parece que niguem responde.

Informação Importante

Confirmação de Termo