Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. Em "data/globalevensts/globalevents.xml" cola: <globalevent name="raid" interval="18000" event="script" value="raid.lua"/> Ali em interval é o tempo da invação equivalente a segundos, cada 1 minuto = 60 interval. Ou seja, 18000 = 5 horas Na pasta "globalevents/scripts" duplica um arquivo e nomeia para "rad" sem as aspas e nele cola: function onThink(interval, lastExecution, thinkInterval) local pos = {x=2456, y=2462, z=7} -- Posição que monstro vai nascer local monster = "Grynch Clan Goblin" -- Monstro que é pra criar doBroadcastMessage("Ocorreu invação de Grynch Clan Goblin na cidade!") doCreateMonster(monster, pos) return true end Ali em cima edita a posição do respaw e pode editar a mensagem tbm, ou remove a linha da msg. Se quiser mais monstros é sóh ir criando varios arquivos sóh muda os nomes e as tags no globalevents.xml!
  2. Troca por esse: function onLogin(cid) if (isVip(cid) == true) if(isInArray({5, 6, 7, 8}, getPlayerVocation(cid))) then -- id das vocações que ira voltar doPlayerSetVocation(cid,getPlayerVocation(cid)+4) return TRUE end else if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then -- id das vocações que esta quando vip doPlayerSetVocation(cid,getPlayerVocation(cid)-4) return TRUE end end return TRUE end
  3. tenta substituir teus spells.xml por um outro. Vi um cara que fez isso em outro fórum e funcionou, só não tenho o link.
  4. Isso aew é na distro do servidor. É no arquivo player.ccp, procura por: void Player::manageAccount(const std::string &text) E por ali tu edita!
  5. Sóh muda o script rad.lua: function removeMonster(pid) if (isMonster(pid) == true) then doRemoveCreature(pid) end end function onThink(interval, lastExecution, thinkInterval) local pos = {x=2456, y=2462, z=7} -- Posição que monstro vai nascer local monster = "Morgaroth" -- Boss que é pra criar local tempo = 60000 * 10 -- troque apenas o numero 10, que será o minuto para o monstro sumir doBroadcastMessage("Invação de Morgaroth ao leste da cidade!") pid = doCreateMonster(monster, pos) addEvent(removeMonster, 6000, pid) return true end
  6. Claro que funciona, não fala se tu não sabe usar corretamente! Se tiver dúvida me pergunta, não juga sem saber usar.
  7. achei esse aqui: http://www.xtibia.com/forum/topic/73983-npc-addon/ sóh que é pra addon 1 e addon2 então vais te que adaptar!
  8. Em "data/globalevensts/globalevents.xml" cola: <globalevent name="raid" interval="604800" event="script" value="raid.lua"/> Ali em interval é o tempo da invação equivalente a segundos, cada 1 minuto = 60 interval. Na pasta "globalevents/scripts" duplica um arquivo e nomeia para "rad" sem as aspas e nele cola: function onThink(interval, lastExecution, thinkInterval) local pos = {x=2456, y=2462, z=7} -- Posição que monstro vai nascer local monster = "Morgaroth" -- Boss que é pra criar doBroadcastMessage("Invação de Morgaroth ao leste da cidade!") doCreateMonster(monster, pos) return true end Ali em cima edita o monstro e a posição do respaw e pode editar a mensagem tbm. Se quiser mais monstros é sóh ir criando varios arquivos sóh muda os nomes e as tags no globalevents.xml!
  9. Sóh adicionar as tags quest no outfits.xml. Essas números são os storages que o player deve ter para usar essa outfit, assim tu pode for pra ganhar outfit ao falar com npc ou ao completar uma quest e para o player começar com uma certa outfit sóh poem sem essa tag quest. <outfit id="1" quest="40851"> <list gender="0" lookType="129" name="Citizen"/> <list gender="1" lookType="129" name="Citizen"/> </outfit> <outfit id="2" quest="40852"> <list gender="0" lookType="207" name="Knight"/> <list gender="1" lookType="207" name="Knight"/> </outfit> <outfit id="3" quest="40853"> <list gender="0" lookType="213" name="Warrior"/> <list gender="1" lookType="213" name="Warrior"/> </outfit>
  10. Existe essa função isVip no teu sistema de vip? se tiver troca esse script por esse mais organizado e manda o erro que der: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "Voce Prescisa De Uma Vip Account Para Acessar Essa Area.", enterMsg = "Bem Vindo a Area Vip", enterEffect = CONST_ME_MAGIC_RED, } if (isPlayer(cid) == true) then if (isVip(cid) == false) then doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerPopupFYI(cid, tileConfig.kickmsg) doPlayerPopupFYI(cid, tileConfig.kickMsg) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return TRUE end end
  11. Troca a linha: doPlayerSendTextMessage(cid,21," You opened your Box 1 and received a "..e.nm.."") Por: doCreatureSay(cid, "You opened your Box 1 and received a "..e.nm.."", TALKTYPE_ORANGE_1)
  12. Andei estudando um pouco. E muito obrigado pelo elogio, isso me faz cada vez querer crescer mais!
  13. Desculpa aew, nem tinha visto isso, dupliquei a parte ali e esqueci de editar.
  14. Estou aqui hoje para trazer um sistema simples que eu criei, porém pode ser até muito útil, o Sistema de Reputação ! Esse sistema vai funcionar da seguinte forma, você adiciona os monstros que darão Rep+ ao morrer, e a cada monstro desse, o player que o matou conquista +1 ponto de Reputação. Exemplo de monstro que seria legal adicionar: Bosses. Outro meio de ganhar Reputação com esse sistema será matando outros players que estejam pk. E o único meio de perder Pontos de Reputação é matando players que não estejam pk. O Sistema também vem com um rank de Reputação que sera adicionado nas talkactions e listara os tops Reputação e um comando para verificar seus pontos de reputação. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Para que Esse Sistema pode ser Útil: Vamos pensar da seguinte maneira, pontos ao matar. Diminuirá o número de pk's in-game pois mais players vão querer mata-los. (REP +) Pontos negativos ao matar players comuns, também contribuirá para diminuição de pk's. (REP -) Pontos por matar bosses e outros monstros fortes, vai estimular os player's a matarem monstros mais perigosos. (REP +) Esse Sistema pode ser útil também para que só players com certa quantidade de Rep+ possam: -Entrar em lugares; -Fazer quests; -Usar magias; -Usar outras talkactions; -E várias outras coisas. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Agora vamos ao que interessa os scripts: Primeiro vai em "data/creaturescripts/scripts/" duplica um arquivo dessa pasta e renomeia para "repsystem" sem as aspas, nele cole: --<Script by jhon992>-- function onKill(cid, target, lastHit) vetMonster = { "Demon", "Morgaroth", "Hydra", "Dragon" } -- adicionar monstros que darão rep+ -- Ao matar monstros do vetMonster, ganhara rep+. for i=0, #vetMonster do if (getCreatureName(target) == vetMonster[i]) then setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086)+1) doSendAnimatedText(getThingPos(cid), 'Rep+', 30) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você ganhou 1 ponto de reputação por matar um "..vetMonster[i]..".") return TRUE end end -- Ao matar um pk, ganhara rep+. if (isPlayer(target) == true) then if (getCreatureSkullType(target) > 2) then setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086)+1) doSendAnimatedText(getThingPos(cid), 'Rep+', 30) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você ganhou 1 ponto de reputação por matar "..getCreatureName(target)..".") return TRUE end -- Ao matar um player normal, ganhara rep-. setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086)-1) doSendAnimatedText(getThingPos(cid), 'Rep-', 144) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você perdeu 1 ponto de reputação por matar "..getCreatureName(target)..".") return TRUE end return TRUE end Agora em "data/creaturescripts/creaturescripts.xml" cole a tag: <event type="kill" name="RepSystem" event="script" value="repsystem.lua"/> Entre na pasta "data/creaturescripts/scripts" novamente, e abra o arquivo "login.lua" sem as aspas. Nele cole a tag: -- Verificar se é primeira vez que loga, pois ao usar storage ele ja começa com -1, -- Então vamos zera-lo para que sua Reputação comece do 0. if (getPlayerStorageValue(cid, 102087) ~= 1) then setPlayerStorageValue(cid, 102087, 1) setPlayerStorageValue(cid, 102086, 0) end registerCreatureEvent(cid, "RepSystem") Terminamos a parte do Sistema e agora vamos para o talkaction de rank. Vai na pasta "data/talkaction/scripts", duplique um arquivo e remomeie para "rankrep" sem as aspas. Abra-o e cole: function getPlayerNameByGUID2(n) local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";") if c:getID() == -1 then return "SQL_ERROR["..n.."]" end return c:getDataString("name") end function onSay(cid, words, param) if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você possui "..getPlayerStorageValue(cid, 102086).." pontos de Reputação.") return TRUE end if (param == "rank") then local max = 50 local letters_to_next = 50 local name_now local name = "Highscore for Reputação\n" local rkn = 0 local no_break = 0 name = name.."\n" name = name.."Rank. Pontos | Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 102086 ORDER BY cast(value as INTEGER) DESC;") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." | "..name_now..space.." \n" until v:next() == false if name ~= "Highscore\n" then doPlayerPopupFYI(cid, name) end return TRUE else doPlayerSendCancel(cid, "Command valid: !rep, !rep rank.") return TRUE end end E por último mais não menos importante, abra "data/talkactions/talkacitons.xml" e cole a tag: <talkaction words="!rep" event="script" value="rankrep.lua"/> Pronto, terminamos o nosso Simple Reputation System! -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Reputation Door----- Vai em data/actions/script, duplica um arquivo e nomeia para "repDoor" sem as aspas e nele cole: function onUse(cid, item, frompos, item2, topos) local quantRep = 30 -- quantidade de reset para entrar na porta newnPosition = {x=784, y=805, z=7} -- onde será teleportado ao clicar na porta if item.actionid == 2085 and getPlayerStorageValue(cid, 102086) >= quantRep then doTeleportThing(cid, newnPosition) doSendMagicEffect(newnPosition, 10) else doCreatureSay(cid, "Voce nao tem reputação suficiente para entrar!", TALKTYPE_ORANGE_1) end return TRUE end Agora em data/actions/actions.xml cole a tag: <action actionid="2085" script="repDoor.lua"/> E por último com seu mapa editor, vai na porta desejada do seu server e coloque o actionid 2085. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Agora para fazer alavancas, baús e etc, basta seguir o exemplo do script acima da repDoor. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Quantidade de Reputação para usar determinado item ----- Vai em data/movements/script e duplica um arquivo dessa pasta e nomeie para "itemRep" sem aspas, abra-o e cole: local quantRep = 30 -- quantidade de reset para usar determinado item function onEquip(cid, item, slot) if getPlayerStorageValue(cid, 102086) < quantRep then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players com "..quantRep.." pontos de reputação ou mais, podem usar essa arma!") return FALSE end return TRUE end Agora vai em data/movements/movements.xml abre e adicione a tag: <movevent type="Equip" itemid="id do seu item" slot="hand" event="script" value="itemRep.lua"/> Troque os slots na tag acima como desejar, tipos de slots: head armor legs hand shield ring necklace feet pickupable Para itens que você for usar com a mesma quantidade de reps que o item anterior, apenas crie uma nova tag no movementes.xml com o itemid diferente. Senão você devera criar um novo script com o nome diferente e mudar a quantRep. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Comprar determinado item com Pontos de Reputação ----- Vai em data/talkactions/scripts, duplique um arquivo e nomeiei para "buyrep" sem as aspas e nele cole: local itemNames = { {name = "Dragon Shield", pontos = 2}, -- nome do item e pontos que gastara. {name = "Crown Armor", pontos = 8}, {name = "Arbalest", pontos = 25}, {name = "Heroic Axe", pontos = 20}, {name = "Magic Sword", pontos = 30}, {name = "Demon Armor", pontos = 50} } function onSay(cid, words, param, channel) if param == "" then for i=1, #itemNames do if i == 1 then text = "-- Lista de Items --\n" else text = text .. (itemNames[i].name) .." = ".. itemNames[i].pontos .." pontos\n" end end doShowTextDialog(cid,8977,text) return true end param = string.upper(param) for j=1, #itemNames do if (param == string.upper(itemNames[j].name)) then if getPlayerStorageValue(cid, 102086) < tonumber(itemNames[j].pontos) then doPlayerSendCancel(cid,"Você não possui pontos suficientes.") return true else doPlayerAddItem(cid, getItemIdByName(param)) doPlayerSendTextMessage(cid, 22, "Você comprou 1 ".. itemNames[j].name ..".") setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086) - itemNames[j].pontos) return true end end end doPlayerSendCancel(cid,"Este item não existe.") return true end Agora em data/talkactions/talkactions.xml cole a tag: <talkaction words="!buy" event="script" value="buyrep.lua"/> Em jogo, ao falar "!buy" aparecera a lista de itens que pode ser comprado e seus determinados custos, conforme foram configurados no arquivo "buyrep.lua". Para comprar um item basta ter a quantidade de reputação necessaria e usar o comando "!buy NomeDoItem". -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Mostrar Reputação no Look (by Vodkart)----- Vai em data/creaturescripts/scripts, duplique um arquivo e nomeiei para "showrep" sem as aspas e nele cole: function getReps(cid) return getPlayerStorageValue(cid,102086) < 0 and 0 or getPlayerStorageValue(cid,102086) end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\n[Reps: " .. getReps(thing.uid) .."]") end return true end No creaturescripts.xml cole a tag: <event type="look" name="showRep" event="script" value="showrep.lua"/> E no arquivo login.lua, antes do último return true: registerCreatureEvent(cid, "showRep") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Versão 2.0 repsystem.lua ----- Caso você queira que cada monstro que você matar de pontos diferentes de reputação, voce deve substituir oque tem dentro do seu arquivo inicialmente criado e nomeado como repsystem.lua por isso: É isso aew galera, qualquer coisa que precise ser modificado ou dica para melhorar os scripts e o sistema serão bem vindas!
  15. Primeiro nos "data/items/items.xml" você deve editar os dois rings: <item id="ID DO RING" article="a" name="ring heal"> <attribute key="weight" value="80" /> <attribute key="slotType" value="ring" /> <attribute key="transformEquipTo" value="ID DO RING PISCANDO" /> <attribute key="stopduration" value="1" /> <attribute key="showduration" value="1" /> </item> <item id="ID DO RING PISCANDO" article="a" name="ring heal"> <attribute key="weight" value="100" /> <attribute key="decayTo" value="0" /> <attribute key="transformDeEquipTo" value="2214" /> <attribute key="duration" value="450" /> <attribute key="healthGain" value="1" /> <attribute key="healthTicks" value="1000" /> <attribute key="manaGain" value="4" /> <attribute key="manaTicks" value="1000" /> <attribute key="showduration" value="1" /> </item> Agora vai em "data/movements/movements.xml" e adiciona a tag: <movevent type="Equip" itemid="ID DO RING" slot="ring" event="function" value="onEquipItem"/> <movevent type="Equip" itemid="ID DO RING PISCANDO" slot="ring" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="ID DO RING PISCANDO" slot="ring" event="function" value="onDeEquipItem"/>
  16. tenta no lugar de reqTries usar a função normal doPlayerAddSkillTry(cid, SKILL_SWORD, getPlayerRequiredSkillTries(cid, SKILL_SWORD, 95)) [29/11/2011 22:34:15] data/creaturescripts/scripts/lowlevellock.lua:4: attempt to call global 'getExperienceForLevel' (a nil value) E se for seguir pela logica, esse erro acima é o mesmo que o primeiro. Então essa função não existe, provavelmente pra concertar tens que criar essa função na libs, ou no distro, ou baixa um distro mais atual que resolve todos seus problemas.
  17. Entra na pasta do teu otserv, vais achar uma pasta "mods" nela tem um arquivo "buypremium_command" abre ele, dae tu edita ali: days = 90, cost = 10000, maxDays = 360 days = quantidade de dias que compra ao usar o comando. cost = preço por essa quantidade de dias. maxDays = máximo de dias premium que o player pode ter.
  18. No primeiro a linha errada é essa: doPlayerAddExperience(cid, (getExperienceForLevel(150) - getPlayerExperience(cid))) A função #do certa seria essa: doPlayerAddExp, então: doPlayerAddExp(cid, (getExperienceForLevel(150) - getPlayerExperience(cid))) Já na segunda não tenho certeza mais acho que em todos os getPlayerRequiredMana faltou um espaço para o script poder identificar o valor. Tenta fazer assim, trocar isso: doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid,40))) Por isso: doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, 40))) Ou seja, um espaço após a virgula. Faiz em todos os 3 get e testa o script.
  19. Acho que isso aqui pode te ajudar: http://www.xtibia.com/forum/topic/126636-lista-de-atribute-keys-para-itensxml/ e para duração: <attribute key="decayTo" value="0" /> <attribute key="duration" value="3600" /> <attribute key="showduration" value="1" />
  20. Para tua primeira dúvida, entre no arquivo "data/creaturescripts/scripts/login.lua" e cole isso: if (getPlayerStorageValue(cid, 102522) ~= 1) then doPlayerAddPremiumDays(cid, 3) -- 3 é igual numero de dias setPlayerStorageValue(cid, 102522,1) end E a segunda dúvida, vai em "data/npc" abra o arquivo do seu npc do barco e procure a linha: <parameter key="travel_destinations" value="sul city,2483,2439,7,0;"/> Vou explicar a linha de código acima, no value onde esta sul city seria o nome da sua cidade, {2483,2439,7} é a posição do mapa que o barco vai levar e o último 0 é o preço da passagem. Então basta configurar os zeros no seu npc!
  21. tenta usar esse aqui, dei uma configurada. Obs: Não testei! local config = { removeOnUse = "no", usableOnTarget = "yes", -- can be used on target? (fe. healing friend) splashable = "no", realAnimation = "no", -- make text effect visible only for players in range 1x1 healthMultiplier = 1.0, manaMultiplier = 1.0 } config.removeOnUse = getBooleanFromString(config.removeOnUse) config.usableOnTarget = getBooleanFromString(config.usableOnTarget) config.splashable = getBooleanFromString(config.splashable) config.realAnimation = getBooleanFromString(config.realAnimation) local POTIONS = { [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50}, -- strong health potion [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80}, -- great health potion [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130}, -- ultimate health potion [7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50}, -- strong mana potion [7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80}, -- great mana potion [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80} -- great spirit potion } local exhaust2 = createConditionObject(CONDITION_EXHAUST_HEAL) setConditionParam(exhaust2, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) local potion = POTIONS[item.itemid] if(not potion) then return false end if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then if(not config.splashable) then return false end if(toPosition.x == CONTAINER_POSITION) then toPosition = getThingPos(item.uid) end doDecayItem(doCreateItem(2016, potion.splash, toPosition)) doTransformItem(item.uid, potion.empty) return true end if(getCreatureCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1) return true end local health = potion.health if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then return false end local mana = potion.mana if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then return false end doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) if(not realAnimation) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do if(isPlayer(tid)) then doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) end end end doAddCondition(cid, exhaust2) local v = getItemParent(item.uid) if(not potion.empty or config.removeOnUse) then return true end if fromPosition.x == CONTAINER_POSITION then for _, slot in ipairs({CONST_SLOT_LEFT, CONST_SLOT_RIGHT, CONST_SLOT_AMMO}) do local tmp = getPlayerSlotItem(cid, slot) if tmp.itemid == potion.empty and tmp.type < 100 then doChangeTypeItem(item.uid, item.type - 1) return getPlayerFreeCap(cid) >= getItemInfo(potion.empty).weight and doChangeTypeItem(tmp.uid, tmp.type + 1) or doPlayerAddItem(cid, potion.empty, 1) end end else doChangeTypeItem(item.uid, item.type - 1) doCreateItem(potion.empty, 1, fromPosition) return true end if v.uid == 0 then if item.type == 1 and isInArray({CONST_SLOT_LEFT, CONST_SLOT_RIGHT, CONST_SLOT_AMMO}, fromPosition.y) then doTransformItem(item.uid, potion.empty) else -- serversided autostack should take care of this doPlayerAddItem(cid, potion.empty, 1) doChangeTypeItem(item.uid, item.type - 1) end return true else doChangeTypeItem(item.uid, item.type - 1) local size = getContainerSize(v.uid) for i = 0, size-1 do local tmp = getContainerItem(v.uid, i) if tmp.itemid == potion.empty and tmp.type < 100 then return getPlayerFreeCap(cid) >= getItemInfo(potion.empty).weight and doChangeTypeItem(tmp.uid, tmp.type + 1) or doPlayerAddItem(cid, potion.empty, 1) end end if getContainerSize(v.uid) < getContainerCap(v.uid) then doAddContainerItem(v.uid, potion.empty) else doPlayerAddItem(cid, potion.empty, 1) end end return true end
  22. Criei algumas Sprites de armas para meu otserv e resolvi disbonibilizar para vocês! São minhas primeiras Sprites, espero que possam utilizar e aprovar e não só me jugar. Nomes sugestivos: 1º = AK - 47 2º = Mp5 Navy 3º = Elite Beretta 4º = Desert Eagle 5º = Benelli M3 6º = Sniper Rifle 7º = AWP É isso aew, espero ter ajudo e bom proveito!
  23. jhon992

    Bleach Ot

    tenta o ultimo script desse tópico aqui quem sabe ajuda: http://www.xtibia.com/forum/topic/173246-spelltransformaganha-skillclubaxesword/
  24. Provavelmente tu deve saber que ao trocar a distro, perde-se algumas funções. E essas funções deviam ser utilizadas para o sistema de fly e de surf. A solução agora é migrar para outro sistema de fly e surf ou trocar a distro pela anterior novamente ou achar as funções anteriores para poder adicionar nas sua lib do otserv. Espero ter te dado uma clareada aew!
  • Quem Está Navegando   0 membros estão online

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