Skymagnum 234 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 (editado) 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 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 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 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 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 Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Novembro 12, 2013 Share Postado Novembro 12, 2013 Muito bom mesmo cara, realmente interessante. 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 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 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 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 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Novembro 13, 2013 Autor Share Postado Novembro 13, 2013 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 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 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Novembro 13, 2013 Autor 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. Vlw, eu fiz rapidão, esse aí nem tinha visto. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados