Ir para conteúdo
  • Cadastre-se

Normal Help Limite de players em uma guild


Posts Recomendados

@chbuss

ja tentei mudar pra outro tfs 0.4  umas 2x , mas meu server parece q nao aceitou mt bem =s (libs,npcs nao respondia, serv ficava online por pouco tempo e dava relatorio de erros,a houses bugavam...)

 

@login12

n teria como criar um teleport que desse uma storage , ai checava quando desse 10 pessoas com a mesma storage da msm guild ele nao entrava mais, ai quando desse 22:31 eu colocaria aqui pra resetar essa storage com um script que eu tenho de deletar em tal hora (globalevent)

Link para o post
Compartilhar em outros sites
1 hora atrás, poko360 disse:

@chbuss

ja tentei mudar pra outro tfs 0.4  umas 2x , mas meu server parece q nao aceitou mt bem =s (libs,npcs nao respondia, serv ficava online por pouco tempo e dava relatorio de erros,a houses bugavam...)

 

@login12

n teria como criar um teleport que desse uma storage , ai checava quando desse 10 pessoas com a mesma storage da msm guild ele nao entrava mais, ai quando desse 22:31 eu colocaria aqui pra resetar essa storage com um script que eu tenho de deletar em tal hora (globalevent)

 

Até dá. Porém não consigo pensar em como estruturar isso. Vou tentar pensar em algo, e posto aqui.

 

 

@EDIT:

O máximo que eu consegui pensar agora foi o seguinte:

 

1) O personagem da guild só poderá entrar se sua guild tiver uma quantidade máxima de membros online.

Se passar dessa quantidade então ele não será teleportado para o evento, e não poderá participar. (Configurável)

2) Se o jogador não tem guild, uma mensagem de erro será enviada à ele.

 

PS: Aconselho você à configurar a área do evento como no-logout. Pois isso evitaria de jogadores deslogarem dentro do evento para possibilitar outros entrarem.

 

Feito isso, esse script irá resolver:

--##################################
--##  Code developed by Pedriinz  ##
--##	   fb.com/overflaw 	  ##
--##################################

function onStepIn(cid, pos)
	local event = {x=32369, y=32227, z=7} -- Posição do Evento
	local canEnter = 10 -- Quantidade maxima de jogadores online na guild.

	local playersGuild = getPlayerGuildId(cid)
	if playersGuild == 0 then
		doPlayerSendTextMessage(cid, 24, "You need guild for enter here.")
		return false
	end
		
	local onlineMembers = {}
	for _, name in ipairs(getOnlinePlayers()) do
		if getPlayerGuildId(getPlayerByName(name)) == playersGuild then
			table.insert(onlineMembers, name)
		end
	end
	
	if #onlineMembers <= canEnter then
		doTeleportThing(cid, event)
	else
		doPlayerSendTextMessage(cid, 24, "Your guild can not Participate because it has many players online! Allowed quantity for this event: " ..canEnter..".")
	end		
	return true
end

7tkV5hu.png

Espero que sirva :grin:

Editado por login12 (veja o histórico de edições)

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Link para o post
Compartilhar em outros sites

@login12

amigo, vi tipo um "bugzinho" nesse script, tipo se a guild tiver 11 ou + online e o lider nao tiver on ai como a guild vai expulsar o player (em excesso)  da guild? =s msm assim dei REP+ por estar tentando me ajudar, se puder continuar me ajudar a criar esse script ficaria grato:wow:

 

foi ai q pensei:

nao tem como criar por talkactions?

tipo: !register war

ai o player ganhava a storage da sua guild, ai quando chegasse em 10 outro membro da guild nao pudesse usar o comando (nao sei se tem como fazer isso, so foi uma sugestão)se puder dar uma força, ty <3

Link para o post
Compartilhar em outros sites
6 minutos atrás, poko360 disse:

@login12

amigo, vi tipo um "bugzinho" nesse script, tipo se a guild tiver 11 ou + online e o lider nao tiver on ai como a guild vai expulsar o player (em excesso)  da guild? =s msm assim dei REP+ por estar tentando me ajudar, se puder continuar me ajudar a criar esse script ficaria grato:wow:

 

foi ai q pensei:

nao tem como criar por talkactions?

tipo: !register war

ai o player ganhava a storage da sua guild, ai quando chegasse em 10 outro membro da guild nao pudesse usar o comando (nao sei se tem como fazer isso, so foi uma sugestão)se puder dar uma força, ty <3

 

Entendi, mas isso ficaria como responsabilidade da guild não?

Isso já mostraria aos jogadores que se invitar muitas pessoas, podem ficar sem participar do evento... o que levaria aos jogadores sempre criar guild novas, consequentemente ter mais guilds no seu servidor.

 

Editado por login12 (veja o histórico de edições)

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Link para o post
Compartilhar em outros sites

@login12

hm :hum:, fui falar com alguns players no meu serv e eles falaram assim:

"e se eles criarem 2 guilds aliadas e quando acabar o evento todo mundo sai de uma guild e vai pra a guild vencedora?"

 

dai uma ideia surgiu na cabeça: nao teria como fazer, oq eu te disse la da porta ou teleport?

entrar as 10 primeiras pessoas na porta ou teleport, (sem stackar na porta quando clicar) tipo quando acaba o evento , os players vencedores vao ter acesso a 1 teleporte que da acesso ao castelo

ai eu jogava essa porta la no castelo pros 10 primeiros que entrasse na porta (esse script nao precisa ter guild) ai ganhava 1 GlobalStorage e se quisesse sair do castelo removia a GlobalStorage (resumindo: só 10 pessoas pudessem entrar)

 

ai no outro dia na saida do castelo todos perderiam essa GlobalStorage (globalevents)

 

o unico problema é criar a porta pros 10 primeiros players que adiciona a GlobalStorage (nao importa se tem guild)

se manjar avisa ai <3

 

 

 

@edit: no lugar da porta poderia ser um teleport tambem

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 minutos atrás, poko360 disse:

@login12

hm :hum:, fui falar com alguns players no meu serv e eles falaram assim:

"e se eles criarem 2 guilds aliadas e quando acabar o evento todo mundo sai de uma guild e vai pra a guild vencedora?"

 

dai uma ideia surgiu na cabeça: nao teria como fazer, oq eu te disse la da porta ou teleport?

entrar as 10 primeiras pessoas na porta ou teleport, (sem stackar na porta quando clicar) tipo quando acaba o evento , os players vencedores vao ter acesso a 1 teleporte que da acesso ao castelo

ai eu jogava essa porta la no castelo pros 10 primeiros que entrasse na porta (esse script nao precisa ter guild) ai ganhava 1 GlobalStorage e se quisesse sair do castelo removia a GlobalStorage (resumindo: só 10 pessoas pudessem entrar)

 

ai no outro dia na saida do castelo todos perderiam essa GlobalStorage (globalevents)

 

o unico problema é criar a porta pros 10 primeiros players que adiciona a GlobalStorage (nao importa se tem guild)

se manjar avisa ai <3

 

 

 

@edit: no lugar da porta poderia ser um teleport tambem

 

Se fizerem isso, você intervem e mostra quem que manda na porr* toda.

Haha, não consigo pensar em como adiciconar uma storage apenas para 10 pessoas de cada guild... Se passar 10, tem que aceitar mais 10 no max de outra guild, e assim vai... não sei como utilizar isso. Provavelmente seria com vetores, mas não consigo pensar em como estruturar, sorry

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Link para o post
Compartilhar em outros sites

mas nao precisa ser de guild nao po, eu botaria dentro do castelo (pros vencedores DEPOIS do evento) ai obrigaria eles a kikar mais nego da guild

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Agora, poko360 disse:

mas nao precisa ser de guild nao po, eu botaria dentro do castelo (pros vencedores) ai obrigaria eles a kikar mais nego da guild

 

O problema não é ser guild ou não, o problema é estruturar um codigo que armazene 10 pessoas, e depois mais 10 pessoas, e depois mais 10 pessoas...

Teria que utilizar algum vetor com limite 10, e sempre seja criado quando este chegar ao limite.

Mas eu não tenho nem ideia de como fazer isso em lua, ainda preciso desenvolver mais minhas habilidades, sendo assim infelizmente não posso ajudar.

 

@This life is filled with hurt

When happiness doesn't work

Trust me and take my hand

When the lights go out you will understand

Link para o post
Compartilhar em outros sites

entao... foi ai que eu falei , tenho um globalevent que ele deleta essa storage , ai eu botava pra executar 1x por dia

 

Citar

function onThink(interval, lastExecution, thinkInterval)
local storage = 2949
for _, pid in ipairs(getPlayersOnline()) do
setPlayerStorageValue(pid, storage, -1) -- reset storage from players online
end
db.query("DELETE FROM `player_storage` WHERE `key` = "..storage) -- reset player offline
return true
end

 

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 6 months later...

@Pedriinz  @WhiteBubble
opa, preciso de uma força se puder <3
eu encontrei um creaturescript aqui no TK que mostra a quantidade de player e quantos players online tem na guild dando look. 
no script que o pedrin criou (por player online), teria como colocar por maximo de players na guild baseando nesse script? (players guild no look)?

Script de look
"The guild has 5 total members, 3 of them online."

Citar

function onLook(cid, thing, position, lookDistance)
local tabela = {}
if isPlayer(thing.uid) then
if getPlayerGuildId(thing.uid) ~= 0 then
playerid = getPlayerGUID(thing.uid)
query2 = db.getResult("SELECT Count( guild_id ) FROM `players` WHERE `players`.`guild_id` = "..getPlayerGuildId(thing.uid)..";")
query3 = db.getResult("SELECT Count( online ) FROM `players` WHERE `players`.`online` = 1 AND `players`.`guild_id` = "..getPlayerGuildId(thing.uid)..";")
table.insert(tabela, "\nThe guild has "..query2:getDataInt("Count( guild_id )").." total members, "..query3:getDataInt("Count( online )").." of them online")
end
local concatena = table.concat(tabela)
doPlayerSetSpecialDescription(thing.uid, concatena)
end
return true
end



teria como colocar essa query 2 
db.getResult("SELECT Count( guild_id ) FROM `players` WHERE `players`.`guild_id` = "..getPlayerGuildId(thing.uid)..";")

nesse script do pedrin?
( eu nao sei montar =c )

Citar

 

--##################################
--##  Code developed by Pedriinz  ##
--##       fb.com/overflaw       ##
--##################################

function onStepIn(cid, pos)
    local event = {x=92, y=655, z=7} -- Posição do Evento
    local exit = {x=92, y=662, z=7} -- Posição da saida
    local canEnter = 10 -- Quantidade maxima de jogadores online na guild.

    local playersGuild = getPlayerGuildId(cid)
    if playersGuild == 0 then
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You need guild for enter here.")
        doCreatureSay(cid, "You need guild for enter here", TALKTYPE_ORANGE_1)
        doTeleportThing(cid, exit)
        doSendMagicEffect(getThingPos(cid), 2)
        return FALSE
    end
        
    local onlineMembers = {}
    for _, name in ipairs(getOnlinePlayers()) do
        if getPlayerGuildId(getPlayerByName(name)) == playersGuild then
            table.insert(onlineMembers, name)
        end
    end
    
    if #onlineMembers <= canEnter then
        doTeleportThing(cid, event)
        doSendMagicEffect(getThingPos(cid), 10)
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[ONLINE GUILD LIMIT] \n Sua guild tem mais de 10 players online, tente deslogar algum char ou criar outra guild.")
        doCreatureSay(cid, "[ONLINE GUILD LIMIT] \n Sua guild tem mais de 10 players.", TALKTYPE_ORANGE_1)
        doTeleportThing(cid, exit)
        doSendMagicEffect(getThingPos(cid), 2)
    end        
    return true
end

 

 

 

se puder dar uma força... é noix :wow:

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ola, desculpe mais sem querer atrapalhar mais WhiteBubble vi que você falou que sabe compilar e tal, eu tenho um global 8.60 TFS 0.4 sem CAST, eu estou a muito muito tempo correndo atrais de algo para adicionar o CAST mais não consigo, sera que não poderia me ajudar com isso ? ou ate mesmo o Pedriinz, estou precisando muito disso amigos.

Link para o post
Compartilhar em outros sites
  • 1 year later...

Ola, gostaria de reviver meu proprio topico pra não criar outro:

Consegui as distros do meu server, alguem poderia me ajudar a limitar a quantidade de players  dentro de uma guild pela DISTRO?
o amigo acima, me ajudou por script (movements) mas não é como eu queria =/

eu uso o sistema de guild por talkactions
!invite PLAYER
!createguild NOME....
!joinguild (nomedaguild)

tipo, ha alguma forma de o !joinguild nao funcionar quando tiver uma quantidade "X" de players na guild?


oque achei foi isso daqui, mas nao sei mexer =S

Spoiler

 

bool IOGuild::joinGuild(Player* player, uint32_t guildId, bool creation/* = false*/)
{
    Database* db = Database::getInstance();
    DBResult* result;

    DBQuery query;
    query << "SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " << guildId << " AND `level` = " << (creation ? "3" : "1") << " LIMIT 1";
    if(!(result = db->storeQuery(query.str())))
        return false;

    const uint32_t rankId = result->getDataInt("id");
    result->free();

    std::string guildName;
    if(!creation)
    {
        query.str("");
        query << "SELECT `name` FROM `guilds` WHERE `id` = " << guildId << " LIMIT 1";
        if(!(result = db->storeQuery(query.str())))
            return false;

        guildName = result->getDataString("name");
        result->free();
    }

    query.str("");
    query << "UPDATE `players` SET `rank_id` = " << rankId << " WHERE `id` = " << player->getGUID() << db->getUpdateLimiter();
    if(!db->query(query.str()))
        return false;

    player->setGuildId(guildId);
    GuildLevel_t level = GUILDLEVEL_MEMBER;
    if(!creation)
        player->setGuildName(guildName);
    else
        level = GUILDLEVEL_LEADER;

    player->setGuildLevel(level, rankId);
    player->invitedToGuildsList.clear();
    return true;
}

 

 

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo