Tudo que gmstrikker postou
-
Cloudrino free vps
Alguém já usou o VPS da cloudrino, o FREE, é bom? Parece ser pra sempre... Link: https://www.cloudrino.net/?ref=65351
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
EDIT desculpa não tinha lido direito
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
É isso era do antigo script memso, mas ainda tem bug nessa sua modficação... Quando eu tento botar uma arma +2, não funciona e provavelmente +3 tbm n, só a +1 +1 = 01:18 You see a UNIQ carlin sword (Atk:18, Def:15). +2? = 01:18 You see a carlin sword (Atk:21, Def:17). Dps tento +3 volta pra +1
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Cara muito obrigado mesmo!!!!!!!!!!! Uma coisa, se não for folgar muito, testando seu script vi que ta aumentando a defesa de armas de atk Tipo uma sword que era pra aumentar só o atk dela, ta aumentando +2 de defense que era pra ser aumentado só de shields Essa parte ta na lib? Unica coisa q vi de atributes na lib é isso, q n entendi porra nenhuma if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end -- it says if the item's level is greater then 0 (meaning is level equal to 1 or more) if it is add 1 more -- if the current level equals 0 add 1 to it self:setItemName(self.item.level > 0 and (self.nameLv[self.item.level].." "..self:getItemName()):gsub((self.nameLv[self.item.level].." "), "") or self.nameLv[1].." "..self:getItemName()) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if item.itemid == 8300 then if self.item.level > 0 then -- this will remove any number with a + sign in front of it from the string self:setItemName(self:getItemName():gsub((self.nameLv[self.item.level].." "), "")) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end Sabe arrumar isso?
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Deu uns erros na hora de abrir o sv http://imgur.com/01TkKJ7
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Não funcionou mano, na hora de usar a pedra em uma arma da esse erro e nem refina nada http://imgur.com/vSR1gtp E parece q é na lib msm :( data/actions/upgrade.lua function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local obj = UpgradeHandler:new(itemEx) if(obj == false) then return doPlayerSendCancel(cid, UpgradeHandler.message.notupgradeable) end local status = obj:refine(cid, item) if status == "success" then --doSendAnimatedText(toPosition, "Success!", COLOR_GREEN) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) elseif status == "fail" then --doSendAnimatedText(toPosition, "Fail!", COLOR_RED) doSendMagicEffect(toPosition, CONST_ME_POFF) else doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local obj = UpgradeHandler:new(itemEx) if(obj == false) then return doPlayerSendCancel(cid, UpgradeHandler.message.notupgradeable) end local status = obj:refine(cid, item) if status == "success" then --doSendAnimatedText(toPosition, "Success!", COLOR_GREEN) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) elseif status == "fail" then --doSendAnimatedText(toPosition, "Fail!", COLOR_RED) doSendMagicEffect(toPosition, CONST_ME_POFF) else doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Deu ruim total na hora de usar a pedra em uma arma, ta dando esses erros no console e na arma nada acontece: http://imgur.com/vSR1gtp Ah se esqueceu de por uma vírgula ali eu acho, não é querendo te corrigir é pq eu sou mt noob e posso ta fazendo merda xD --PERFECT UPGRADE SYSTEM UpgradeHandler = { nameLv = { ["UNIQ"] = 1, ["RARE"] = 2, ["EPIC"] = 3 }, levels = { [1] = {50, false, false}, [2] = {20, false, false}, [3] = {10, true, true} }, broadcast = 3, attributes = { ["attack"] = 3, ["defense"] = 2, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, removeable = true}} }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, { __index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end} )) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() -- this will return the level by the quality or 0 if it has no quality. self.item.level = 0 for r, v in ipairs(self.nameLv) do if self:getItemName():find(r) then self.item.level = v end end end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end -- it says if the item's level is greater then 0 (meaning is level equal to 1 or more) if it is add 1 more -- if the current level equals 0 add 1 to it self:setItemName(self.item.level > 0 and self.nameLv[self.item.level].." "..self:getItemName():gsub(self.nameLv[self.item.level].." ", "") or self.nameLv[1].." "..self:getItemName()) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if item.itemid == 8300 then if self.item.level > 0 then -- this will remove any number with a + sign in front of it from the string self:setItemName(self:getItemName():gsub(self.nameLv[self.item.level].." ", "")) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Mds mano que complicado!!! To tentando, mas não to conseguindo Não tem como deixar ele setar o lvl +1,+2,+3 e fazer uma função que quando der look cheque o nivel if(nivel == 1) setarnome ="unc" elseif(nivel == 2) setarnome ="rare" elseif(nivel == 3) setarnome ="epic"
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Alguém poderia fazer isso pra mim? Mexer no meu sistema de refinamento trocar onde fica: 23:43 You see a katana +1 (Atk:19, Def:14 +1). It weighs 31.00 oz. Por 23:43 You see a unc katana (Atk:19, Def:14 +1). It weighs 31.00 oz. No caso só vai até +3, queria que muda-se por nome... Exemplo: +1 = unc +2 = rare +3 = epic Alguém poderia fazer isso p mim? --PERFECT UPGRADE SYSTEM UpgradeHandler = { levels = { [1] = {50, false, false}, [2] = {20, false, false}, [3] = {10, true, true} }, broadcast = 3, attributes = { ["attack"] = 3, ["defense"] = 2, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, removeable = true}} }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, { __index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end} )) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() -- this will return any number that has a + sign in front of it or 0 if there is no number with a + sign self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end -- it says if the item's level is greater then 0 (meaning is level equal to 1 or more) if it is add 1 more -- if the current level equals 0 add 1 to it self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if item.itemid == 8300 then if self.item.level > 0 then -- this will remove any number with a + sign in front of it from the string self:setItemName(self:getItemName():gsub("(%s+)%+(%d+)", "")) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end Pensei ser algo aqui: self:setItemName(self:getItemName():gsub("(%s+)%+(%d+)", "")) Mas não sei criar os ifs, não sei fazer
-
[CREATURESCRIPT] Msg On Advance ML (10 reps)
De novo rodou sem erros, mas na hora de executar, peguei ml de 5 ao 80 num sorcerer e nenhuma mensagem foi mostrada... Alguém sabe corrigir esse script ou fazer com que o outro rode em meu servidor?
-
[CREATURESCRIPT] Msg On Advance ML (10 reps)
Affs, achei que era pra 0.4, eu uso 0.4... O que tu acha melhor adaptar esse ou aquele? Eu não faço a menor ideia de como adaptar o que vc me mostrou
-
[CREATURESCRIPT] Msg On Advance ML (10 reps)
Já havia visto esse script whitewolf, mas ele não funciona no meu servidor pq lá precisa comprar as magias no npc, ai n mostra, n sei pq needlearn = "1" é marcado nas minhas spells em qse todas
-
[CREATURESCRIPT] Msg On Advance ML (10 reps)
Alguém me ajuda a arrumar esse meu script? Não está funcionando... Sem erros, sem nada, achei ele num fórum gringo, mas o cara não testou eu fui testar, não está mandando msg nenhuma A ideia era Quando upa-se magic lvl, manda-se uma msg com as spells liberadas por esse ML, dou 10 reps se alguém souber como me ajudar Pls local spells = { [1] = { --sorcerer level = { [1] = "utevo lux", "exura", "adori", [40] = "exevo gran mas vis" } }, [2] = { --druid level = { [1] = "utevo lux", "exura", "adori", [28] = "exevo gran mas pox" } }, [3] = { --paladin level = { [1] = "utevo lux", "exura", "exevo con", [14] = "exevo con vis" } }, [4] = { --knight level = { [1] = "utevo lux", "exura", [5] = "exori" } } } local array_sorc = {"Sorcerer", "Master Sorcerer", "Epic Sorcerer"} local array_druid = {"Druid", "Elder Druid", "Epic Druid"} local array_paladin = {"Paladin", "Royal Paladin", "Epic Paladin"} local array_knight = {"Knight", "Elite Knight", "Epic Knight"} local text = "" function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then player = Player(cid) if isInArray(array_sorc, player:getVocation()) then CONFIG = spells[1] elseif isInArray(array_druid, player:getVocation()) then CONFIG = spells[2] elseif isInArray(array_paladin, player:getVocation()) then CONFIG = spells[3] elseif isInArray(array_knight, player:getVocation()) then CONFIG = spells[4] end if not CONFIG then return false end EVENT = CONFIG.level[player:getMagLevel()] if not EVENT then return false end for i, v in ipairs(EVENT) do text = text..""..i..", " end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "New spells: "..text.."") end return true end
-
Magnus Challenger
if ((getPlayerStorageValue(cid, storages.length)) == 2 ) then task = short elseif ((getPlayerStorageValue(cid, storages.length)) == 3 ) then task= medium elseif ((getPlayerStorageValue(cid, storages.length)) == 4 ) then task = long end /\ Isso é pra pegar se é short,medium ou long Mas como eu faço as comparações pra saber se é easy,medium ou hard (dificuldades)?
-
(Resolvido)[AJUDA] 2 Scripts de troca de itens
Obrigado!
-
(Resolvido)[AJUDA] 2 Scripts de troca de itens
To com problema com 2 scripts de troca de itens, que estão me faltando funções certas para adaptar eles Eles funcionam assim vc tem X item Y quantidades e troca por um item Z Script 1- Problema- Ele troca o item direitinho, mas ele só checa se removeu ou não o item, o que acontece? Se o cara só tiver um dos itens, não tiver os dois ele remove um e não entrega o item, por isso teria que checar antes de remover! Codigo- if msgcontains(msg, "change") then selfSay("You want to exchange 100 behemoth claws and 1 skull helmet for a damaged steel helmet?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") then if talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, t.item[1], t.item[2]) and doPlayerRemoveItem(cid, t.segitem[1], t.segitem[2]) then doPlayerAddItem(cid, t.reward, 1) selfSay("Here it is.", cid) talkState[talkUser] = 0 else selfSay("You don't have 100 behemoth claws and 1 skull helmet.", cid) talkState[talkUser] = 0 end end Script 2- Problema- Esse aqui não está funcionando mesmo, deve ser pq botei 2500 itens em vez de 100-, mas alguem pode me ajduar? Codigo- local t = { item = {7636, 2500}, -- ID do item e quantidade necessária. reward = 5957 -- Item que irá ganhar. } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end msg = msg:lower(); local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "change") then selfSay("You want to exchange 2500 power bolts for a crossbow?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") then if talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, t.item[1], t.item[2]) then doPlayerAddItem(cid, t.reward, 1) selfSay("Here it is.", cid) talkState[talkUser] = 0 else selfSay("You don't have 2500 power bolts.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "no") then if talkState[talkUser] == 1 then selfSay("Okay...") talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
[AJUDA] 2 Scripts de trocas de itens
Pelo menos o Jobs tentou ajudar, em vez de ficar apontando o dedo e movendo os tópicos... Não sei a função de fazer checagem sem remover o item... Alguém pelo menos tem algo parecido pra que eu possa ter uma base? atualizado: Erros: Scripts: elanecrossbowchange local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local player = Player(cid) if (not npcHandler:isFocused(cid)) then return false end if isInArray({"change", "bolt"}, msg:lower()) then npcHandler:say('Do you want to trade 2500 power bolts for my crossbow?', cid) npcHandler.topic[cid] = 1 elseif msgcontains(msg,'yes') and npcHandler.topic[cid] <= 4 and npcHandler.topic[cid] >= 1 then local trade = { {NeedItem = 2547, Ncount = 2500, GiveItem = 5947, Gcount = 1}, -- Crossbow } if player:getItemCount(trade[npcHandler.topic[cid]].NeedItem) >= trade[npcHandler.topic[cid]].Ncount then player:removeItem(trade[npcHandler.topic[cid]].NeedItem, trade[npcHandler.topic[cid]].Ncount) player:addItem(trade[npcHandler.topic[cid]].GiveItem, trade[npcHandler.topic[cid]].Gcount) return npcHandler:say(msg,'Here you are') else npcHandler:say('Sorry but you don\'t have the item', player) end elseif msgcontains(msg,'no') and (npcHandler.topic[cid] >= 1 and npcHandler.topic[cid] <= 5) then npcHandler:say(msg,'Ok then', player) npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) end return true end local function onTradeRequest(cid) TradeRequest(cid, npcHandler, getTable(), BlueDjinn, 4) end npcHandler:setCallback(CALLBACK_ONTRADEREQUEST, onTradeRequest) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) gregdamagedsteelhelmet local t = { item = {5930, 100}, -- ID do item e quantidade necessária. segitem = {5741, 1}, reward = 5924 -- Item que irá ganhar. } function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local player = Player(cid) if (not npcHandler:isFocused(cid)) then return false end if isInArray({"change"}, msg:lower()) then npcHandler:say('Do you want to trade 100 behemoth claws and 1 skull helmet for damaged steel helmet?', cid) npcHandler.topic[cid] = 1 elseif msgcontains(msg,'yes') and npcHandler.topic[cid] <= 4 and npcHandler.topic[cid] >= 1 then local trade = { {NeedItem = 5930, Ncount = 100, segNeedItem = 5741, segNcount = 1, GiveItem = 5924, Gcount = 1}, } if player:getItemCount(trade[npcHandler.topic[cid]].NeedItem) >= trade[npcHandler.topic[cid]].Ncount and player:getItemCount(trade[npcHandler.topic[cid]].segNeedItem) >= trade[npcHandler.topic[cid]].segNcount then player:removeItem(trade[npcHandler.topic[cid]].NeedItem, trade[npcHandler.topic[cid]].Ncount) player:addItem(trade[npcHandler.topic[cid]].GiveItem, trade[npcHandler.topic[cid]].Gcount) return npcHandler:say(msg,'Here you are') else npcHandler:say('Sorry but you don\'t have the item', player) end elseif msgcontains(msg,'no') and (npcHandler.topic[cid] >= 1 and npcHandler.topic[cid] <= 5) then npcHandler:say(msg,'Ok then', player) npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) end return true end local function onTradeRequest(cid) TradeRequest(cid, npcHandler, getTable(), BlueDjinn, 4) end npcHandler:setCallback(CALLBACK_ONTRADEREQUEST, onTradeRequest) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
[AJUDA] 2 Scripts de trocas de itens
tentei aqui e não consegui! ta dando erro, nem ta abrindo o ot com eles, eles nem aparecem: crossbow local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local player = Player(cid) if (not npcHandler:isFocused(cid)) then return false end if isInArray({"change", "bolt"}, msg:lower()) then npcHandler:say('Do you want to trade 2500 power bolts for my crossbow?', cid) npcHandler.topic[cid] = 1 elseif msgcontains(msg,'yes') and npcHandler.topic[cid] <= 4 and npcHandler.topic[cid] >= 1 then local trade = { {NeedItem = 2547, Ncount = 2500, GiveItem = 5947, Gcount = 1}, -- Crossbow } if player:getItemCount(trade[npcHandler.topic[cid]].NeedItem) >= trade[npcHandler.topic[cid]].Ncount then player:removeItem(trade[npcHandler.topic[cid]].NeedItem, trade[npcHandler.topic[cid]].Ncount) player:addItem(trade[npcHandler.topic[cid]].GiveItem, trade[npcHandler.topic[cid]].Gcount) return npcHandler:say(msg,'Here you are') else npcHandler:say('Sorry but you don\'t have the item', player) end elseif msgcontains(msg,'no') and (npcHandler.topic[cid] >= 1 and npcHandler.topic[cid] <= 5) then npcHandler:say(msg,'Ok then', player) npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) end return true end local function onTradeRequest(cid) TradeRequest(cid, npcHandler, getTable(), BlueDjinn, 4) end npcHandler:setCallback(CALLBACK_ONTRADEREQUEST, onTradeRequest) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) helmet local t = { item = {5930, 100}, -- ID do item e quantidade necessária. segitem = {5741, 1}, reward = 5924 -- Item que irá ganhar. } function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local player = Player(cid) if (not npcHandler:isFocused(cid)) then return false end if isInArray({"change"}, msg:lower()) then npcHandler:say('Do you want to trade 100 behemoth claws and 1 skull helmet for damaged steel helmet?', cid) npcHandler.topic[cid] = 1 elseif msgcontains(msg,'yes') and npcHandler.topic[cid] <= 4 and npcHandler.topic[cid] >= 1 then local trade = { {NeedItem = 5930, Ncount = 100, segNeedItem = 5741, segNcount = 1, GiveItem = 5924, Gcount = 1}, } if player:getItemCount(trade[npcHandler.topic[cid]].NeedItem) >= trade[npcHandler.topic[cid]].Ncount and player:getItemCount(trade[npcHandler.topic[cid]].segNeedItem) >= trade[npcHandler.topic[cid]].segNcount then player:removeItem(trade[npcHandler.topic[cid]].NeedItem, trade[npcHandler.topic[cid]].Ncount) player:addItem(trade[npcHandler.topic[cid]].GiveItem, trade[npcHandler.topic[cid]].Gcount) return npcHandler:say(msg,'Here you are') else npcHandler:say('Sorry but you don\'t have the item', player) end elseif msgcontains(msg,'no') and (npcHandler.topic[cid] >= 1 and npcHandler.topic[cid] <= 5) then npcHandler:say(msg,'Ok then', player) npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) end return true end local function onTradeRequest(cid) TradeRequest(cid, npcHandler, getTable(), BlueDjinn, 4) end npcHandler:setCallback(CALLBACK_ONTRADEREQUEST, onTradeRequest) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) nobody know?
-
[PEDIDO] Alteração action fishing
Script simples que remove a worm qnd vc pesca, só que eu queria q se vc tive-se a worm mecanica de ID: 10224 Pesca-se sem gastar worm e sem gastar ela mesma Alguem pode fazer isso rpa mim? local config = { peixes = { leveis = {20, 40, 60, 80, 100, 120}, fish = { [20] = 2670, -- 4 [40] = 2667, -- 8 } }, waters = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}, fishable = {4608, 4609, 4610, 4611, 4612, 4613, 7236}, spawning = {4614, 4615, 4616, 4617, 4618, 4619}, holes = {7236}, corpses = { -- [corpse] = {items} [2025] = { -- {itemid, countmax, chance} -- TODO: Water elemental and Massive Water Elemental loot... } }, checkCorpseOwner = getConfigValue("checkCorpseOwner"), rateLoot = getConfigValue("rateLoot"), rateSpawn = getConfigValue("rateSpawn"), summons = { -- {skill, name, chance, bossName, bossChance} }, baitFailRemoveChance = 10, allowFromPz = false, useBait = true, baitCount = 1, fishes = 1 } local function getFish(uid) local lvl = getPlayerSkillLevel(uid, 6) for i = #config.peixes.leveis, 1, -1 do if lvl >= config.peixes.leveis[i] then return config.peixes.fish[config.peixes.leveis[i]] end end return 2670 end config.checkCorpseOwner = getBooleanFromString(config.checkCorpseOwner) function onUse(cid, item, fromPosition, itemEx, toPosition) if(isInArray(config.waters, itemEx.itemid)) then if(isInArray(config.spawning, itemEx.itemid)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) return true end local corpse = config.corpses[itemEx.itemid] if(corpse ~= nil) then local owner = getItemAttribute(cid, "corpseowner") if(owner ~= 0 and owner ~= getPlayerGUID(cid) and config.checkCorpseOwner) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUARENOTTHEOWNER) return true end local chance, items = math.random(0, 100000) / config.rateLoot, {} for _, data in ipairs(corpse) do if(data[3] >= chance) then local tmp = {data[1], math.random(1, data[2])} table.insert(items, tmp) end end local itemCount = table.maxn(items) if(itemCount > 0) then local loot = items[math.random(1, itemCount)] doPlayerAddItem(cid, loot[1], loot[2]) end doTransformItem(itemEx.uid, itemEx.uid + 1) return true end if(not isInArray(config.fishable, itemEx.itemid)) then return false end local position, formula, tries = getThingPosition(cid), getPlayerSkill(cid, SKILL_FISHING) / 200 + 0.85 * math.random(), 0 config.allowFromPz = config.allowFromPz or not getTileInfo(position).protection if(item.itemid ~= ITEM_MECHANICAL_FISHING_ROD) then if(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_WORM) >= config.baitCount)) then tries = 1 if(isInArray(config.holes, itemEx.itemid)) then if(doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then tries = 2 if(formula > 0.83) then doPlayerAddItem(cid, ITEM_RAINBOW_TROUT, config.fishes) elseif(formula > 0.7) then doPlayerAddItem(cid, ITEM_NORTHERN_PIKE, config.fishes) elseif(formula > 0.5) then doPlayerAddItem(cid, ITEM_GREEN_PERCH, config.fishes) else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end end elseif(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then tries = 2 if(table.maxn(config.summons) > 0 and getDistanceBetween(position, toPosition) < 2) then local skill, summon = getPlayerSkill(cid, SKILL_FISHING), {name = "", chance = 0, bossName = "", bossChance = 0} for _, data in pairs(config.summons) do if(skill >= data[1]) then summon.name = data[2] summon.chance = data[3] summon.bossName = data[4] summon.bossChance = data[5] end end local random = math.random(1, 100000) / config.rateSpawn if(summon.bossName ~= "" and summon.bossChance >= random) then doCreateMonster(summon.bossName, position) tries = 4 elseif(summon.name ~= "" and summon.chance >= random) then doCreateMonster(summon.name, position) tries = 3 else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end else doPlayerAddItem(cid, getFish(cid), config.fishes) end end end elseif(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_NAIL) >= config.baitCount)) then if(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount)) then doPlayerAddItem(cid, ITEM_MECHANICAL_FISH, config.fishes) tries = 2 else tries = 1 end end if(tries > 1) then -- conseguiu if(not isInArray(config.holes, itemEx.itemid)) then doTransformItem(itemEx.uid, itemEx.itemid + 6) else doTransformItem(itemEx.uid, itemEx.itemid + 1) end doDecayItem(itemEx.uid) elseif(tries > 0) then -- fail if(config.baitFailRemoveChance >= math.random(1, 100)) then if(item.itemid == ITEM_MECHANICAL_FISHING_ROD) then doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount) else doPlayerRemoveItem(cid, ITEM_FISH, config.baitCount) end end end doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) return true end
-
[AJUDA] 2 Scripts de trocas de itens
Tipo o script ta funcionando, mas se o cara só tem um dos itens, tipo tem q ter skull helmet e 100 behe claws, se tiver um só ele remove, mas não entrega Qm manja vai se ligar qnd ver o script N tem como ver se ele tem o item em vez de ver se tirou o item dele? Help if msgcontains(msg, "change") then selfSay("You want to exchange 100 behemoth claws and 1 skull helmet for a damaged steel helmet?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") then if talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, t.item[1], t.item[2]) and doPlayerRemoveItem(cid, t.segitem[1], t.segitem[2]) then doPlayerAddItem(cid, t.reward, 1) selfSay("Here it is.", cid) talkState[talkUser] = 0 else selfSay("You don't have 100 behemoth claws and 1 skull helmet.", cid) talkState[talkUser] = 0 end end O msm vale pra o outro script que é troca de item, mas troca 2500 power bolts, alguem pode me ajudar? Não ta funcionando local t = { item = {7636, 2500}, -- ID do item e quantidade necessária. reward = 5957 -- Item que irá ganhar. } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end msg = msg:lower(); local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "change") then selfSay("You want to exchange 2500 power bolts for a crossbow?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") then if talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, t.item[1], t.item[2]) then doPlayerAddItem(cid, t.reward, 1) selfSay("Here it is.", cid) talkState[talkUser] = 0 else selfSay("You don't have 2500 power bolts.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "no") then if talkState[talkUser] == 1 then selfSay("Okay...") talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
[AJUDA] Função action fishing
Queria mudar uma coisa simples nesse meu script Se vc tem worm [3976] quando você pesca você perde ela, eu queria se vc tive-se a mecanical worm [10224] não perde-se nada Como se ela fosse uma worm infinita local config = { peixes = { leveis = {20, 40, 60, 80, 100, 120}, fish = { [20] = 2670, -- 4 [40] = 2667, -- 8 [60] = 7159, -- 16 [80] = 7158, -- 20 [100] = 2669, -- 30 [130] = 7963, -- 40 } }, waters = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}, fishable = {4608, 4609, 4610, 4611, 4612, 4613, 7236}, spawning = {4614, 4615, 4616, 4617, 4618, 4619}, holes = {7236}, corpses = { -- [corpse] = {items} [2025] = { -- {itemid, countmax, chance} -- TODO: Water elemental and Massive Water Elemental loot... } }, checkCorpseOwner = getConfigValue("checkCorpseOwner"), rateLoot = getConfigValue("rateLoot"), rateSpawn = getConfigValue("rateSpawn"), summons = { -- {skill, name, chance, bossName, bossChance} }, baitFailRemoveChance = 10, allowFromPz = false, useBait = true, baitCount = 1, fishes = 1 } local function getFish(uid) local lvl = getPlayerSkillLevel(uid, 6) for i = #config.peixes.leveis, 1, -1 do if lvl >= config.peixes.leveis[i] then return config.peixes.fish[config.peixes.leveis[i]] end end return 2670 end config.checkCorpseOwner = getBooleanFromString(config.checkCorpseOwner) function onUse(cid, item, fromPosition, itemEx, toPosition) if(isInArray(config.waters, itemEx.itemid)) then if(isInArray(config.spawning, itemEx.itemid)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) return true end local corpse = config.corpses[itemEx.itemid] if(corpse ~= nil) then local owner = getItemAttribute(cid, "corpseowner") if(owner ~= 0 and owner ~= getPlayerGUID(cid) and config.checkCorpseOwner) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUARENOTTHEOWNER) return true end local chance, items = math.random(0, 100000) / config.rateLoot, {} for _, data in ipairs(corpse) do if(data[3] >= chance) then local tmp = {data[1], math.random(1, data[2])} table.insert(items, tmp) end end local itemCount = table.maxn(items) if(itemCount > 0) then local loot = items[math.random(1, itemCount)] doPlayerAddItem(cid, loot[1], loot[2]) end doTransformItem(itemEx.uid, itemEx.uid + 1) return true end if(not isInArray(config.fishable, itemEx.itemid)) then return false end local position, formula, tries = getThingPosition(cid), getPlayerSkill(cid, SKILL_FISHING) / 200 + 0.85 * math.random(), 0 config.allowFromPz = config.allowFromPz or not getTileInfo(position).protection if(item.itemid ~= ITEM_MECHANICAL_FISHING_ROD) then if(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_WORM) >= config.baitCount)) then tries = 1 if(isInArray(config.holes, itemEx.itemid)) then if(doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then tries = 2 if(formula > 0.83) then doPlayerAddItem(cid, ITEM_RAINBOW_TROUT, config.fishes) elseif(formula > 0.7) then doPlayerAddItem(cid, ITEM_NORTHERN_PIKE, config.fishes) elseif(formula > 0.5) then doPlayerAddItem(cid, ITEM_GREEN_PERCH, config.fishes) else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end end elseif(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then tries = 2 if(table.maxn(config.summons) > 0 and getDistanceBetween(position, toPosition) < 2) then local skill, summon = getPlayerSkill(cid, SKILL_FISHING), {name = "", chance = 0, bossName = "", bossChance = 0} for _, data in pairs(config.summons) do if(skill >= data[1]) then summon.name = data[2] summon.chance = data[3] summon.bossName = data[4] summon.bossChance = data[5] end end local random = math.random(1, 100000) / config.rateSpawn if(summon.bossName ~= "" and summon.bossChance >= random) then doCreateMonster(summon.bossName, position) tries = 4 elseif(summon.name ~= "" and summon.chance >= random) then doCreateMonster(summon.name, position) tries = 3 else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end else doPlayerAddItem(cid, getFish(cid), config.fishes) end end end elseif(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_NAIL) >= config.baitCount)) then if(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount)) then doPlayerAddItem(cid, ITEM_MECHANICAL_FISH, config.fishes) tries = 2 else tries = 1 end end if(tries > 1) then -- conseguiu if(not isInArray(config.holes, itemEx.itemid)) then doTransformItem(itemEx.uid, itemEx.itemid + 6) else doTransformItem(itemEx.uid, itemEx.itemid + 1) end doDecayItem(itemEx.uid) elseif(tries > 0) then -- fail if(config.baitFailRemoveChance >= math.random(1, 100)) then if(item.itemid == ITEM_MECHANICAL_FISHING_ROD) then doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount) else doPlayerRemoveItem(cid, ITEM_FISH, config.baitCount) end end end doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) return true end
-
[Sugestão-Script] War Place
Tenho uma sugestão que eu acho que serveria pra todos os ots, seria foda, em todos War place, um NPC no templo que você falaria hi,war place, e ia pra um lugar onde: - Se você morre-se voltava pro templo de lá - Não perderia skills nem level ao morrer - Poderia pegar pots, runas, arrows de graça - Ao sair teria seus itens de volta (ou pelo menos não ficaria com os de lá) Seria muito maneiro que seria como se tive-se um ot de war dentro do seu ot de UP Alguém consegue fazer um sistema desse? Qm tbm quer da uma incentivo pros caras q manja, respondendo ao tópico, imagina só os players sem precisar sair do seu ot pra ir pra um de war
-
A porta ta aberta, mas nem eu consigo logar
GVT só dar dor de cabeça pra abrir servidores, queria testar com meus amigos meu servidor, estou tentando problemas (usar hamachi buga minha rede um pouco, e meus amigos ficam até sem internet) Antes de criar esse tópico já tentei de tudo abrindo as portas do meu moldem: Vi as portas por esse site ta aberta: http://www.gwebtools.com.br/scanner-porta Peguei meu ip no: http://www.meuip.com.br/ Coloquei meu ip no config.lua (que eu peguei ali /\) Mas nem eu consigo logar no meu ot se for pelo meu ip, só consigo pelo 127.0.0.1
-
Matar monstro ganha storage que abre porta
Ao matar o monstro Koshei The Deathless ganhar uma storage e com essa storage conseguir abrir uma porta id 5132 que seria a sala de premio da quest da blue legs
-
[PEDIDO] Tile Guild
@vodkart Nossa vc é fera, obrigadão, to te dando uns reps por aí Se liga, ta quase tudo perfeito, menos: doBroadcastMessage("A guild "..getPlayerGuildName(cid).." Está penetrando no castelo.") Essa msg não é enviada qnd eles conseguem passar E outras duas coisas que eu não me liguei em pedir, mas iam ficar muito ruins sem elas 1- IP, o unico trabalho que os players vão ter vai ser pegar MC, pesquisei mt consegui achar um script se checava se os caras tem o mesmo IP, mas não to conseguindo adaptar, pega a base ai ve se vc consegue local playersNeeded = 5 local ipsNeeded = 5 local minimumLevel = 10 local storageId = 47582 local function sendPlayersList(cid, list) for i, pid in ipairs(list) do local level = getPlayerLevel(pid) < minimumLevel and " - " .. getPlayerLevel(cid) .. " level " or "" local valid = getCreatureStorage(pid, storageId) > 1 and " - already received!" or "" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(pid) .. level) end end function onSay(cid, words, param, channel) if(getPlayerGuildLevel(cid) == 3) then local leaderGuild = getPlayerGuildId(cid) local players = getPlayersOnline() local guildMembersValid = {} local guildMembersInvalid = {} for i, pid in ipairs(players) do if(leaderGuild == getPlayerGuildId(pid)) then if(getPlayerLevel(pid) >= minimumLevel and tonumber(getCreatureStorage(pid, storageId)) < 2) then table.insert(guildMembersValid, pid) else table.insert(guildMembersInvalid, pid) end end end if(#guildMembersValid >= playersNeeded) then local IPs = {} for i, pid in ipairs(guildMembersValid) do local ip = getPlayerIp(pid) if(IPs[ip] == nil) then IPs[ip] = ip end end if(#IPs >= ipsNeeded) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that received points:") sendPlayersList(cid, guildMembersValid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that did not receive points:") sendPlayersList(cid, guildMembersInvalid) local accounts = {} for i, pid in ipairs(guildMembersValid) do local item = doCreateItemEx(6527, 20) doPlayerAddItemEx(cid, item, true) table.insert(accounts, getPlayerAccountId(pid)) doCreatureSetStorage(pid, storageId, os.time()) end -- aqui coloca pra dar uma vez pro líder else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid (" .. playersNeeded .. " required), but you have together only " .. #IPs .. " IPs (" .. ipsNeeded .. " required)") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:") sendPlayersList(cid, guildMembersValid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:") sendPlayersList(cid, guildMembersInvalid) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid, " .. playersNeeded .. " required. Minimum level required is " .. minimumLevel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:") sendPlayersList(cid, guildMembersValid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:") sendPlayersList(cid, guildMembersInvalid) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.") end return true end 2- E outra os caras invadem e os donos não podem matar eles sem catar frag, não sei se isso é possivel: Tem como qnd passarem pelo piso pegarem PK como se tive-sem matado alguem pros caras que vierem conseguirem matar eles? Pensei em colcoar PVenforced tile, mas ia ficar meio bosta tlg? Pq os caras não iam ter medo de invadir, tem como isso Vlws brother se é fera!