Ir para conteúdo

Featured Replies

Postado
  • Autor
57 minutos atrás, shadauer disse:

Botei antes de voce postar, funfou legal isso :D  
não tem algo que quando Eu por exemplo desse look em mim mesmo, visse a quantidade de resets que tenho, e nao ir até o npc pra saber.

vc precisa alterar a source ou refazer todo o sistema de look via lua. Pq no look normal ele não mostra a special description quando vc dá look em si mesmo (configuração da source)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • Respostas 187
  • Visualizações 34.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Ulatson, eu ando meio ocupado pra ficar scriptando então só vou dar dicas de como fazer ou onde conseguir: tem como colocar no script por exemplo para o Player falar só !resetar? Esse script foi fei

  • cara, aquilo que eu te passei era pra vc substituir no seu script;;; ficando assim:   local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatPa

  • talkactions/scripts/rankinreset local storage = 378378 -- storage que fica salvo os resets local itens = {2182, 2190, 2456, 2395} -- itens cujas imagens aparecerao (se nao souber oque eh, nao mexa)

Posted Images

Postado
Em 20/02/2017 ás 16:21, xWhiteWolf disse:

cria um npc que verifica a quantidade que vc tem de resets e te premia por isso, é bem simples. Só ler os comentários

tá bem... como eu consigo criar um npc desse?

Postado
  • Autor
5 horas atrás, tataboy67 disse:

tá bem... como eu consigo criar um npc desse?

depende de como vc vai querer mas basicamente seu npc vai ter um storage e uma tabela contendo a quantidade de resets e os premios. Aí vc verifica se existe os resets que você tem e esse storage, esse storage vai estar salvo qual foi a ultima premiação que vc ganhou e ele só deixa pegar sempre a de menos resets pra mais resets. Então se eu tenho 8 resets eu vou ter que pegar a de 1, 3, 5 e 8 (supondo que não é todo nv que ganho prêmio) respectivamente

a tabela vai ser algo assim:
premios = {
[quantidade de resets] = {items = {{2160, 3}, {2152, 100}, {2163, 1}}},
}

if resets > storage then
for i = math.max(1, storage + 1), resets do
    if premios then
      -- tem premios disponiveis pra ele, lidar com isso ou dando só o primeiro ou ja dando todos acumulados
    end
end
end
 

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

Amigão! Blz? O meu reseter tá estranho, eu peço pra resetar e dá a mensagem que vou ser desconectado em 3 segundos. Quando volto aparece que eu resetei tudo certinho, porém, ele continua no mesmo level. O level não volta. 

 

 

local config = {
minlevel = 450000, --- level inical para resetar
price = 0, --- preço inicial para resetar
newlevel = 3000, --- level após reset
priceByReset = 0, --- preço acrescentado por reset
percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
maxresets = 200,
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config

function getResets(uid)
resets = getPlayerStorageValue(uid, 378378)
  if resets < 0 then
            resets = 0
          end
return resets
end

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end
 
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid


 function addReset(cid)
    if(npcHandler:isFocused(cid)) then
        npcHandler:releaseFocus(cid)
    end        
    talkState[talkUser] = 0
    resets = getResets(cid)
    setPlayerStorageValue(cid, 378378, resets+1) 
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    local hp = getCreatureMaxHealth(cid)
    local resethp = hp*(config.percent/100)
    setCreatureMaxHealth(cid, resethp)
    local differencehp = (hp - resethp)
    doCreatureAddHealth(cid, -differencehp)
    local mana = getCreatureMaxMana(cid)
    local resetmana = mana*(config.percent/100)
    setCreatureMaxMana(cid, resetmana)
    local differencemana = (mana - resetmana)
    doCreatureAddMana(cid, -differencemana)
    doRemoveCreature(cid)        
    local description = resets+1
     db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
    db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
    return true
end


local newPrice = config.price + (getResets(cid) * config.priceByReset)
local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)

if msgcontains(msg, 'reset') then
    if getResets(cid) < config.maxresets then
        selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
        talkState[talkUser] = 1
    else
        selfSay('You already reached the maximum reset level!', cid)
    end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
    if getPlayerMoney(cid) < newPrice then
        selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
    elseif getPlayerLevel(cid) < newminlevel then
        selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
    else
        doPlayerRemoveMoney(cid,newPrice)
        playerid = getPlayerGUID(cid)
        addEvent(function()
            if isPlayer(cid) then
                addReset(cid)
            end
        end, 3000)
        local number = getResets(cid)+1
        local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
        doPlayerPopupFYI(cid, msg) 
        talkState[talkUser] = 0
        npcHandler:releaseFocus(cid)
    end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
    talkState[talkUser] = 0
    npcHandler:releaseFocus(cid)
    selfSay('Ok.', cid)
elseif msgcontains(msg, 'quantity') then
    selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
    talkState[talkUser] = 0
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

_____________________________________________________________________

O char é resetado mas volta ao level que já estava antes (level máximo do server). 

Postado
  • Autor

@daveic como eu comentei no post original: se seu servidor for 8.6 vc precisa trocar TODOS os db.executeQuery por db.query e dando uma olhada rápido no seu script é fácil perceber que você só trocou um deles 
db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
 db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo