Histórico de Curtidas
-
silasops deu reputação a Xagah em Npc que troca varios itens por 1Crie um arquivo chamado Jax.lua na pasta data/npc/scripts e cole isso:
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 items = { item1 = {2346, 2349}, -- item1 item que será pedido e que será dado na primeira troca item2 = {2033, 15515} -- item2 item que será pedido e que será dado na segunda troca } local counts = { count1 = {1, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca count2 = {10, 1} -- count2 quantidade que será pedido e que será dado na segunda troca } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'blue note') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You just swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) else selfSay('You need '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end elseif msgcontains(msg, 'bar of gold') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You just swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) else selfSay('You need '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Crie um arquivo chamado Jax.xml na pasta data/npc e cole isso:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Jax" script="Jax.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150" /> <look type="134" head="57" body="59" legs="40" feet="76" corpse="2212" /> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. Do not want to make an exchange? I have {blue note} and {bar of gold}." /> <parameter key="message_farewell" value="Bye bye!" /> </parameters> </npc> Testado e está 100% funcional
-
silasops deu reputação a PsyMcKenzie em Sistema de Cortar Madeira V1.0 por PsyMcKenzieBom galera, estou começando minha carreira na área de scripts, e estou fazendo o possível para postar 1 por semana.
Semana passada eu postei o Sistema de Fome
E hoje estou postando o Woodcutting Sistem na versão 1.0, em breve updates. Então, vamos lá!
Em data/actions/scripts, crie um arquivo.lua com o nome de wood e coloque isso:
function onUse(cid, item, frompos, item2, topos) local chance = 70 -- chance de cortar local madeiras = {5941, 5901} -- item que o player irá ganhar local premio = madeiras[math.random(1, #madeiras)] local transformItem = 8786 local texts = {"Tuc", "Toc", "Trec"} local random = texts[math.random(1,#texts)] local vocationUse = 2 local time = 2 -- Minutos para crescer novamente if getPlayerVocation(cid) ~= vocationUse then doPlayerSendTextMessage(cid,22,"Você não tem a vocação necessária para cortar.") return true end if item2.itemid == 2708 or item2.itemid == 2700 or item2.itemid == 6218 or item2.itemid == 2701 or item2.itemid == 2707 then if math.random(1,100) >= chance then doPlayerAddItem(cid,premio, math.random(1, 2)) doTransformItem(item2.uid, transformItem) doSendMagicEffect(topos, 16) doPlayerSendTextMessage(cid,22,"Você cortou uma madeira.") doSendAnimatedText(topos, ""..random.."", TEXTCOLOR_GREEN) doDecayItem(item2.uid) addEvent(doCreateItem, time*60*1000, item2.itemid, 1, getThingPos(item2.uid)) else doSendAnimatedText(topos, ""..random.."", TEXTCOLOR_GREEN) doPlayerSendTextMessage(cid,22,"Você não conseguiu cortar.") end end return true end
Em data/actions/actions.xml adicione a tag:
<action itemid="4874" event="script" value="wood.lua"/>
4874 é o ID do Dwarven Pickaxe.
Imagens:
É isso ai galera. Obrigado!
-
silasops deu reputação a Heyron em Como fazer um servidor novo, com mapa próprio?Dê uma olhada aqui, pode ser útil.
Não se esqueça de criar uma Town (cidade) através do RME, basta usar o ALT+T.
-
silasops deu reputação a Heyron em Como fazer um servidor novo, com mapa próprio?Olha cara, eu particularmente sempre curti a versão 8.60, e acredito eu, que essa seja a mais jogada mundialmente.
Bom, nesse caso que você quer um servidor limpo, sem a adição de scripts/mods de terceiros, eu lhe aconselho esse servidor, o TFS 0.4.
Nesse, só vem o essencial para o funcionamento de um servidor, o básico mesmo.. Mas você pode modificado por completo, pois o servidor acompanha as sources e tudo mais.
Para o seu mapa funcionar no servidor, você tem que verificar se o servidor e a versão do mapa são da mesma versão, não sê esqueça disso.