Ir para conteúdo

[Encerrado] Vip Por Diamants


webmasterxd

Posts Recomendados

Npc VIP (Diamond) - ChangeSex. Bless, VIP, Hometown.

 

Vá "Pasta servidor > data > npc" Crie "Premium.xml" e adicione:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Dalk" script="premium.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="1089" head="91" body="114" legs="86" feet="0"/>
<parameters>

</parameters>
</npc>

 

Agora vá "Pasta Servidor > Data > Npc > Script" e crie "premium.lua" e adicione:

 

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

-- Conversa Jogador/NPC
if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then
selfSay('I sell Premium accounts.', cid)
elseif(msgcontains(msg, 'premium account') or msgcontains(msg, 'Premium Account')) then
selfSay('Premium Account users are able to use ride, teleport and fly. They can also wear all clothes, rent houses and costumize poké balls. Finally, premium account users have access to the saffari zone and are free of taxes in the casino! If you would like to upgrade your account for a month you will have to pay me 10 diamonds. Would you like to upgrade it?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'bless') or msgcontains(msg, 'Bless')) then
selfSay('To be blessed 3 diamonds are necessary, would you like to go on?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'Change Sex') or msgcontains(msg, 'change sex')) then
selfSay('To change sex 5 diamonds are necessary, would you like to go on?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'Hometown') or msgcontains(msg, 'hometown')) then
selfSay('To change your hometown five diamonds are needed, what the city wants to choose?', cid)
talkState[talkUser] = 4

-- Confirmação da Compra
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(doPlayerRemoveItem(cid, 2145, 10) == true) then
selfSay('Thanks!', cid)
doPlayerAddPremiumDays(cid, 31)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if getPlayerBlessing(cid, 1) and getPlayerBlessing(cid, 2) and getPlayerBlessing(cid, 3) and getPlayerBlessing(cid, 4) and getPlayerBlessing(cid, 5) then
selfSay('You have already got one or more blessings!', cid)
else
if(doPlayerRemoveItem(cid, 2145, 3) == true) then
selfSay('Thanks!', cid)
doPlayerAddBlessing(cid, 1)
doPlayerAddBlessing(cid, 2)
doPlayerAddBlessing(cid, 3)
doPlayerAddBlessing(cid, 4)
doPlayerAddBlessing(cid, 5)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
if(getPlayerSex(cid) == PLAYERSEX_FEMALE) then
doPlayerSetSex(cid, PLAYERSEX_MALE)
else
doPlayerSetSex(cid, PLAYERSEX_FEMALE)
end
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'saffron') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 1)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'cerulean') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 2)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'lavender') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 3)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'fuchsia') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 4) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 4)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'celadon') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 5)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'viridian') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 6)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'pewter') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 8)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'vermilion') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 9)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'cinnabar') and talkState[talkUser] == 4) then
if(doPlayerRemoveItem(cid, 2145, 5) == true) then
selfSay('Thanks!', cid)
doPlayerSetTown(cid, 10)
talkState[talkUser] = 0
else
selfSay('You do not have enough diamonds.', cid)
talkState[talkUser] = 0
end  
end
return TRUE
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Espero Ter Ajudado.

Atenciosamente, Stigal.

Editado por Stigal
Link para o comentário
Compartilhar em outros sites

Vlw ganho RED+

 

Nao sei se e pedino de mais e pq meu sever tem ums erro aqui que faz cair um deles e esse quando dar muitos erros desses fica caino

 

[21/09/2012 15:49:33] [Error - TalkAction Interface]

[21/09/2012 15:49:33] In a timer event called from:

[21/09/2012 15:49:33] data/talkactions/scripts/move1.lua:onSay

[21/09/2012 15:49:33] Description:

[21/09/2012 15:49:33] (luaGetThingFromPos) Tile not found

 

meu sever e Serv Full v1.6_semLvl quero muito sua ajuda pra arumar esses erro pra por meu sever dedicado!

Link para o comentário
Compartilhar em outros sites

Vlw ganho RED+

 

Nao sei se e pedino de mais e pq meu sever tem ums erro aqui que faz cair um deles e esse quando dar muitos erros desses fica caino

 

[21/09/2012 15:49:33] [Error - TalkAction Interface]

[21/09/2012 15:49:33] In a timer event called from:

[21/09/2012 15:49:33] data/talkactions/scripts/move1.lua:onSay

[21/09/2012 15:49:33] Description:

[21/09/2012 15:49:33] (luaGetThingFromPos) Tile not found

 

meu sever e Serv Full v1.6_semLvl quero muito sua ajuda pra arumar esses erro pra por meu sever dedicado!

Vá em "Data > Talkactions > Scripts > move1.lua" apague tudo que esteja dentro do "move1.lua" e adicione:

 

local msgs = {"use ", ""}
function doAlertReady(cid, id, movename, n, cd)
if not isCreature(cid) then return true end
local myball = getPlayerSlotItem(cid, 8)
if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")
return true
end
local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
if not p or #p <= 0 then return true end
for a = 1, #p do
 if getItemAttribute(p[a], cd) == "cd:"..id.."" then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")
 return true
 end
end
end
function onSay(cid, words, param, channel)

if param ~= "" then return true end
if string.len(words) > 3 then return true end
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")
return 0
end
				  --alterado v1.5
local mypoke = getCreatureSummons(cid)[1]
if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
if getCreatureName(mypoke) == "Evolution" then return true end
   if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then
   name = getPlayerStorageValue(mypoke, 1010)   --edited
   else
   name = getCreatureName(mypoke)
   end 

   --local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)
local it = string.sub(words, 2, 3)
local move = movestable[name].move1
if getPlayerStorageValue(mypoke, 212123) >= 1 then
  cdzin = "cm_move"..it..""
else
  cdzin = "move"..it..""	   --alterado v1.5
end
if it == "2" then
 move = movestable[name].move2
elseif it == "3" then
 move = movestable[name].move3
elseif it == "4" then
 move = movestable[name].move4
elseif it == "5" then
 move = movestable[name].move5
elseif it == "6" then
 move = movestable[name].move6
elseif it == "7" then
 move = movestable[name].move7
elseif it == "8" then
 move = movestable[name].move8
elseif it == "9" then
 move = movestable[name].move9
elseif it == "10" then
 move = movestable[name].move10
elseif it == "11" then
 move = movestable[name].move11
elseif it == "12" then
 move = movestable[name].move12
elseif it == "13" then
 move = movestable[name].move13
end
if not move then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
return true
end

if getPlayerLevel(cid) < move.level then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.")
   return true
   end
if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.")
return 0
end
if getTileInfo(getThingPos(mypoke)).protection then
 doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")
return 0
end

if getPlayerStorageValue(mypoke, 3894) >= 1 then
   return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3
   end

if move.name == "Team Slice" or move.name == "Team Claw" and #getCreatureSummons(cid) < 2 then	   --alterado v1.5
 doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!")
   return 0
   end
if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["too bad"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then
  local target = getCreatureTarget(cid)																					  
																	 --alterado v1.5
  doSendMagicEffect(getThingPos(target), 211)
  doSendAnimatedText(getThingPos(target), "TOO BAD", 215)							   
  doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false)
  doSendMagicEffect(getThingPos(target), 211)
  doFaceCreature(target, getThingPos(mypoke))	 
return 0
end

if move.target == 1 then
if not isCreature(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end
if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then
return 0
end
if getCreatureHealth(getCreatureTarget(cid)) <= 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.")
return 0
end
if not isCreature(getCreatureSummons(cid)[1]) then
return true
end
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end
if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end
local newid = 0
    if isSleeping(mypoke) or isSilence(mypoke) then  --alterado v1.5
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.")
  return 0
 else
  newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
 end

doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY)

   local mypoke22 = getCreatureSummons(cid)[2] or 0	    --edited team
   local mypoke33 = getCreatureSummons(cid)[3] or 0
addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)
if mypoke33 ~= 0 and getPlayerStorageValue(cid, 637501) >= 1 then
   if move.name ~= "Team Slice" and move.name ~= "Team Claw" then   --alterado v1.5
   docastspell(mypoke33, move.name)
   docastspell(mypoke22, move.name)
   end
   elseif mypoke22 ~= 0 and getPlayerStorageValue(cid, 637501) >= 1 then		   --edited team
  if move.name ~= "Team Slice" and move.name ~= "Team Claw" then	 --alterado v1.5
	 docastspell(mypoke22, move.name)
  end
   end 
   docastspell(mypoke, move.name)
doCreatureAddCondition(cid, playerexhaust)
if useKpdoDlls then
 doUpdateCooldowns(cid)
end
return 0
end

 

 

Abraço.

Link para o comentário
Compartilhar em outros sites

Como eu so muito burro necessito de mais um ajudinha tipo assim o cliente do meu sever ja com as script com os pokemon com addon e tem os items pra por addon mais quando cliko no item nao fica com o addon como eu faço?

veja as imagens dos items que poin addon e os pokemon com addons que ja tem no cliente:

 

Items :

http://imageshack.us.../267/pokec.png/

 

Addons dos pokes :

http://imageshack.us.../88/assasg.png/

Editado por webmasterxd
Link para o comentário
Compartilhar em outros sites

• Script Dos Addon - Creditos RicardoSohnn •

 

Em actions.xml adicione a seguinte tag:

<action itemid="xxxx" event="script" value="addons.lua">

Sendo, xxxx o id do item que vai dar o addon.

 

va em "Data > actions > script" crie "addons.lua" e adicione

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local addons = {
	[xxxx] = {pokemon= "Scyther" , looktype = 510}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon
	}

	if #getCreatureSummons(cid) > 0 then
			doPlayerSendCancel(cid, "Please back your pokemon.")
			return false
	end	
	local numero = addons[item.itemid].looktype

	local pb = getPlayerSlotItem(cid, 8).uid
	local pk = addons[item.itemid].pokemon

	if getItemAttribute(pb,"poke") ~= pk then
			doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.")
	return false
	end

	if getItemAttribute(pb,"addon") < 1 then
			doRemoveItem(item.uid, 1)
			doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.")
			doSetItemAttribute(pb,"addon",numero)
			return true
	end	

return true
end

 

Na action do goback, no finalzinho antes de

else
	doPlayerSendCancel(cid, "This pokemon is fainted.")
end

 

Coloque:

local pk = getCreatureSummons(cid)[1]
	local pb = getPlayerSlotItem(cid, 8).uid
	local look = getItemAttribute(pb,"addon")
	if not look then
			doSetItemAttribute(pb,"addon",0)
	return false
	end
	if look > 0 then
			doSetCreatureOutfit(pk, {lookType = look}, -1)
	return true
	end

 

Agora em data/lib/catch system.lua

Depois de:

doItemSetAttribute(item, "description", description)

Coloque:

doItemSetAttribute(item, "addon", 0)

 

Depois em data/talkactions/scripts/createpokeball.lua depois de:

doItemSetAttribute(item, "description", "Contains a "..name..".")

Coloque:

doItemSetAttribute(item, "addon", 0)

</action>

Editado por Stigal
Link para o comentário
Compartilhar em outros sites

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...