Ir para conteúdo
  • 0

Como por sexo predefinido para vocation TFS 1.3


Ninlin

Pergunta

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

Editado por Ninlin
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 1
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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Ninlin disse:

é criado pelo site znote

só editar o sample na database e retirar a escolha de sex na hora de criar o personagem novo

Link para o comentário
Compartilhar em outros 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.

Editado por DarkWore
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...