-
Total de itens
153 -
Registro em
-
Última visita
-
Dias Ganhos
9
Tudo que Antharaz postou
-
Olha, eu testei o script que postei no server que você me disse que usa como base e funcionou... não existe motivos para não ter funcionado aí, a não ser que você tenha modificado o script ou use outro servidor... para testar, como não tenho MC, permiti que usasse o comando em si mesmo e ta ae a prova de que funciona no server que você me passou: Agora, você falar que usou o mesmo script que eu postei, no server que me passou link e que mesmo assim não funcionou, ta de brincadeira comigo...
-
Você não está usando o notation.lua que eu postei por último aqui, vou repostar... function isOnTable(arg,t) for i=1,#t do if t[i]==arg then return true end end return false end local stor = 7658754 function onSay(cid, words, param) local name,mot,op,n = string.explode(param,",")[1],string.explode(param,",")[2],getOnlinePlayers(),getPlayerStorageValue(cid, stor) local acid = getPlayerByName(name) if (name == '') or (acid == cid) or (not isOnTable(name,op)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você usou o comando errado, não mande menssagem para si mesmo e nem para um player offline. Diga: /notation player,motivo") return true elseif not mot then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,name.." possui "..(n >= 1 and n or 0).." notations.") return true end doCreatureSetStorage(acid,stor, (n < 0 and 1 or (n+1))) doPlayerSendTextMessage(acid,MESSAGE_STATUS_WARNING,"Você recebeu uma notation: "..getCreatureName(cid)..". Motivo: "..mot) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Você enviou uma notation a "..param..". Motivo: "..mot) return true end
-
Para o notation, utilize este script: function isOnTable(arg,t) for i=1,#t do if t[i]==arg then return true end end return false end local stor = 7658754 function onSay(cid, words, param) local name,mot,op,n = string.explode(param,",")[1],string.explode(param,",")[2],getOnlinePlayers(),getPlayerStorageValue(cid, stor) local acid = getPlayerByName(name) if (name == '') or (acid == cid) or (not isOnTable(name,op)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você usou o comando errado, não mande menssagem para si mesmo e nem para um player offline. Diga: /notation player,motivo") return true elseif not mot then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,name.." possui "..(n >= 1 and n or 0).." notations.") return true end doCreatureSetStorage(acid,stor, (n < 0 and 1 or (n+1))) doPlayerSendTextMessage(acid,MESSAGE_STATUS_WARNING,"Você recebeu uma notation: "..getCreatureName(cid)..". Motivo: "..mot) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Você enviou uma notation a "..param..". Motivo: "..mot) return true end Para arrumar o unban, va no 050-function.lua e troque estas linhas: if db.query("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banStorage..";") == true then db.query("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banCount..";") db.query("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banReason..";") return true end Por estas: if db.executeQuery("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banStorage..";") == true then db.executeQuery("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banCount..";") db.executeQuery("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banReason..";") return true end Testei no server que você indicou e funcionou.
-
local outfit = {{[1]= {lookType = 223 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0}, [2]={lookType = 222 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0}}, TEMPO = 5000} local waterIDs = {11673, 11675} local config = { {level = {10,15}, fishes = {12087}, maxFish = 1, chance = 40}, -- {level = {Do level, Até o level}, fishes = {id dos peixes que podem vir}, maxFish = quantidade máxima de peixes que podem vir, chance = chance em % {level = {16,20}, fishes = {12087}, maxFish = 1, chance = 50}, {level = {21,25}, fishes = {12087}, maxFish = 2, chance = 55}, {level = {26,35}, fishes = {12087}, maxFish = 2, chance = 60}, {level = {36,59}, fishes = {12087}, maxFish = 2, chance = 70}, {level = {60,69}, fishes = {12087}, maxFish = 3, chance = 70}, {level = {70,79}, fishes = {12087}, maxFish = 3, chance = 80}, {level = {80,math.huge}, fishes = {12087}, maxFish = 3, chance = 85} } function onUse(cid, item, fromPosition, itemEx, toPosition) local worms = math.random(1, 1) if getPlayerStorageValue(cid, 381921) < os.time() then if isInArray(waterIDs, itemEx.itemid) then if getPlayerItemCount(cid, 12073) >= worms then doPlayerRemoveItem(cid, 12073, worms) doSendMagicEffect(toPosition, 1) local times = {3900, 4100, 4300, 4500, 4700, 4900, 5000} for i = 1, #times do addEvent(doSendMagicEffect, times[i], toPosition, 1) end addEvent(function() local random = math.random(1, 100) for _, fishing in pairs(config) do if random <= fishing.chance then if getPlayerSkillLevel(cid, 6) >= fishing.level[1] and getPlayerSkillLevel(cid, 6) <= fishing.level[2] then doPlayerAddItem(cid, fishing.fishes[math.random(1, #fishing.fishes)], math.random(1, fishing.maxFish)) doPlayerAddSkillTry(cid, 6, 6) doSendMagicEffect(toPosition, 53) break end else doSendMagicEffect(toPosition, 25) doPlayerAddSkillTry(cid, 6, 1) end end end, 4000) doPlayerSetStorageValue(cid, 381921, os.time() + 5) local sex = getPlayerSex(cid) local out = outfit[1][sex] doSetCreatureOutfit(cid,out, outfit.TEMPO) mayNotMove(cid,true) addEvent(mayNotMove, outfit.TEMPO, cid, false) else doPlayerSendCancel(cid, "You need more worms!") end else doPlayerSendCancel(cid, "You can't fish here") end else doPlayerSendCancel(cid, "You're already fishing!") end return true end Em [1]= {lookType = 223 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} você coloca o outfit para sex 1, em [2]={lookType = 222 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} coloca o outfit para sex 2 e em TEMPO = 5000 coloca o tempo que dura a pesca.
-
Na verdade, eu só botei return total no final, antes do último end e deu certo... deste seu jeito vai retornar apenas o valor do primeiro item porque você deixou o return dentro do loop. local slots = { ['head'] = CONST_SLOT_HEAD, ['armor'] = CONST_SLOT_ARMOR, ['legs'] = CONST_SLOT_LEGS, ['feet'] = CONST_SLOT_FEET, ['left'] = CONST_SLOT_LEFT, ['right'] = CONST_SLOT_RIGHT } local itemSlots, total = {}, 0 function getPlayerProtection(cid, param) for slot, const in pairs(slots) do local hasItemOn = getPlayerSlotItem(cid, const).uid if hasItemOn ~= 0 then itemSlots[slot] = hasItemOn end end for slot, slottedItem in pairs(itemSlots) do local temp = getItemAttribute(slottedItem, param) total = total + (temp ~= nil and temp or 0 ) end return total end No TFS 0.3.7 funcionou...
-
local slots = { ['head'] = CONST_SLOT_HEAD, ['armor'] = CONST_SLOT_ARMOR, ['legs'] = CONST_SLOT_LEGS, ['feet'] = CONST_SLOT_FEET, ['left'] = CONST_SLOT_LEFT, ['right'] = CONST_SLOT_RIGHT } local itemSlots, total = {}, 0 function getPlayerProtection(cid, param) for slot, const in pairs(slots) do local hasItemOn = getPlayerSlotItem(cid, const).uid if hasItemOn ~= 0 then itemSlots[slot] = hasItemOn end end for slot, slottedItem in pairs(itemSlots) do local temp = getItemAttribute(slottedItem, param) total = total + (temp ~= nil and temp or 0 ) end end Transformando somente em function é isto...
-
Gabriel, achei aqui no xtibia um comando para !ban por storage feito pelo Omega e alterei para funcionar de acordo com o seu ot pokemon. No login.lua seu localizado na pasta data\creaturescripts\scripts você irá apagar tudo e colocar isto: local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } --alterado v2.6 tabelas soh em lib/configuration.lua; function onLogin(cid) if isPlayerBanned(cid) and getPlayerStorageValue(cid,banCount) >= 3 then return false end if isPlayerBanned(cid) then local reason = getPlayerBanReason(cid) if reason ~= "" then setPlayerStorageValue(cid,banCount,getPlayerStorageValue(cid,banCount)+1) doTeleportThing(cid,getPlayerTemplePos(cid)) addEvent(doKickPlayerIf,5000,cid) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'Voce foi banido por '..reason..' e sera kickado em 5 segundos.') mayNotMove(cid,true) else setPlayerStorageValue(cid,banCount,getPlayerStorageValue(cid,banCount)+1) doTeleportThing(cid,getPlayerTemplePos(cid)) addEvent(doKickPlayerIf,5000,cid) mayNotMove(cid,true) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'Voce esta banido e sera kickado em 5 segundos.') end doMutePlayer(cid, 5) return true end if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 10 then --alterado v2.8 doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) else doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, (getPlayerLevel(cid) >= 200 and 100 or math.floor(getPlayerLevel(cid)/2)) ) end doCreatureSetDropLoot(cid, false) local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?") elseif(accountManager == MANAGER_ACCOUNT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.") end if getCreatureName(cid) == "Account Manager" then local outfit = {} if accountManagerRandomPokemonOutfit then outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])} else outfit = accountManagerOutfit end doSetCreatureOutfit(cid, outfit, -1) return true end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end local outfit = {} if getPlayerVocation(cid) == 0 then doPlayerSetMaxCapacity(cid, 0) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 128 then outfit = {lookType = 510, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)} elseif getCreatureOutfit(cid).lookType == 136 then outfit = {lookType = 511, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)} end doCreatureChangeOutfit(cid, outfit) end registerCreatureEvent(cid, "dropStone") --alterado v2.7 --alterado v2.6.1 registerCreatureEvent(cid, "ShowPokedex") --alterado v2.6 registerCreatureEvent(cid, "ClosePokedex") --alterado v2.6 registerCreatureEvent(cid, "WatchTv") registerCreatureEvent(cid, "StopWatchingTv") registerCreatureEvent(cid, "WalkTv") registerCreatureEvent(cid, "RecordTv") --registerCreatureEvent(cid, "Death") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "PokemonIdle") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "T1") registerCreatureEvent(cid, "T2") registerCreatureEvent(cid, "task_count") if getPlayerStorageValue(cid, 99284) == 1 then setPlayerStorageValue(cid, 99284, -1) end if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then setPlayerStorageValue(cid, 6598754, -1) setPlayerStorageValue(cid, 6598755, -1) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) end doChangeSpeed(cid, -(getCreatureSpeed(cid))) --///////////////////////////////////////////////////////////////////////////-- local storages = {17000, 63215, 17001, 13008, 5700} for s = 1, #storages do if not tonumber(getPlayerStorageValue(cid, storages[s])) then if s == 3 then setPlayerStorageValue(cid, storages[s], 1) elseif s == 4 then setPlayerStorageValue(cid, storages[s], -1) else if isBeingUsed(getPlayerSlotItem(cid, 8).itemid) then setPlayerStorageValue(cid, storages[s], 1) --alterado v2.6 else setPlayerStorageValue(cid, storages[s], -1) end end doPlayerSendTextMessage(cid, 27, "Sorry, but a problem occurred on the server, but now it's alright") end end --/////////////////////////////////////////////////////////////////////////-- if getPlayerStorageValue(cid, 17000) >= 1 then -- fly local item = getPlayerSlotItem(cid, 8) local poke = getItemAttribute(item.uid, "poke") doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) doRemoveCondition(cid, CONDITION_OUTFIT) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) local apos = getFlyingMarkedPos(cid) apos.stackpos = 0 if getTileThingByPos(apos).itemid <= 2 then doCombatAreaHealth(cid, FIREDAMAGE, getFlyingMarkedPos(cid), 0, 0, 0, CONST_ME_NONE) doCreateItem(460, 1, getFlyingMarkedPos(cid)) end doTeleportThing(cid, apos, false) if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v2.8 end local posicao = getTownTemplePosition(getPlayerTown(cid)) markFlyingPos(cid, posicao) elseif getPlayerStorageValue(cid, 63215) >= 1 then -- surf local item = getPlayerSlotItem(cid, 8) local poke = getItemAttribute(item.uid, "poke") doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) --alterado v2.6 doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v2.8 end elseif getPlayerStorageValue(cid, 17001) >= 1 then -- ride local item = getPlayerSlotItem(cid, 8) local poke = getItemAttribute(item.uid, "poke") if rides[poke] then doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) doRemoveCondition(cid, CONDITION_OUTFIT) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v2.8 end else setPlayerStorageValue(cid, 17001, -1) doRegainSpeed(cid) --alterado v2.6 end local posicao2 = getTownTemplePosition(getPlayerTown(cid)) markFlyingPos(cid, posicao2) elseif getPlayerStorageValue(cid, 13008) >= 1 then -- dive if not isInArray({5405, 5406, 5407, 5408, 5409, 5410}, getTileInfo(getThingPos(cid)).itemid) then setPlayerStorageValue(cid, 13008, 0) doRegainSpeed(cid) --alterado v2.6 doRemoveCondition(cid, CONDITION_OUTFIT) return true end if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1034, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1) else doSetCreatureOutfit(cid, {lookType = 1035, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1) end doChangeSpeed(cid, 800) elseif getPlayerStorageValue(cid, 5700) > 0 then --bike doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getPlayerStorageValue(cid, 5700)) --alterado v2.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v2.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) --alterado v2.6 end if getPlayerStorageValue(cid, 22545) >= 1 then --golden arena setPlayerStorageValue(cid, 22545, -1) --alterado v2.4 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) --alterado v2.7 end if useKpdoDlls then doUpdateMoves(cid) --alterado v2.4 soh pra quem quiser... ;p doUpdatePokemonsBar(cid) end return true end Adicione no 050-function.lua localizado em data\lib o código abaixo: function isOnline(cid) local onl = getOnlinePlayers() for i=1,#onl do if getPlayerByName(onl[i]) == cid then return true end end return false end function doKickPlayerIf(cid) if isOnline(cid) then doRemoveCreature(cid) end end function getPlayerTemplePos(cid) local town = getPlayerTown(cid) local temple = getTownTemplePosition(town) return temple or false end function doBanPlayer(cid,days,reason) if reason ~= false and reason ~= nil and isPlayer(cid) then setPlayerStorageValue(cid,banReason,reason) end if days ~= false and days ~= nil and isPlayer(cid) then local bantime = ((days * 60 * 60 * 24) + os.time(t)) setPlayerStorageValue(cid,banStorage,bantime) doRemoveCreature(cid) return true elseif isPlayer(cid) then setPlayerStorageValue(cid,banStorage,0) doRemoveCreature(cid) return true end return false end function isPlayerBanned(cid) if not isPlayer(cid) then return false elseif getPlayerStorageValue(cid,banStorage) == 0 then return true elseif getPlayerStorageValue(cid,banStorage) == -1 then return false elseif getPlayerStorageValue(cid,banStorage) >= os.time(t) then return true end return false end function doUnbanPlayer(name) if getPlayerGUIDByName(name) then pid = getPlayerGUIDByName(name) else return false end if getCreatureByName(name) then local cid = getCreatureByName(name) if isPlayer(cid) then doRemoveCreature(cid) end end if db.query("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banStorage..";") == true then db.query("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banCount..";") db.query("UPDATE `player_storage` SET `value`=-1 WHERE `player_id` = "..pid.." AND `key`="..banReason..";") return true end return false end function getPlayerBanReason(cid) if isPlayer(cid) then local reason = getPlayerStorageValue(cid,banReason) if reason == -1 then reason = "" end return reason end return false end Adicione no 000-constant.lua localizado em data\lib o código abaixo: banStorage = 918171623 banCount = 918171624 banReason = 918171625 Crie um arquivo chamado nban.lua em data\talkactions\scripts com o código: function onSay(cid,words,param) if words == '!ban' then local param = string.lower(param) local param = string.explode(param,',') if not param[1] then doPlayerSendTextMessage(cid,27,'You must specify a player to ban.') return true elseif(not param[2]) then local player = getPlayerByName(param[1]) if isPlayer(player) then doBanPlayer(player,false) else doPlayerSendTextMessage(cid,27,param[1]..' is not a valid player.') end elseif param[3] then local player = getPlayerByName(param[1]) local days = tonumber(param[2]) local reason = tostring(param[3]) if days and reason then doBanPlayer(player,days,reason) doPlayerSendTextMessage(cid,27,'You have banned '..param[1]..' for '..param[2]..' days. Reason: '..param[3]..'.') else doPlayerSendTextMessage(cid,27,'Invalid parameters.') end else if type(tonumber(param[2])) == 'number' then local player = getPlayerByName(param[1]) local days = tonumber(param[2]) if days ~= false and days ~= nil then doBanPlayer(player,days) doPlayerSendTextMessage(cid,27,'You have banned '..param[1]..' for '..param[2]..' days.') else doPlayerSendTextMessage(cid,27,'Invalid parameter number 2: '..param[2]..'.') end else local reason = param[2] local player = getPlayerByName(param[1]) doBanPlayer(player,false,reason) doPlayerSendTextMessage(cid,27,'You have banned '..param[1]..'. Reason: '..param[2]..'.') end end elseif words == '!unban' then if doUnbanPlayer(param) then doPlayerSendTextMessage(cid,27,'Player '..param..' foi desbanido.') else doPlayerSendTextMessage(cid,27,param..' is\'n a valid player.') end end return true end E em talkactions.xml localizado em data\talkactions\scripts você coloca o código abaixo uma linha antes de </talkactions>: <talkaction log="yes" access="4" words="!ban;!unban" event="script" value="nban.lua"/> Para saber como usar, basta visitar o tópico do autor inicial: http://www.xtibia.com/forum/topic/225250-comando-ban-v20/ Quando players forem banidos e/ou logarem enquanto estiverem banidos, aparecerá um erro no console, mas basta ignorar... testei aqui e funcionou perfeitamente... eu tentei arrumar os erros, mas não conheço muito bem servidores de pokemon...
-
O sistema já se encontra no servidor? Você disse que não sabe editar ele 100%, mas eu não vi o sistema nos logs do server e nem no seu tópico, diga também o que você deseja editar e para qual valor...
-
A distro não tem o comando nas sources, por isto este erro, eu irei fazer o comando por lua e talvez tenha que adicionar uma coluna na database, sua DB é mysql ou sqlite?
-
Abri no meu servidor e ele está atacando os dois... o único modo de arrumar sem ficar nessa lenga lenga é você postando o tópico onde você baixou o server base para que eu teste lá, caso contrário irei ignorar o tópico.
-
Se você me disponibilizar um link do tópico para baixar o servidor base que você está usando, terei como resolver suas dúvidas, caso contrário nem terei como.
-
Ta na mão amigo, testado em TFS 0.3.7: local TeleportLocal = {pos = {x = 984, y = 914, z = 6}, toPos = {x = 987, y = 912, z = 6}} -- Pos de Onde vai ser criado o teleport/e onde vai ser teleportado local from,to = {x = 981, y = 913, z = 6},{x = 987, y = 920, z = 6} local function getPlayersInRange(pos1, pos2) local creaturesList = {} for px = pos1.x, pos2.x do for py = pos1.y, pos2.y do if not (x == 0 and y == 0) then local creature = getTopCreature({x = px, y = py, z = pos1.z}) if creature.type == 1 then table.insert(creaturesList, creature.uid) end end end end return creaturesList end function onUse(cid, item, frompos, item2, topos) if item.itemid == 1945 then player1pos = {x = 983, y = 912, z = 6, stackpos=253} -- piso 1 que tem que ter player player1 = getThingfromPos(player1pos) player2pos = {x = 985, y = 912, z = 6, stackpos=253} -- piso 2 que tem que ter player player2 = getThingfromPos(player2pos) if isPlayer(player1.uid) and isPlayer(player2.uid) then if #getPlayersInRange(from, to) >= 1 then doPlayerSendCancel(cid,"Tem alguém nessa quest.") return TRUE end nplayer1pos = {x = 984, y = 915, z = 6, stackpos=253} -- piso onde sera levado o player do piso 1 nplayer2pos = {x = 984, y = 918, z = 6, stackpos=253} -- piso onde sera levado o player do piso 2 doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doSendMagicEffect(nplayer1pos,4) doSendMagicEffect(nplayer2pos,4) local t = getTileItemById(TeleportLocal.pos, 5023).uid if t then return t > 1 and doRemoveItem(t) and doSendMagicEffect(TeleportLocal.pos, CONST_ME_POFF) end doTransformItem(item.uid,1946) else doPlayerSendCancel(cid,"Voce prescisa de 2 pessoas para fazer éssa quest.") return TRUE end elseif item.itemid == 1946 then doTransformItem(item.uid,1945) end return TRUE end
-
1 - Qual TFS você usa no seu servidor? 2 - Mudei o script do notation de acordo com o que você postou: function isOnTable(arg,t) for i=1,#t do if t[i]==arg then return true end end return false end function onSay(cid, words, param) local name,mot,op = string.explode(param,",")[1],string.explode(param,",")[2],getOnlinePlayers() acid = getPlayerByName(name) if (name == '') or (mot == '') or (acid == cid) or (not isOnTable(name,op)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você usou o comando errado, não mande menssagem para si mesmo e nem para um player offline. Diga: /notation player,motivo") return true end doPlayerSendTextMessage(acid,MESSAGE_STATUS_WARNING,"Você recebeu uma notation: "..getCreatureName(cid)..". Motivo: "..mot) doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Você enviou uma notation a "..param..". Motivo: "..mot) return true end
-
Bepo, para não ficarmos lotando esse tópico de menssagens, me passe um contato seu, (skype ou qualquer coisa) para resolvermos isto o mais rápido possível, pode passar por MP ou por aqui, você quem sabe.
-
Como conversamos em privado, seu servidor é diferente, já refiz o script para ele e coloquei no primeiro post editado. Espero que funcione.
-
Qual TFS? 0.3.1, 0.3.6, 0.3.7? Se não informar farei para 0.3.7 e se der erro no seu não irei modificar novamente...
-
Eu não mechi nesta parte, pois já havia no script original, eu inseri mais abaixo o meu script ocm algumas modificações, o actionid você mantém 1000 + level mínimo
-
Seguinte amigo, me passa o link do tópico com o sever base do seu ot para que eu teste lá, porque eu testei no tfs 0.3.7 (baiak) e funcionou 100%, aguardo retorno EDITED Peço desculpas amigo, eu tenho um péssimo hábito de copiar e colar rápido e as vezes fica faltando código, no seu caso, faltou as 3 primeiras linhas, eu já editei o primeiro post meu arrumando o código, basta substituir o do seu ot por este.
-
Este erro não é do script e sim da source, mas é normal isto... acontece em quase todos OTServers... quero ver o erro quando você executa o comando... outra obs:.. eu baixei esse TFS 0.3.6 e rodei o script numa boa, tanto para player quanto para god, por isto que pedi o link de onde você baixou, para ver se é o host ou o server.... porque o script está ok... Se tiver como você upar o server para mim, mas retirando os sistemas da sua equipe, eu conseguiria arrumar o problema ou ao menos dizer aonde ele está... se for fazer isto, me passe o link por MP para não dar problema para sua equipe depois e se possível, passe seu contato (skype, etc) por MP também.
-
Aqui funcionou normal, você tem link para o tópico do seu server com download para eu baixar e testar nele? Teste novamente por favor e olhe se deu algum erro...
-
dúvida Ajuda para terminar meu script Por favor
pergunta respondeu ao Bennyhappy de Antharaz em Scripts
Você disse que ele retorna o valor que você solicita, que o problema mesmo é este erro no console, para tirar isto basta substituir: if hasItemOn then Por: if hasItemOn ~= 0 then Senão ele irá fazer a busca mesmo você não tendo o item e resultará neste erro em seu console. Caso ainda precise de mais ajuda, solicito que poste o link do tópico com download do servidor que você está usando.- 4 respostas
-
- lua function return
- resolvido
- (e 1 mais)
-
Odeio OTs pokemon, mas vamos lá, já que comecei a ajudar, vamos até o final. Não é necessário mudar o XML. Segue abaixo seu script modificado: local function checkStackpos(item, position) position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local thing = getThingFromPos(position) position.stackpos = STACKPOS_TOP_FIELD local field = getThingFromPos(position) return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0) end local function doorEnter(cid, item, toPosition) doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, toPosition) end function onUse(cid, item, fromPosition, itemEx, toPosition) if(fromPosition.x ~= CONTAINER_POSITION and isPlayerPzLocked(cid) and getTileInfo(fromPosition).protection) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end if(getItemLevelDoor(item.itemid) > 0) then if(item.actionid == 189) then if(not isPremium(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local gender = item.actionid - 186 if(isInArray({PLAYERSEX_FEMALE, PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then if(gender ~= getPlayerSex(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local skull = item.actionid - 180 if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then if(skull ~= getCreatureSkullType(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local group = item.actionid - 150 if(group >= 0 and group < 30) then if(group > getPlayerGroupId(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end local vocation = item.actionid - 100 if(vocation >= 0 and vocation < 50) then local playerVocationInfo = getVocationInfo(getPlayerVocation(cid)) if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") return true end doorEnter(cid, item, toPosition) return true end if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then if item.uniqueid > 60000 and getPlayerLevel(cid) > (item.uniqueid - 60000) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You should have level "..(item.actionid - getItemLevelDoor(item.itemid)).."+ and "..(item.uniqueid - 60000).."-.") return true end doorEnter(cid, item, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.") end return true end if(isInArray(specialDoors, item.itemid)) then if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then doorEnter(cid, item, toPosition) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.") end return true end if(isInArray(keys, item.itemid)) then if(itemEx.actionid > 0) then if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then doTransformItem(itemEx.uid, doors[itemEx.itemid]) return true end doPlayerSendCancel(cid, "The key does not match.") return true end return false end if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then local newPosition = toPosition newPosition.y = newPosition.y + 1 local doorPosition = fromPosition doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local doorCreature = getThingfromPos(doorPosition) if(doorCreature.itemid ~= 0) then local pzDoorPosition = getTileInfo(doorPosition).protection local pzNewPosition = getTileInfo(newPosition).protection if((pzDoorPosition and not pzNewPosition and doorCreature.uid ~= cid) or (not pzDoorPosition and pzNewPosition and doorCreature.uid == cid and isPlayerPzLocked(cid))) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTeleportThing(doorCreature.uid, newPosition) if(not isInArray(closingDoors, item.itemid)) then doTransformItem(item.uid, item.itemid - 1) end end return true end doTransformItem(item.uid, item.itemid - 1) return true end if(isInArray(verticalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then local newPosition = toPosition newPosition.x = newPosition.x + 1 local doorPosition = fromPosition doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local doorCreature = getThingfromPos(doorPosition) if(doorCreature.itemid ~= 0) then if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTeleportThing(doorCreature.uid, newPosition) if(not isInArray(closingDoors, item.itemid)) then doTransformItem(item.uid, item.itemid - 1) end end return true end doTransformItem(item.uid, item.itemid - 1) return true end if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then if(item.actionid == 0) then doTransformItem(item.uid, doors[item.itemid]) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.") end return true end return false end Caso dê algum erro, me passe o link do tópico com o ot para download e cliente.
-
hahaha não precisa se incomodar tanto com rep, não ligo muito para isto não, eu ajudo por hobbie :x só não esquece de marcar como resolvido. Qualquer coisa pode me mandar MP.
-
Vamos lá, em relação a mudar para 500 e não voltar a outfit não aconteceu comigo, testei agora com 500, 700, 200 e 300 e em todos casos voltou ao normal, talvez seja problema no host. Em relação a usar 2 vezes a mesma talkaction eu resolvi acrescentando uma linha que remove a condição ao usar o comando. Editei o primeiro post com o código novo.
-
O tempo delay para verificar se saiu da posição está nessas duas linhas: addEvent(ver, 1000, cid, getCreaturePosition(cid)) addEvent(ver, 1000, cid, npos) O 1000 representa 1 segundo, basta diminuir este valor, se quiser a cada meio segundo coloque 500 e assim por diante.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.