Você mexeu em algum script antes de dar esse erro.
- Forums
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Problema No Trade Do Meu Ot [Urgente]
[Encerrado] Problema No Trade Do Meu Ot [Urgente]
By matayo1888, 12 de nov. de 2012 in Tópicos Sem Resposta
info
Group: Lorde
Joined: 05/06/12
Posts: 2.2k
Reputation: +215
Gender: Masculino

info
Group: Campones
Joined: 18/09/12
Posts: 39
Reputation: -1

Quais são os scripts de Trade ??
info
Group: Lorde
Joined: 05/06/12
Posts: 2.2k
Reputation: +215
Gender: Masculino

Mais vc mexeu em alguma coisa antes de dar o erro?
info
Group: Campones
Joined: 18/09/12
Posts: 39
Reputation: -1

Não, nem tentei pois não entendo sobre Trade, vim logo pro Xtibia pra ver se resolvo
info
Group: Lorde
Joined: 05/06/12
Posts: 2.2k
Reputation: +215
Gender: Masculino

poste seu tradesystem (data/creaturescripts/script).
info
Group: Campones
Joined: 18/09/12
Posts: 39
Reputation: -1

Aqui está:
function onTradeRequest(cid, target, item)
local itemPokeball = isPokeball(item.itemid) and 1 or 0
local cancel = false
if itemPokeball == 1 then
local pokename = getItemAttribute(item.uid, "poke")
if getArticle(pokename) == "error" then
cancel = true
end
end
if cancel then
doPlayerSendTextMessage(cid, 26, "Your pokemon is with some bug, please report to a GOD.")
return false
end
for a, b in pairs (pokeballs) do
if b.use == item.itemid then
doPlayerSendCancel(cid, "You can't trade this item.")
return false
end
end
return true
end
local function noCap(cid, sid)
if isCreature(cid) then
doPlayerSendCancel(cid, "You can't carry more than six pokemons, trade cancelled.")
end
if isCreature(sid) then
doPlayerSendCancel(sid, "You can't carry more than six pokemons, trade cancelled.")
end
end
function onTradeAccept(cid, target, item, targetItem)
local pbs = #getPokeballsInContainer(item.uid)
local cancel = false
local p1 = 0
local p2 = 0
local itemPokeball = isPokeball(item.itemid) and 1 or 0
local targetItemPokeball = isPokeball(targetItem.itemid) and 1 or 0
if pbs > 0 and getCreatureMana(target) + pbs > 6 + targetItemPokeball then
cancel = true
p1 = target
end
pbs = #getPokeballsInContainer(targetItem.uid)
if pbs > 0 and getCreatureMana(cid) + pbs > 6 + itemPokeball then
cancel = true
p2 = cid
end
if cancel then
addEvent(noCap, 20, p1, p2)
return false
end
if itemPokeball == 1 and targetItemPokeball == 1 then
setPlayerStorageValue(cid, 8900, 1)
setPlayerStorageValue(target, 8900, 1)
end
return true
end
info
Group: Lorde
Joined: 05/06/12
Posts: 2.2k
Reputation: +215
Gender: Masculino

Tente assim:
function onTradeRequest(cid, target, item)
for a, b in pairs (pokeballs) do
if b.use == item.itemid then
doPlayerSendCancel(cid, "You can't trade this item.")
return false
end
end
if isContainer(item.uid) then
local bagItems = getItensUniquesInContainer(item.uid)
if #bagItems >= 1 then
doPlayerSendCancel(cid, "Has a Unique Item in this bag, you can't trade this item.")
return false
end
elseif getItemAttribute(item.uid, "unique") then
doPlayerSendCancel(cid, "It is a Unique Item, you can't trade this item.")
return false
end
if isContainer(item.uid) then
local itens = getPokeballsInContainer(item.uid)
if #itens >= 1 then
for i = 1, #itens do
local lvl = getItemAttribute(itens, "level")
local name = getItemAttribute(itens, "poke")
if not lvl then
doItemSetAttribute(itens, "level", pokes[name].level)
end
end
end
elseif isPokeball(item.itemid) then
local lvl = getItemAttribute(item.uid, "level")
local name = getItemAttribute(item.uid, "poke")
if not lvl then
doItemSetAttribute(item.uid, "level", pokes[name].level)
end
end
if getPlayerStorageValue(cid, 52480) >= 1 then
doPlayerSendTextMessage(cid, 20, "You can't do that while be in a duel!")
return false
end
return true
end
local function noCap(cid, sid)
if isCreature(cid) then
doPlayerSendCancel(cid, "You can't carry more than six pokemons, trade cancelled.")
end
if isCreature(sid) then
doPlayerSendCancel(sid, "You can't carry more than six pokemons, trade cancelled.")
end
end
function onTradeAccept(cid, target, item, targetItem)
local pbs = #getPokeballsInContainer(item.uid)
local cancel = false
local p1 = 0
local p2 = 0
local itemPokeball = isPokeball(item.itemid) and 1 or 0
local targetItemPokeball = isPokeball(targetItem.itemid) and 1 or 0
if getPlayerMana(cid) + itemPokeball > 6 then
cancel = true
p1 = cid
end
if getPlayerMana(target) + targetItemPokeball > 6 then
cancel = true
p2 = target
end
if pbs > 0 and getCreatureMana(target) + pbs > 6 + targetItemPokeball then
cancel = true
p1 = target
end
pbs = #getPokeballsInContainer(targetItem.uid)
if pbs > 0 and getCreatureMana(cid) + pbs > 6 + itemPokeball then
cancel = true
p2 = cid
end
if cancel then
addEvent(noCap, 20, p1, p2)
return false
end
if itemPokeball == 1 and targetItemPokeball == 1 then
setPlayerStorageValue(cid, 8900, 1)
setPlayerStorageValue(target, 8900, 1)
end
return true
end
Se não funcionar me avisa.
info
Group: Campones
Joined: 18/09/12
Posts: 39
Reputation: -1

Pegou, vlw aew, reporte o topico pf
info
Group: Lorde
Joined: 05/06/12
Posts: 2.2k
Reputation: +215
Gender: Masculino

Duvida Resolvida, peça para mover.
Atenc. Yan18.
info
Group: Herói
Joined: 28/11/10
Posts: 3.4k
Reputation: +585
Gender: Masculino

Resolvido.
Topico Movido!
info
Group: Herói
Joined: 28/11/10
Posts: 3.4k
Reputation: +585
Gender: Masculino

+ 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.



info
Group: Campones
Joined: 18/09/12
Posts: 39
Reputation: -1
Olá pessoal, estou com um problema e preciso resolve-lo rapido.
No meu ot de poketibia, o players quando fazem TRADE (troca de pokemons,iten, etc ...) o server desliga sozinho, tipo o forggottenserver da erro.
Alguem por favor pode me ajudar ??