Oi vim com o novo sistema que peguei do server Wolfvr v2.0 e decedi deixar em segredo e não expor pra ninguém,mais agora que o Erondino esta usando esse sistema no server dele decidi postar também para quem não usa o server do Erondino,esse sistema foi traduzido PT-BR por mim e aprenda a fazer este NPC com apenas 2° passos bem simples e bem
esplicados.
Testado nos server's: Pokemon Dash V6.0 e Pokemon Ex V2.0
Não funciona em: GuuhTorres V4.0 (Testem na V.5 porfavor)
Não foram testados: Pokemon Dash ADV e outros
1°Passo
1-Va na pasta do seu Server/Data/NPC.
2-Copie um NPC apague tudo que tem dentro e renomei-o para DarkBoost.
3-Agora abra o DarkBoost com bloco de notas e copie isto e cole dentro do DarkBoost
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Professor Riberson" script="boostmaker.lua" floorchange="0" speed="0">
<health now="150" max="150"/>
<look type="171" head="97" body="114" legs="114" feet="0"/>
<parameters>
<parameter key="message_greet" value="Olá eu sou Professor Riberson . Eu posso deixar seu pokemons + fortes"/>
<parameter key="message_farewell" value="Good bye!"/>
<parameter key="message_idletimeout" value="Good bye!"/>
<parameter key="message_walkaway" value="Good bye!"/>
</parameters>
</npc>
4-Párabens agora agente ja tem o NPC agora vamos ao 2° Passo
2°Passo
1- Va na pasta do seu Server/Data/Npc/Scripts.
2-Copie um NPC apague tudo que tem dentro e renomei-o para boostmaker.lua
3-Agora abra o bootmaker com bloco de notas e copie isto e cole dentro dele.
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {20}
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
local itemPedra = {
-- [TIPO] = {STONE}
["Fire"] = {2283},
["Crystal"] = {2285},
["Enigma"] = {2288},
["Venom"] = {2278},
["Thunder"] = {2279},
["Coccon"] = {2284},
["Leaf"] = {2276},
["Water"] = {2277},
["Heart"] = {2289},
["Darkness"] = {2286},
["Punch"] = {2281},
["Earth"] = {2287},
["Rock"] = {2280},
["Ice"] = {2290},
}
local pedras = {
-- [sTONE_ID] = {pokemons que usam a stone}
--[[Fire]]
[2283] = {names = "Charmander, Charizard, Charmileon, Arcanine, Growlithe, Flareon, Magmar, Ninetales, Rapidash, Vulpix, Ponyta, Moltres, Shiny Arcanine, Shiny Charizard, Shiny Growlithe" ,count = 2},
--[[Crystal]]
[2285] = {names = "Dragonite, Dragonair, Shiny Dragonair, Shiny Dratini, Dratini" ,count = 5},
--[[Enigma]]
[2288] = {names = "Alakazam, Shiny Alakazam, Abra, Kadabra, Hypno, Drowzee, Mr Mime" ,count = 2},
--[[Venom]]
[2278] = {names = "Nidoking, Nidoqueen, Muk, Grimer, Weezing, Koffing, Ekans, Arbok, Golbat, Zubat, Nidoranfemale, Nidoranmale, Nidorina, Nidorino, Venonat, Venomoth, Shiny Venomoth, Shiny Zubat, Shiny Golbat, Shiny Muk, Shiny Grimer, Shiny Venonat" ,count = 2},
--[[Thunder]]
[2279] = {names = "Electabuzz, Raichu, Pikachu, Electrode, Voltorb, Jolteon, Magnetom, Magnemite, Zapdos, Shiny Electabuzz, Shiny Raichu, Shiny Voltorb, Shiny Electrode" ,count = 2},
--[[Coccon]]
[2284] = {names = "Scyther, Parasect, Shiny Parasect, Paras, Caterpie, Weedle, Beedrill, Butterfree, Kakuna, Metapod, Pinsir, Shiny Pinsir, Shiny Scyther, Shiny Beedrill, Shiny Butterfree, Shiny Paras" ,count = 2},
--[[Leaf]]
[2276] = {names = "Venusaur, Bulbasaur, Ivysaur, Tangela, Exeggutor, Weepinbell, Bellsprout, Victreebell, Oddish, Vileplume, Gloom, Exeggcute, Shiny Tangela, Shiny Venusaur, Shiny Oddish" ,count = 3},
--[[Water]]
[2277] = {names = "Magikarp, Blastoise, Squirtle, Wartortle, Vaporeon, Gyarados, Omastar, Omanyte, Lapras, Poliwrath, Poliwag, poliwhirl, Horsea, Seadra, Krabby, Kingler, Psyduck, Golduck, Tentacool, Tentacruel, Slowpoke, Slowbro, Goldeen, Seaking, Staryu, Starmie, Lapras, Shiny Blastoise, Shiny Seadra, Shiny Krabby, Shiny Kingler, Shiny Tentacool, Shiny Tentacruel, Shiny Horsea, Shiny Gyarados, Shiny Magikarp" ,count = 2},
--[[Heart]]
[2289] = {names = "Pidgeot, Pidgeotto, Fearow, Pidgey, Chansey, Clefable, Wiglyttuff, Kangaskhan, Porygon, Raticate, Rattata, Doduo, Dodrio, Spearow, Clefairy, Jigglypuff, Meowth, Persian, Farfetchd, Lickitung, Ditto, Eevee, Snorlax, Shiny Pidgeot, Shiny Rattata, Shiny Raticate" ,count = 2},
--[[Darkness]]
[2286] = {names = "Haunter, Gengar, Gastly, Shiny Abra, Shiny Gengar" ,count = 3},
--[[Punch]]
[2281] = {names = "Hitmonchan, Hitmonlee, Machamp, Shiny Hitmonlee, Shiny Hitmonchan, Mankey, Primeape, Machop, Machoke" ,count = 2},
--[[Earth]]
[2287] = {names = "Diglett, Sandslash, Dugtrio, Sandsherew, Marowak, Cubone, Shiny Marowak" ,count = 2} ,
--[[Rock]]
[2280] = {names = "Geodude, Golem, Rhydon, Graveler, Rhyhorn, Aerodactyl, Kabutops, Kabuto, Onix, Crystal Onix" ,count = 2},
--[[ice]]
[2290] = {names = "Seel, Jynx, Dewgong, Cloyster, Shellder, Articuno, Shiny Jynx" ,count = 2} ,
}
function boostPoke(cid,stones)
local ball = getPlayerSlotItem(cid, CONST_SLOT_FEET) ;
local tmp = pedras[stones]
if tmp ~= nil then
if getPlayerItemCount(cid,stones) < tmp.count then
selfSay("Voce tem que ter "..tmp.count.." Essa stone para boostar seu pokemon. Ate mais!",cid)
return false
end
local pokename = getItemSpecialDescription(ball.uid)
local name = getItemAttribute(ball.uid, "poke"):match("This is (.-)'s pokeball.")
doPlayerRemoveItem(cid,stones,tmp.count)
if(pokename:find("\+(%d+)"))then
local boost = pokename:match("\+(%d+)")
doItemSetAttribute(ball.uid, "description", tostring(pokename:gsub(boost,((tonumber(boost)+1)))))
selfSay("Parabens!! Seu atual pokemon esta com a +"..boost + 1, cid)
else
doItemSetAttribute(ball.uid, "description", pokename.." +1.")
selfSay("Parabens!! Seu atual pokemon esta +1", cid)
end
return true
else
selfSay("Please tell to gamemaster that you receive this message usint boost system!!", cid)
return false
end
end
function onThingMove(creature, thing, oldpos, oldstackpos, item, itemEx)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.',cid)
focus = 0
talk_start = 0
talkState[talkUser] = 0
end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if getDistanceToCreature(cid) > 4 then
return false
end
if talkState[talkUser] ~= 3 then
msg = string.lower(msg)
end
if (msgcontains(msg, 'hi')) then
if #getCreatureSummons(cid) >= 1 then
selfSay('Porfavor bote seu pokemon na pokebola...', cid)
focus = 0
talkState[talkUser] = 1
return false
end
if getPlayerStorageValue(cid, 17001) == 1 then
focus = 0
talkState[talkUser] = 1
selfSay('You Are riding .', cid)
return false
end
if getPlayerStorageValue(cid, 7778) >= 1 then
focus = 0
talkState[talkUser] = 1
selfSay('You are using ability.', cid)
return false
end
fala = "Ola treinador viajante, Quer que eu fortaleça seu pokemon ?"
selfSay(fala,cid)
talkState[talkUser] = 1
elseif ( ( msgcontains(msg,"yes") or (msgcontains(msg,"boost") ) ) and talkState[talkUser] == 1 ) then
for i,x in pairs(itemPedra) do
local poke = pedras[itemPedra[1]]
varPoke = poke.names
item = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local pbPoke = getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")
if (msgcontains(string.lower(varPoke), string.lower(pbPoke))) then
qtdStone = pedras[itemPedra[1]].count
setPlayerStorageValue(cid,18059,itemPedra[1])
selfSay("Voce precisa de "..qtdStone.." "..i.." Stones para fortalecer seu pokemon ?",cid)
talkState[talkUser] = 2
end
end
if talkState[talkUser] == 1 then
selfSay("You main pokemon are not supported by the Script YET",cid)
end
elseif ( msgcontains(msg, 'yes') and talkState[talkUser] == 2 ) then
stones = getPlayerStorageValue(cid, 18059)
if not boostPoke(cid,stones) then
talkState[talkUser] = 1
end
elseif(msgcontains(msg, 'no')) then
talkState[talkUser] = 0
selfSay('Ok Bye Then.', cid)
elseif(msgcontains(msg, 'bye')) then
selfSay('Ok Bye Then.', cid)
talkState[talkUser] = 0
end
end
function onCreatureChangeOutfit(creature)
end
4-Parabéns agora você tem o arquivo.lua do seu NPC.
Ajudei REP+ Porfavor e Obrigado
OBJETIVOS:
[ ] 2 PONTOS DE REPUTAÇÃO
[ ] 5 PONTOS DE REPUTAÇÃO
[ ] 7 PONTOS DE REPUTAÇÃO
[ ] 9 PONTOS DE REPUTAÇÃO
Huhuull a caminho ao sucesso
Esqueci de avisar que o boost system e apenas por 2 Stones quase todos os tipos o Tipo dragon custa 5 !