Skymagnum 234 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 (editado) Mostrar conteúdo oculto 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 local outfits = { -- [Nome da roupa] = {preço, número da roupa(não erre), tempo que fica com ela} ["Roupa"] = {price = 35000, outfitId = {0, 0}, time = 24 * 60 * 60 * 1000} } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local sex = getPlayerSex(cid) local check_storage = 38219 local outfit_storage = 38220 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local list = "" if msgcontains(msg, 'outfit') then selfSay('Eu alugo roupas, você quer ver quais são?. {lista}.', cid) talkState[talkUser] = 2 elseif msgcontains(msg, 'lista') and talkState[talkUser] == 2 then for name, info in pairs(outfits) do selfSay('Aqui esta a lista', cid) list = list .. "Nome: " .. name .. " - preço: " .. info.price .. " gp's/n" end talkState[talkUser] = 3 doPlayerPopupFYI(cid, list) elseif outfits[msg] and talkState[talkUser] == 3 then selfSay('Você quer a roupa ' .. msg .. '?') talkState[talkUser] = 4 elseif msgcontains(msg, 'sim') and talkState[talkUser] == 4 then if doPlayerRemoveMoney(cid, outfits[msg].price) then if not(canPlayerWearOutfitId(cid, outfits[msg].outfitId)) then if getPlayerStorageValue(cid, check_storage) - os.time() < 1 then setPlayerStorageValue(cid, check_storage, outfits[msg].time + os.time()) setPlayerStorageValue(cid, outfit_storage, outfits[msg].outfitId[sex]) doPlayerAddOutfitId(cid, outfits[msg].outfitId[sex], 3) selfSay('Pronto, pegue sua roupa por um dia', cid) talkState[talkUser] = 0 else selfSay('Você já esta com uma roupa alugada, espere', cid) talkState[talkUser] = 0 end else selfSay('Você já pode usar essa roupa', cid) talkState[talkUser] = 3 end else selfSay('Você não tem dinheiro suficiente', cid) talkState[talkUser] = 0 end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) @Atualizado agora com roupas variando de acordo com o sexo outfitId = {0, 0} primeiro e o female depois o male. login.lua: local out = getPlayerStorageValue(cid, 38220) if getPlayerStorageValue(cid, 38219) - os.time() < 1 and canPlayerWearOutfitId(cid, out) then doPlayerRemoveOutfitId(cid, out, 3) end Editado Novembro 13, 2013 por Skymagnum Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/ Compartilhar em outros sites More sharing options...
ScythePhantom 83 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 Bacana brother, parabéns. Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581488 Compartilhar em outros sites More sharing options...
markindoot 46 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 bacaninha =D (y) Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581490 Compartilhar em outros sites More sharing options...
Heitor123456 5 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 me explica aonde eu adiciono? Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581496 Compartilhar em outros sites More sharing options...
Faelzdanil 102 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 Muito bom, curti bastante... Provavelmente irá para o PShow Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581544 Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 Muito bom mesmo cara, realmente interessante. Em 12/11/2013 em 17:05, Heitor123456 disse: me explica aonde eu adiciono? Isto é um NPC, ou seja, crie um npc e use este arquivo.lua como script do referido. Boa sorte. Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581599 Compartilhar em outros sites More sharing options...
Omega 377 Postado Novembro 13, 2013 Share Postado Novembro 13, 2013 Gostei da ideia, mas olha só: if doPlayerRemoveMoney(cid, outfits[msg].price) then Isso não deveria estar como último if, não? Caso contrária, o cara perde a grana mesmo se alguma coisa der errado. Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581704 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Novembro 13, 2013 Autor Share Postado Novembro 13, 2013 (editado) Creio que não, pois olhe: local gold = 35000 if gold then if not false then gold = gold - 3500 else print("o") end else print("m") end print(gold) Ali seria como se ele não pudesse vestir a roupa. Aqui seria se ele já pudesse vestir. local gold = 35000 if gold then if not true then gold = gold - 3500 else print("o") end else print("m") end print(gold) A variável gold permanece com o mesmo valor. Editado Novembro 13, 2013 por Skymagnum Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581708 Compartilhar em outros sites More sharing options...
Vinc 101 Postado Novembro 13, 2013 Share Postado Novembro 13, 2013 (editado) isso que vc coloco n tem nada a ver com o caso. doPlayerRemoveMoney(cid, n) remove n golds quando chamada, não pega a quantidade de gold. Editado Novembro 13, 2013 por lordbug99 Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581766 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Novembro 13, 2013 Autor Share Postado Novembro 13, 2013 Em 13/11/2013 em 11:59, lordbug99 disse: isso que vc coloco n tem nada a ver com o caso. doPlayerRemoveMoney(cid, n) remove n golds quando chamada, não pega a quantidade de gold. É só um exemplo pra ver se o gold fica igual ou não . Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581791 Compartilhar em outros sites More sharing options...
Omega 377 Postado Novembro 13, 2013 Share Postado Novembro 13, 2013 De qualquer jeito, tem um erro aqui também: elseif msgcontains(msg, 'sim') talkState[talkUser] == 4 and Desculpa ficar apontando erro assim, mas é que depois o pessoal vai começar a reclamar que deu erro ou desistir de usar. Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581809 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Novembro 13, 2013 Autor Share Postado Novembro 13, 2013 Em 13/11/2013 em 15:31, Omega disse: De qualquer jeito, tem um erro aqui também: elseif msgcontains(msg, 'sim') talkState[talkUser] == 4 and Desculpa ficar apontando erro assim, mas é que depois o pessoal vai começar a reclamar que deu erro ou desistir de usar. Vlw, eu fiz rapidão, esse aí nem tinha visto. Link para o comentário https://xtibia.com/forum/topic/223827-alugar-roupas/#findComment-1581929 Compartilhar em outros sites More sharing options...
Posts Recomendados