Postado Maio 28, 2014 10 anos eu também era de outro fórum mas cansei de algumas coisas que aconteciam... no tibiaking me baniram porque eu liberava scripts que o povo vendia e na otnet eles ficaram mudando tanto de site que o contéudo foi todo jogado no lixo, hoje em dia é quase impossível achar um link no google que leve pro post certo. Aqui no TK eu não tive nenhum problema e o pessoal parece que tá reunido aqui, eu resolvo as dúvidas de quem não manja e tento ensinar pra que eles possam ensinar outros. Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Maio 29, 2014 10 anos Valeu mano, funcionou perfeitamente do jeito que você falou. Porém estudando melhor aqui a situação, seria mais interessante 1 rebalancer com a mesma função que esse ai, so que em vez de executar em tempo real, executar ele toda vez que 1 player for logar no jogo ou relogar da morte. O que eu tenho aqui era pra fazer isso. Só que ele falha quando o player loga ou morre. Eu tenho quase ctz que isso acontece porque o storage do TEAM do player recém logado ou morto, não é removido imediatamente quando o player loga ou morre. A função de balancear os teams está certinha (como consta abaixo), só falta mesmo algo pra remover o storage Team do player dead ou recem logado... function setTeam(cid) local team1 = getTeamMembers(1) local team2 = getTeamMembers(2) if #team1 >= #team2 then setPlayerStorageValue(cid, 12000, 2) else setPlayerStorageValue(cid, 12000, 1) end mudarRopa(cid) doTeleportThing(cid,getTeamSpawn(cid),false) end Poderia me ajudar a fazer isso? (o script ta no tópico ae em cima) Muito obrigado. Reputei+ * o Logout nao Precisa fazer a Checagem so no Login \/ * Testa Ae nao sei se vai Funcionar , vai no seu creaturescripts e troca seu war.lua por esse: function onLogin(cid) doPlayerAddAddons(cid, 2) doPlayerAddAddons(cid, 1) local players = getPlayersOnline() for i, cid in ipairs(players) do if warInitialized == 0 then warInitialized = 1 setPlayerStorageValue(cid, STORAGE_TEAM_ID, 1) setMap(1) cronWar() end setPlayerStorageValue(cid, STORAGE_TEAM_ID, 0) setPlayerStorageValue(cid, STORAGE_DEPOT, 0) setTeam(cid) doTeleportThing(cid, getSpawn(cid), TRUE) return TRUE end end Editado Maio 29, 2014 10 anos por Nextbr (veja o histórico de edições)
Postado Maio 31, 2014 10 anos Autor Testando Editado Maio 31, 2014 10 anos por yagoskor (veja o histórico de edições)
Postado Maio 31, 2014 10 anos Autor * o Logout nao Precisa fazer a Checagem so no Login \/ * Testa Ae nao sei se vai Funcionar , vai no seu creaturescripts e troca seu war.lua por esse: function onLogin(cid) doPlayerAddAddons(cid, 2) doPlayerAddAddons(cid, 1) local players = getPlayersOnline() for i, cid in ipairs(players) do if warInitialized == 0 then warInitialized = 1 setPlayerStorageValue(cid, STORAGE_TEAM_ID, 1) setMap(1) cronWar() end setPlayerStorageValue(cid, STORAGE_TEAM_ID, 0) setPlayerStorageValue(cid, STORAGE_DEPOT, 0) setTeam(cid) doTeleportThing(cid, getSpawn(cid), TRUE) return TRUE end end Sim, não precisa fazer checagem no logout, só precisa remover o valor do player do team 1 ou 2 no momento exato da morte/logout, pra rebalancear severamente e dividido exato quando o cara logar novamente. OBS: O meu war.lua não é creaturescript, ele fica na pasta data/lib. - Eu posso substituir esse ae pela parte que define os teams no meu lib/war.lua ? - Ow posso simplismente criar um outro war2.lua na creaturescripts, para os 2 funcionarem em conjunto? Ou tenho que usar somente 1 dos 2 ? Muito Obrigado! Editado Maio 31, 2014 10 anos por yagoskor (veja o histórico de edições)
Postado Junho 1, 2014 10 anos viu antes de voce mexer em algo ve se esta balanceando troca seu !online por esse aki : *Vai em Talkactions online.lua e troca por esse aki: function onSay(cid, words, param, channel) local players = getPlayersOnline() local x = 0 local y = 0 local z = 0 local za = 0 local zb = 0 local adm = 0 for i, pid in ipairs(players) do if getPlayerStorageValue(pid,12000) == 1 and getPlayerGroupId(pid) <= 1 then x = x + 1 elseif getPlayerStorageValue(pid,12000) == 2 and getPlayerGroupId(pid) <= 1 then y = y + 1 elseif getPlayerStorageValue(pid,6666) == 1 and getPlayerGroupId(pid) <= 1 then za = za + 1 elseif getPlayerStorageValue(pid,17779) == 1 and getPlayerGroupId(pid) <= 1 then zb = zb + 1 elseif getPlayerGroupId(pid) >= 5 then adm = adm + 1 end z = z + 1 end local strings, i, position, added, showGamemasters = {""}, 1, 1, false, getBooleanFromString(getConfigValue('displayGamemastersWithOnlineCommand')) for _, pid in ipairs(getPlayersOnline()) do if(added) then if(i > (position * 7)) then strings[position] = strings[position] .. "," position = position + 1 strings[position] = "" else strings[position] = i == 1 and "" or strings[position] .. ", " end end added = false if((showGamemasters or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES) or not getPlayerCustomFlagValue(pid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid))) then strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]" i = i + 1 added = true end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, (i - 1) .. " player" .. (i > 1 and "s" or "") .. " online:") for i, str in ipairs(strings) do if(str:sub(str:len()) ~= ",") then str = str .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) end doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,"".. x .." Jogadores do time Red online!") doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,"".. y .." Jogadores do time Blue online!") --doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,"".. za .." Jogadores Death Match online!") doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,"".. adm .." Admin online! Nick: Admin") return true end esse comando mostra se esta balanceando os times ou nao ai voce mesmo tira sua Duvida =)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.