Ir para conteúdo

Featured Replies

Postado

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • Respostas 50
  • Visualizações 2.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • vai no seu globalevents e cria um arquivo chamado balance:

  • 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:   esse comando mostra se esta balanceando os tim

  • * setPlayerStorageValue(cid, STORAGE_TEAM_ID, 0)   <<< Essa Funçao Remove a Storage agora e so voce por Para quando o Jogador Morre ou Logar.

Posted Images

Postado

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 por Nextbr (veja o histórico de edições)


 

 

Postado
  • 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 por yagoskor (veja o histórico de edições)

Postado

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo