Ir para conteúdo
  • Cadastre-se

(Resolvido)Fishing Monster Script


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Fala galera do TK !

 

estou utilizando um servidor Frozen-Hell, estou testando todas as actions, quests e etc.. e encontrei um bug. se o player chega ao skills 200 de fishing toda e qualquer fishing rod para de funcionar imediatamente, segue o erro :

 

 

[05/06/2014 12:33:50] [Error - Action Interface] 

[05/06/2014 12:33:51] data/actions/scripts/tools/fishing.lua:onUse
[05/06/2014 12:33:51] Description: 
[05/06/2014 12:33:51] data/actions/scripts/tools/fishing.lua:20: bad argument #2 to 'random' (interval is empty)
[05/06/2014 12:33:51] stack traceback:
[05/06/2014 12:33:51] [C]: in function 'random'
[05/06/2014 12:33:51] data/actions/scripts/tools/fishing.lua:20: in function <data/actions/scripts/tools/fishing.lua:15>

 e em seguida meu script :

 

 

local config = {

waterIds = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625},
}
 
local ctfArena = {
frompos = {x=659, y=483, z=7},
topos = {x=769, y=569, z=7},
}
 
local warArena = {
frompos = {x=638, y=711, z=7},
topos = {x=751, y=780, z=7},
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local pos = getCreaturePosition(cid)
local fishSkill = getPlayerSkill(cid, SKILL_FISHING)
local maxChance2 = 400 - fishSkill
local maxChance = 200 - fishSkill
local minChance = 1
local chance = math.random(minChance,maxChance)
 
 
if isInArea(getPlayerPosition(cid), ctfArena.frompos, ctfArena.topos) or isInArea(getPlayerPosition(cid), warArena.frompos, warArena.topos) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you cannot fish in the arena.")
return true
end
 
if isInArray(config.waterIds, itemEx.itemid) then
if getTilePzInfo(pos) == false then
if getPlayerItemCount(cid, ITEM_WORM) > 0 or item.itemid == 10223 then
if math.random(1, (100 + fishSkill / 10)) < fishSkill then
 
if (item.itemid ~= 10223) then
doPlayerRemoveItem(cid, ITEM_WORM, 1)
end
 
doPlayerAddSkillTry(cid, SKILL_FISHING, 1)
doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
--summon smallboss--
if getPlayerLevel(cid) >= 500 and chance == 1 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Hydromancer", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Hydromancer!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Hydromancer!")
end
if getPlayerLevel(cid) >= 500 and chance == 2 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Constrictor", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Constrictor!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Constrictor!")
end
--summon mediumboss--
if getPlayerLevel(cid) >= 1500 and chance == 3 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Mantassin", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Mantassin!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Mantassin!")
end
if getPlayerLevel(cid) >= 1500 and chance == 4 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Pincher", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Pincher!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Pincher!")
end
--summon mediumboss--
if getPlayerLevel(cid) >= 3000 and chance == 5 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Predator", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Predator!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Predator!")
end
if getPlayerLevel(cid) >= 3000 and chance == 6 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Serpent Spawn", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Serpent Spawn!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Serpent Spawn!")
end
--summon hardboss--
if getPlayerLevel(cid) >= 5000 and chance == 7 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Wyrm", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Wyrm!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Undead Mob Raell's!")
end
if getPlayerLevel(cid) >= 5000 and chance == 8 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Sea Serpent", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Sea Serpent!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Undead Water Raell's Element!")
end
if getPlayerLevel(cid) >= 5000 and fishSkill > 100 and math.random(1,maxChance2) == 80 then
doSendMagicEffect(toPosition, 52)
doCreateMonster("Oceanus", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Oceanus!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Hard Mob Oceanus!")
doBroadcastMessage("The Player"..getCreatureName(cid).." has angered the Titan Goddess of Water Oceanus!", 22)
end
if getPlayerLevel(cid) >= 10000 and fishSkill > 110 and math.random(1,maxChance2) == 80 then
doSendMagicEffect(toPosition, 61)
doCreateMonster("Azure Frog", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Azure Frog!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Hard Mob Azure Frog!")
doBroadcastMessage("The Player"..getCreatureName(cid).." has angered the Titan Goddess of Frogs Azure Frog!", 22)
end
if getPlayerLevel(cid) >= 15000 and fishSkill > 120 and math.random(1,maxChance2) == 80 then
doSendMagicEffect(toPosition, 54)
doCreateMonster("Worm", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Hard Mob Worm!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Hard Mob Worm!")
doBroadcastMessage("The Player"..getCreatureName(cid).." has angered the Titan Goddess of Sea Worm!", 22)
end
else
doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
end
else
doPlayerSendCancel(cid, "You do not have any worms.")
end
else
doPlayerSendCancel(cid, "You may not fish from a protection zone.")
end
else
doPlayerSendCancel(cid, "Cast into open water.")
end
return true
end

 

Acho que o erro está relacionado ao random.math e ao maxchance2, nao tenho certeza pois nao entendo muito deste assunto. aguardo ajuda, obrigado !

 

 

PS :  Se alguem tiver um event_shop para me ajudar, o que estou utilizando também está bugado, gostaria de saber como fazer um shop apenas clicando nos items e ao invés de utilizar dinheiro ele utilizara Event tokens, obrigado.

Segue a imagem do shop :

 

post-20226-0-97379800-1401983567_thumb.j

 

 

PS²: Sou novo no forum, se meu topico estiver irregular por favor me avisem !

 

Att. Pedro H Chaves

Link para o post
Compartilhar em outros sites

Teste ae amigo, acredito que funcione...

 


local config = {
waterIds = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625},
}

local ctfArena = {
frompos = {x=659, y=483, z=7},
topos = {x=769, y=569, z=7},
}

local warArena = {
frompos = {x=638, y=711, z=7},
topos = {x=751, y=780, z=7},
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
local pos = getCreaturePosition(cid)
local fishSkill = getPlayerSkill(cid, SKILL_FISHING)
local maxChance2 = 400 - fishSkill
local maxChance = 200 - fishSkill
local minChance = 1
local chance = math.random(minChance,maxChance)
local chance1 = math.random(minChance,maxChance2)


if isInArea(getPlayerPosition(cid), ctfArena.frompos, ctfArena.topos) or isInArea(getPlayerPosition(cid), warArena.frompos, warArena.topos) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you cannot fish in the arena.")
return true
end

if isInArray(config.waterIds, itemEx.itemid) then
if getTilePzInfo(pos) == false then
if getPlayerItemCount(cid, ITEM_WORM) > 0 or item.itemid == 10223 then
if math.random(1, (100 + fishSkill / 10)) < fishSkill then

if (item.itemid ~= 10223) then
doPlayerRemoveItem(cid, ITEM_WORM, 1)
end

doPlayerAddSkillTry(cid, SKILL_FISHING, 1)
doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
--summon smallboss--
if getPlayerLevel(cid) >= 500 and chance == 1 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Hydromancer", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Hydromancer!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Hydromancer!")
end
if getPlayerLevel(cid) >= 500 and chance == 2 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Constrictor", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Constrictor!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Constrictor!")
end
--summon mediumboss--
if getPlayerLevel(cid) >= 1500 and chance == 3 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Mantassin", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Mantassin!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Mantassin!")
end
if getPlayerLevel(cid) >= 1500 and chance == 4 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Pincher", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Pincher!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Pincher!")
end
--summon mediumboss--
if getPlayerLevel(cid) >= 3000 and chance == 5 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Quara Predator", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Predator!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Quara Predator!")
end
if getPlayerLevel(cid) >= 3000 and chance == 6 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Serpent Spawn", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Quara Serpent Spawn!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Serpent Spawn!")
end
--summon hardboss--
if getPlayerLevel(cid) >= 5000 and chance == 7 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Wyrm", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Wyrm!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Undead Mob Raell's!")
end
if getPlayerLevel(cid) >= 5000 and chance == 8 then
doSendMagicEffect(toPosition, 33)
doCreateMonster("Sea Serpent", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Sea Serpent!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Undead Water Raell's Element!")
end
if getPlayerLevel(cid) >= 5000 and fishSkill > 100 and fishSkill <= 110 and chance1 == 80 then
doSendMagicEffect(toPosition, 52)
doCreateMonster("Oceanus", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Oceanus!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Hard Mob Oceanus!")
doBroadcastMessage("The Player"..getCreatureName(cid).." has angered the Titan Goddess of Water Oceanus!", 22)
end
if getPlayerLevel(cid) >= 10000 and fishSkill > 110 and fishSkill <= 120 and chance1 == 80 then
doSendMagicEffect(toPosition, 61)
doCreateMonster("Azure Frog", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Azure Frog!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Hard Mob Azure Frog!")
doBroadcastMessage("The Player"..getCreatureName(cid).." has angered the Titan Goddess of Frogs Azure Frog!", 22)
end
if getPlayerLevel(cid) >= 15000 and fishSkill > 120 and chance1 == 80 then
doSendMagicEffect(toPosition, 54)
doCreateMonster("Worm", pos, false)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You caught a Hard Mob Worm!")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You caught a Hard Mob Worm!")
doBroadcastMessage("The Player"..getCreatureName(cid).." has angered the Titan Goddess of Sea Worm!", 22)
end
else
doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY)
end
else
doPlayerSendCancel(cid, "You do not have any worms.")
end
else
doPlayerSendCancel(cid, "You may not fish from a protection zone.")
end
else
doPlayerSendCancel(cid, "Cast into open water.")
end
return true
end

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

o erro persiste amigo ! me ajudem :(

 

Erro que aparece no console :

 

 

[05/06/2014 22:56:31] [Error - Action Interface] 

[05/06/2014 22:56:31] data/actions/scripts/tools/fishing.lua:onUse
[05/06/2014 22:56:32] Description: 
[05/06/2014 22:56:32] data/actions/scripts/tools/fishing.lua:21: bad argument #2 to 'random' (interval is empty)
[05/06/2014 22:56:32] stack traceback:
[05/06/2014 22:56:32] [C]: in function 'random'
[05/06/2014 22:56:32] data/actions/scripts/tools/fishing.lua:21: in function <data/actions/scripts/tools/fishing.lua:15>

 

Editado por Lekstar (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

 

[06/06/2014 02:54:26] TheForgottenServer, version 0.3.6 (Crying Damson)

[06/06/2014 02:54:26] Compiled with GNU C++ version 3.4.5 (mingw special) at Jul 16 2011, 12:10:57.
[06/06/2014 02:54:26] A server developed by Elf, slawkens, Talaturen, KaczooH, Lithium, Kiper, Kornholijo.
[06/06/2014 02:54:26] Visit our forum for updates, support and resources: http://otland.net.

tfs 0.3.6 cara, estou desesperado por estar perdendo dinheiro, estou pagando um dedicado em vão. por favor me ajudem !

Link para o post
Compartilhar em outros sites
  • Solução
local maxChance2 = 400 - fishSkill
local maxChance = 200 - fishSkill

a maxchance é 200 - o skill. Se o skill for 200 então dá 0 e vai bugar o math.random.

Coloca uns numeros maiores tipo 300 e 500 que deve resolver.. mas qnd uparem 300 de fishing vai precisar aumentar dnv

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

Amigo obrigado , meu fishing script está 100% agora (ainda tenho que pensar oq fazer quando o player chegar skills 300, mas esta ok) e gostaria de uma ajuda em relação ao meu sistema de shopping por event tokens.

Link para o post
Compartilhar em outros sites

Use de base esse sistema... Só configure a seu gosto...

 

local chests = {


[6001] = {cost = 8000, item = 7900, amount = 1}, -- magma monocle
[6002] = {cost = 8000, item = 2496, amount = 1}, -- horned helmet
[6003] = {cost = 8000, item = 2474, amount = 1}, -- winged helmet
[6004] = {cost = 8001, item = 7899, amount = 1}, -- magma coat
[6005] = {cost = 8001, item = 8883, amount = 1}, -- windborn colossus armor
[6006] = {cost = 8001, item = 8877, amount = 1}, -- lavos armor
[6007] = {cost = 8002, item = 7894, amount = 1}, -- magma legs
[6008] = {cost = 8002, item = 2477, amount = 1}, -- knight legs
[6009] = {cost = 8002, item = 8923, amount = 1}, -- ranger legs
[6010] = {cost = 8003, item = 2218, amount = 1}, -- paw amulet
[6011] = {cost = 8004, item = 2527, amount = 1}, -- rose shield
[6012] = {cost = 8005, item = 6574, amount = 1}, -- bar of chocolate
[6013] = {cost = 8006, item = 5907, amount = 1}, -- slingshot
[6014] = {cost = 8007, item = 2179, amount = 1}, -- gold ring
[6015] = {cost = 8007, item = 2123, amount = 1}, -- ring of the sky
[6016] = {cost = 8007, item = 2121, amount = 1}, -- wedding ring
[6017] = {cost = 8008, item = 7958, amount = 1}, -- vip rod
[6018] = {cost = 8008, item = 7414, amount = 1}, -- vip wand
[6019] = {cost = 8008, item = 8932, amount = 1}, -- vip sword
[6020] = {cost = 8008, item = 8293, amount = 1}, -- vip axe
[6021] = {cost = 8008, item = 8929, amount = 1}, -- vip club
[6022] = {cost = 8008, item = 8857, amount = 1}, -- vip bow
[6023] = {cost = 8009, item = 8930, amount = 1}, -- emerald sword
[6024] = {cost = 8009, item = 8918, amount = 1}, -- spellbook of dark mysteries
[6025] = {cost = 8009, item = 8888, amount = 1}, -- master archer's armor
[6026] = {cost = 8009, item = 8890, amount = 1}, -- robe of the underworld
[6027] = {cost = 8009, item = 8881, amount = 1}, -- fireborn giant armor
[6028] = {cost = 8009, item = 8928, amount = 1}, -- obsidian truncheon
[6029] = {cost = 8009, item = 8851, amount = 1}, -- royal crossbow
[6030] = {cost = 8009, item = 8856, amount = 1}, -- yol's bow
[6031] = {cost = 8009, item = 8924, amount = 1}, -- hellforged axe
[6032] = {cost = 8010, item = 10310, amount = 1}, -- claw of the noxious spawn
[6033] = {cost = 8011, item = 9931, amount = 1}, -- coconut shoes
[6034] = {cost = 8012, item = 7957, amount = 1}, -- jester hat
[6035] = {cost = 8013, item = 8892, amount = 1}, -- ethno coat
[6036] = {cost = 8014, item = 2471, amount = 1}, -- golden helmet
[6037] = {cost = 8015, item = 2523, amount = 1}, -- blessed shield
[6038] = {cost = 8016, item = 7424, amount = 1}, -- barao staff
[6039] = {cost = 8016, item = 8854, amount = 1}, -- barao bow
[6040] = {cost = 8016, item = 7417, amount = 1}, -- barao sword
[6041] = {cost = 8016, item = 7450, amount = 1}, -- barao club
[6042] = {cost = 8016, item = 8926, amount = 1}, -- barao axe
[6043] = {cost = 8017, item = 3972, amount = 1}, -- vip helmet
[6044] = {cost = 8017, item = 3983, amount = 1}, -- bast skirt
[6045] = {cost = 8017, item = 8903, amount = 1}, -- spellbook of lost souls
[6046] = {cost = 8018, item = 2517, amount = 1}, -- shield of honour
[6047] = {cost = 8019, item = 2407, amount = 1}, -- bright sword
[6048] = {cost = 8020, item = 2466, amount = 1}, -- golden armor
[6049] = {cost = 8021, item = 2392, amount = 1}, -- fire sword
[6050] = {cost = 8022, item = 2430, amount = 1}, -- knight axe
[6051] = {cost = 8023, item = 2432, amount = 1}, -- fire axe
[6052] = {cost = 8024, item = 2472, amount = 1}, -- magic plate armor
[6053] = {cost = 8025, item = 2466, amount = 1}, -- golden armor
[6054] = {cost = 8026, item = 2427, amount = 1}, -- guardian halberd
[6055] = {cost = 8027, item = 4852, amount = 1}, -- vip stone
[6056] = {cost = 8028, item = 7890, amount = 1}, -- red skull amulet
[6057] = {cost = 8029, item = 2393, amount = 1}, -- giant sword
[6059] = {cost = 8030, item = 2400, amount = 1}, -- sword of valor
[6060] = {cost = 8030, item = 2431, amount = 1}, -- stonecutter axe
[6061] = {cost = 8030, item = 2421, amount = 1}, -- thunder hammer
[6062] = {cost = 8030, item = 2494, amount = 1}, -- demon armor
[6063] = {cost = 8031, item = 2453, amount = 1}, -- arcane staff
[6064] = {cost = 8031, item = 6528, amount = 1}, -- the avenger
[6065] = {cost = 8031, item = 5803, amount = 1}, -- arbalest
[6066] = {cost = 8032, item = 2365, amount = 1}, -- backpack of holding
[6067] = {cost = 8033, item = 6529, amount = 100}, -- infernal bolts
[6068] = {cost = 8034, item = 6132, amount = 1}, -- soft boots
[6069] = {cost = 8035, item = 5791, amount = 1}, -- stuffed dragon
[6070] = {cost = 8036, item = 2361, amount = 1}, -- frozen starlight
[6071] = {cost = 8037, item = 6132, amount = 1}, -- soft boots
[6072] = {cost = 8038, item = 2493, amount = 1}, -- demon helmet
[6073] = {cost = 8039, item = 2520, amount = 1}, -- demon shield
[6074] = {cost = 8040, item = 2645, amount = 1}, -- steel boots
[6075] = {cost = 8041, item = 2495, amount = 1}, -- demon legs
[6076] = {cost = 8041, item = 8905, amount = 1}, -- rainbow shield
[6077] = {cost = 8041, item = 8918, amount = 1}, -- spellbook of dark mysteries
[6078] = {cost = 8041, item = 8851, amount = 1}, -- royal crossbow
[6079] = {cost = 8042, item = 9933, amount = 1}, -- firewalker boots
[6080] = {cost = 8043, item = 2469, amount = 1}, -- dragon scale legs
[6081] = {cost = 8044, item = 8905, amount = 1}, -- rainbow shield
[6082] = {cost = 8045, item = 2476, amount = 1}, -- knight armor
[6083] = {cost = 8046, item = 2414, amount = 1}, -- dragon lance
[6084] = {cost = 8046, item = 2391, amount = 1}, -- war hammer
[6085] = {cost = 8046, item = 2393, amount = 1}, -- giant sword
[6086] = {cost = 8047, item = 2656, amount = 1}, -- blue robe
[6087] = {cost = 8048, item = 2187, amount = 1}, -- wand of inferno
}
function onUse(cid,item,fromPosition,itemEx,toPosition)
local v = chests[item.uid]
if getPlayerFreeCap(cid) < (getItemWeightById(v.item)*v.amount) then
return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You need " .. (getItemWeightById(v.item)*v.amount) .. " capacity in order to get the item")
end
if getPlayerItemCount(cid, 9020) >= v.cost then
Added = doPlayerAddItem(cid,v.item,v.amount)
doChangeTypeItem(Added, v.amount)
doPlayerRemoveItem(cid,9020,v.cost)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You bought '..getItemArticleById(v.item)..' '..getItemNameById(v.item)..' for '..v.cost..' tokens.')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you do not have enough tokens.")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need "..v.cost.." tokens for "..getItemArticleById(v.item).." "..getItemNameById(v.item)..".")
end
return TRUE
end

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Os dois problemas foram solucionados, gostaria de agradecer a todos que me ajudaram.  :palmas:

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 Doria Louro
      Olá nobre senhores, tudo bem com vocês?
      Servidor: TFS 0.3.6
      Cliente:    8.60
       
      Estou com a seguinte ideia, criar conjuntos de equipamentos em meu servidor, que aumente os atributos do player ao utilizar o conjunto/set completo, exemplo:

       
      Um exemplo dos itens contidos no meu itens.xml:
      <item id="2487" article="a" name="warrior armor"> <attribute key="weight" value="9000" /> <attribute key="armor" value="13" /> <attribute key="skillSword" value="1" /> <attribute key="skillAxe" value="1" /> <attribute key="skillClub" value="1" /> <attribute key="slotType" value="body" /> <attribute key="healthGain" value="2" /> <attribute key="healthTicks" value="3000" /> <attribute key="description" value="+2 HP every 3s, Sale value: $5000" /> </item>  
      Em meu movements.xml:
      <movevent type="Equip" itemid="2487" level="30" slot="armor" event="function" value="onEquipItem"> <vocation id="8" /> </movevent> <movevent type="DeEquip" itemid="2487" slot="armor" event="function" value="onDeEquipItem" />  
      Entretanto eu fico limitado aos eventos de Equip default, se eu altero para meu script full_set.lua:
      <movevent type="Equip" itemid="2487" level="30" slot="armor" event="script" value="full_set.lua"> <vocation id="8" /> </movevent>  
      Executando meu script  eu perco os atributos contidos no itens.xml, tais como o aumento de skill, ganho de HP por segundo e também qualquer vocação pode utilizar o equipamento.
       
      Simplificando, é possível utilizar os recursos padrões de Equip do movements e adicionar um/mais scripts personalizáveis sem perder as funcionalidades da function onEquipItem?
      Meu objetivo é quanto mais partes do set o jogador possuir, mais bônus ele obterá, um exemplo:
       
      Warrior Set
      [2 peças] - Aumenta em 100 HP total
      [4 peças] - Aumenta em 2 shielding
       
      Eu tenho uma ideia de colocar essa verificação no creaturescripts, entretanto não gostaria de tomar esse rumo pois acredito que poderia sobrecarregar meu servidor com as verificações por thing.
      Efetuei consultas pela internet e geralmente o pessoa que tem essa duvida utiliza itens que não tem status, tipo um ring, no meu caso é diferente.
       
      Possível solução: Seria utilizar o código Equip padrão no meu script e depois aplicar meu código, entretanto eu não encontrei em nenhum local esse script de Equip,
       
      Quem puder me ajudar eu ficaria eternamente grato já que esse é um sistema chave no meu projeto, agradeço desde já
    • Por BonasxD
      Bom galera primeiramente não sei se estou na area correta ou se nao estou, se nao por favor mover para area certa, grato!
      Estou com esse erro ao tenta instalar o gesior usando a tfs 0.4 não passa dessa parte ja tentei de tudo e nao sei oque fazer ;(
       
      Testei o mesmo procedimento no meu Windows e Funcionou corretamente agora no meu VM(Ubuntu22) não passa desse erro. 
       
      Ja pesquisei por tudo e não sei oque fazer

    • Por ILex WilL
      Olá, Alguém poderia me ajudar com uns Scripts? nem que seja cobrando, dependendo eu pago para me ajudar...
    • Por Kill of sumoners
      Boa noite, estou com um erro ao atacar um player em meu sv eu nao pego pk, nem sai magia, aparece a mensagem "voce so pode usar isso em criaturas"
      obs: magia em area acerta e pega pk, apenas as targets ou hits de arma nao vao 
    • Por Imperius
      Tinha visto isso no servidor do MegaTibia / Kaldrox e achei bem interessante.
       
      Todos os tópicos que encontrei sobre o assunto de alterar a cor das mensagens dos GMs, CMs e ADM no channel Help para vermelho, falavam que tinham que fazer uma configuração na própria source do servidor.
       
      Fiz uma gambiarra que funciona, sem a necessidade de mexer na source do servidor e de utilizar comandos para isso. Testei somente em TFS 0.4 e funciona tranquilamente.
       
      segue abaixo como configurar em seu otserver:
       
      data > talkactions > scripts > crie um arquivo chamado gmsayred.lua e cole o código abaixo:
       
      function onSay(cid, words, param, channel) if channel == CHANNEL_HELP then for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', "".. getCreatureName(cid) .. ": ".. words, TALKTYPE_CHANNEL_R1, CHANNEL_HELP) end return true end end  
      em talkactions.xml cole a tag abaixo:

       
      <!-- Gamemasters --> <talkaction default="yes" filter="quotation" logged="no" access="3" event="script" value="gmsayred.lua"/>    
      e pronto! Agora é só enviar alguma mensagem no Help que a mensagem ficará em vermelho.
       

       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo