Ir para conteúdo
  • Cadastre-se

(Resolvido)Quest aparece no look do jogador


Ir para solução Resolvido por KotZletY,

Posts Recomendados

Lembrando que o servidor é base pokemon.
Galera me ajudem por favor... eu andei pesquisando um pouco, e queria 1 sistema mais ou menos assim.
"You see yourself. You are pokemon trainer. [0/30] Quests completas." mais ou menos assim o look do player !

minha look.lua é 1 seguinte :
 

Spoiler

local items = {
     [2221] = "Ultraball. Pokemon: ",
     [2220] = "Ultraball. Pokemon: ",
     [2227] = "Ultraball. Pokemon: ",

     [2224] = "Pokeball. Pokemon: ",
     [2223] = "Pokeball. Pokemon: ",
     [2222] = "Pokeball. Pokemon: ",

     [2651] = "Greatball. Pokemon: ",
     [2652] = "Greatball. Pokemon: ",
     [2657] = "Greatball. Pokemon: ",

     [2658] = "Premierball. Pokemon: ",
     [2653] = "Premierball. Pokemon: ",
     [2654] = "Premierball. Pokemon: "     
}

function onLook(cid, thing, position, lookDistance)
if items[thing.itemid] then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You see a "..items[thing.itemid].." "..getItemAttribute(thing.uid, "poke"):sub(9, findLetter(getItemAttribute(thing.uid, "poke"), "'")-1))
return false       
end
return true
end

se alguém conseguir me ajudar, ficarei muito grato.
agradeço desde já ;D 

Link para o post
Compartilhar em outros sites
8 horas atrás, KotZletY disse:

@tataboy67 fiz de forma global, assim você só irá editar 1x vez:

em alguma lib sua, você coloca:

  Ocultar conteúdo


LimiteQuestCount = 30 -- coloque de acordo com a quantidade de quests existente no seu servidr
QuestCountSystem = 123419 -- é a storage da system, lembre-se, não deve existe outra igual

function getQuestCompletCount(uid, storage)
if isPlayer(uid) then
 if getPlayerStorageValue(uid, storage) == -1 then
  return 0
 end
return getPlayerStorageValue(uid, storage)
end
end

 

Escolha uma storage pra ela,

 

e em data/creaturescripts/scripts crie um arquivo chamado lookvoc.lua e adicione dentro:

  Ocultar conteúdo


function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) then
doPlayerSetSpecialDescription(thing.uid, "\nQuests Completas: ["..getQuestCompletCount(thing.uid, QuestCountSystem).."/"..LimiteQuestCount.."]")
end
return true
end

 

 

a tag xml é:


<event type="look" name="LookVoc" event="script" value="lookvoc.lua"/>

e em login.lua você registra isso:


registerCreatureEvent(cid, "LookVoc")

 

 

agora o mais importante, a quest, nas quests, coloque o seguinte code:


if getQuestCompletCount(cid, QuestCountSystem) < LimiteQuestCount then
 doCreatureSetStorage(cid, QuestCountSystem, getQuestCompletCount(cid, QuestCountSystem)+1)
end 

 

Porém tem um detalhe, você vai colocar o code, depois do check que impede o player de fazer a quest novamente, como podemos fazer a quest somente 1x vez, então coloque o code depois do check que impede que o player faça mais de uma vez, caso contrario irá adicionar pontos até atingir o limite.

 

Quando você faz uma quest, ele checa se você tem uma storage, se você não tiver, você ganha o item, e ganha a storage pra não fazer de novo, quando você clicar novamente, ele irá checa novamente se você tem, se você tiver, ele não entrega o item, então coloque o code acima, abaixo desse check, para adicionar o ponto somente 1x vez a cada quest, e ae basta configurar o limite de quest

mt obrg mlk :D

 

3 horas atrás, victor4312 disse:

você é foda mlk! 

fala que o mlk é foda, mas nem da o rep :/

Link para o post
Compartilhar em outros sites
30 minutos atrás, victor4312 disse:

que diabos é rep? 

Rep é reputação... que fica aqui
é 1 caixinha escrito [gostei] [<3 0]
isso ajuda muito e motiva ele a criar novos scripts !

Editado por tataboy67 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 2017-6-1 ás 01:22, KotZletY disse:

@tataboy67 fiz de forma global, assim você só irá editar 1x vez:

em alguma lib sua, você coloca:

  Ocultar conteúdo


LimiteQuestCount = 30 -- coloque de acordo com a quantidade de quests existente no seu servidr
QuestCountSystem = 123419 -- é a storage da system, lembre-se, não deve existe outra igual

function getQuestCompletCount(uid, storage)
if isPlayer(uid) then
 if getPlayerStorageValue(uid, storage) == -1 then
  return 0
 end
return getPlayerStorageValue(uid, storage)
end
end

 

Escolha uma storage pra ela,

 

e em data/creaturescripts/scripts crie um arquivo chamado lookvoc.lua e adicione dentro:

  Ocultar conteúdo


function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) then
doPlayerSetSpecialDescription(thing.uid, "\nQuests Completas: ["..getQuestCompletCount(thing.uid, QuestCountSystem).."/"..LimiteQuestCount.."]")
end
return true
end

 

 

a tag xml é:


<event type="look" name="LookVoc" event="script" value="lookvoc.lua"/>

e em login.lua você registra isso:


registerCreatureEvent(cid, "LookVoc")

 

 

agora o mais importante, a quest, nas quests, coloque o seguinte code:


if getQuestCompletCount(cid, QuestCountSystem) < LimiteQuestCount then
 doCreatureSetStorage(cid, QuestCountSystem, getQuestCompletCount(cid, QuestCountSystem)+1)
end 

 

Porém tem um detalhe, você vai colocar o code, depois do check que impede o player de fazer a quest novamente, como podemos fazer a quest somente 1x vez, então coloque o code depois do check que impede que o player faça mais de uma vez, caso contrario irá adicionar pontos até atingir o limite.

 

Quando você faz uma quest, ele checa se você tem uma storage, se você não tiver, você ganha o item, e ganha a storage pra não fazer de novo, quando você clicar novamente, ele irá checa novamente se você tem, se você tiver, ele não entrega o item, então coloque o code acima, abaixo desse check, para adicionar o ponto somente 1x vez a cada quest, e ae basta configurar o limite de quest

ei me ajuda em 1 coisa, tipo... eu testei aqui e nao funcionou ! eu fiz td certinho, porem o look ainda sim aparece 
21:21 You see yourself. You are a Treinador.

Link para o post
Compartilhar em outros sites
1 minuto atrás, KotZletY disse:

@tataboy67 você esqueceu algo, refaça os passos, o script ta 100%.

eq assim se liga, no meu look.lua olha como tá : 
"em alguma lib sua, você coloca:"

posso colocar em qual lib? qualquer 1?

 

 

Link para o post
Compartilhar em outros sites

@tataboy67 sim, até se você cria uma novo arquivo, e colocar dentro, será uma nova lib global que poderá ser chamada em qualquer script! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

@tataboy67 outra coisa, quando você "da look em outra pessoa", ae aparece, quando é você mesmo não aparece, ahsuhaus, não achei que fosse preciso, pois você teria uma talk pra isso, ou sla!! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
1 minuto atrás, KotZletY disse:

@tataboy67 outra coisa, quando você "da look em outra pessoa", ae aparece, quando é você mesmo não aparece, ahsuhaus, não achei que fosse preciso, pois você teria uma talk pra isso, ou sla!! 

ahh entendi... teria como fazer então para que ate msm se eu me der look apareça?

Link para o post
Compartilhar em outros sites

@tataboy67

Spoiler

function onLook(cid, thing, position, lookDistance)
if isPlayer(thing.uid) and thing.uid ~= cid then
doPlayerSetSpecialDescription(thing.uid, "\nQuests Completas: ["..getQuestCompletCount(thing.uid, QuestCountSystem).."/"..LimiteQuestCount.."]")
elseif thing.uid == cid then
doPlayerSetSpecialDescription(thing.uid, "\nQuests Completa: ["..getQuestCompletCount(cid, QuestCountSystem).."/"..LimiteQuestCount.."]")
        local string = 'You see yourself.'
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
            string = string..' You are '.. getPlayerGroupName(cid) ..'.'
        elseif getPlayerVocation(cid) ~= 0 then
            string = string..' You are '.. getPlayerVocationName(cid) ..'.'
        else
            string = string..' You have no vocation.'
        end
        string = string..getPlayerSpecialDescription(cid)..''
 
        if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
            string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
        end
 
        if getPlayerGuildId(cid) > 0 then 
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
        end 
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
            string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
            string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
            string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
        return false
    end
    return true
end

 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo