Tudo que Weslley Kiyo postou
-
Monstro vira Npc
Você tentou importar os monstros e npcs? Vai em data/npcs, renomeia o arquivo cobra.xml para cobra npc.xml e importa ele pelo RME Assim o RME vai saber diferenciar.
-
ARROWS E BOLTS INFINITAS DONATO 10 REAIS PELA AJUDA
Posta teus Items.xml
-
Fishing Script
function onUse(cid, item, fromPosition, itemEx, toPosition) local Bait = 2671 -- ID da isca local needBait = TRUE -- Precisa de isca? TRUE/FALSE local FishRate = 1.0 -- Rate de fish local time = 1 -- Tempo pra pescar denovo (em segundos) local fishable = {"Water Elemental", "Massive Water Elemental", "Blood Crab", "Quara Constrictor", "Quara Predator Scout", "Quara Predator", "Quara Pincher Scout", "Quara Pincher", "Quara Mantassin Scout", "Quara Mantassin", "Quara Hydromancer Scout", "Quara Constrictor Scout", "Quara Hydromancer"} --Pescados local fishable1 = {"Fire Elemental", "Fire Devil"} --Pescados local message1 = "You need "..getItemNameById(Bait).."s to fish!" -- Mensagem se não tiver isca! local message2 = "You must wait few seconds!" --Mensagem se tiver pescando muito rápido local storage = 5560 local waterIds = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local larvaIds = {598, 599, 600, 601} if not getTilePzInfo(getCreaturePosition(cid)) then if needBait == TRUE then if getPlayerItemCount(cid, Bait) > 0 then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(waterIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doPlayerRemoveItem(cid, Bait, 1) doCreateMonster(fishable[math.random(#fishable)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message1) end return FALSE end if needBait == FALSE then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(waterIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doCreateMonster(fishable[math.random(#fishable)], getPlayerPosition(cid)) end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, not possible!") end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end end if needBait == TRUE then if getPlayerItemCount(cid, Bait) > 0 then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(larvaIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doPlayerRemoveItem(cid, Bait, 1) doCreateMonster(fishable1[math.random(#fishable1)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message1) end return FALSE end if needBait == FALSE then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(larvaIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doCreateMonster(fishable1[math.random(#fishable1)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, not possible!") end return FALSE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can't fish in a protection zone!") end end
-
(Resolvido)Que vps é melhor?
Seu mapa são apenas 2000x Com 1Gb(512mb, se for linux já da conta) você já consegue hostear muito bem, se preocupando apenas com quantidade de players. Agora se espera muitos players em seu servidor e quer evitar lag de início, recomendo 4GB!
-
Arma com ataque especial e Crossbow sem bolt
Script 1 function onUse(cid, item, item2, topos, frompos) local config = { time = 59, -- Tempo em minutos para usar novamente level = 2, -- Level minimo para dar USE storage = 42007, -- Storagevalue do tempo para usar novamente item1 = 0000, --arma que precisa dar use item2 = 0000, --arma que vai se transformar efeito = 28 -- Efeito que vai fazer qndo a quest for feita } if getPlayerLevel(cid) <= config.level then return doPlayerSendCancel(cid, "You do not have enough level to use this.") end if getPlayerStorageValue(cid, config.storage) > os.time() then local minutes = (math.ceil((getPlayerStorageValue(cid, config.storage) - os.time())/60)) local s = (math.ceil(((getPlayerStorageValue(cid, config.storage) - os.time())/60)) == 1 and "" or "s") return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Wait ".. minutes .." minute".. s .." to use again.") end pos = getThingPos(cid) if getPlayerItem(cid, item1) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You changed weapon.") doPlayerRemoveItem(cid, item1, 1) doSendMagicEffect(pos, config.efeito) setPlayerStorageValue(cid, config.storage, config.time * 60 + os.time()) doPlayerAddItem(cid, item2, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You no have this item.") return true end end TAG em action.xml <action actionid="ID_DO_ITEM" event="script" value="LOCAL_DO_ARQUIVO.lua"/> Agora vai em items.xml, lá na Tag do item que você quer q ele se transforme e adicione as seguintes tags nele: <attribute key="decayTo" value="XXXXX"/> <attribute key="duration" value="300"/> DecayTO = XXXX (id do item que ele irá voltar após certo tempo duration = duração em segundos fazendo isso, é a melhor maneira para não dar erros. -------------------------------------------------------------------------------------------------------------------- Script 2 Em items.xml vai na tag do crossbow, remove tudo, deixando apenas o nome e o peso do mesmo e adiciona isso: <attribute key="weaponType" value="distance"/> <attribute key="attack" value="72"/> <attribute key="maxHitChance" value="91"/> <attribute key="slotType" value="two-handed"/> <attribute key="shootType" value="holy"/> <attribute key="range" value="7"/> Bem, algumas versões 860 não possui type: Holy ou nenhuma outra que seja parecida. Caso acuse algum erro primeiramente troque o ShootType, pode ser death ou earth por exemplo, faça o teste. -------------------------------------------------------------------------------------------------------------------- Script 3 Em data/weapons/scripts crie um arquivo .lua e adicione: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_HOLY) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } ) setCombatArea(combat, area) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Configure setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) os 2 primeiros 1, 0 = ml os 2 ultimos 1, 0 = level vai configurando e testando até achar que ficou bom a jogabilidade de seu servidor. Agora em weapon.xml procure pelo ID do crossbow que você vai usar e altere apenas o local de: value="default"> para o local do arquivo EXEMPLO: value="xxxx.lua">
-
[HELP]~RME
Muito obrigado, você foi reputado porém já tinha resolvido meu erro ontem. Só entrei aqui para postar a vocês a solução do mesmo. Sim, instalei os pacotes visual C++ 2010 visual C++ 2012 Update 4 visual C++ 2015 Após isso desinstalei e apaguei qualquer vestígio do RmE em meu computador e instalei a versão original (em modo admin), em seguida coloquei meu rme modificado e funcionou normal. OBS: Também baixei o DirectX9 e Netframe 4.0
-
Arma com ataque especial e Crossbow sem bolt
8.60, 9.x, 10x??
-
[HELP]~RME
Galera, estou com um problema sério, muito mesmo. Formatei meu pc e agora não quer rodar de nenhuma maneira o RME. Já adicionei as dll's, VC e DX9 porém mesmo assim não funciona Uu Já instalei e reinstalei o RME, usei outras versões mas não funciona...
-
Arma com ataque especial e Crossbow sem bolt
Olá! Todos os 3 são fáceis, porém, preciso que você informe a versão do seu servidor / distro
-
(Resolvido)Erro Nas vocations
Desculpe mas você colocou o script em SPOILER e isso bugou ele, deixando ele em apenas 1 linha. Peço que use o CODE para assim eu poder lhe ajudar. E poste todo seu vocations.xml
-
Monstro vira Npc
Rapaz, única solução que tenho é você trocar seu RME pois deve estar bugado. Ou então importar estes npcs e os monstros para que o RME reconheça qual é qual.
-
COMO EU DEIXAR O UP DO MEU SERVER MAIS DIFÍCIL
Então você deve ter monstros editados. Ai precisa edita-los manualmente na pasta monsters.
-
Erro no console por um script
Tenta esse: function onKill(cid, target, lastHit) local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then doPlayerAddExp(cid, getMonsterInfo(string.lower(getCreatureName(target))).experience * 1.5 * exp / 2) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end return TRUE end return TRUE end
-
COMO EU DEIXAR O UP DO MEU SERVER MAIS DIFÍCIL
Em config.lua Procura experienceStages e marque true Agora em data/XML procure por stages.xml e modifique a maneira que achar melhor.
-
Erro no console por um script
Usuário acima já lhe ajudou com a exp.lua Este é do shop local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE local SQL_interval = 30 function onThink(cid, interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do local id = tonumber(result_plr:getDataInt("id")) local action = tostring(result_plr:getDataString("action")) local delete = tonumber(result_plr:getDataInt("delete_it")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while iter ~= container_count do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!") doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return true end
-
Erro no console por um script
Por gentileza poste seus scripts: data/creaturescripts/scripts/exp.lua data/globalevents/scripts/shop.lua Sem eles fica impossível lhe ajudar.
-
Que bagunça virou esses foruns de ot
Estou só esperando arrumarem o CODE e essa caixa de texto para começar Infelizmente, fóruns de Otservs estão ficando sem movimento e muitos desmotivados a ajudar. Mas na verdade é que, muitos que ajudavam hoje trabalham ou tem seus próprios projetos, não tendo o mesmo tempo de antes para o fórum. Eu particularmente estou com um projeto. Possuo muitos scripts TOPs, e sempre testo 100% todos eles para não possuir nenhum bug. Mas o problema é que se eu decidir postar ele aqui, quando eu lançar meu projeto vai ser algo banal. Portanto não é todos que estarei postando. São scripts únicos e exclusivos para meu servidor. Em questão de tópicos lixos e bagunçados... Eu concordo em alguns pontos. Realmente a equipe deveria trabalhar um pouco mais em cima desses tópicos, reformulando scripts que não funcionam ou deletando servidores com links quebrados. Não é só esperar a denúncia, mas correr atrás. E nós podemos fazer o mesmo, pegar scripts que não funcionam e postar ele arrumado. Isso seria reviver um tópico porém por uma ótima causa. Não espere, corra atrás, faça a diferença!
-
Peca sua script !!
Você trabalha com npc? Gostaria de um npc que você pudesse fazer quest com ele 1x por dia. Nesse caso, por storagevalue e não por event. O npc iria dar uma storagevalue por 24hrs após a conclusão da mission e você só poderia falar com ele sobre essa missão após 24hrs. O npc iria lhe dar 2 missões: hi / mission / hat / yes hi / mission / element / yes cada uma dessa missão é diária e possui 24hrs para fazer novamente. OTX 2 (8.60 rev 0.3.7)
-
Source Poketibia - Códigos de derrubar
Horrível isso. Muitos agem de má fé para causar o mau e o desanimo em pessoas que lutam para deixar seu servidor bom seja por hobby ou só por gostar de fazer tal coisa. Você fez o correto em postar este erro e creio que ajudará muitos no fórum. Merece fix topic!
-
COMO CRIAR UM RAID MANUAL PRA OTSERV?
Ao criar qualquer Raid dentro da pasta Raids, é possível executar a mesma apenas usando o comando /raid Anexei para você a raids do meu servidor global 860. raids.rar
-
Erro no database
Adiciona na sua database a seguinte query: CREATE TABLE IF NOT EXISTS `news` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` int(11) NOT NULL DEFAULT '1', `author` int(11) NOT NULL, `image_id` int(3) NOT NULL DEFAULT '0', `text` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-
TFS vs OTX
Sim! Eles usam o TFS atual deles, pq seria diferente?
-
Bugs/Erros no TK? Poste aqui!
Melhorias - Gostaria de ver no fórum um CODE mais completo. - Melhores opções para criação de conteúdo e caixa de texto. - Caixa de texto ajustáveis. - Maiores opções de formatações. - Possibilidade de arrastar imagens para a caixa de texto. - Mais opções de fontes. - Ter possibilidade de ajustar o tamanho de fotos a partir da caixa de texto. - Ter possibilidade de nomear o SPOILER. - Uma caixa de diálogo com alguma cor diferente (para servir como observações nos tópicos). - Possibilidades de linkar imagens. - Possibilidades de ajustar o tamanho dos vídeos a partir da caixa de texto. - Mais opções de emoticons. - Aumentar o tamanho da imagem dos avatares. (para 170 x 260) Bugs / Erros Até agora só achei dois erros. Não consigo editar meu perfil e com ADBLOCK, só aparece um X ao invés de aparecer algum anúncio.
-
TFS vs OTX
Eu tenho preferência por OtX tanto para olds quanto news versions. Entenda, OtX usa como base o TFS original e arrumam os bugs conhecidos com ajuda de outros usuários. Fora as melhorias que eles implementam. Da uma olhada no trabalho deles clicando aqui.
-
Fishing Script
Tenta esse function onUse(cid, item, fromPosition, itemEx, toPosition) local Bait = 2671 -- ID da isca local needBait = TRUE -- Precisa de isca? TRUE/FALSE local FishRate = 1.0 -- Rate de fish local time = 1 -- Tempo pra pescar denovo (em segundos) local fishable = {"Water Elemental", "Massive Water Elemental", "Blood Crab", "Quara Constrictor", "Quara Predator Scout", "Quara Predator", "Quara Pincher Scout", "Quara Pincher", "Quara Mantassin Scout", "Quara Mantassin", "Quara Hydromancer Scout", "Quara Constrictor Scout", "Quara Hydromancer"} --Pescados local fishable1 = {"Fire Elemental", "Fire Devil"} --Pescados local message1 = "You need "..getItemNameById(Bait).."s to fish!" -- Mensagem se não tiver isca! local message2 = "You must wait few seconds!" --Mensagem se tiver pescando muito rápido local storage = 5560 local waterIds = {493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local larvaIds = {598, 599, 600, 601} if not getTilePzInfo(getCreaturePosition(cid)) then if needBait == TRUE then if getPlayerItemCount(cid, Bait) > 0 then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(waterIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doPlayerRemoveItem(cid, Bait, 1) doCreateMonster(fishable[math.random(#fishable)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message1) end return FALSE end if needBait == FALSE then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(waterIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doCreateMonster(fishable[math.random(#fishable)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end end if needBait == TRUE then if getPlayerItemCount(cid, Bait) > 0 then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(larvaIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doPlayerRemoveItem(cid, Bait, 1) doCreateMonster(fishable1[math.random(#fishable1)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message1) end return FALSE end if needBait == FALSE then if exhaustion.get(cid, storage) == FALSE then exhaustion.set(cid, storage, time) doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if isInArray(larvaIds, itemEx.itemid) == TRUE then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) if itemEx.itemid ~= 493 then if math.random(1, (100 + (getPlayerSkill(cid, SKILL_FISHING) / 10))) <= (getPlayerSkill(cid, SKILL_FISHING)*FishRate) then doCreateMonster(fishable1[math.random(#fishable1)], getPlayerPosition(cid)) end end end return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, message2) end end return FALSE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can't fish in a protection zone!") end end fishable = water fishable1 = larva