IN

Script Super Facil

Por infernity, 16 de fev. de 2011 em Actions e Talkactions

script
11
1.7k
infernityI
16 de fevereiro de 2011 às 14:16

Eu gostaria de pedir um escript, queria ele da seguinte maneira:

 

o player fala com o npc e paga 500gps em troca disso ele e recompensado com um 30 diamantes de id: 2146

ao ser pago os 500gps e ele ganha as 30 diamonds ele e teleportado para uma determinada area.

 

gostaria de que alguem me ajudasse com esse script, sei que e facil para quem ja intende do assunto.

vlw a todos :)

rep+ pra quem ajuda!!

VodkartV
16 de fevereiro de 2011 às 18:21

área errada.

 

o npc só vai teleportar o jogador uma vez? ou o jogador sempre que pagar 500gp pro ncp recebe 30 diamonds e é teleportado?

infernityI
16 de fevereiro de 2011 às 19:07

sim somente uma vez, ao pagar 500gps o jogador e teleportado e ganha 30 diamonds.

 

na verdade esse npc era pra ser posto no saffari para server de pokemon :)

no lugar dos gps se der para por logo dollar e no lugar da diamonds as pokebolas ajudaria

 

obrigadão vodkart

VodkartV
16 de fevereiro de 2011 às 21:12
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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 SellItem(cid, message, keywords, parameters, node)
       if(not npcHandler:isFocused(cid)) then
               return false
       end
          if getPlayerStorageValue(cid, parameters.storage) <= 0 then
          if doPlayerRemoveMoney(cid, parameters.price) == TRUE then
             setPlayerStorageValue(cid, parameters.storage, 1)
             doPlayerAddItem(cid,parameters.item,parameters.count)
             doTeleportThing(cid, parameters.teleport) 
       else
               npcHandler:say('Sorry, you dont have ' .. parameters.price .. ' gps!', cid)
       end
       else
               npcHandler:say('Sorry,I already gave the items for you!', cid)
       end
       npcHandler:resetNpc()
       return true
end

local node1 = keywordHandler:addKeyword({'reward'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want buy 30 ' .. getItemNameById(2146) .. 's for 500 gps?'})
node1:addChildKeyword({'yes'}, SellItem, {price = 500,item = 2146,count = 30,teleport = {x = 160, y = 54, z = 7},storage = 90897})
node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true})

npcHandler:addModule(FocusModule:new())

Editado Fevereiro 16 por Vodkart

infernityI
16 de fevereiro de 2011 às 22:09

desculpa mas ta dando erro quando vo adiciona no mapa

da erro de formato..

desculpa nao ter avisado mais to usando versão 8.54

teria como da uma arrumada?

a maioria tem isso +-

 

ex :

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Pablo" script="loot.lua" walkinterval="2000" floorchange="0">
<health now="150" max="150"/>
<look type="159" head="132" body="79" legs="97" feet="132" corpse="2212"/>

 

no decorrer do script tem muitos <><><><><>

 

 

brigadão pela atenção vodkart.. se resolver do 2rep++ :D

Editado Fevereiro 16 por infernity

VodkartV
16 de fevereiro de 2011 às 22:28

ta errado mesmo,não é esse o XML do npc

 

 

NOME DO SEU NPC.xml

<?xml version="1.0"?>
<npc name="NOME DO SEU NPC" script="data/npc/scripts/nome do seu script.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Hello |PLAYERNAME|. I can {reward} you..." /> 
</parameters>
</npc>

 

ai em npc/script

 

nome do seu script.lua

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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 SellItem(cid, message, keywords, parameters, node)
       if(not npcHandler:isFocused(cid)) then
               return false
       end
          if getPlayerStorageValue(cid, parameters.storage) <= 0 then
          if doPlayerRemoveMoney(cid, parameters.price) == TRUE then
             setPlayerStorageValue(cid, parameters.storage, 1)
             doPlayerAddItem(cid,parameters.item,parameters.count)
             doTeleportThing(cid, parameters.teleport) 
       else
               npcHandler:say('Sorry, you dont have ' .. parameters.price .. ' gps!', cid)
       end
       else
               npcHandler:say('Sorry,I already gave the items for you!', cid)
       end
       npcHandler:resetNpc()
       return true
end

local node1 = keywordHandler:addKeyword({'reward'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want buy 30 ' .. getItemNameById(2146) .. 's for 500 gps?'})
node1:addChildKeyword({'yes'}, SellItem, {price = 500,item = 2146,count = 30,teleport = {x = 160, y = 54, z = 7},storage = 90897})
node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true})

npcHandler:addModule(FocusModule:new())

Editado Fevereiro 16 por Vodkart

infernityI
16 de fevereiro de 2011 às 23:59

vlw ae vodkart ja dei seu rep++

 

agora so uma duvida..

 

22:56 Shirou Fubuki: Sorry,I already gave the items for you!

 

não teria como compra novamete esse item? e quando esses 30 diamonds acabassem o player fosse teleportado para outro lugar.

 

tipo oque vc fez ja ta bom, so queria o complemeto...

o complemento seria:

compra novamente esses 30 diamonds, player nao poderia compra os 30 diamonds se tivesse com esse item de id na mochila:2150 e quando as diamonds acabassem o player fosse teleportado para outro local.

 

diamonds = pokeball

 

vlw ae, desculpa o encomodo..

sabe como eh ne? xD

Editado Fevereiro 17 por infernity

VodkartV
17 de fevereiro de 2011 às 10:57

deixa eu ve se eu entendi direito oque vc quer...

 

O npc só vai vender novamente os diamond se o jogador não tiver nenhum diamond na bag é isso?

caso contrario ele compra os diamond e é teleportado denovo?

infernityI
17 de fevereiro de 2011 às 14:12

sim, o npc so vendera os diamonds novamente se o player não tiver com os 30 diamond na bag.

 

no meu utimo anuncio colokei o id errado

desculpas...

id: 2146

 

valeu ae :)

VodkartV
17 de fevereiro de 2011 às 15:54
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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 SellItem(cid, message, keywords, parameters, node)
       if(not npcHandler:isFocused(cid)) then
               return false
       end
          if (getPlayerItemCount(cid, 2146) < parameters.count) then
          if doPlayerRemoveMoney(cid, parameters.price) == TRUE then
             doPlayerAddItem(cid,parameters.item,parameters.count)
             doTeleportThing(cid, parameters.teleport) 
       else
               npcHandler:say('Sorry, you dont have ' .. parameters.price .. ' gps!', cid)
       end
       else
               npcHandler:say('Sorry,you already have 30 diamonds!', cid)
       end
       npcHandler:resetNpc()
       return true
end

local node1 = keywordHandler:addKeyword({'reward'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want buy 30 ' .. getItemNameById(2146) .. 's for 500 gps?'})
node1:addChildKeyword({'yes'}, SellItem, {price = 500,item = 2146,count = 30,teleport = {x = 160, y = 54, z = 7}})
node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true})

npcHandler:addModule(FocusModule:new())

infernityI
17 de fevereiro de 2011 às 21:31

VALEEEUU VODKARTTTT DUVIDA RESOLVIDAAA

 

 

agora so uma coisinha teria como o player ser teleportado para outro local quando os diamonds acabassem da muchila dele? :D

 

VALEU SE N TIVER COMO DEIXA KETOO

AJUDO MUITOOOO

Editado Fevereiro 18 por infernity