Ir para conteúdo
  • Cadastre-se

Posts Recomendados

é muito simples, vamos lá:

function onKill(cid, target, lastHit) -- ao matar um monstro qualquer
print("work") -- vai printar work (isso significa que o script tá configurado corretamente e está funcionando)
    if isMonster(target) and getPlayerStorageValue(cid, storages.maxcount) > 3 and getCreatureMaster(target) ~= nil and (not(isInParty(cid)) or config.partycount ~= true) then
-- /\ diversas checagens, vc tem que garantir que TODAS elas sejam verdadeiras. Caso elas sejam ele irá para o próximo passo 

Agora se vc não está chegando no próximo passo, vc tem que garantir que as seguintes coisas existem:
- isMonster(target) retorna true (essa parte não está errado, se estivesse daria erros no seu console.
- getPlayerStorageValue(cid, storages.maxcount) > 3 (aqui ele salva o máximo de monstros que vc tem que matar (vc configura isso lá no npc e eu coloquei que 3 é o minimo que tem que estar salvo pra você poder dar continuidade)
getCreatureMaster(target) ~= nil (esse é bem fácil de verificar, só colocar pra printar o resultado disso: print(getCreatureMaster(target)) depois do print("work") e ver oque sai.
Provavelmente o erro está nessa parte.
- O resto da checagem é pra ver se está em party e se a configuração de party está ligada/desligada



print(1) -- aqui é o proximo passo, irá printar 1.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • Respostas 233
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Fala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês!    Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda! Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores.

vc precisa achar a função que removeItem no 1.0, parece que tiraram ela em 1.0 e substituiram por outra.. o mesmo vale pra onCreatureSay 

@gmstrikker, O tamanho da task fica nesse storage: getPlayerStorageValue(cid, storages.length) e varia de 2 até 4 (pequena - media e grande) @maikons, embaixo de qnt coloca print(qnt) pra verificar q valor ela tá assumindo. 

Posted Images

é muito simples, vamos lá:

function onKill(cid, target, lastHit) -- ao matar um monstro qualquer

print("work") -- vai printar work (isso significa que o script tá configurado corretamente e está funcionando)

    if isMonster(target) and getPlayerStorageValue(cid, storages.maxcount) > 3 and getCreatureMaster(target) ~= nil and (not(isInParty(cid)) or config.partycount ~= true) then

-- /\ diversas checagens, vc tem que garantir que TODAS elas sejam verdadeiras. Caso elas sejam ele irá para o próximo passo 

Agora se vc não está chegando no próximo passo, vc tem que garantir que as seguintes coisas existem:

- isMonster(target) retorna true (essa parte não está errado, se estivesse daria erros no seu console.

- getPlayerStorageValue(cid, storages.maxcount) > 3 (aqui ele salva o máximo de monstros que vc tem que matar (vc configura isso lá no npc e eu coloquei que 3 é o minimo que tem que estar salvo pra você poder dar continuidade)

getCreatureMaster(target) ~= nil (esse é bem fácil de verificar, só colocar pra printar o resultado disso: print(getCreatureMaster(target)) depois do print("work") e ver oque sai.

Provavelmente o erro está nessa parte.

- O resto da checagem é pra ver se está em party e se a configuração de party está ligada/desligada

print(1) -- aqui é o proximo passo, irá printar 1.

 

Cara vc me embolou pra cacete

Onde vc ta querendo chegar com esse post? kkkk

 

Se é saber onde o cmd ta chegando?

Ele só entra até onkill

 

por isso só printa work, ele não entra nos outros dois condicionais

 

    if isMonster(target) and getPlayerStorageValue(cid, storages.maxcount) > 3 and getCreatureMaster(target) ~= nil and (not(isInParty(cid)) or config.partycount ~= true) then
print(1)
 

 

    elseif isMonster(target) and getCreatureMaster(target) ~= nil and isInParty(cid) and config.partycount == true then
print(2)
Link para o post
Compartilhar em outros sites

mal a demora, minhas aulas voltaram e tá foda tirar tempo pra ver códigos antigos:: tenta trocar seu creaturescript por esse daqui:

local storages = {
name = 95672,
count = 95673,
maxcount = 95674,
}

local config = {
partycount = true, --- true ou false pra ativar/desativar que os kills dos membros da party contem pra voce
killdistance = 7 --- distancia que conta os kills
}


function onKill(cid, target, lastHit)
	if isMonster(target) and getPlayerStorageValue(cid, storages.maxcount) > 3 and (type(getCreatureMaster(target)) == 'nil' or getCreatureMaster(target) == target) and (not(isInParty(cid)) or config.partycount ~= true) then
		if getCreatureName(target):lower() == string.lower(getPlayerStorageValue(cid, storages.name)) then
			setPlayerStorageValue(cid, storages.count, getPlayerStorageValue(cid, storages.count) + 1)
			if getPlayerStorageValue(cid, storages.count) == getPlayerStorageValue(cid, storages.maxcount) then
				doPlayerSendTextMessage(cid, 19, "You finished your task.")
			elseif getPlayerStorageValue(cid, storages.count) < getPlayerStorageValue(cid, storages.maxcount) then
				doPlayerSendTextMessage(cid, 20, "Killed ".. getCreatureName(target) .."s [".. getPlayerStorageValue(cid, storages.count) .."/".. getPlayerStorageValue(cid, storages.maxcount) .."].")
			end
		end
	elseif isMonster(target) and (type(getCreatureMaster(target)) == 'nil' or getCreatureMaster(target) == target) and isInParty(cid) and config.partycount == true then
	leader = getPartyLeader(cid)	
	party = getPartyMembers(leader)
		for i = 1, #party do
		pid = party[i]
		if getDistanceBetween(getThingPos(target), getThingPos(pid)) < config.killdistance then
			if getPlayerStorageValue(pid, storages.maxcount) > 3 then
				if getCreatureName(target):lower() == string.lower(getPlayerStorageValue(pid, storages.name)) then
					setPlayerStorageValue(pid, storages.count, getPlayerStorageValue(pid, storages.count) + 1)
					if getPlayerStorageValue(pid, storages.count) == getPlayerStorageValue(pid, storages.maxcount) then
						doPlayerSendTextMessage(pid, 19, "You finished your task.")
					elseif getPlayerStorageValue(pid, storages.count) < getPlayerStorageValue(pid, storages.maxcount) then
						doPlayerSendTextMessage(pid, 20, "Killed ".. getCreatureName(target) .."s [".. getPlayerStorageValue(pid, storages.count) .."/".. getPlayerStorageValue(pid, storages.maxcount) .."].")
					end
				end
			end	
		end	
		end
	end
return true
end





EDIT-->

Também fiz uma opção de pegar a recompensa em skills e dei uma melhorada no script, basta substituir o script do npc por esse daqui:

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

-- OTServ event handling functions start
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

-------------------------------- EXTERN CONFIG --------------------------------
local config = {
	levelcollect = 30, --- level pra poder fazer tasks do tipo collect
	time = 8 * 60 * 60, --- tempo que vc vai ficar sem poder falar com ele caso abandone uma task (em segundos)
	bonus = 1.2, --- bonus de exp/gold caso a task escolhida seja random (1.2 = 20% a mais)
	multiplicator = 1 --- multiplicador de exp/gold/skills (coloque de acordo com a necessidade do seu server)
}

local easy = {
	[1] = "Goblin",
	[2] = "Troll",
	[3] = "Rotworm",
	[4] = "Dwarf",
	[5] = "Amazon",
	[6] = "Elf",
	[7] = "Wolf",
	[8] = "Orc",
	[9] = "Minotaur"
}

local eacollect = {
	[1] = {id = 5880, count = 20}, -- iron ore
	[2] = {id = 5902, count = 15}, -- honeycomb
	[3] = {id = 5878, count = 10}, -- minotaur leather
	[4] = {id = 5890, count = 20}, -- chicken feather
	[5] = {id = 5894, count = 15}, -- bat wing
	[6] = {id = 5896, count = 10}, -- bear pawn
	[7] = {id = 5897, count = 20}, -- wolf pawn
	[8] = {id = 5921, count = 15}, -- heaven blossom
	[9] = {id = 3956, count = 10} --  elephant tusk
}


local medium = {
	[1] = "Cyclops",
	[2] = "Ghoul",
	[3] = "Dragon",
	[4] = "Mammoth",
	[5] = "Vampire",
	[6] = "Fire Devil",
	[7] = "Fire Elemental",
	[8] = "Valkyrie",
	[9] = "Monk"
}

local medcollect = {
	[1] = {id = 5876, count = 35}, -- lizard leather
	[2] = {id = 5678, count = 30}, -- tortoise egg
	[3] = {id = 5898, count = 25}, -- beholder eye
	[4] = {id = 5899, count = 35}, -- turtle shell
	[5] = {id = 2229, count = 30}, -- skull
	[6] = {id = 5877, count = 25}, -- dragon leather
	[7] = {id = 5920, count = 30} -- dragon scale
}

local hard = {
	[1] = "Giant Spider",
	[2] = "Dragon Lord",
	[3] = "Grim Reaper",
	[4] = "Demon",
	[5] = "Crystal Spider",
	[6] = "Demon Skeleton",
	[7] = "Juggernaut",
	[8] = "Destroyer",
	[9] = "Hand of Cursed Fate"
}

local hardcollect = {
	[1] = {id = 5882, count = 50}, -- red dragon scale
	[2] = {id = 5948, count = 45}, -- red dragon leather
	[3] = {id = 5930, count = 40}, -- behemoth claw
	[4] = {id = 5879, count = 50}, -- giant spider silk
	[5] = {id = 5954, count = 45}, -- demon horn
	[6] = {id = 6500, count = 40}, -- demoniac essence
	[7] = {id = 5944, count = 45}, -- soul orb
}

local storages = {
	name = 95672,
	count = 95673,
	maxcount = 95674,
	difficult = 95675,
	length = 95676,
	delay = 95677,
	type = 95678,
}
-------------------------------- END OF EXTERN CONFIG --------------------------------
function creatureSayCallback(cid, type, msg)
    if (not npcHandler:isFocused(cid)) then
        return false
    end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
-------------------------------- INTERN CONFIG CAN BE DONE HERE --------------------------
local short = 0 + (math.random(1,3) * 50) -- quantidade de monstros no curto
local median = 100 + (math.random(1,3) * 50) -- quantidade de monstros no mediano
local long = 200 + (math.random(1,3) * 100) -- quantidade de monstros no longo

local gold = 1000 * ((getPlayerStorageValue(cid, storages.length)) + (getPlayerStorageValue(cid, storages.difficult))) * config.multiplicator
local experience = ((getExperienceForLevel(getPlayerLevel(cid) + 1) - getExperienceForLevel(getPlayerLevel(cid))) / 100) * ((getPlayerStorageValue(cid, storages.length)) * (getPlayerStorageValue(cid, storages.difficult))) * config.multiplicator
-------------------------------- END OF INTERN CONFIG --------------------------

local type = getPlayerStorageValue(cid, storages.type)
	if (msgcontains(msg, 'task') or msgcontains(msg, 'challenge')) and (getPlayerStorageValue(cid, storages.delay) - os.time()) <= 0 then
		if getPlayerStorageValue(cid, storages.maxcount) > 3 and getPlayerStorageValue(cid, storages.type) == 1 then
			talkState[talkUser] = 6
			selfSay('Your task is to kill {'..getPlayerStorageValue(cid, storages.maxcount)..' '..getPlayerStorageValue(cid, storages.name)..'s}. Hurry with this or you want to {give up}?!', cid)
		elseif getPlayerStorageValue(cid, storages.maxcount) > 3 and getPlayerStorageValue(cid, storages.type) == 2 then
			talkState[talkUser] = 6
			selfSay('Your task is to collect {'.. getPlayerStorageValue(cid, storages.maxcount)..' '.. getItemNameById(getPlayerStorageValue(cid, storages.name)) ..'s}. Hurry with this or you want to {give up}?!', cid)
		else
			talkState[talkUser] = 1
			selfSay('I have two types of tasks, you want to {kill} monsters or to {collect} some items for me? You can also let me choose a {random} one for you, garanting a final bonus in your reward.', cid)
		end
	elseif (msgcontains(msg, 'kill') and talkState[talkUser] == 1) then
		talkState[talkUser] = 2
		setPlayerStorageValue(cid, storages.type, 1)
		selfSay('I have all kinds of tasks, you want a {easy}, {medium} or are you up to a {hard} one?', cid)
	elseif (msgcontains(msg, 'collect') and talkState[talkUser] == 1 and getPlayerLevel(cid) >= config.levelcollect) then
		talkState[talkUser] = 2
		setPlayerStorageValue(cid, storages.type, 2)
		selfSay('I have all kinds of tasks, you want a {easy}, {medium} or are you up to a {hard} one?', cid)
	elseif (msgcontains(msg, 'collect') and talkState[talkUser] == 1 and getPlayerLevel(cid) < config.levelcollect) then
		talkState[talkUser] = 1
		selfSay('You can only do collect tasks once you reach level '..config.levelcollect..'.', cid)
	------- difficult ---------
	elseif (msgcontains(msg, 'random') and talkState[talkUser] == 1) then
		talkState[talkUser] = 4
		selfSay('Are you sure about this?', cid)
		setPlayerStorageValue(cid, storages.type, math.random(1,2))
		setPlayerStorageValue(cid, storages.difficult, math.random(2,4) * config.bonus)
		setPlayerStorageValue(cid, storages.length, math.random(2,4) * config.bonus)
	elseif (msgcontains(msg, 'hard') and talkState[talkUser] == 2) then
		talkState[talkUser] = 3
		selfSay('I have all kinds of tasks, you want a {short}, {median} or are you up to a {long} one?.', cid)
		setPlayerStorageValue(cid, storages.difficult, 4)
	elseif (msgcontains(msg, 'medium') and talkState[talkUser] == 2) then
		talkState[talkUser] = 3
		selfSay('I have all kinds of tasks, you want a {short}, {median} or are you up to a {long} one?.', cid)
		setPlayerStorageValue(cid, storages.difficult, 3)
	elseif (msgcontains(msg, 'easy') and talkState[talkUser] == 2) then
		talkState[talkUser] = 3
		selfSay('I have all kinds of tasks, you want a {short}, {median} or are you up to a {long} one?.', cid)
		setPlayerStorageValue(cid, storages.difficult, 2)
	------- bye ---------
	elseif (msgcontains(msg, 'no')) and isInArray({1, 6, 7}, talkState[talkUser]) then
		talkState[talkUser] = 0
		selfSay('Clearly you are not ready. We can talk later...', cid)
	------- length ---------
	elseif (msgcontains(msg, 'short') and talkState[talkUser] == 3) then
		talkState[talkUser] = 4
		selfSay('Are you sure about this?', cid)
		setPlayerStorageValue(cid, storages.length, 2)
	elseif (msgcontains(msg, 'median') and talkState[talkUser] == 3) then
		talkState[talkUser] = 4
		selfSay('Are you sure about this?', cid)
		setPlayerStorageValue(cid, storages.length, 3)
	elseif (msgcontains(msg, 'long') and talkState[talkUser] == 3) then
		talkState[talkUser] = 4
		selfSay('Are you sure about this?', cid)
		setPlayerStorageValue(cid, storages.length, 4)
	----------- give up option -----------
	elseif (msgcontains(msg, 'give up') and talkState[talkUser] == 6) then
		selfSay('Are you saying that you want to give up this task? I will not give you any other task in the next '.. (config.time/3600) ..' hour(s).', cid)
		talkState[talkUser] = 7
	elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 7) then
		selfSay('Since you will not help me, get out of here.', cid)
		setPlayerStorageValue(cid, storages.maxcount, 0)
		setPlayerStorageValue(cid, storages.delay, os.time() + config.time)
		talkState[talkUser] = 0
	-----------------------
	------- checking ---------
	elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
		local length = getPlayerStorageValue(cid, storages.length)
		local difficult = getPlayerStorageValue(cid, storages.difficult)
		if type == 1 then
			if length == 2 then
				setPlayerStorageValue(cid, storages.maxcount, short)
			elseif length == 3 then
				setPlayerStorageValue(cid, storages.maxcount, median)
			else
				setPlayerStorageValue(cid, storages.maxcount, long)
			end
			if difficult == 2 then
				setPlayerStorageValue(cid, storages.name, easy[math.random(1, #easy)])
			elseif difficult == 3 then
				setPlayerStorageValue(cid, storages.name, medium[math.random(1, #medium)])
			else
				setPlayerStorageValue(cid, storages.name, hard[math.random(1, #hard)])
			end
			setPlayerStorageValue(cid, storages.count, 0)	
			talkState[talkUser] = 0
			selfSay('OK then.. your task is to kill '..getPlayerStorageValue(cid, storages.maxcount)..' '..getPlayerStorageValue(cid, storages.name)..'s. Do not spare any monster!', cid)
		elseif type == 2 then
			if length == 2 then
				setPlayerStorageValue(cid, storages.maxcount, eacollect[math.random(1, #eacollect)].count)
			elseif length == 3 then
				setPlayerStorageValue(cid, storages.maxcount, medcollect[math.random(1, #medcollect)].count)
			else
				setPlayerStorageValue(cid, storages.maxcount, hardcollect[math.random(1, #hardcollect)].count)
			end
			if difficult == 2 then
				setPlayerStorageValue(cid, storages.name, eacollect[math.random(1, #eacollect)].id)
			elseif difficult == 3 then
				setPlayerStorageValue(cid, storages.name, medcollect[math.random(1, #medcollect)].id)
			else
				setPlayerStorageValue(cid, storages.name, hardcollect[math.random(1, #hardcollect)].id)
			end
			setPlayerStorageValue(cid, storages.count, 0)	
			talkState[talkUser] = 0
			selfSay('OK then.. your task is to collect {'.. getPlayerStorageValue(cid, storages.maxcount)..' '.. getItemNameById(getPlayerStorageValue(cid, storages.name)) ..'s}. Bring me the proof that you made it!', cid)
		end
	elseif (msgcontains(msg, 'no') and talkState[talkUser] == 4) then
		talkState[talkUser] = 0
		selfSay('Ok, come back when you have the guts.', cid)
	------- reward ---------
	elseif msgcontains(msg, 'reward') then
		if type == 1 then
			if getPlayerStorageValue(cid, storages.count) >= getPlayerStorageValue(cid, storages.maxcount) and getPlayerStorageValue(cid, storages.maxcount) > 3  then
				selfSay('You finished the quest, now you want to receive your reward in {gold}, {trainning} or in {experience}?', cid)
				talkState[talkUser] = 5
			else
				selfSay('There is no reward for those who did not complete a challenge.', cid)
				talkState[talkUser] = 0
			end
		elseif type == 2 then
			if getPlayerItemCount(cid, getPlayerStorageValue(cid, storages.name)) >= getPlayerStorageValue(cid, storages.maxcount) and getPlayerStorageValue(cid, storages.maxcount) > 3  then
				selfSay('You finished the quest, now you want to receive your reward in {gold}, {trainning} or in {experience}?', cid)
				talkState[talkUser] = 5
			else
				selfSay('There is no reward for those who did not complete a challenge.', cid)
				talkState[talkUser] = 0
			end
		else
			selfSay('There is no reward for those who did not complete a challenge.', cid)
			talkState[talkUser] = 0
		end
		---------- checking rewards ---------------
	elseif (msgcontains(msg, 'gold') and talkState[talkUser] == 5 ) then
		if (type == 1) or (doPlayerRemoveItem(cid, getPlayerStorageValue(cid, storages.name), getPlayerStorageValue(cid, storages.maxcount)) and type == 2) then
			for k, v in pairs(storages) do
				setPlayerStorageValue(cid, v, 0)
			end
			doPlayerAddMoney(cid, gold)
			talkState[talkUser] = 0
			selfSay('Thanks for your help, here is your prize..', cid)
		else
			selfSay('Something went wrong..', cid)
		end
	elseif (msgcontains(msg, 'experience') and talkState[talkUser] == 5) then
			if (type == 1) or (doPlayerRemoveItem(cid, getPlayerStorageValue(cid, storages.name), getPlayerStorageValue(cid, storages.maxcount)) and type == 2) then
				for k, v in pairs(storages) do
					setPlayerStorageValue(cid, v, 0)
				end
				doPlayerAddExperience(cid, experience)
				talkState[talkUser] = 0	
				selfSay('Thanks for your help, here is your prize..', cid)
			else
				selfSay('Something went wrong..', cid)
			end			
	elseif (msgcontains(msg, 'trainning') and talkState[talkUser] == 5) then
		talkState[talkUser] = 8
		selfSay('Which skill you want to train with me? choose between {axe}, {distance}, {club}, {sword}, {shield} and {magic}', cid)
	----------------------- SKILL REWARD -----------------------	
	elseif (SKILL_IDS[msg] and talkState[talkUser] == 8) then
		if (type == 1) or (doPlayerRemoveItem(cid, getPlayerStorageValue(cid, storages.name), getPlayerStorageValue(cid, storages.maxcount)) and type == 2) then
			for k, v in pairs(storages) do
				setPlayerStorageValue(cid, v, 0)
			end
		-- a divisao por 3000 foi porque cada ponto de skill try equivale a 30 tries de skill e nos naturalmente dividimos por 100. 1/30 * 1/100 = 1/3000
		local qnt = math.ceil(getPlayerRequiredSkillTries(cid, SKILL_IDS[msg], getPlayerSkillLevel(cid, SKILL_IDS[msg]) + 1)/3000) * ((getPlayerStorageValue(cid, storages.length)) * (getPlayerStorageValue(cid, storages.difficult)) * config.multiplicator) 
			doPlayerAddSkillTry(cid, SKILL_IDS[msg], qnt)
			doSendMagicEffect(getCreaturePosition(cid), 39)
			talkState[talkUser] = 0	
			selfSay('Thanks for your help, here is your prize..', cid)
		else
			selfSay('Something went wrong..', cid)
		end		
	----------------------- msg when blocked --------------
	elseif (msgcontains(msg, 'task') or msgcontains(msg, 'challenge')) and (getPlayerStorageValue(cid, storages.delay) - os.time()) > 0 then
		talkState[talkUser] = 0	
		selfSay('I can not trust you since you failed in the last job. You will have to wait until I feel that I can trust you again..', cid)
	end
return true
end

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

 



Você tem que garantir que em data/lib/constant existe essa tabela (se nao tiver, é só colocar):

SKILL_IDS = {
["fist"] = SKILL_FIST,
["club"] = SKILL_CLUB,
["sword"] = SKILL_SWORD,
["axe"] = SKILL_AXE,
["distance"] = SKILL_DISTANCE,
["dist"] = SKILL_DISTANCE,
["shielding"] = SKILL_SHIELD,
["shield"] = SKILL_SHIELD,
["fishing"] = SKILL_FISHING,
["fish"] = SKILL_FISHING,
["level"] = SKILL__LEVEL,
["magic"] = SKILL__MAGLEVEL
}

e que essas variáveis possuam esses valores:

SKILL_FIST = 0
SKILL_CLUB = 1
SKILL_SWORD = 2
SKILL_AXE = 3
SKILL_DISTANCE = 4
SKILL_SHIELD = 5
SKILL_FISHING = 6
SKILL__MAGLEVEL = 7
SKILL__LEVEL = 8
Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

 

mal a demora, minhas aulas voltaram e tá foda tirar tempo pra ver códigos antigos:: tenta trocar seu creaturescript por esse daqui:

local storages = {
name = 95672,
count = 95673,
maxcount = 95674,
}

local config = {
partycount = true, --- true ou false pra ativar/desativar que os kills dos membros da party contem pra voce
killdistance = 7 --- distancia que conta os kills
}


function onKill(cid, target, lastHit)
	if isMonster(target) and getPlayerStorageValue(cid, storages.maxcount) > 3 and (type(getCreatureMaster(target)) == 'nil' or getCreatureMaster(target) == target) and (not(isInParty(cid)) or config.partycount ~= true) then
		if getCreatureName(target):lower() == string.lower(getPlayerStorageValue(cid, storages.name)) then
			setPlayerStorageValue(cid, storages.count, getPlayerStorageValue(cid, storages.count) + 1)
			if getPlayerStorageValue(cid, storages.count) == getPlayerStorageValue(cid, storages.maxcount) then
				doPlayerSendTextMessage(cid, 19, "You finished your task.")
			elseif getPlayerStorageValue(cid, storages.count) < getPlayerStorageValue(cid, storages.maxcount) then
				doPlayerSendTextMessage(cid, 20, "Killed ".. getCreatureName(target) .."s [".. getPlayerStorageValue(cid, storages.count) .."/".. getPlayerStorageValue(cid, storages.maxcount) .."].")
			end
		end
	elseif isMonster(target) and (type(getCreatureMaster(target)) == 'nil' or getCreatureMaster(target) == target) and isInParty(cid) and config.partycount == true then
	leader = getPartyLeader(cid)	
	party = getPartyMembers(leader)
		for i = 1, #party do
		pid = party[i]
		if getDistanceBetween(getThingPos(target), getThingPos(pid)) < config.killdistance then
			if getPlayerStorageValue(pid, storages.maxcount) > 3 then
				if getCreatureName(target):lower() == string.lower(getPlayerStorageValue(pid, storages.name)) then
					setPlayerStorageValue(pid, storages.count, getPlayerStorageValue(pid, storages.count) + 1)
					if getPlayerStorageValue(pid, storages.count) == getPlayerStorageValue(pid, storages.maxcount) then
						doPlayerSendTextMessage(pid, 19, "You finished your task.")
					elseif getPlayerStorageValue(pid, storages.count) < getPlayerStorageValue(pid, storages.maxcount) then
						doPlayerSendTextMessage(pid, 20, "Killed ".. getCreatureName(target) .."s [".. getPlayerStorageValue(pid, storages.count) .."/".. getPlayerStorageValue(pid, storages.maxcount) .."].")
					end
				end
			end	
		end	
		end
	end
return true
end

EDIT-->

Também fiz uma opção de pegar a recompensa em skills e dei uma melhorada no script, basta substituir o script do npc por esse daqui:

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

-- OTServ event handling functions start
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
-- OTServ event handling functions end

function creatureSayCallback(cid, type, msg)
    -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
    if (not npcHandler:isFocused(cid)) then
        return false
    end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

-------------------------------- ALL CONFIG CAN BE DONE HERE --------------------------
local short = 0 + (math.random(1,3) * 50) -- quantidade de monstros no curto
local median = 100 + (math.random(1,3) * 50) -- quantidade de monstros no mediano
local long = 200 + (math.random(1,3) * 100) -- quantidade de monstros no longo

local config = {
levelcollect = 30, --- level pra poder fazer tasks do tipo collect
time = 8 * 60 * 60, --- tempo que vc vai ficar sem poder falar com ele caso abandone uma task (em segundos)
bonus = 1.2, --- bonus de exp/gold caso a task escolhida seja random (1.2 = 20% a mais)
multiplicator = 1 --- multiplicador de exp/gold/skills (coloque de acordo com a necessidade do seu server)
}

local easy = {
[1] = "Goblin",
[2] = "Troll",
[3] = "Rotworm",
[4] = "Dwarf",
[5] = "Amazon",
[6] = "Elf",
[7] = "Wolf",
[8] = "Orc",
[9] = "Minotaur"
}

local eacollect = {
[1] = {id = 5880, count = 20}, -- iron ore
[2] = {id = 5902, count = 15}, -- honeycomb
[3] = {id = 5878, count = 10}, -- minotaur leather
[4] = {id = 5890, count = 20}, -- chicken feather
[5] = {id = 5894, count = 15}, -- bat wing
[6] = {id = 5896, count = 10}, -- bear pawn
[7] = {id = 5897, count = 20}, -- wolf pawn
[8] = {id = 5921, count = 15}, -- heaven blossom
[9] = {id = 3956, count = 10} --  elephant tusk
}


local medium = {
[1] = "Cyclops",
[2] = "Ghoul",
[3] = "Dragon",
[4] = "Mammoth",
[5] = "Vampire",
[6] = "Fire Devil",
[7] = "Fire Elemental",
[8] = "Valkyrie",
[9] = "Monk"
}

local medcollect = {
[1] = {id = 5876, count = 35}, -- lizard leather
[2] = {id = 5678, count = 30}, -- tortoise egg
[3] = {id = 5898, count = 25}, -- beholder eye
[4] = {id = 5899, count = 35}, -- turtle shell
[5] = {id = 2229, count = 30}, -- skull
[6] = {id = 5877, count = 25}, -- dragon leather
[7] = {id = 5920, count = 30} -- dragon scale
}

local hard = {
[1] = "Giant Spider",
[2] = "Dragon Lord",
[3] = "Grim Reaper",
[4] = "Demon",
[5] = "Crystal Spider",
[6] = "Demon Skeleton",
[7] = "Juggernaut",
[8] = "Destroyer",
[9] = "Hand of Cursed Fate"
}

local hardcollect = {
[1] = {id = 5882, count = 50}, -- red dragon scale
[2] = {id = 5948, count = 45}, -- red dragon leather
[3] = {id = 5930, count = 40}, -- behemoth claw
[4] = {id = 5879, count = 50}, -- giant spider silk
[5] = {id = 5954, count = 45}, -- demon horn
[6] = {id = 6500, count = 40}, -- demoniac essence
[7] = {id = 5944, count = 45}, -- soul orb
}

local storages = {
name = 95672,
count = 95673,
maxcount = 95674,
difficult = 95675,
length = 95676,
delay = 95677,
type = 95678,
}

local gold = 1000 * ((getPlayerStorageValue(cid, storages.length)) + (getPlayerStorageValue(cid, storages.difficult))) * config.multiplicator
local experience = ((getExperienceForLevel(getPlayerLevel(cid) + 1) - getExperienceForLevel(getPlayerLevel(cid))) / 100) * ((getPlayerStorageValue(cid, storages.length)) * (getPlayerStorageValue(cid, storages.difficult))) * config.multiplicator
-------------------------------- END OF ALL CONFIG --------------------------

local type = getPlayerStorageValue(cid, storages.type)
if (msgcontains(msg, 'task') or msgcontains(msg, 'challenge')) and (getPlayerStorageValue(cid, storages.delay) - os.time()) <= 0 then
	if getPlayerStorageValue(cid, storages.maxcount) > 3 and getPlayerStorageValue(cid, storages.type) == 1 then
		talkState[talkUser] = 6
		selfSay('Your task is to kill {'..getPlayerStorageValue(cid, storages.maxcount)..' '..getPlayerStorageValue(cid, storages.name)..'s}. Hurry with this or you want to {give up}?!', cid)
	elseif getPlayerStorageValue(cid, storages.maxcount) > 3 and getPlayerStorageValue(cid, storages.type) == 2 then
		talkState[talkUser] = 6
		selfSay('Your task is to collect {'.. getPlayerStorageValue(cid, storages.maxcount)..' '.. getItemNameById(getPlayerStorageValue(cid, storages.name)) ..'s}. Hurry with this or you want to {give up}?!', cid)
	else
		talkState[talkUser] = 1
		selfSay('I have two types of tasks, you want to {kill} monsters or to {collect} some items for me? You can also let me choose a {random} one for you, garanting a final bonus in your reward.', cid)
	end
elseif (msgcontains(msg, 'kill') and talkState[talkUser] == 1) then
	talkState[talkUser] = 2
	setPlayerStorageValue(cid, storages.type, 1)
	selfSay('I have all kinds of tasks, you want a {easy}, {medium} or are you up to a {hard} one?', cid)
elseif (msgcontains(msg, 'collect') and talkState[talkUser] == 1 and getPlayerLevel(cid) >= config.levelcollect) then
	talkState[talkUser] = 2
	setPlayerStorageValue(cid, storages.type, 2)
	selfSay('I have all kinds of tasks, you want a {easy}, {medium} or are you up to a {hard} one?', cid)
elseif (msgcontains(msg, 'collect') and talkState[talkUser] == 1 and getPlayerLevel(cid) < config.levelcollect) then
	talkState[talkUser] = 1
	selfSay('You can only do collect tasks once you reach level '..config.levelcollect..'.', cid)
------- difficult ---------
elseif (msgcontains(msg, 'random') and talkState[talkUser] == 1) then
	talkState[talkUser] = 4
	selfSay('Are you sure about this?', cid)
	setPlayerStorageValue(cid, storages.type, math.random(1,2))
	setPlayerStorageValue(cid, storages.difficult, math.random(2,4) * config.bonus)
	setPlayerStorageValue(cid, storages.length, math.random(2,4) * config.bonus)
elseif (msgcontains(msg, 'hard') and talkState[talkUser] == 2) then
	talkState[talkUser] = 3
	selfSay('I have all kinds of tasks, you want a {short}, {median} or are you up to a {long} one?.', cid)
	setPlayerStorageValue(cid, storages.difficult, 4)
elseif (msgcontains(msg, 'medium') and talkState[talkUser] == 2) then
	talkState[talkUser] = 3
	selfSay('I have all kinds of tasks, you want a {short}, {median} or are you up to a {long} one?.', cid)
	setPlayerStorageValue(cid, storages.difficult, 3)
elseif (msgcontains(msg, 'easy') and talkState[talkUser] == 2) then
	talkState[talkUser] = 3
	selfSay('I have all kinds of tasks, you want a {short}, {median} or are you up to a {long} one?.', cid)
	setPlayerStorageValue(cid, storages.difficult, 2)
------- bye ---------
elseif (msgcontains(msg, 'no')) and isInArray({1, 6, 7}, talkState[talkUser]) then
	talkState[talkUser] = 0
	selfSay('Clearly you are not ready. We can talk later...', cid)
------- length ---------
elseif (msgcontains(msg, 'short') and talkState[talkUser] == 3) then
	talkState[talkUser] = 4
	selfSay('Are you sure about this?', cid)
	setPlayerStorageValue(cid, storages.length, 2)
elseif (msgcontains(msg, 'median') and talkState[talkUser] == 3) then
	talkState[talkUser] = 4
	selfSay('Are you sure about this?', cid)
	setPlayerStorageValue(cid, storages.length, 3)
elseif (msgcontains(msg, 'long') and talkState[talkUser] == 3) then
	talkState[talkUser] = 4
	selfSay('Are you sure about this?', cid)
	setPlayerStorageValue(cid, storages.length, 4)
----------- give up option -----------
elseif (msgcontains(msg, 'give up') and talkState[talkUser] == 6) then
	selfSay('Are you saying that you want to give up this task? I will not give you any other task in the next '.. (config.time/3600) ..' hour(s).', cid)
	talkState[talkUser] = 7
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 7) then
	selfSay('Since you will not help me, get out of here.', cid)
	setPlayerStorageValue(cid, storages.maxcount, 0)
	setPlayerStorageValue(cid, storages.delay, os.time() + config.time)
	talkState[talkUser] = 0
-----------------------
------- checking ---------
elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
local length = getPlayerStorageValue(cid, storages.length)
local difficult = getPlayerStorageValue(cid, storages.difficult)
	if type == 1 then
		if length == 2 then
			setPlayerStorageValue(cid, storages.maxcount, short)
		elseif length == 3 then
			setPlayerStorageValue(cid, storages.maxcount, median)
		else
			setPlayerStorageValue(cid, storages.maxcount, long)
		end
		if difficult == 2 then
			setPlayerStorageValue(cid, storages.name, easy[math.random(1, #easy)])
		elseif difficult == 3 then
			setPlayerStorageValue(cid, storages.name, medium[math.random(1, #medium)])
		else
			setPlayerStorageValue(cid, storages.name, hard[math.random(1, #hard)])
		end
		setPlayerStorageValue(cid, storages.count, 0)	
		talkState[talkUser] = 0
		selfSay('OK then.. your task is to kill '..getPlayerStorageValue(cid, storages.maxcount)..' '..getPlayerStorageValue(cid, storages.name)..'s. Do not spare any monster!', cid)
	elseif type == 2 then
		if length == 2 then
			setPlayerStorageValue(cid, storages.maxcount, eacollect[math.random(1, #eacollect)].count)
		elseif length == 3 then
			setPlayerStorageValue(cid, storages.maxcount, medcollect[math.random(1, #medcollect)].count)
		else
			setPlayerStorageValue(cid, storages.maxcount, hardcollect[math.random(1, #hardcollect)].count)
		end
		if difficult == 2 then
			setPlayerStorageValue(cid, storages.name, eacollect[math.random(1, #eacollect)].id)
		elseif difficult == 3 then
			setPlayerStorageValue(cid, storages.name, medcollect[math.random(1, #medcollect)].id)
		else
			setPlayerStorageValue(cid, storages.name, hardcollect[math.random(1, #hardcollect)].id)
		end
		setPlayerStorageValue(cid, storages.count, 0)	
		talkState[talkUser] = 0
		selfSay('OK then.. your task is to collect {'.. getPlayerStorageValue(cid, storages.maxcount)..' '.. getItemNameById(getPlayerStorageValue(cid, storages.name)) ..'s}. Bring me the proof that you made it!', cid)
	end
elseif (msgcontains(msg, 'no') and talkState[talkUser] == 4) then
talkState[talkUser] = 0
selfSay('Ok, come back when you have the guts.', cid)
------- reward ---------
elseif msgcontains(msg, 'reward') then
	if getPlayerStorageValue(cid, storages.count) >= getPlayerStorageValue(cid, storages.maxcount) and getPlayerStorageValue(cid, storages.maxcount) > 3  then
		selfSay('You finished the quest, now you want to receive your reward in {gold}, {trainning} or in {experience}?', cid)
		talkState[talkUser] = 4
	else
		selfSay('There is no reward for those who did not complete a challenge.', cid)
		talkState[talkUser] = 0
	end
elseif (msgcontains(msg, 'gold') and talkState[talkUser] == 4) then
	for k, v in pairs(storages) do
		setPlayerStorageValue(cid, v, 0)
	end
	doPlayerAddMoney(cid, gold)
	doSendMagicEffect(getCreaturePosition(cid), 13)
	talkState[talkUser] = 0
selfSay('Thanks for your help, here is your prize..', cid)
elseif (msgcontains(msg, 'experience') and talkState[talkUser] == 4) then
	for k, v in pairs(storages) do
		setPlayerStorageValue(cid, v, 0)
	end
	doPlayerAddExperience(cid, experience)
	doSendMagicEffect(getCreaturePosition(cid), 14)
	talkState[talkUser] = 0	
selfSay('Thanks for your help, here is your prize..', cid)
--- SKILL REWARD ---
elseif (msgcontains(msg, 'trainning') and talkState[talkUser] == 4) then
	talkState[talkUser] = 8
	selfSay('Which skill you want to train with me? choose between {axe}, {distance}, {club}, {sword}, {shield} and {magic}', cid)
elseif (SKILL_IDS[msg] and talkState[talkUser] == 8) then
	-- a divisao por 3000 foi porque cada ponto de skill try equivale a 30 tries de skill e nos naturalmente dividimos por 100. 1/30 * 1/100 = 1/3000
	local qnt = math.ceil(getPlayerRequiredSkillTries(cid, SKILL_IDS[msg], getPlayerSkillLevel(cid, SKILL_IDS[msg]) + 1)/3000) * ((getPlayerStorageValue(cid, storages.length)) * (getPlayerStorageValue(cid, storages.difficult)) * config.multiplicator) 
	for k, v in pairs(storages) do
		setPlayerStorageValue(cid, v, 0)
	end
	doPlayerAddSkillTry(cid, SKILL_IDS[msg], qnt)
	doSendMagicEffect(getCreaturePosition(cid), 39)
	talkState[talkUser] = 0	
selfSay('Thanks for your help, here is your prize..', cid)
elseif (msgcontains(msg, 'challenge') or msgcontains(msg, 'task')) and (getPlayerStorageValue(cid, storages.delay) - os.time()) > 0 then
	talkState[talkUser] = 0	
selfSay('I can not trust you since you failed in the last job. You will have to wait until I feel that I can trust you again..', cid)
end
return true
end

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

Você tem que garantir que em data/lib/constant existe essa tabela (se nao tiver, é só colocar):

SKILL_IDS = {
["fist"] = SKILL_FIST,
["club"] = SKILL_CLUB,
["sword"] = SKILL_SWORD,
["axe"] = SKILL_AXE,
["distance"] = SKILL_DISTANCE,
["dist"] = SKILL_DISTANCE,
["shielding"] = SKILL_SHIELD,
["shield"] = SKILL_SHIELD,
["fishing"] = SKILL_FISHING,
["fish"] = SKILL_FISHING,
["level"] = SKILL__LEVEL,
["magic"] = SKILL__MAGLEVEL
}

e que essas variáveis possuam esses valores:

SKILL_FIST = 0
SKILL_CLUB = 1
SKILL_SWORD = 2
SKILL_AXE = 3
SKILL_DISTANCE = 4
SKILL_SHIELD = 5
SKILL_FISHING = 6
SKILL__MAGLEVEL = 7
SKILL__LEVEL = 8

 

 

 

Que foda vei, vlw, agora ta contando os kills, ta dando até pra entregar task de kill quando finaliza, mas só tem dois problemas

 

Parece que bugou o collect, eu tenho o item tento entregar a task, mas não vai, diz que eu não tenho

 

E task de training não ta indo, mas pode ser pq o meu ta diferente

 

Essa aqui ta igualzinho

SKILL_IDS = {
["fist"] = SKILL_FIST,
["club"] = SKILL_CLUB,
["sword"] = SKILL_SWORD,
["axe"] = SKILL_AXE,
["distance"] = SKILL_DISTANCE,
["dist"] = SKILL_DISTANCE,
["shielding"] = SKILL_SHIELD,
["shield"] = SKILL_SHIELD,
["fishing"] = SKILL_FISHING,
["fish"] = SKILL_FISHING,
["level"] = SKILL__LEVEL,
["magic"] = SKILL__MAGLEVEL
}

 

mas a segunda o meu ta assim

SKILL_FIRST = 0
SKILL_FIST = SKILL_FIRST
SKILL_CLUB = 1
SKILL_SWORD = 2
SKILL_AXE = 3
SKILL_DISTANCE = 4
SKILL_SHIELD = 5
SKILL_FISHING = 6
SKILL__MAGLEVEL = 7
SKILL__LEVEL = 8
SKILL_LAST = SKILL_FISHING
SKILL__LAST = SKILL__LEVEL

Será que é pq ta um pouco diferente? Da merda se eu mudar?

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Nextbr
      Boa Tarde Turma, Hoje vou Postar um sistema De Torneio Para Poketibia!
       
      Para que possa funcionar o sistema de Torneio verifique se na (area pvp-zone ) funciona o pvp, caso nao funciona tentem procurar um tutorial de como liberar o pvp-zone e talves tente mudar isso aki no config.lua de voces:
      worldType = "pvp-enforced"
      protectionLevel = 1   Bom Chega de Mimimi e vamos La:   data/lib/Torneio.lua e add isso:

        Depois vai em Globaleevents/Torneio.lua

        <globalevent name="TournamentStart" time="11:35" event="script" value="Torneio.lua"/>   Depois vai em Actions/Torneio.lua: Atençao: Voce faz uma area do Torneio no Map editor e Coloca PVP-Zone no Mapa editor  e coloca uma Alavanca com a uid "18279"

        XML: <action uniqueid="18279" event="script" value="Torneio.lua"/>   Agora o NPC TORNEIO NPCS/NPCS.XML:

       
      NPC/SCRIPTS/Torneio.lua:



       
       
      [*] Bom é so Isso Flw bj ;*
       
         
    • Por Nextbr
      Servidor Testado:
      erondino,pokemon dash v6,tfs  0.3.6
       
      Servidor Nao Testado:
      Pokemon Dash Advanced
       
      Precisa de: Noçoes basica de script pois so irei postar a parte principal dos script, pois eu nao sei oque voces editaram nos seus scripts !
       
      Bom Dia Turma, Hoje Eu Vou Postar:
      Sistema de Gender System "Sexos nos Pokemons":  O Sexo dos pokemons so vai ter em seus Pokemons capturados, Boxs,nao vai ter em pokes das hunts etc..
       
      Sistema Completo de "PokeLevel":  Level nos Seus Pokemons "Porem" a cada Level o Pokemon so Ganha HP Baseado no Servidor:
      Hidden Content
      Give reaction to this post to see the hidden content. . Pois dar força ao Summon Somente adicionando funçoes na Sources. o Sistema completo do Pokelevel vem: Rare candy,Evolution,Pokelevel  
      Intao Vamos La =)
       
      Gender System:
      *Primeiro antes de tudo tem que ver se no seu client tem o icone dos Sexos dos Pokemons, fazendo o comando /attr skull "Numero 1 a  4"
       
      *Eu So vo postar as funçoes eu nao vou mandar o script inteiro pois eu nao sei o que voces editaram no script do catch.lua mais mesmo assim e facil de editar intao Vamos la:
       
      vai em actions/catch.lua :



       
      Vai em actions/goback.lua:
       



       
      Vai em actions/box.lua



      *XML: <action itemid="ID" event="script" value="box.lua"/>
       
      PokeLevel System:
       
       
      * Limite de Pokelevel : 30
      * Para adicionar mais Level Segue esse Mini-Tutorial:



       
       
       
      Cria um Arquivo , creaturescripts/Pokelevel.lua:
       



       
      *XML: <event type="kill" name="kill" event="script" value="PokeLevel.lua"/>
      * registerCreatureEvent(cid, "kill")
       
      Troca seu look.lua creaturescripts/look.lua:
       



       
      Vai em actions/Goback.lua:
       



       
       
       
      *Aki quando voce dar primeiro Goback no Pokemon ele recebe o Level: 1
       
      actions/evolution.lua:



       
      *Exemplo de Evoluçao:
      ["Bulbasaur"] = {level = 40, evolution = "Ivysaur", maxh = 2600, count = 1, Stoneid = 2293, Stoneid2 = 0},
      ["Nome do Pokemon"] ={level = "level que precisa para Evoluir" , evolution = "Nome do Pokemon",maxh ="o Max de Hp que vai ter",count = "quantidade de stone",Stoneid = "Id da Stone", Stoneid2 = "id da stone 2"},
       
      vai em Actions/Rarecandy.lua
       



       
      *XML: <action itemid="ID" allowfaruse="1" event="script" value="Rarecandy.lua"/>
       
       
       
       
       
       
       
       
       
       
       
       
  • Estatísticas dos Fóruns

    96851
    Tópicos
    519617
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo