Ir para conteúdo
  • 0

Fábrica de Scripts


LuckOake

Pergunta

Olá galera.

 

Tava aqui de boa sem o que fazer, aí tive essa ideia de fazer um tópico pros membros pedirem scripts simples.

 

Regrinhas:

  1. NÃO PEÇA EVENTOS AQUI, SÓ SCRIPTS OU SISTEMAS SIMPLES;
  2. NÃO PEÇA SCRIPTS QUE JÁ EXISTEM;
  3. Se você quer algum script que está sendo vendido em algum lugar, poste aqui que eu faço pra você. Nesse tipo de caso, a regra número 1 pode ser desobedecida;
  4. Sem floods, comentários ou conversas no tópico;
  5. Por uma questão de organização, não gostaria que outros usuários sem minha permissão postassem scripts prontos para resolver pedidos aqui. Se quiserem resolver o pedido de um usuário, mande PM pra ele ou crie um tópico e poste;
  6. Faço qualquer tipo de script desde que seja da versão 8.54 até a 9.8;
  7. Não faço scripts para TFS 1.0;
  8. Não peça scripts ou sistemas que envolvam sources;
  9. Somente scripts que envolvam no máximo dois arquivos serão feitos;
  10. Máximo de dois pedidos por vez para cada usuário;
  11. Use um português adequado e detalhe bem seu pedido. Pedidos pouco detalhados ou com português ruim serão ignorados. Se não for bom com português, ao menos TENTE escrever adequadamente.
  12. O Oneshot e o Manoel Neto tem permissão para atender pedidos no tópico. Oneshot trabalha como quer, do jeito que quer e quando quer. Obs: E odeia leechers.

Caso você não entenda o por quê de postar aqui ao invés de criar um tópico, pense no seguinte. Você quer um script bem feito, bem explicado e de fácil configuração ou um que qualquer usuário chega lá e faz? Garanto que todos os scripts que farei nesse tópico serão, no mínimo, de alta qualidade.

 

Abraços e aproveitem a oportunidade. Ao contrários dos outros tópicos de fábrica de scripts, aqui não vou tentar fazer. Se estiver dentro das regras, vou fazer.

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

Posts Recomendados

  • 0

@SkyDarkyes

 

se eu estiver certo vc ta quebrando a regra numero 4 =x mais xa pra la =p eu poderia postar essse script seu em outro topico se o Luck deixar, mais enquanto isso eu ainda nao posso postar =x

 

@Topic

 

eu nao vim aki pra nada!

 

SE POSSIVEL, um script que tipo se o player ganhar experiencia e o level dele antes de ganhar experiencia for o mesmo depois dele ganhar experiencia que deslogue o player (doRemoveCreature) e va na db e de mais 1 lvl pra ele!

se nao especifiquei bem, vo falar de outro jeito, fui la, matei um poacher!

ganhei 1000 de xp, se eu nao ganhar nenhum lvl, tipo, se esses 1000 de xp nao for o suficiente pra eu upar pro prox lvl, que ele me de +1 level la na db! ( e deslogue o player logicamente )

Link para o comentário
Compartilhar em outros sites

  • 0

Luck desculpa por falar , mais acho que você deveria fazer uma lista de pedidos que vai fazer e uma dos que já foram feitos além de criar um tipo de "lista negra" colocando o nome de pessoas que pedem com frequencia e não podem pedir por 1 semana ou 3 dias seila.

Link para o comentário
Compartilhar em outros sites

  • 0

@SkyDarkyes

 

se eu estiver certo vc ta quebrando a regra numero 4 =x mais xa pra la =p eu poderia postar essse script seu em outro topico se o Luck deixar, mais enquanto isso eu ainda nao posso postar =x

 

@Topic

 

eu nao vim aki pra nada!

 

SE POSSIVEL, um script que tipo se o player ganhar experiencia e o level dele antes de ganhar experiencia for o mesmo depois dele ganhar experiencia que deslogue o player (doRemoveCreature) e va na db e de mais 1 lvl pra ele!

se nao especifiquei bem, vo falar de outro jeito, fui la, matei um poacher!

ganhei 1000 de xp, se eu nao ganhar nenhum lvl, tipo, se esses 1000 de xp nao for o suficiente pra eu upar pro prox lvl, que ele me de +1 level la na db! ( e deslogue o player logicamente )

 

Eu não entendi, foi nada, desse seu pedido.

 

No caso, vamos dizer que um jogador level 8 entra no servidor, mata um Rotworm, aí ele não ganha um level com a experiência dada, no caso, é para ele ganhar esse level mesmo assim?

 

Enfim, se for isso mesmo, prefiro nem deslogar o jogador.

function onKill(cid, target)
	if getMonsterInfo(getCreatureName(target)) then
		if getPlayerExperience(cid) < getExperienceForLevel(getPlayerLevel(cid) + 1) then
			doPlayerAddExperience(cid, getExperienceForLevel(getPlayerLevel(cid) + 1) - getPlayerExperience(cid))
		end
	end
	return true
end
Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

Um NPC,de task,+- igual ao do Vodkart o Simple Task,mas eu não preciso pedir para o NPC,é so eu ir matar,ai eu volto e pego a recompensa.

 

Creaturescript

local MONSTER_TASKS = {
	-- ["NOME"] = QUANTIDADE,
	["Troll"] = 1000,
}

function onKill(cid, target)
	local tmp = MONSTER_TASKS[getCreatureName(target)]
	if tmp then
		local name = getCreatureName(target):lower()
		local status_storage = name .."_status"
		if getCreatureStorage(cid, status_storage) == -1 then
			local count_storage = name .."_count"
			doCreatureSetStorage(cid, count_storage, math.max(getCreatureStorage(cid, count_storage), 0) + 1)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(target) .." killed: ".. getCreatureStorage(cid, count_storage) .."/".. tmp ..".")
			if getCreatureStorage(cid, count_storage) >= tmp then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have killed ".. tmp .." of ".. getCreatureName(target) ..". You have completed the task.")
				doCreatureSetStorage(cid, status_storage, 1)
			end
		end
	end
	return true
end 

NPC

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 MONSTER_TASKS = {
--	["nome"] = {
--		{ITEM1, QUANTIDADE}, 
--		{ITEM2, QUANTIDADE}
--	,}
--	Para dar experiência, coloque "experience"
	["troll"] = {
		{"experience", 20}, 
		{2160, 1},
	},
	["orc"] = {
		{"experience", 20}, 
		{2160, 1},
	},
}

function table.size(t)
	-- A função table.maxn ou # não conta no tamanho da tabela index igual a string, apenas numéricos positivos.
	local size = 0
	for _,_ in pairs(t) do
		size = size + 1
	end
	return size
end

function callbackOnCreatureSay(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	local str = "I have so many tasks for you, choose one: "
	if msgcontains(msg, "task") then
		local n = 1
		local k = table.size(MONSTER_TASKS)
		print(k)
		for name, _ in pairs(MONSTER_TASKS) do
			str = str .. "{" .. name .. "}" .. (n == k and "." or ", ")
			n = n + 1
		end
		selfSay(str, cid)
		talkState[talkUser] = 1
	end
	
	if talkState[talkUser] == 1 then
		local tmp = MONSTER_TASKS[msg:lower()]
		if tmp then
			local status = msg:lower() .. "_status"
			if getCreatureStorage(cid, status) == 1 then
				selfSay("You are a good hunter. Thank you for your help.", cid)
				for i=1,#tmp do
					if tmp[i][1] == "experience" then
						doPlayerAddExperience(cid, tmp[i][2])
						doSendAnimatedText(getThingPosition(cid), tmp[i][2], COLOR_WHITE)
					else
						doPlayerAddItem(cid, tmp[i][1], tmp[i][2])
					end
				end
				doCreatureSetStorage(cid, status, 2)
			elseif getCreatureStorage(cid, status) == 2 then
				selfSay("You already completed this hunt task.", cid)
			else
				selfSay("You don't killed the necessary count of monsters.", cid)
			end
		end
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, callbackOnCreatureSay)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

  • 0

One shot tem como vc me ajudar? na pagina 2 ou 3 tem o script de teleportar o jogador é uma spell

 

function onCastSpell(cid, var)

local tp_pos = {x = 100, y = 100, z = 7} -- Posição que o target será levado

local effect_player = 10 -- Efeito que sairá no player

local effect_target = 15 -- Efeito que sairá no target

local exhaustion_time = 2 -- Exhaustion (em segundos)

local exhaust = 18501 -- Storage da exhaustion

 

if getTileInfo(getCreaturePosition(cid)).hardcore then

doPlayerSendCancel(cid, "Você não pode usar essa magia em arenas.")

return false

if getCreatureTarget(cid) <= 0 then

doPlayerSendCancel(cid, "Você precisa selecionar um alvo.")

return false

elseif exhaustion.check(cid, exhaust) then

doSendMagicEffect(getCreaturePosition(cid), 2)

doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a magia novamente.")

return false

end

 

local target = getCreatureTarget(cid)

doSendMagicEffect(getCreaturePosition(cid), effect_player)

doSendMagicEffect(getCreaturePosition(target), effect_target)

setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")

doTeleportThing(target, tp_pos)

exhaustion.set(cid, exhaust, exhaustion_time)

return true

end

 

function onStepIn(cid, item)

local storage = getPlayerStorageValue(cid, 18500)

local pos = {x = string.match(storage, "x = (.-),"), y = string.match(storage, "y = (.-),"), z = string.match(storage, "z = (.-),")}

doTeleportThing(cid, pos)

return true

end

 

 

o luck fez eu (eu nao sei usar spoil) esta dando 1 erro no meu distro e eu queria que o player que solto a magia fosse teleportado para o local junto com o target ,

o erro é o seguinte:

ahh o erro o skydarkyes posto antes de pedir o script de npc para vc...

Link para o comentário
Compartilhar em outros sites

  • 0

se vc nao queria o script sendo compartilhado deveria ter postado em private o pedido oaskpasosapo', :)

function onCastSpell(cid, var)

local tp_pos = {x = 100, y = 100, z = 7} -- Posição que o target será levado

local effect_player = 10 -- Efeito que sairá no player

local effect_target = 15 -- Efeito que sairá no target

local exhaustion_time = 2 -- Exhaustion (em segundos)

local exhaust = 18501 -- Storage da exhaustion

 

if getCreatureTarget(cid) <= 0 then

doPlayerSendCancel(cid, "Você precisa selecionar um alvo.")

return false

elseif exhaustion.check(cid, exhaust) then

doSendMagicEffect(getCreaturePosition(cid), 2)

doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a magia novamente.")

return false

end

 

local target = getCreatureTarget(cid)

doSendMagicEffect(getCreaturePosition(cid), effect_player)

doSendMagicEffect(getCreaturePosition(target), effect_target)

setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")

doTeleportThing(target, tp_pos)

exhaustion.set(cid, exhaust, exhaustion_time)

return true

end

 

--- esse script aki nao da erro, mais ele nao teleporta junto com o player :/

Link para o comentário
Compartilhar em outros sites

  • 0

One shot tem como vc me ajudar? na pagina 2 ou 3 tem o script de teleportar o jogador é uma spell

 

function onCastSpell(cid, var)

local tp_pos = {x = 100, y = 100, z = 7} -- Posição que o target será levado

local effect_player = 10 -- Efeito que sairá no player

local effect_target = 15 -- Efeito que sairá no target

local exhaustion_time = 2 -- Exhaustion (em segundos)

local exhaust = 18501 -- Storage da exhaustion

 

if getTileInfo(getCreaturePosition(cid)).hardcore then

doPlayerSendCancel(cid, "Você não pode usar essa magia em arenas.")

return false

if getCreatureTarget(cid) <= 0 then

doPlayerSendCancel(cid, "Você precisa selecionar um alvo.")

return false

elseif exhaustion.check(cid, exhaust) then

doSendMagicEffect(getCreaturePosition(cid), 2)

doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a magia novamente.")

return false

end

 

local target = getCreatureTarget(cid)

doSendMagicEffect(getCreaturePosition(cid), effect_player)

doSendMagicEffect(getCreaturePosition(target), effect_target)

setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")

doTeleportThing(target, tp_pos)

exhaustion.set(cid, exhaust, exhaustion_time)

return true

end

 

function onStepIn(cid, item)

local storage = getPlayerStorageValue(cid, 18500)

local pos = {x = string.match(storage, "x = (.-),"), y = string.match(storage, "y = (.-),"), z = string.match(storage, "z = (.-),")}

doTeleportThing(cid, pos)

return true

end

 

 

o luck fez eu (eu nao sei usar spoil) esta dando 1 erro no meu distro e eu queria que o player que solto a magia fosse teleportado para o local junto com o target ,

o erro é o seguinte:

ahh o erro o skydarkyes posto antes de pedir o script de npc para vc...

 

Tá aqui mano, só faltava um end ^^

 

 

 

function onCastSpell(cid, var)
    local tp_pos = {x = 100, y = 100, z = 7} -- Posição que o target será levado
    local effect_player = 10 -- Efeito que sairá no player
    local effect_target = 15 -- Efeito que sairá no target
    local exhaustion_time = 2 -- Exhaustion (em segundos)
    local exhaust = 18501 -- Storage da exhaustion

    if getTileInfo(getCreaturePosition(cid)).hardcore then
        doPlayerSendCancel(cid, "Você não pode usar essa magia em arenas.")
        return false
    end
    if getCreatureTarget(cid) <= 0 then
        doPlayerSendCancel(cid, "Você precisa selecionar um alvo.")
        return false
    elseif exhaustion.check(cid, exhaust) then
        doSendMagicEffect(getCreaturePosition(cid), 2)
        doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a magia novamente.")
        return false
    end

    local target = getCreatureTarget(cid)
    doSendMagicEffect(getCreaturePosition(cid), effect_player)
    doSendMagicEffect(getCreaturePosition(target), effect_target)
    setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")
    doTeleportThing(target, tp_pos)
    exhaustion.set(cid, exhaust, exhaustion_time)
    return true
end

function onStepIn(cid, item)
    local storage = getPlayerStorageValue(cid, 18500)
    local pos = {x = string.match(storage, "x = (.-),"), y = string.match(storage, "y = (.-),"), z = string.match(storage, "z = (.-),")}
    doTeleportThing(cid, pos)
    return true
end

 

 

 

E sim, eu tenho a autorização do Luck pra postar no tópico, ele quer que eu treine ajudando vocês..

 

Vou tentar realizar alguns pedidos dentro da minha limitação de noobice e pulso torcido.

 

Abraços.

Link para o comentário
Compartilhar em outros sites

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