Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Função getPlayerByNameAccountId


Informações: Essa função basicamente retorna a account id do player dando de entrada o nome do player. Testado em 8.60 e mysql somente.
 
Adicione este código no final do arquivo data/lib/050-function.lua

function getPlayerByNameAccountId(name)
local pid = getPlayerByNameWildcard(name)
pic = getPlayerGUID(pid)
 
local qr = db.getResult("SELECT `account_id` FROM `players` WHERE `id`= "..pic..";")
rss1 = qr:getDataInt("account_id", pic)
if rss1 < 0 then
rss1 = 0
end
end
 
 
Créditos: 100% Gabisa00 - Pela idéia e pelo script.

Gostou do Sistema Faça Seu Pedido Aqui! Editado por gabisa00 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

vê se eu entendi essa script vai dar o iD da account do player?  

pq não junta 2 Funções e pega tbm o senha?

acho que ficaria melhor :D

reputado *--*

Editado por AnnaFeeh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Um exemplo seria , um script que adicionaria premium points a account do cara, seja por qualquer motivo, promoção, evento, coisas desse tipo, esse script iria proporcionar ao cara a criação de um comando como por exemplo !addpoints Name,quantidade. Estou ai qualquer coisa.

 

Eu poderia colocar para retornar senha, account id e a account, mas não entendo como funciona a criptografia das senhas do msysql, nao sei como eu faria para retornar ela sem estar criptografada.

Editado por gabisa00 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Entendi, obrigado! Tipo, na lista de funções do TFS (antigo) já tem a função getPlayersByAccountId(accountNumber), será que não é a mesma? E na TFS 1.0 tem o metametodo player:GetAccountId(), será que tbem seria a mesma coisa?

 

Eu sou bem leigo no assunto ainda, estou aprendendo, por isso estou perguntando, não quero que pense que só estou perguntando por ironia, pois não estou ... 

Grato!
 

Link para o post
Compartilhar em outros sites

Entendi, obrigado! Tipo, na lista de funções do TFS (antigo) já tem a função getPlayersByAccountId(accountNumber), será que não é a mesma? E na TFS 1.0 tem o metametodo player:GetAccountId(), será que tbem seria a mesma coisa?

 

Eu sou bem leigo no assunto ainda, estou aprendendo, por isso estou perguntando, não quero que pense que só estou perguntando por ironia, pois não estou ... 

Grato!

 

Luciano da uma Olhada aii, acho que vai te ajudar melhor :D 

http://www.tibiaking.com/forum/topic/9266-pasta-data-funcoes-em-lua/

Link para o post
Compartilhar em outros sites

Não é a mesma coisa, por que seguinte, essas funções necessitarão do CreatureID que é o id de cada criatura no jogo player ou não, a minha função puxa a Account ID pelo nome do player.

Link para o post
Compartilhar em outros sites

Não entendi @, qual a relação entre o link e a minha pergunta? Poderia me explicar melhor, como disse, sou leigo.

Grato

No Link tem Quase todas funções e sua explição Da para encontrar oq você está perguntado *--* 

Link para o post
Compartilhar em outros sites

@, não achei as funções pela qual perguntei lá =(

Não é a mesma coisa, por que seguinte, essas funções necessitarão do CreatureID que é o id de cada criatura no jogo player ou não, a minha função puxa a Account ID pelo nome do playe
 

Acho que entendi ... 

A primeira função puxa pelo account id, mas e a segunda que eu coloquei tbem será?
Link para o post
Compartilhar em outros sites

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 Anderson Sacani
      Estou criando um servidor com base nos scripts de TFS 1.x e voltado ao público da america latina por causa do baixo ping na VPS... Argentina, Bolívia, Brasil, Chile, entre outros, portanto sei que falamos em português e nossos vizinhos em espanhol.
      Todos os sistemas do meu servidor são pensados para terem traduções e venho por meio deste tópico compartilhar à vocês algumas dessas funções:
       
      Antes de qualquer coisa, você precisará adicionar a seguinte variável em alguma biblioteca:
      USER_LANGUAGE = 1022118443  
      Agora que adicionou essa variável em alguma biblioteca, poderá adicionar as seguintes funções na mesma biblioteca, porém a baixo da variável USER_LANGUAGE.
       
      A primeira função serve para retornar qual idioma o player está usando:
      --[[ getLanguage, how to use: player:getLanguage() ]] function Player.getLanguage(self) if self:isPlayer() then if self:getStorageValue(USER_LANGUAGE) < 1 then return "portuguese" else return "spanish" end else print("getLanguage: Only works on players..") end end Um exemplo de como usar: player:getLanguage()
       
      A segunda função serve para alterar o idioma do player. O ideal é que seja usada na primeira vez em que o player loga no servidor:
      --[[ setLanguage, how to use: player:setLanguage("portuguese") ]] function Player.setLanguage(self, language) local value = 0 if self:isPlayer() then if language == "portuguese" then value = 0 elseif language == "spanish" then value = 1 else print("setLanguage: Only two options available. Choose one of them: 'portuguese' or 'spanish'.") end return self:setStorageValue(USER_LANGUAGE, value) else print("setLanguage: Only works on players..") end end Exemplos de como usar:
      player:setLanguage("portuguese")
      ou
      player:setLanguage("spanish")
       
      A terceira e não menos importante função, serve para mandar uma mensagem de texto ao jogador, porém ele receberá no idioma em que escolheu:
      --[[ sendLanguageTextMessage, how to use: local portugueseMessage = "Ola, tudo bom? Isto aqui é um algoritmo!" local spanishMessage = "Hola todo bien? Esto de aqui es un algoritmo!" player:sendLanguageTextMessage(MESSAGE_EVENT_ADVANCE, portugueseMessage,spanishMessage) ]] function Player.sendLanguageTextMessage(self, type, portugueseMessage, spanishMessage) if self:isPlayer() then if self:getStorageValue(USER_LANGUAGE) < 1 then return self:sendTextMessage(type, portugueseMessage) else return self:sendTextMessage(type, spanishMessage) end else print("sendLanguageTextMessage: Only works on players..") end end Um exemplo de como usar:
      player:sendLanguageTextMessage(MESSAGE_EVENT_ADVANCE, portugueseMessage, spanishMessage)
      O primeiro parâmetro é o tipo de mensagem, o segundo parâmetro será a mensagem em português e o terceiro parâmetro será em espanhol.
    • Por danielsort
      A minha poke ball nao esta funcionando como contador aonde consigo ageitar isso?
       
       

    • Por yurikil
      Saudações a todos, venho por meio deste tópico pedir uma ajuda no qual estou tentando fazer a muito tempo. Já vi alguns post aqui mesmo no TK, mas nenhum eu tive êxito. Por isso venho pedir um socorro de como eu consigo aumentar a quantidade de MagicEffects acima de 255 no meu NewClient OTC? Se alguém puder fortalecer ficarei muito grato!!
    • Por xWhiteWolf
      Fala galera do TK, hoje vim trazer pra vocês à pedidos do grande @azzouks uma versão do meu Dodge System por equips.

      Explicação: É um sistema onde vc pode colocar uma % de esquiva nos itens e ao usá-los você ganha a chance de desviar dos ataques e levar somente metade do dano.

      Qualquer semelhança com esse > http://www.tibiaking.com/forum/topic/8223-mod-reflect-system-01/ < mod do @Aluccard não é mera coincidência, eu usei o mod dele como base pra fazer o meu *-*

      Sem mais delongas vamos ao script:
      Vá na pasta do seu server e abra uma pasta chamada "mods".. lá dentro crie um arquivo com o nome que vc quiser (sério) de extensão.xml e adicione o seguinte nele:
       




      Configurando:
      Se você não manja de script então eu sugiro que vcs só alterem essa parte aqui:
       
      em vermelho é o máximo que uma pessoa pode ter de dodge: se ela tiver usando um full set que deixe ela com um total de 99% de dodge ela só vai poder aproveitar 50%. Isso foi feito pra evitar um bug.. vocês podem se sentir livres pra alterar esse numero mas não coloquem nada muito grande pra evitar que seus servers explodam.
      em verde é a porcentagem do dano que vocês vao tomar ao desviar.. nesse caso os ataques que eu der dodge darão 50% do dano (0.5)
      em azul é a porcentagem inicial que todos os players vão ter. Por padrão está 0 mas se vc quiser que todos os players do seu server tenham 20% e que cada item dê 5% também é possível editando esse 0 pra 20.

      Feito isso vá em data\lib\function.lua e adicione essas linhas 
      function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") end function doPlayerAddDodgeItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(item, "dodgePercent", percent) end Agora é só aproveitar no seu server.. toda vez que vc for usar num script vc poderá utilizar as funções getItemDodgePercent(item)
      e a doPlayerAddDodgeItem(cid, itemid, percent).

      Pra finalizar aqui tem um exemplo de uma quest que dá uma plate armor com 0.8% de dodge:




      Espero que gostem!


      EDITADO: 
       
      Fiz um script de action pra ser uma pedra que vai dar dodge nos items. Ele tem muito que melhorar mas por ora ele tá 99% pronto pra ser colocado em algum server que utilize esse dodge system.
      function isHandItem(uid) -- NW based on Mock          uid = uid or 0         if isInArray({1,2,3,4,5,6}, getItemWeaponType(uid)) then              return true          end          return false end function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") or 0 end function setItemDodgePercent(uid, percent) doItemSetAttribute(uid, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(uid, "dodgePercent", percent) end function onUse(cid, item, fromPosition, itemEx, toPosition)  level = 0 local upgrade = { [1] = {min = 1, max = 5, chance = 100}, [2] = {min = 5, max = 10, chance = 80}, [3] = {min = 10, max = 20, chance = 60}, [4] = {min = 20, max = 40, chance = 40}, [5] = {min = 40, max = 50, chance = 20} } function isWearing(uid) -- NW based on Mock          uid = uid or 0         if isInArray({uid}, getPlayerSlotItem(cid, 1).uid) or isInArray({uid}, getPlayerSlotItem(cid, 4).uid) or isInArray({uid}, getPlayerSlotItem(cid, 7).uid) or isInArray({uid}, getPlayerSlotItem(cid, 8).uid) then              return true          end          return false end if isHandItem(itemEx.uid) or isWearing(itemEx.uid) then local name = getItemName(itemEx.uid) local atual = math.floor(getItemDodgePercent(itemEx.uid)*10)/10 for i = 1, #upgrade do if string.find(tostring(name),"+".. i .."") then level = i end end if level >= #upgrade then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your item is already on max level, you can't upgrade it any further.") return true end if math.random(0,100) <= upgrade[level + 1].chance then  doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(itemEx.itemid).." to ".. level+1 ..".") setItemDodgePercent(itemEx.uid, atual + (math.random(upgrade[level+1].min,upgrade[level+1].max))/10) doItemSetAttribute(itemEx.uid,'name', getItemNameById(itemEx.itemid)..' +'..(level+1)) doSendMagicEffect(toPosition, math.random(28,30)) else doRemoveItem(itemEx.uid, 1) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your "..getItemNameById(item.itemid).." has failed and destroyed your "..getItemNameById(itemEx.itemid).." in the process") doSendMagicEffect(toPosition, 4) end else doPlayerSendTextMessage(cid, 24,"You cant refine this item.") end return true end
      Note que pra colocar dodge num item ele tem que: Estar equipado se for qualquer tipo de armadura (legs, boots, helmet, armor) ou livremente (se for weapon/shield).. Necklaces, rings e pendants não são possíveis de colocar dodge.. se vc quiser que seja edita essa função dentro do script pros slots de ring e necklace mas eu não aconselharia a fazer isso.
       e no xml coloque: 
      <action itemid="8306" script=upgraderock.lua"/>
    • Por Nazo
      Buenas, TK!
      Um membro do nosso querido fórum pediu algo assim, e resolvi postar para quem ainda utiliza o Account Manager e sofre problemas de Mage Bomb muito mal intencionado (quando alguém usa um tipo de bot para efetuar diversos logins simultâneos como um MC aprimorado, a fim de lagar/crashar/derrubar o seu servidor). Bom, vamos ao que interessa:
       
      Adicione essa tag XML no seu creaturescripts.xml:
      <!-- Anti MageBomb by Nazo (tibiaking.com) --> <event type="login" name="antiMageBomb" event="script" value="antiMageBomb.lua"/>  
      Crie o arquivo antiMageBomb.lua em creaturescripts\scripts\ e use o seguinte conteúdo no mesmo:
      -- anti Mage Bomb by Nazo (tibiaking.com) function onLogin(cid) if(getPlayerName(cid) == "Account Manager") then playersOnline = getPlayersOnline() for _, pid in ipairs(players) do if(getPlayerIp(pid)==getPlayerIp(cid)) then doRemoveCreature(pid) end return false end end return true end  
      E no arquivo creaturescripts\scripts\login.lua antes do último return true, adicione a seguinte linha:
      registerCreatureEvent(cid, "antiMageBomb")
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo