Ir para conteúdo

Vodkart

Héroi
  • Registro em

Tudo que Vodkart postou

  1. Exatamente, eu também acho mais viável usar onTimer(), porém onTimer ele executa em determinado horário, certo? Então se eu perdi a PA 00:00(meia noite), eu só vou ser kikado as 13:00. a não ser que você coloque em 2 horário no mesmo dia, por exemplo: 00:00 e 12:00 onTime fica assim: premiumover.lua function onTimer() if #getPlayersOnline() > 0 then for _, cid in ipairs(getPlayersOnline()) do if isPremium(cid) and getPlayerStorageValue(cid, 78945) <= 0 then setPlayerStorageValue(cid,78945, 1) elseif not isPremium(cid) and getPlayerStorageValue(cid, 78945) > 0 then doPlayerSetTown(cid, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You premium is Over!") setPlayerStorageValue(cid, 78945, -1) doRemoveCreature(cid) end end end return true end TAG <globalevent name="PremiumOver" time="03:00" event="script" value="premiumover.lua"/> no caso na tag vc pode colocar mais e um horario
  2. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    n qro rep qro nudes manda PM
  3. chegando em casa eu acesso a db e faço a função que verifica as horas e minutos da P.A a não ser que nesse código vc coloque para kikar o jogador tbm
  4. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    tenta deixar assim e testa function onKill(cid, target, damage, flags) if damage == false or (flags and flags ~= 3) then return true else local f = getCreatureMaster(target) if f and f ~= target then return true end end local name = getCreatureName(target):lower() local a = tasks[name] if a then if getPlayerStorageValue(cid, 14500) ~= a.storage then return true end if getPlayerStorageValue(cid, a.storage) < a.amount then local b = getPlayerStorageValue(cid, a.storage) + 1 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Task (".. name:lower() .."): " .. (b == a.amount and "Completed!" or b .." / ".. a.amount)) setPlayerStorageValue(cid, a.storage, b) end return true end return true end
  5. doCreatureChangeOutfit(cid, saga[getPlayerVocation(cid)][tonumber(t[1])])
  6. Vodkart postou uma resposta no tópico em Playground (Off-topic)
    ejaculei pelos olhos me envia
  7. Vodkart postou uma resposta no tópico em Playground (Off-topic)
    vai abrir 2 serve br mas n to mto afim não férias agr o negocio é LOL
  8. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    local bag = player:addItem(1993) -- Red Bag id for i = 1, #cfgItems do bag:addItem(cfgItems[1], cfgItems[2]) end por for i = 1, #cfgItems do player:addItem(cfgItems[1], cfgItems[2]) end
  9. Vodkart postou uma resposta no tópico em Playground (Off-topic)
    s e vc marcar um motel
  10. Vodkart postou uma resposta no tópico em Playground (Off-topic)
    eu estou postando do além me coloca de moderador vlw
  11. sim é fácil adicionar essa ideai ao script, mas só dei uma ideia pq quando eu adicionei isso no meu servidor 1x, o pessoal recomendava esse tipo de premiação
  12. E ai lobão! Excelente código, estava pensando em você coloca uma tabela que dependendo da quantia que você aposta, poderia receber itens aleatórios! digamos: Apostei de 1000 a 10000 GPS = money *2 de 50000 a 100000 = tabela de itens {2173,2494,2394} de 100000 a 500000 = {9991, 2586, 2686, 2684} exemplo isso /\ pra galera jogar mais
  13. a lib vc vai na pasta LIB e coloca em 050-function.lua adc lá no finalzinho as funções. pra editar vc vem aqui: local t = { [2195] = 1, [2493] = 25, [2361] = 30, [8851] = 20, [8925] = 30, [2640] = 50, [2494] = 100, [9932] = 50, [2472] = 70, [8931] = 100 } [ID DO ITEM QUE SERÁ VENDIDO] = QUANTIDADE DE POINTS lembrando que tem que ter os gp's na BP, se vc quiser pelo trade-say eu tbm posso fazer
  14. Lembrando que no tópico vc precisam usar esta função 'getItemsFromList' vou colocar junto na lib porque deve ter gente que não usa ainda
  15. mas o sistema é diferente, no caso vc vai ganhando points... e dependendo das quantidades dos points vc recebe as recompensas
  16. quer pelo trade say né? aquele que vc fla tipo hi sword yes tem esse aqui que é por trade normal, mas tem que ter GP na bp lib function getAccountPoints(cid) local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'') return res:getDataInt("premium_points") < 0 and 0 or res:getDataInt("premium_points") end function doAccountRemovePoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end Npc: 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 local talkUser,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,string.lower(msg) local shopWindow = {} local t = { [2195] = 1, [2493] = 25, [2361] = 30, [8851] = 20, [8925] = 30, [2640] = 50, [2494] = 100, [9932] = 50, [2472] = 70, [8931] = 100 } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and getAccountPoints(cid) < t[item] then selfSay("You need "..t[item].." points to buy this item.", cid) else doAccountRemovePoints(cid, t[item]) doPlayerAddItem(cid, item) selfSay("Here your item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  17. claro que dá, vc usa aquele sistema de premium_point que é pelo site ne
  18. qual sistema de reset tu usa versao do teu site sqlite ou mysql
  19. o certo seria pra quem bateu no bicho mesmo
  20. só adc um return true local config = { --[vocation id] = { level, nova voc, looktype, efeito} -- Goku -- [1] = { 30, 2, 439, 112}, [2] = { 50, 3, 440, 114}, [3] = { 75, 4, 441, 114}, [4] = { 100, 5, 442, 114}, [5] = { 150, 6, 444, 114}, [6] = { 180, 7, 445, 116}, [7] = { 200, 8, 446, 115}, ---------------------------- ---------Reborn------------- ---------------------------- [10] = { 50, 11, 448, 114}, [11] = { 100, 12, 449, 114}, [12] = { 150, 13, 450, 114}, [13] = { 199, 14, 451, 34}, [14] = { 200, 15, 452, 112}, [15] = { 400, 16, 454, 116}, -- Goku -- } function onSay(cid, words, param, channel) local time = 30 -- Quanto tempo de exausted você deseja local storage = 4557 -- Storage utilizada no check local voc = config[getPlayerVocation(cid)] if getPlayerStorageValue(cid, storage) <= os.time() then if voc then if getPlayerLevel(cid) >= voc[1] then doPlayerSetVocation(cid, voc[2]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Voce Transformou!") local outfit = {lookType = voc[3]} doCreatureChangeOutfit(cid, outfit) doSendMagicEffect(getCreaturePosition(cid), voc[4]) setPlayerStorageValue(cid, storage, os.time()+time) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Voce precisa estar no level " .. voc[1] .. " para transformar.") end else doPlayerSendCancel(cid, "Voce nao pode se Transformar!") return true end else doPlayerSendTextMessage(cid, 2, "You can't use this again right now.") doSendMagicEffect(getThingPos(cid),CONST_ME_POFF) return true end return true end
  21. local tempo = 60 -- tempo em segundos local effect = {134} -- effect no player local exausted = 1 -- em minutos local points = 80 -- quantos ira aumentar os skills local outfit = {lookType = 876 } -- outfit que ira dar local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_OUTFIT) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) addOutfitCondition(condition, outfit) setCombatCondition(combat, condition) function Magica(cid) if isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect) end end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 390001) ~= 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "voce nao tem permissao para usar esta spell!") return false elseif getPlayerStorageValue(cid, 17456)-os.time() > 1 then local seetime = getPlayerStorageValue(cid, 17456)-os.time() local minutes, seconds = math.floor(seetime/60), math.floor(seetime%60) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde "..minutes.." minuto(s) e "..seconds.." segundo(s) para usar novamente!") return false end setPlayerStorageValue(cid, 17456, exausted*60+os.time()) doCombat(cid, combat, var) local tempo2 = 0 while (tempo2 <= (tempo*1000)) do addEvent(Magica, tempo2, cid) tempo2 = tempo2 + 300 end return true end
  22. Resumo: Para quem já jogou league of legends, o sistema é "parecido" com o Invite Friends, e para quem não jogou irei dar uma breve descrição sobre o sistema. Descrição: O sistema oferece algumas premiações como: Itens, Premium Days, Premium Points(para site) e Outfits. Claro que isso tudo é configurável. A ideia principal do sistema foi que essas premiações fossem exclusivas do sistema, digamos, que os jogadores só fossem recompensados e tivessem certas outfits se ele atingisse num número "X" de pontos por ter ajudado seu servidor a crescer! Como todo mundo almeja algo exclusivo e difícil de ser obtido, iria instigar os jogadores a usar o sistema e convidar seus amigos para o servidor! Como Funciona o Sistema? O sistema foi planejado para que jogadores "espertinhos" não burlassem o sistema e acontece da seguinte maneira: Temos o jogador João e a jogadora Maria: Maria necessita ser level 30 ou menor que 30(Configurável) para utilizar uma talkactions e dizer por quem foi invitada para o servidor, vamos supor que João a convidou Maria para jogar, João por sua vez necessita também ter um level avançado, digamos 50 ou superior(Configurável). Feito com sucesso o uso do sistema, ele funciona da seguinte maneira: OBS: Você pode dizer o nome do jogador mesmo que ele esteja OFFLINE! OBS2: Um ou mais Players podem ser invitador pelo MESMO JOGADOR! ENTÃO QUANTO MAIS PLAYER VOCÊ CHAMAR, MAIS FÁCIL DE RECEBER PONTOS E PREMIAÇÕES O jogador invitado, no caso o João, teria que atingir um número "X" de pontos para receber premiações, por exemplo: * Com 10 Pontos jogão recebe: Itens * Com 25 Pontos jogão recebe: Itens e Premium Points * Com 50 Pontos jogão recebe: Itens * Com 100 Pontos jogão recebe: Itens, Premium Points, Premium Days e Outifit (Claro que isso é tudo configurável em uma Tabela) E como recebo Recebo esses Pontos VODKART SEU FILHO DA PUTA! Se lembra que João Convidou Maria para Jogar? Então... Maria tem que atingir certos leveis para que João receba esses pontos! Por exemplo a tabela do sistema: levels_win = { [50] = 5, [80] = 6, [100] = 8, [150] = 10 } Se Maria atingir level 50, João recebe 5 pontos Se Maria atingir level 80, João recebe 6 pontos Etc... Claro que isso tudo é acumulativo! E sabe o que mais? João recebe Pontos mesmo se estiver ONLINE ou OFFLINE! Sem mais delongas, Vamos instalar o sistema! data\creaturescripts\scripts InviteFriends.lua function onLogin(cid) registerCreatureEvent(cid, "FriendsPoints") if getPlayerStorageValue(cid, _invite_friends.storages[1]) < 0 then setPlayerStorageValue(cid, _invite_friends.storages[1], 0) setPlayerStorageValue(cid, _invite_friends.storages[4], 0) end if getInvitePoints(cid) > 0 then getRewardsFriend(getCreatureName(cid), getPlayerGUID(cid)) end return true end function onAdvance(cid, skill, oldLevel, newLevel) if (skill == SKILL__LEVEL) then if hasInviteFriend(cid) and getPlayerStorageValue(cid, _invite_friends.storages[3]) < newLevel and _invite_friends.levels_win[newLevel] then local f_name, points = getNameFriend(cid), _invite_friends.levels_win[newLevel] local f_pid = getPlayerGUIDByName(f_name) setPlayerStorageValue(cid, _invite_friends.storages[3], newLevel) addInvitePoints(f_name, points) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Invite Friends] você atingiu o level "..newLevel.." e o seu amigou "..f_name.." recebeu "..points.." Friend Points. Obrigado!") if isPlayer(getPlayerByNameWildcard(f_name)) then getRewardsFriend(f_name, f_pid) end end end return true end creaturescript.xml <event type="login" name="FriendsLogin" event="script" value="InviteFriends.lua"/> <event type="advance" name="FriendsPoints" event="script" value="InviteFriends.lua"/> data\talkactions\scripts InviteFriends.lua function onSay(cid, words, param, channel) local param = param:lower() if param == "" or not param then doPlayerSendCancel(cid, "Você precisa digitar o nome de um jogador.") return true elseif param == "points" then doPlayerPopupFYI(cid,"[+] Invite Friend System [+]\n\nvocê tem ["..getInvitePoints(cid).."] Friends Points.") return true elseif hasInviteFriend(cid) then doPlayerSendCancel(cid, "Você já agradeceu o jogador ["..getNameFriend(cid).."] por te convidar a jogar neste servidor.") return true elseif not getPlayerGUIDByName(param) then doPlayerSendCancel(cid, "Desculpe, mas o jogador [" .. param .. "] não existe.") return true elseif getPlayerLevel(cid) > _invite_friends.level_max or db.getResult("SELECT `level` FROM `players` WHERE `id` = "..getPlayerGUIDByName(param)):getDataInt("level") < _invite_friends.level_need then doPlayerSendCancel(cid, (getPlayerLevel(cid) > _invite_friends.level_max and "Desculpe, mas você precisa ter no minimo level ".._invite_friends.level_max.." para usar este comando." or "Desculpe, mas o jogador ["..param.."] precisa ter no minimo level ".._invite_friends.level_need.." para ser escolhido.")) return true elseif getPlayerIp(cid) == tonumber(db.getResult("SELECT `lastip` FROM `players` WHERE `id` = "..getPlayerGUIDByName(param)):getDataString("lastip")) then doPlayerSendCancel(cid, "Desculpe, mas você não pode se auto invitar por estar com o mesmo IP.") return true elseif getCreatureName(cid):lower() == param then doPlayerSendCancel(cid, "Desculpe, mas você não pode se auto invitar.") return true end doInviteFriend(cid, getPlayerGUIDByName(param)) doPlayerSendTextMessage(cid, 25, "Você indicou o jogador "..param..", este sistema é uma forma de agradecer a vocês por trazerem seus amigos para jogar.") doSendMagicEffect(getCreaturePosition(cid), math.random(28,30)) return true end talkactions.xml <talkaction words="/invited;!invited" event="script" value="InviteFriends.lua"/> data/lib InviteFriends.lua _invite_friends = { storages = {202301, 202302, 202303, 202304}, -- points, jogador, recompensa lvl, recompensa items level_max = 20, -- até que level ele precisa falar seu friend level_need = 30, -- que lever o jogador precisa ser para ganhar pontos levels_win = { -- leveis que receberão os pontos(feito pelo onAdvance) [50] = 5, [80] = 6, [100] = 8, [150] = 10 }, rewards = { -- a cada tantos pontos, que tipo de reward ele irá receber(automático onLogin) [10] = {items = {{2160,1},{2173,1}}, p_days = 1, p_points = 0 , out = {0,0}}, [25] = {items = {{2160,2},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [50] = {items = {{2160,3},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [100] = {items = {{2160,4},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [200] = {items = {{2160,5},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [250] = {items = {{2160,6},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [500] = {items = {{2160,7},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}} } } function getInvitePoints(cid) return getPlayerStorageValue(cid, _invite_friends.storages[1]) < 0 and 0 or getPlayerStorageValue(cid, _invite_friends.storages[1]) end function hasInviteFriend(cid) return getPlayerStorageValue(cid, _invite_friends.storages[2]) > 0 and true or false end function doInviteFriend(cid, GUID) return setPlayerStorageValue(cid, _invite_friends.storages[2], GUID) end function getNameFriend(cid) return getPlayerNameByGUID(getPlayerStorageValue(cid, _invite_friends.storages[2])) end function addInvitePoints(name, amount) local pid, Guid = getPlayerByNameWildcard(name), getPlayerGUIDByName(name) if not pid then local getFriendPoints = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. Guid .." AND `key` = ".._invite_friends.storages[1]) if (getFriendPoints:getID() ~= -1) then db.executeQuery("UPDATE `player_storage` SET `value` = ".. (getFriendPoints:getDataInt("value")+amount) .." WHERE `player_id` = ".. Guid .." AND `key` = ".._invite_friends.storages[1]) end else setPlayerStorageValue(getPlayerByName(name), _invite_friends.storages[1], getInvitePoints(getPlayerByName(name))+amount) end return true end function getRewardsFriend(name, pid) local acc = getAccountIdByName(name) if isPlayer(getPlayerByNameWildcard(name)) then local target = getPlayerByNameWildcard(name) local FriendPoints, CheckPoints = getInvitePoints(target), getPlayerStorageValue(target, _invite_friends.storages[4]) for vod, ka in pairs(_invite_friends.rewards) do local str = "" if FriendPoints >= vod and CheckPoints < vod then str = str.."--> Invite Players System <--\n\nVocê acaba de receber algumas recompensas:\n\nItems: \n"..getItemsFromList(ka.items)..".\n\n" if ka.p_days > 0 then doPlayerAddPremiumDays(target, ka.p_days) str = str.."Premium Days:\n"..ka.p_days.." Premium Days." end if ka.p_points > 0 then db.executeQuery('UPDATE accounts SET premium_points=premium_points+' .. ka.p_points ..' WHERE id=' .. acc) str = str.."Premium Points:\n"..ka.p_points.." Premium Points." end if ka.out[1] > 0 then doPlayerAddOutfit(target, getPlayerSex(target) == 0 and ka.out[1] or ka.out[2], 3) str = str.."[New Outfit]\nRecebeu uma Nova Outfit." end setPlayerStorageValue(target, _invite_friends.storages[4], FriendPoints) MandarItensProDp(name, ka.items, str) doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_ORANGE,"[Invite Players System] Você Recebeu algumas premiações por estar convidando jogadores para o servidor, Por favor conferir os itens no Depot.") end end end return true end function MandarItensProDp(name, items, texto) local parcel = doCreateItemEx(ITEM_PARCEL) for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(parcel, item, amount) else for i = 1, amount do doAddContainerItem(parcel, item, 1) end end end local carta = doAddContainerItem(parcel, 1952) doItemSetAttribute(carta, "writer", "[+] Invite Players System [+]") doItemSetAttribute(carta, "text", texto) doPlayerSendMailByName(name, parcel) return true end -- function adicional -- function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end Configurando o Sistema: *Vá na LIB do sistema que você adicionou* level_max = 30, -- até que level ele precisa falar seu friend level_need = 50, -- que lever o jogador precisa ser para ganhar pontos levels_win = { -- [LEVEL QUE PRECISA ATINGIR] = QUANTIDADE DE PONTOS QUE O OUTRO JOGADOR VAI RECEBER [50] = 5, [80] = 6, [100] = 8, [150] = 10 } rewards = { [10] = {items = {{2160,1},{2173,1}}, p_days = 1, p_points = 0 , out = {0,0}}, [25] = {items = {{2160,2},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [50] = {items = {{2160,3},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [100] = {items = {{2160,4},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [200] = {items = {{2160,5},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [250] = {items = {{2160,6},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [500] = {items = {{2160,7},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}} } rewards = { [PONTOS NECESSÁRIO PARA OBTER A PREMIAÇÃO] = exemplo: [10] = {items = {{2160,1},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, com 10 pontos ele irá receber aquele itens acima /\ items = {} -- Poderá adicionar itens em uma tabela dizendo {id do item, quantidade} p_days = 0 -- se o jogador vai receber Premium Days? 0 ou Quantidade que vc deseja dar p_points = 0 -- se o jogador vai receber Premium Points? 0 ou Quantidade que vc deseja dar out = {0,0} -- se vai receber outfit? {FEMALE, MALE} OU {0 , 0} para nenhuma. obs:(lembrando que o id das outfits ficam em outfits.xml)
  23. ta e depois que criar todas essas grades como elas vão sumir depois?
  24. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    function onTime(time) local time, npc, pos = 180, "Constantine", {x=32347, y=32228, z=7} function removeNpc() local var = getCreatureByName(npc) if isNpc(var) then doSendMagicEffect(getCreaturePosition(var), CONST_ME_TELEPORT) doRemoveCreature(var) end end doCreateNpc(npc, pos) addEvent(removeNpc, time*1000) return true end
  25. Vodkart postou uma resposta no tópico em Suporte Tibia OTServer
    nesse caso todos que estiverem online vão ganhar o item, não tem "loteria de sorte", além disso acho que eler quer adicionar os items tipo assim: !sorte 2160,2173,2152,2494,2495 todos os itens que ele adc seriam aleatorios

Informação Importante

Confirmação de Termo