Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    113

Tudo que Vodkart postou

  1. function onUse(cid, item, frompos, item2, topos) vocs = {4,8} if not isInArray(vocs, getPlayerVocation(cid)) then return doPlayerSendTextMessage(cid,22,"você não pode passar aquir.") end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, topos, TRUE) return true end
  2. Fui testar para ver se ocorria realmente esse bug e não achei. Até tirei uma screen, matei ele com 2 char meu e ficaram os nomes no corpse:
  3. Tem que ver se os dias estão configurados certinhos, e não sei se tem problema se o OT é por linux ai talvez precise colocar segundos na tag tbm, mas o bom seria testar um com frags para ver, abraços. Lembrando que os dias tem que ser em inglês e todos começando com a letra maiúscula, ex: Sunday, Monday... coloca os dias q vc quiser
  4. porque não pediu para o dono do script fazer? -.- palhaçada essa de me pedir para colocar os créditos, esse script de resetar o hp, mana e trocar a voc existia bem antes da sua conta no xtibia ser criada, pelo amor de deus. function onUse(cid, item, fromPosition, itemEx, toPosition) config = { LevelNeed = 100, vocs = {1,2,3,4}, pid = getPlayerGUID(cid), newlv = 8, life = 150, mana = 85, maglv = 0, skills = 10, newvoc = 9 } if getPlayerLevel(cid) < config.LevelNeed then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você precisa ter no minimo level "..config.LevelNeed.." para resetar.") elseif not isInArray(config.vocs, getPlayerVocation(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não tem vocação para resetar.") end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) for i = 1,6 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. config.skills .." WHERE `player_id` = ".. config.pid .. " and `skillid` = ".. i ..";") end db.executeQuery("UPDATE `players` SET `level` = "..config.newlv..", `experience` = "..getExperienceForLevel(config.newlv)..",`manamax` = "..config.mana..",`health` = "..config.life..", `healthmax` = "..config.life..",`mana` = "..config.mana..",`vocation` = "..config.newvoc..", `maglevel` = "..config.maglv.." WHERE `id` = "..config.pid) return true end
  5. o loop é o mesmo sim, estou dizendo que o script para dar uma premio a cada uma hr é uma coisa, e outro de setar a storage pelo talk é outra coisa, envolve mais parâmetros....
  6. que créditos? E sim, consigo.
  7. ai já é outro script, é talkactions, globalevents é uma coisa, outra forma de fazer, talkactions é outra.
  8. bom a diferença do meu é que eu coloquei os jogadores que tem a storage numa tabela, porque imagina se não tiver ninguém online com essa storage? iria dar erro no distro, enão o meu faz a checagem se tem algum online e executa o script, já o do jhon funciona perfeitamente também, mas tem esse possível bug que eu te disse.
  9. function onThink(interval, lastExecution) local players = {} local storage,items = 12345, {2160, 100} for _, pid in pairs (getPlayersOnline()) do if getPlayerStorageValue(pid, storage) >= 1 then table.insert(players, pid) end end if #players > 0 then for i = 1, #players do doPlayerAddItem(players[i], items[1], items[2]) end end return TRUE end
  10. aproveita e posta o resto das foto
  11. riot vc n pego essa última da direita ja?
  12. iuHSuishisUHSiusHIUshsIUhiuSHsuihSUIhSUISS isso que fiquei me perguntando tbm
  13. <action actionid="7778" script="nome do seu script.lua"/> '-'
  14. pinto preto ou pinto branco seu safadinho?
  15. sim sim, ninguém nasceu sabendo isuhiuhSIUHsiusHUSUI mas só tentei explicar, estou no trampo e fiz uma bagunça kk
  16. function onUse(cid, item, fromPosition, itemEx, toPosition) function Wall() local x = true local B = { {1056,{x=189, y=55, z=7, stackpos = 1}}, -- id da parede e pos da parede {1056,{x=189, y=56, z=7, stackpos = 1}}, {1056,{x=189, y=57, z=7, stackpos = 1}}, {1056,{x=189, y=58, z=7, stackpos = 1}} } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end Wall() addEvent(Wall, 5000) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end
  17. ? velho, estuda um pouco mais de lua porque está precisando, deixa eu te falar a diferença básica de "and" e "or"... o "and" sempre vai retornar seu segundo argumento se o primeiro argumento for nil ou false, ou seja, ele só vai executar o bloco que seus argumentos forem verdadeiro, exemplo: local nome = "joão" local idade = 15 if nome == "joão" and idade == 15 then return true end nesse caso só vai executar o script se o nome for joão e a idade for 15, se o nome já não for joão nem vai mais executar nada, depois do "and" ele nem vai mais ler. o "or" é diferente, é o contrário de "and", ele executa se o seu primeiro bloco é nil ou false: local nome = "joão" local idade = 15 if nome == "maria" and idade == 15 then return true end aqui mesmo que o nome seja maria mas a idade seja 15 ele vai sim executar o script, agora vamos estudar nosso caso if (getWorldCreatures(0) == 0) or not isInArray(config.days, os.date("%A")) then return true end se não tiver criaturas(players) ou não forem os dias dos fim de semana então retornar verdadeiro fim aqui para executar o script, o primeiro argumento que é para checar sem tem players, porque se tivesse um player no ot ele iria checar o segundo argumento, ja que o primeiro ficaria como "false", então iria checar os dias da semana. diferente do and, que para executar o script teria que para executar: se criaturas == 0 e não forem os dias da semana então retornar verdadeiro fim ou seja para checar os dias da semana o primeiro argumento do and teria que ser verdadeiro! para checar os dias teria que ter 0 criaturas no servidor. leia mais em: http://www.lua.org/manual/5.1/pt/manual.html#5.4.1 irá te ajudar
  18. para usar esse parâmetro "items = {2128,1}" tem que editar na lib do npc, eu tinha feito o npc, só não lembro pra quem
  19. nas source vai em player.ccp bool Player::canWalkthrough(const Creature* creature) const { if(!creature) return true; if(creature == this) return false; const Player* player = creature->getPlayer(); if(!player) return false; if(g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getTile()->ground && player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH) return true; uint32_t protectionLevel = g_config.getNumber(ConfigManager::PROTECTION_LEVEL); if(player->getLevel() < protectionLevel && player->getTile()->ground && player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH) return true; return player->isGhost() && getGhostAccess() < player->getGhostAccess(); } ou bool Player::canWalkthrough(const Creature* creature) const { if(!creature) return true; if(creature == this) return false; const Player* player = creature->getPlayer(); if(!player) return false; if(g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getTile()->ground && player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH) return true; return player->isGhost() && getGhostAccess() < player->getGhostAccess(); }
  20. para msm voc: function onUse(cid, item, fromPosition, itemEx, toPosition) config = { LevelNeed = 100, vocs = {1,2,3,4}, pid = getPlayerGUID(cid), newlv = 8, life = 150, mana = 85, newvoc = 9 } if getPlayerLevel(cid) < config.LevelNeed then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você precisa ter no minimo level "..config.LevelNeed.." para resetar.") elseif not isInArray(config.vocs, getPlayerVocation(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não tem vocação para resetar.") end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.newlv..", `experience` = "..getExperienceForLevel(config.newlv)..",`manamax` = "..config.mana..",`health` = "..config.life..", `healthmax` = "..config.life..",`mana` = "..config.mana..",`vocation` = "..config.newvoc.." WHERE `id` = "..config.pid) return true end para diferentes voc: function onUse(cid, item, fromPosition, itemEx, toPosition) config = { LevelNeed = 100, vocs = {1,2,3,4}, pid = getPlayerGUID(cid), newlv = 8, hp = 150, mana = 85, promo = (getPlayerPromotionLevel(cid)+1) } if getPlayerLevel(cid) < config.LevelNeed then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você precisa ter no minimo level "..config.LevelNeed.." para resetar.") elseif not isInArray(config.vocs, getPlayerVocation(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"você não tem vocação para resetar.") end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.newlv..", `experience` = "..getExperienceForLevel(config.newlv)..",`manamax` = "..config.mana..",`healthmax` = "..config.hp..",`health` = "..config.hp..",`mana` = "..config.mana..",`promotion` = "..config.promo.." WHERE `id` = "..config.pid) return true end
  21. depende do que você quer fazer, você diz em todos os players online?, em certa position? ou checar a storage individualmente de cada player?
  22. no caso a voc é uma promotion né? a voc 8 vai para 12 a voc 7 vai para 11 etc... certo
  23. -- Lottery System local config = { lottery_hour = "2 Hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message) rewards_id = {2160}, -- ID dos Itens Sorteados na Loteria crystal_counts = 5, -- Usado somente se a rewards_id for crystal coin (ID: 2160). website = "no", -- Only if you have php scripts and table `lottery` in your database! days = {"Saturday","Sunday"} -- days the weekend } function onThink(interval, lastExecution) if (getWorldCreatures(0) == 0) or not isInArray(config.days, os.date("%A")) then return true end local list = {} for i, tid in ipairs(getPlayersOnline()) do list[i] = tid end local winner = list[math.random(1, #list)] local random_item = config.rewards_id[math.random(1, #config.rewards_id)] if(random_item == 2160) then doPlayerAddItem(winner, random_item, config.crystal_counts) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .. " " .. getItemNameById(random_item) .. "s! Congratulations! (Proxima Loteria em " .. config.lottery_hour .. ")") else doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. getItemNameById(random_item) .. "! Congratulations! (Proxima Loteria em " .. config.lottery_hour .. ")") doPlayerAddItem(winner, random_item, 1) end if(config.website == "yes") then db.query("INSERT INTO `lottery` (`name`, `item`) VALUES ('".. getCreatureName(winner) .."', '".. getItemNameById(random_item) .."');") end return true end @caotic o seu estava pelo simples motivo de usar a estrutura de controle de forma errônea, veja bem: if(getWorldCreatures(0) == 0)then if not isInArray(config.dias, os.date("%A")) then return true end return true end if(getWorldCreatures(0) == 0)then só iria executar se não tivesse nenhum player(criatura ou npc tbm acho) no server e então ele iria passar para o próximo bloco que seria if not isInArray(config.dias, os.date("%A")) then e aqui está certo, só errou naquela outra mesmo.
  24. essa sessão é destinada para scripts em LUA e não PHP, vou reportar para que movam para seção correta obrigado outra coisa esse link pode te ajudar http://www.xtibia.com/forum/topic/162517-lottery-page-mais-elaborada-com-resultados/
  • Quem Está Navegando   0 membros estão online

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