camapo 0 Postado Setembro 22, 2009 Share Postado Setembro 22, 2009 Ola galera eu gostaria de ter o scipt de um npc que poe premium no ot xvx 8.5, quem puder me ajudar desde ja agradeço a todos. Link para o comentário Compartilhar em outros sites More sharing options...
Ivomec 0 Postado Setembro 23, 2009 Share Postado Setembro 23, 2009 Seria isto --> vá em data/npc/ copie qualquer arquivo xml renomeio para NPC Premium e cole isto : <?xml version="1.0" encoding="UTF-8"?><npc name="NPC Premium" script="data/npc/scripts/NPC Premium.lua" walkinterval="3000" floorchange="0" access="5" > <health now="150" max="150"/> <look type="57" head="78" body="86" legs="114" feet="116" addons="0" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu vendo {premium account}."/> <parameter key="message_farewell" value="Ate logo, e volte se quizer comprar premium account."/> </parameters> </npc> Agora em npc/script copie qualquer arquivo , renomeio para NPC Premium e cole isto : 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 node1 = keywordHandler:addKeyword({'prem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Para comprar uma premium account fale {GPs}.'}) function creatureSayCallback(cid, type, msg) p = 150 -- valor da P.A em GP if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid ---------- MSGs ---------- if msgcontains(msg, 'gp') or msgcontains(msg, 'gps') or msgcontains(msg, 'GP') or msgcontains(msg, 'GPs') or msgcontains(msg, 'GPS') then selfSay('Cada dia de premium account custa '..p..' gold coins, quantos dias você deseja comprar?', cid) talkState[talkUser] = 1 ---== compra por GPs ==--- elseif talkState[talkUser] == 1 then if getNumber(msg) < 365 then n = getNumber(msg) if n ~= 0 then if getPlayerMoney(cid) > p*n then selfSay('Você deseja mesmo comprar {'..n..'} dias de premium account por {'..n*(p)..'} gold coins?', cid) talkState[talkUser] = 3 else selfSay('Desculpe, você não possue dinheiro suficiente para comprar {'..n..'} dias de premium account.', cid) talkState[talkUser] = 0 end else selfSay('Escolha um numero maior que 0.', cid) talkState[talkUser] = 0 end else selfSay('Você não pode ter mais de 360 dias de premium account.', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 3 then ---== GPs ==--- if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') or msgcontains(msg, 'SIM') or msgcontains(msg, 'YES') then if getPlayerPremiumDays(cid)+n <= 360 then if (doPlayerRemoveMoney(cid, p*n) ~= TRUE) then npcHandler:say('Desculpe, você não tem dinheiro.', cid) talkState[talkUser] = 0 else doPlayerAddPremiumDays(cid, n) selfSay('Você realizou sua compra de { '..n..' } dias de premium account com sucesso.', cid) talkState[talkUser] = 0 end else npcHandler:say('Você não pode ter mais de 360 dias de premium account.', cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, 'no') or msgcontains(msg, 'nao') or msgcontains(msg, 'não') or msgcontains(msg, 'NO') or msgcontains(msg, 'NAO') or msgcontains(msg, 'NÃO')then selfSay('Okay.', cid) talkState[talkUser] = 0 end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -- function maded by Gesior-- function getNumber(txt) --return number if its number and is > 0, else return 0 x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados