Ir para conteúdo

luccagomes

Campones
  • Total de itens

    62
  • Registro em

  • Última visita

Sobre luccagomes

Informações

  • Forma que conheci o xTibia
    Otservs
  • Sou
    OT-Admin

luccagomes's Achievements

  1. Não cara, ele quer que a invasão do dia seja em horario randomico entre aqueles horarios lá
  2. Eu tenho esse sistema que eu ia usar como base das taks, mas eu preciso de ajuda pra fazer os NPCs Como fazer os IFs IF: Inicio Está fazendo a task Terminou a task De acordo com esse sistema: <?xml version="1.0" encoding="UTF-8"?> <mod name="Simple Task" version="3.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="task_func"><![CDATA[ tasktabble = { ["bandits guild"] = {monster_race={"bandit","wild warrior","smuggler"}, storage_start = 200202, storage = 91002,count = 1}, ["rotworm"] = {monster_race={"rotworm"}, storage_start = 200203, storage = 91003,count = 100}, ["carrion worm"] = {monster_race={"carrion worm"}, storage_start = 200204, storage = 91004,count = 100}, ["rotworm queen"] = {monster_race={"rotworm queen"}, storage_start = 200205, storage = 91005,count = 10}, } configbosses_task = { {race = "minotaur",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5}, {race = "necromancer",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5}, {race = "dragon",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5} } function CheckTask(cid) for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then return true end end return false end function finisheAllTask(cid) local config = { exp = {true,100000}, money = {true,200000}, items ={false,{{2124,2},{2173,1}}}, premium ={true,5} } local x = true for k, v in pairs(tasktabble) do if tonumber(getPlayerStorageValue(cid,v.storage)) then x = false end end if x == true then setPlayerStorageValue(cid, 521456, 0) local b = getGlobalStorageValue(63005) if b == -1 then b = 1 end if b < 11 then setGlobalStorageValue(63005,b+1) doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..' to finish the task!.') doPlayerAddPremiumDays(cid, config.premium[1] == true and config.premium[2] or 0) doPlayerAddExp(cid, config.exp[1] == true and config.exp[2] or 0) doPlayerAddMoney(cid, config.money[1] == true and config.money[2] or 0) if config.items[1] == true then doAddItemsFromList(cid,config.items[2]) end doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy "..getCreatureName(cid).." completed all the task.") end end end function HavePlayerPosition(cid, from, to) return isInRange(getPlayerPosition(cid), from, to) and true or false end function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str) end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function doAddItemsFromList(cid,items) -- by vodka if table.maxn(items) > 0 then for i = 1, table.maxn(items) do local count = items[i][2] while count > 0 do if isItemStackable(items[i][1]) then doPlayerAddItemStacking(cid, items[i][1], 1) else doPlayerAddItem(cid, items[i][1],1) end count = count - 1 end end end end function pairsByKeys(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 local iter = function () i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end ]]></config> <event type="login" name="TaskLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "KillTask") return true end]]></event> <talkaction words="/task;!task" event="buffer"><![CDATA[ domodlib('task_func') local param = string.lower(param) if param == "rank" then getRankStorage(cid, 521456, 20, "Task Rank Finalizadas") return true end local str = "" str = str .. "Task Completed :\n\n" for k, v in pairsByKeys(tasktabble) do local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end str = str..k.." = ".. (not tonumber(contagem) and "["..contagem.."]" or "["..((contagem)-1).."/"..v.count.."]") .."\n" end str = str .. "" return doShowTextDialog(cid, 8983, str) ]]></talkaction> <event type="kill" name="KillTask" event="script"><![CDATA[ domodlib('task_func') function onKill(cid, target, lastHit) if(isMonster(target) == true) then local n = string.lower(getCreatureName(target)) for race, mob in pairs(tasktabble) do if getPlayerStorageValue(cid,mob .storage_start) >= 1 then for i = 1,#mob.monster_race do if n == mob.monster_race[i] then local contagem = getPlayerStorageValue(cid, mob.storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then return true end if contagem > mob.count then return true end if contagem > mob.count then return true end setPlayerStorageValue(cid, mob.storage, contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,""..(contagem == mob.count and "Congratulations! You finished the task of "..race.."." or "defeated. Total [" .. contagem .. "/" .. mob.count .. "] " .. race .. ".").."") end end end end end return true end]]></event> </mod>
  3. Usando sources 0.4 Alguém poderia me fazer um script que ao upar lvl 8, ir teleportado pra pos x= 100, y= 100, z= 7 E chegar falando hi com o npc? Ou começar alguma coisa pra ele saber q ta falando com o npc ou tem que falar com npc com clareza pra ir pra main?
  4. Ninguem sabe ao menos dizer onde fica isso pro cara me ajudar? Um cara me respondeu, é em AB msm Not sure if it's the same (though I'm pretty sure it is) that the coords of rl maps on OTland and the coords in rl tibia are the same, but looking at tibia.wikia.com real quick Ab'Dendriel - 127.151,123.187,7 (dunno how they got 3 decimal places in the x and y coord?) Carlin - 126.82,124.45,7 SOURCE http://tibia.wikia.com/wiki/Mapper
  5. Parece ficar no sul de AB, é q mts vídeos de war q eu vejo tem war lá, queria colocar UPPPPP
  6. Suas sources são mt diferentes e não tem mailbox na versão 8.6, vou deixar por script msm
  7. Bem do jeito que eu imaginei! Obrigado!
  8. Meu PC é uma bosta, então tenho que vir aqui pedir a vocês, não consigo abrir mapa global, alguem pode me cortar essa parte do mapa global (e um pouco mais em volta, não só onde ele morreu) ?
  9. Existe um jeito de eu facilitar a configuração das spells no meu ot 0.4 Salvar em uma LIB ou no config.lua um valor chamado por exemplo: sd_v_sorc = 14 Pra só mudar lá e já era muda aqui local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, IDDOITEMAQUI) function onGetFormulaValues(cid, level, maglevel) if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 then min = ( (maglevel * sd_v_sorc) * 0.5 ) * -1 max = ( (maglevel * sd_v_sorc) * 1.0 ) * -1 return min, max elseif getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then min = ( (maglevel * sd_v_sorc) * 0.5 ) * -1 max = ( (maglevel * sd_v_sorc) * 1.0 ) * -1 return min, max elseif getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then min = ( (maglevel * sd_v_sorc) * 0.5 ) * -1 max = ( (maglevel * sd_v_sorc) * 1.0 ) * -1 return min, max end end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Eu iria usar isso pra todas as magias/runas dez de exura a exevo gran mas vis e dez de hmm a sd pra cada vocação Alguem sabe um modo de fazer isso?
  10. Obriagdo, estarei te dando os reps, continue fazendo posts pra que eu possa dar reps
  11. Então pessoal meu RL ta me pedindo um mapa, como meu/dele PC é um lixo e não abre o mapa global nem fodendo, preciso pedir isso pra vc's... http://4.1m.yt/ccpjARy0E.png Esse local do mapa global, onde ficam os quaras e tals, que tem a quest do mermaid, alguem corta ele direitinho pra mim com os spawns? Dou 10 reps.. vlw Edit: Meu mapa é versão 8.6 (ele n tem acc no xtibia)
  12. Mas a minha ideia era não deixar que mandassem parcel pra rook, meu ot é 8.6, nem tem market
  13. Então brother eu já imaginava que seria uma modificação nas soucers, mas não conheço onde fica cada parada das soucers A minha é diferente da sua você usa 1.2 eu uso 0.4 (3777 do luanluciano) Tem ideia de onde eu acho a parcel de parcel nessas sources? abri o player.cpp procurei por parcel já e não tem nada, não faço ideia de como fazer isso e é bem importante
  14. 0.4 - 8.6 Então pessoal, criei uma rookgaard custom e nela tem DP pra nego não ter que ficar criando maker pra colocar os itens q só vai ocupar espaço na DB e atrapalhar os players.. Mas tem um problema, tem como os caras de main mandar parcel pra rook Como eu faço pra impedir que mandem parcel pra Rook (town id 7)?
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...