Ir para conteúdo

SkyLigh

Lorde
  • Total de itens

    2183
  • Registro em

  • Última visita

  • Dias Ganhos

    23

Tudo que SkyLigh postou

  1. Hahah esse do Titulo eu não sabia. Muito útil já utilizo o Alerta e o Sucesso
  2. é alguma storage vip? se sim me passe a storage?
  3. se você não quer que suba só você colocar um tile em cima de onde ficaria o tile de escada, não sei explicar direito por que não entendo de mapping mais é só você colocar um tile que você quer em cima da escada
  4. local items = {{2160, 50}, {2163, 100}, {2563, 100}, ...} --{{ID_do_item, quantia_requerida}, {ID_do_item, quantia_requerida}, ...} local s = 00001 --- id da storage function onSay(cid) local str = "" for _, item in pairs(items) do if str == "" then str = getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]" else str = str.."\n"..getItemInfo(item[1]).name.." - ["..getPlayerItemCount(cid, item[1]).."/"..item[2].."]" end if getPlayerStorageValue(cid, s) then doPlayerSendCancel(cid,"MENSAGEM DE AVISO PRA QUANDO NÃO TÊ STORAGE") end doPlayerPopupFYI(cid, "You have:\n"..str) end return true end
  5. faça tudo que o lumus falou só que mude a tag do creaturescripts.xml para <event type="login" name="savePlayer" event="script" value="saveplayer.lua"/>
  6. Então só não colocar o tile de escada em cima poem a escada em baixo e o telhado em cima.
  7. Não faça comentários que não envolva o tópico. Considere um alerta verbal na próxima pode resultar em algo mais grave.
  8. sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe sobe
  9. Não é permitido suporte fora do fórum. Tópico Movido Este tópico foi movido de "OTServ → Suporte → Suporte Scripting" para "OTServ → Suporte → Suporte Servidores derivados".
  10. Acho que se não tiver tile em cima não sobe...
  11. quando fico com esto problema inporto a url tente fazer o mesmo
  12. faça upload no imgur.com tenta importando a URL que funciona
  13. Movido para resolvidos. Tópico Movido Este tópico foi movido de "OTServ → Suporte → Suporte Scripting" para "OTServ → Suporte → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".
  14. tenta este LINK
  15. Tente vê este LINK
  16. parabéns pela iniciativa
  17. Falou tudo...
  18. Movido para resolvidos. Tópico Movido Este tópico foi movido de "OTServ → Suporte → Suporte Servidores derivados" para "OTServ → Suporte → Suporte Servidores derivados → Pedidos e dúvidas resolvidos - Servidores derivados".
  19. Movido para resolvidos. Tópico Movido Este tópico foi movido de "OTServ → Suporte → Suporte Servidores derivados" para "OTServ → Suporte → Suporte Servidores derivados → Pedidos e dúvidas resolvidos - Servidores derivados".
  20. Só jogo se o tony ramos aparecer...
  21. testa o script que você vai vê
  22. data/globalevents/scripts ------------------------------------------------------------------------------* ----- [[> Automated Database Cleanup 1.1 Structure //By Cybermaster <]] ------| -------------- [[> System 2.0 Revamped by Teh Maverick <3 <]] ----------------| ------------- [[> Removal of empty accounts by darkaos <]] ---------------| --------------- [[> Function getDBPlayersCount() by Elf <]] ------------------| ------------------------------------------------------------------------------| ------------------------------------------------------------------------------| --- ~!READ THIS!~ ------------------------------------------------------------| --- Be sure to back up your database and test this on your server first, -----| --- I(Teh Maverick) cannot guarantee it will work the same for every core. ---| --- It is very easy to test, with the log file and values that are printed ---| -----------------------------------Enjoy!-------------------------------------| ------------------------------------------------------------------------------* function countRowsWhereInTable(table, field, condition) local result = db.getResult("SELECT COUNT(" .. field .. ") as count FROM " .. table .. " WHERE " .. field .. " = '" .. condition .. "';") local tmp = result:getDataInt("count") result:free() return tmp end function getDBPlayersCount() local result = db.getResult("SELECT COUNT(id) as count FROM `players`;") local tmp = result:getDataInt("count") result:free() return tmp end function getDBAccountsCount() local result = db.getResult("SELECT COUNT(id) as count FROM `accounts`;") local tmp = result:getDataInt("count") result:free() return tmp end function onstartup() local DB_BEFORE = {players = getDBPlayersCount(), accounts = getDBAccountsCount()} local result,result1, ii, numPlayersToDelete, numAccountsDeleted, tmp = 0, 0, 0, 0, 0 local pid, aid = {}, {} local dropCount = {players={},accounts={}} local config = { deleteAccountWithNoPlayers = true, cleanChildTables = true, printResult = true, saveResultToFile = true, logFileName = 'db_cleanup.txt' } --In each table, players with below specified level, and days of inactivity will be deleted from db on server startup local cleanup = { [1] = {level = 100, time = 7 * 24 * 60 * 60}, [2] = {level = 300, time = 60 * 24 * 60 * 60} } local childAttributeTables = { players = { [1] = {table = "`player_viplist`", idField = "`player_id`"}, [2] = {table = "`player_storage`", idField = "`player_id`"}, [3] = {table = "`player_spells`", idField = "`player_id`"}, [4] = {table = "`player_skills`", idField = "`player_id`"}, [5] = {table = "`player_namelocks`", idField = "`player_id`"}, [6] = {table = "`player_items`", idField = "`player_id`"}, [7] = {table = "`player_depotitems`", idField = "`player_id`"}, [8] = {table = "`houses`", idField = "`owner`"}, [9] = {table = "`house_auctions`", idField = "`player_id`"}, [10] = {table = "`players`", idField = "`id`"} -- Keep this as the last item in the array --Note: `houses` and `bans` are in the DB triggers for TFS so don't worry about them. --Also I did not want to put killers, or deaths on here because that is historic data, --do so at your ouwn risk. }, accounts = { [1] = {table = "`accounts`", idField = "`id`"}, [2] = {table = "`account_viplist`", idField = "`account_id`"} } } --Clean up all the players and player data for i = 1, #cleanup do result = db.getResult("SELECT `id`,`name`,`account_id` FROM `players` WHERE `level` < ".. cleanup[i].level .." AND `name` NOT IN('Account Manager', 'Sorcerer Sample', 'Druid Sample', 'Paladin Sample', 'Knight Sample', 'Rook Sample') AND `group_id` < 2 AND `lastlogin` < UNIX_TIMESTAMP() - ".. cleanup[i].time ..";") if(result:getID() ~= -1) then ii = 1 repeat pid[ii] = result:getDataInt("id") -- list the players id into an array aid[ii] = result:getDataInt("account_id") -- list the account id of each player being removed into an array ii = ii + 1 until not(result:next()) result:free() end numPlayersToDelete = ii - 1 --Drop players and their child table attribute data such as skills, items, etc. for j = 1, numPlayersToDelete do if(config.cleanChildTables) then for k = 1, #childAttributeTables.players do dropCount.players[k] = ((dropCount.players[k] or 0) + countRowsWhereInTable(childAttributeTables.players[k].table, childAttributeTables.players[k].idField, pid[j])) db.executeQuery("DELETE FROM " .. childAttributeTables.players[k].table .. " WHERE " .. childAttributeTables.players[k].idField .. " = '" .. pid[j] .. "';") end else db.executeQuery("DELETE FROM `players` WHERE `id` = '" .. pid[j] .. "';") end end end --Drop all the accounts that have 0 players linked to them (at the moment its only checking from the list of players removed) if config.deleteAccountWithNoPlayers then --This part was scripted by Darkhaos, modified/fixed by Teh Maverick --[[ for acc = 1, #aid do result1 = db.getResult("SELECT `id` FROM `accounts` WHERE `id` = '" .. aid[acc] .. "';") if result1:getID() ~= -1 then -- check to make sure the account exists result1:free() for i = 1, #childAttributeTables.accounts do --Make sure there are no other players on the account result1 = db.getResult("SELECT COUNT(id) as count FROM `players` WHERE `account_id` = '" .. aid[acc] .. "';") tmp = result1:getDataInt("count") if(tmp <= 0) then --Remove accounts dropCount.accounts[i] = ((dropCount.accounts[i] or 0) + countRowsWhereInTable(childAttributeTables.accounts[i].table, childAttributeTables.accounts[i].idField, aid[acc])) db.executeQuery("DELETE FROM " .. childAttributeTables.accounts[i].table .. " WHERE " .. childAttributeTables.accounts[i].idField .. " = '" .. aid[acc] .. "';") end end end end end --]] --Print and Save results (configurable) local DB_NOW = {players = DB_BEFORE.players - getDBPlayersCount(), accounts = DB_BEFORE.accounts - getDBAccountsCount()} if DB_NOW.players > 0 or DB_NOW.accounts > 0 then local text = ">> [DBCLEANUP] " .. DB_NOW.players .. " inactive players" .. (config.deleteAccountWithNoPlayers and " and " .. DB_NOW.accounts .. " empty accounts" or "") .. " have been deleted from the database." --Write to console if config.printResult then print("") print(text) if config.cleanChildTables then --Write player info for i = 1,#dropCount.players do print("[!] --> Dropped: " .. dropCount.players[i] .. " from " .. childAttributeTables.players[i].table .. " table") end --Write account info if config.deleteAccountWithNoPlayers then for i = 1,#dropCount.accounts do print("[!] --> Dropped: " .. dropCount.accounts[i] .. " from " .. childAttributeTables.accounts[i].table .. " table") end end print("") end end --Write to file if config.saveResultToFile then local file = io.open("data/logs/"..config.logFileName, "a") file:write("[" .. os.date("%d %B %Y %X ", os.time()) .. "] " .. text .. "\n") if config.cleanChildTables then --Write player info for i = 1, #dropCount.players do file:write("[!] --> Dropped: " .. dropCount.players[i] .. " from " .. childAttributeTables.players[i].table .. " table\n") end --Write account info if config.deleteAccountWithNoPlayers then for i = 1, #dropCount.accounts do file:write("[!] --> Dropped: " .. dropCount.accounts[i] .. " from " .. childAttributeTables.accounts[i].table .. " table\n") end end file:write("\n") end file:close() end end return true end Ai no mesmo lugar você criaum arquivo .txt com o nome db_cleaneup... Tag <globalevent name="dbcleaner" type="startup" event="script" value="dbcleaner.lua"/> Você só vai editar iss : [1] = {level = 100, time = 7 * 24 * 60 * 60}, [2] = {level = 300, time = 60 * 24 * 60 * 60}
  23. SkyLigh

    !vipdays

    function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end é uma talkaction não manda a tag por que tô sem server no pc
  24. Veja esse SCRIPT
  25. Falei que um dos 2 ia vencer \o/
  • Quem Está Navegando   0 membros estão online

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