Jump to content
×
×
  • Create New...
  • 0

Como por sexo predefinido para vocation TFS 1.3


Go to solution Solved by DarkWore,

Question

Versão do Servidor:
Tipo de Script:
Código:
 

    

Quero saber como é possível fazer com que uma vocation tenha um sexo predefinido.

ex: ao criar um Goku o sexo seria male, o player não teria escolha.

 

TFS 1.3 10.98

Edited by Ninlin
Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 1
  • Solution
34 minutos atrás, Ninlin disse:

@DarkWore tentei mas no meu login. lua não possui 


local playerId = player:getId()

@LeoTK pode dizer como fazer isso? tentei apenas excluir mas ai quando o personagem é criado ele vem como female, onde eu posso estar definindo quais eu quero como male e quais eu quero como female.

Pronto, código completo:

Spoiler

function onLogin(player)
    local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"
    if player:getLastLoginSaved() <= 0 then
        loginStr = loginStr .. " Please choose your outfit."
        player:sendOutfitWindow()
    else
        if loginStr ~= "" then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
        end

        loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
    end
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    
    local vocations_male = {1,2,3} -- IDs das vocações male
    local vocations_female = {4,5,6} -- IDs das vocações female
    local vocation = player:getVocation():getId()
    if isInArray(vocations_male, vocation) then
        player:setSex(PLAYERSEX_MALE)
    else
        player:setSex(PLAYERSEX_FEMALE)
    end
    
    -- Stamina
    nextUseStaminaTime[player.uid] = 0

    -- Promotion
    local vocation = player:getVocation()
    local promotion = vocation:getPromotion()
    if player:isPremium() then
        local value = player:getStorageValue(PlayerStorageKeys.promotion)
        if not promotion and value ~= 1 then
            player:setStorageValue(PlayerStorageKeys.promotion, 1)
        elseif value == 1 then
            player:setVocation(promotion)
        end
    elseif not promotion then
        player:setVocation(vocation:getDemotion())
    end

    -- Events
    player:registerEvent("PlayerDeath")
    player:registerEvent("DropLoot")
    return true
end

 

Link to post
Share on other sites
  • 1
56 minutos atrás, Ninlin disse:

agora funcionou direito vlw ☺️ mas acabei encontrando um pequeno erro/incompatibilidade, como eu removi do meu site a opção de selecionar gênero ele esta pondo o sex female por padrão ai quando entra no game o seu script faz efeito e torna em male mas o meu serve quando você entra pela 1 vez  ele abre um tela de mudar de outfit oque faz com o personagem seja male mas com outfit female ai só vai para outfit male se clicar em trocar de outfit, você algum de estar resolvendo isso? se não souber ou for muito trabalho ta de boa desde já agradeço pelo script.

Você pode utilizar essa função:

player:setOutfit(ID_DA_OUTFIT)

O código ficaria assim:

	local vocations_male = {1,2,3} -- IDs das vocações male
	local vocations_female = {4,5,6} -- IDs das vocações female
	local vocation = player:getVocation():getId()
	if isInArray(vocations_male, vocation) then
		player:setSex(PLAYERSEX_MALE)
		player:setOutfit(ID_OUTFIT_MALE) -- ID da outfit male
	else
		player:setSex(PLAYERSEX_FEMALE)
		player:setOutfit(ID_OUTFIT_FEMALE) -- ID da outfit female
	end

Dessa forma trocaria a outfit logo após setar o sexo da vocação.

Link to post
Share on other sites
  • 0
1 hour ago, Yan18 said:

Depende muito da maneira como o player é criado na sua base, se é account manager, site ou outra maneira. Como o player é criado?

é criado pelo site znote

Link to post
Share on other sites
  • 0

Vá em data\creaturescripts\scripts e abra o login.lua

 

Procure por:

local playerId = player:getId()

Coloque embaixo:

local vocations_male = {1,2,3} -- IDs das vocações male
local vocations_female = {4,5,6} -- IDs das vocações female
local vocation = player:getVocation():getId()
if isInArray(vocations_male, vocation) then
	player:setSex(PLAYERSEX_MALE)
else
	player:setSex(PLAYERSEX_FEMALE)
end

Basta configurar os arrays com os IDs das vocações de cada sexo e pronto só utilizar, testado e funcionando em OTX 3 (TFS 1.3).

 

OBS: Independente do sexo escolhido na criação de conta, ao efetuar o login será trocado.

Edited by DarkWore
Link to post
Share on other sites
  • 0

@DarkWore tentei mas no meu login. lua não possui 

local playerId = player:getId()
Quote

function onLogin(player)
    local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"
    if player:getLastLoginSaved() <= 0 then
        loginStr = loginStr .. " Please choose your outfit."
        player:sendOutfitWindow()
    else
        if loginStr ~= "" then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
        end

        loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
    end
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

    -- Stamina
    nextUseStaminaTime[player.uid] = 0

    -- Promotion
    local vocation = player:getVocation()
    local promotion = vocation:getPromotion()
    if player:isPremium() then
        local value = player:getStorageValue(PlayerStorageKeys.promotion)
        if not promotion and value ~= 1 then
            player:setStorageValue(PlayerStorageKeys.promotion, 1)
        elseif value == 1 then
            player:setVocation(promotion)
        end
    elseif not promotion then
        player:setVocation(vocation:getDemotion())
    end

    -- Events
    player:registerEvent("PlayerDeath")
    player:registerEvent("DropLoot")
    return true
end
 

@LeoTK pode dizer como fazer isso? tentei apenas excluir mas ai quando o personagem é criado ele vem como female, onde eu posso estar definindo quais eu quero como male e quais eu quero como female.

Link to post
Share on other sites
  • 0
36 minutes ago, DarkWore said:

Pronto, código completo:

  Reveal hidden contents

function onLogin(player)
    local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"
    if player:getLastLoginSaved() <= 0 then
        loginStr = loginStr .. " Please choose your outfit."
        player:sendOutfitWindow()
    else
        if loginStr ~= "" then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
        end

        loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
    end
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    
    local vocations_male = {1,2,3} -- IDs das vocações male
    local vocations_female = {4,5,6} -- IDs das vocações female
    local vocation = player:getVocation():getId()
    if isInArray(vocations_male, vocation) then
        player:setSex(PLAYERSEX_MALE)
    else
        player:setSex(PLAYERSEX_FEMALE)
    end
    
    -- Stamina
    nextUseStaminaTime[player.uid] = 0

    -- Promotion
    local vocation = player:getVocation()
    local promotion = vocation:getPromotion()
    if player:isPremium() then
        local value = player:getStorageValue(PlayerStorageKeys.promotion)
        if not promotion and value ~= 1 then
            player:setStorageValue(PlayerStorageKeys.promotion, 1)
        elseif value == 1 then
            player:setVocation(promotion)
        end
    elseif not promotion then
        player:setVocation(vocation:getDemotion())
    end

    -- Events
    player:registerEvent("PlayerDeath")
    player:registerEvent("DropLoot")
    return true
end

 

agora funcionou direito vlw ☺️ mas acabei encontrando um pequeno erro/incompatibilidade, como eu removi do meu site a opção de selecionar gênero ele esta pondo o sex female por padrão ai quando entra no game o seu script faz efeito e torna em male mas o meu serve quando você entra pela 1 vez  ele abre um tela de mudar de outfit oque faz com o personagem seja male mas com outfit female ai só vai para outfit male se clicar em trocar de outfit, você algum de estar resolvendo isso? se não souber ou for muito trabalho ta de boa desde já agradeço pelo script.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By daniell99
      Estou usando a Base do otservbr-global do git, myacc 0.8, Ubuntu 14.04 com apache2
      E quando vou conectar com o cliente 12 da apenas connection refused e não vai já tentei o login.php 1.2 e 1.3 do myacc e não objetive sucesso
    • By daniell99
      Preciso de um Talkaction que quando o player falar /ir "lugar" ele seja teleportado para a posição configurada dentro do script, e gostaria de poder configurar vários lugares dentro do mesmo script ex: /ir Thais, /ir venore. E que eu podesse configurar se ele precisa ser premiun pra ir pra certo lugar ou não e que dependo do lugar fosse cobrado um valor pra ser teleportado.... Mas quero essas configurações individuais pra cada lugar se por possível alguém da um help
       
       
      Uso tfs 1.3
       
       
    • By Diego767
      Versão do Servidor: TFS - 1.2 Tipo de Script: moveevent Código: Boa tarde galera,
      Dupliquei um item com o intuito de editar o mesmo, com atributos melhores.
      O item esta ok, criei id, editei items.xml e adicionei o mesmo em movements.
      Consigo criar o item com o GOD e ao dar look eu enxergo exatamente o que eu editei, porem ao equipar o char com o item, o char nao ganha os atributos.
      Alguem sabe o que pode ser?
       
      items.xml     
          <item id="36759" name="frozen boots">
              <attribute key="description" value="It can only be wielded properly by druids of level 500 or higher." />
              <attribute key="weight" value="1500" />
              <attribute key="armor" value="10" />
              <attribute key="slotType" value="feet" />
              <attribute key="magiclevelpoints" value="3" />
              <attribute key="absorbPercentIce" value="7" />
              <attribute key="imbuingSlots" value="1" />
       
      movements.xml    
      <movevent event="Equip" itemid="36759" level="500" slot="feet" event="function" value="onEquipItem"> <!-- Frozen Boots -->
              <vocation id="1" />
              <vocation id="5" showInDescription="0" />
              <vocation id="2" />
              <vocation id="6" showInDescription="0" />
          </movevent>
          <movevent type="DeEquip" itemid="36759" level="500" slot="feet" event="function" value="onEquipItem">