Postado Julho 23, 2014 10 anos Querido, dai tu complica a situação de quem quer te ajudar. Acha o nome do npc na pasta Data > npcs. Abre o Npc e vê para que arquivo ele ta redirecionando na pasta Data > Npcs > Scripts. Abre o arquivo e me manda.
Postado Julho 23, 2014 10 anos Autor Esse é o script do npc: 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 msg = string.lower(msg) --------- local configs = { diamondsID = 2145, --id do diamond no items.xml/otb... (achu q vais ter q criar, ou pegar algum item q ja tenha ae...) VIP = {days = 30, cost = 10}, --days = qnts dias de VIP o player compra por vez.... cost = custo para virar VIP... SEX = {cost = 3}, --cost = custo para trocar de sexo... } if (msgcontains(msg, 'diamond account') or msgcontains(msg, 'diamond')) then selfSay("You want to buy a diamond account and be VIP for "..configs.VIP.days.." days? It will cost "..configs.VIP.cost.." diamonds!", cid) talkState[talkUser] = 2 return true elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then if getPlayerItemCount(cid, configs.diamondsID) >= configs.VIP.cost then selfSay("Ok then, now you have "..configs.VIP.days.." days of VIP! Enjoy!", cid) doPlayerAddPremiumDays(cid, configs.VIP.days) doPlayerRemoveItem(cid, configs.diamondsID, configs.VIP.cost) talkState[talkUser] = 0 return true else selfSay("You need atleast "..configs.VIP.cost.." diamonds to do that!", cid) talkState[talkUser] = 0 return true end elseif (msgcontains(msg, 'sex change') or msgcontains(msg, 'sex')) then selfSay("So you want to change of sex? It will cost "..configs.SEX.cost.." diamonds", cid) talkState[talkUser] = 3 return true elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then if getPlayerItemCount(cid, configs.diamondsID) >= configs.SEX.cost then local sex = getPlayerSex(cid) selfSay("Ok then, now you are of the sex "..(sex == 0 and "female" or "male")..". Enjoy!", cid) doPlayerSetSex(cid, (sex == 0 and 1 or 0)) doPlayerRemoveItem(cid, configs.diamondsID, configs.SEX.cost) talkState[talkUser] = 0 return true else selfSay("You need atleast "..configs.SEX.cost.." diamonds to do that!", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 4 then selfSay("Ok then, tell me what city do you want?", cid) talkState[talkUser] = 5 return true elseif places[msg] and talkState[talkUser] == 5 then if getPlayerItemCount(cid, configs.diamondsID) >= configs.TOWN.cost then selfSay("Done, enjoy your new city!", cid) doPlayerSetTown(cid, places[msg]) doPlayerRemoveItem(cid, configs.diamondsID, configs.TOWN.cost) talkState[talkUser] = 0 return true else selfSay("You need atleast "..configs.TOWN.cost.." diamonds to do that!", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg, 'no') then selfSay("Ok then, tell me again what you want...", cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Julho 23, 2014 10 anos Solução Olá, queria um script de uma talkaction na qual quando o player disser: @buy VIP30 Ele ganhe 30 dias de vip e remova 10 diamonds dele Vou te Ajudar! - Vá até SeuServer\data\talkactions\scripts e crie um arquivo chamado buyvip e com o tipo .lua e coloque isso dentro dele: local a = { ITEM = {2145, 10}, -- ITEM, QUANTIDADE DAYS = 30 -- Dias de vip } function onSay(cid, words, param,channel) if getPlayerItemCount(cid, a.ITEM[1]) >= a.ITEM[2] then doPlayerAddPremiumDays(cid, a.DAYS) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu "..a.DAYS.." dias de account vip!") doSendMagicEffect(getCreaturePosition(cid), 28) doPlayerRemoveItem(cid, a.ITEM[1], a.ITEM[2]) else doSendMagicEffect(getCreaturePosition(cid), 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Desculpe mas você não tem Diamonds suficientes para ativar sua account vip.") end return TRUE end - Agora vá em SeuServer\data\talkactions e abra o talkactions.xml e adicone essa tag: <talkaction words="!buyvip30;@buyvip30" event="script" value="buyvip.lua"/> POR FAVOR SE EU TE AJUDEI DE UM REP+ Editado Julho 23, 2014 10 anos por TsplayerT (veja o histórico de edições) Meus Contatos! Minhas Funções: Skype: TsplayerT Facebook: TakaFukushii YouTube: ADoseDupla Twitter: @_Splayer_ Mapper:▓▓▓▓▓▓▓▓▓▓ 97% Programmer:▓▓▓▓▓▒▒▒▒▒ 45% Scripter:▓▓▓▓▓▓▓▓▓▒ 83% Spriter:▓▓▓▓▓▓▒▒▒▒ 57% Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99% Ot Creator:▓▓▓▓▓▓▓▒▒▒71% Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%
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.