Ir para conteúdo
  • Cadastre-se

(Resolvido)Modificação de script


Ir para solução Resolvido por MaTTch,

Posts Recomendados

ola tk, gostaria de saber se tem como modificar esse script...

queria que fosse assim, eu posso escolher qualquer magia do meu server e o monstro que summonei ira utiliza--la, e que fosse configuravel para mais monsters...

Spoiler

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE)


arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

local function onCastSpell1(parameters)
        return doCombat(parameters.cid, parameters.combat, parameters.var) and doCreatureSay(parameters.cid2, "" .. parameters.name .. ", " .. parameters.spell .. ".")
end

local c = {
["Warlock"] = {x = {
                        m1 = combat1,
                        spell = "tumb earth",
                        }
                                }
}

function onCastSpell(cid, var)
        if #getCreatureSummons(cid) ~= 0 then
                for i = 1, #getCreatureSummons(cid) do
                        if c[getCreatureName(getCreatureSummons(cid))] then
                                  parameters = {cid = getCreatureSummons(cid), cid2 = cid, combat = c[getCreatureName(getCreatureSummons(cid))].x.m1, var = var, name = getCreatureName(getCreatureSummons(cid)), spell = c[getCreatureName(getCreatureSummons(cid))].x.spell}
                                        return onCastSpell1(parameters)
                                else
return doPlayerSendCancel(cid, "Desculpe, voce precissa ter um summon.")
        end
                        end
                end
return true

end
 

 

obs: achei esse script... no Tk em posts antigos...

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites
  • Zwarttyp mudou o título para Modificação de script

tfs 8.6@MaTTch 

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

@MaTTch que no caso seria na source do server?

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

@MaTTch poderia me dar suporte? para colocar essa função?

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

@MaTTch se falar em qual arquivo e lugar. sim

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites
  • Solução

Em luascript.cpp, você adiciona no final do arquivo:

Spoiler

int32_t LuaInterface::luaDoCreatureCastSpell(lua_State* L)
{
	//doCreatureCastSpell(cid, spellName)
	std::string spellname = popString(L);

	ScriptEnviroment* env = getEnv();
	Creature* creature = env->getCreatureByUID(popNumber(L));
	if(!creature)
	{
		errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));
		lua_pushnil(L);
		return 1;
	}

	Spell* spell = g_spells->getInstantSpellByName(spellname);
	if(spell)
	{
		lua_pushboolean(L, spell->castSpell(creature));
		return 1;
	}

	errorEx(getError(LUA_ERROR_SPELL_NOT_FOUND));
	lua_pushnil(L);
	return 1;
}

 

 

no mesmo arquivo, procure por:

luaL_register(m_luaState, "std", LuaInterface::luaStdTable);

e abaixo dele adicione:

Spoiler

//doCreatureCastSpell(cid, spellName)
lua_register(m_luaState, "doCreatureCastSpell", LuaInterface::luaDoCreatureCastSpell);

 

 

Agora em luascript.h, procure por:

static int32_t luaStdSHA512(lua_State* L);

e abaixo adicione:

Spoiler

static int32_t luaDoCreatureCastSpell(lua_State* L);

 

 

 

Agora só compilar.

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

@MaTTch blza quando chegar em casa eu testo... to na casa do meu pai... xd

@MaTTch Mat compilei tudo! consegue arrumar o script?

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

@MaTTch desculpa a demora, e porque quero criar uma classe chamada necromance dai ele invocaria tal monstro e falaria tal spell para comandar o monstro

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites
Spoiler

local SUMMONS_SPELLS = {
	["Warlock"] = "Tumb Earth"
}

function onCastSpell(cid, var)
	local summons = getCreatureSummons(cid)
	if(#summons ~= 0) then
		for _, sid in pairs(summons) do
			local spell = SUMMONS_SPELLS[getCreatureName(sid)]
			if(spell ~= nil) then
				doCreatureCastSpell(sid, spell)
			end
		end
	else
		doPlayerSendCancel(cid, "Desculpe, você precisa ter um summon.")
		return false
	end

	return true
end

 

 

Link para o post
Compartilhar em outros sites

@MaTTch ta dando erro  "spell not found" sera que e por causa do diretorio das spells?

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

Você tem certeza que existe uma spell com esse nome? E se não me engano o dano não funciona com monstros, teria que mudar o script. Teste com uma magia existente e me fale (tem que ser o nome da magia e não as palavras).

Link para o post
Compartilhar em outros sites

@MaTTch sim eu testei mas ela esta nesse diretorio "C:\Users\Tatsune\Desktop\tibia\data\spells\scripts\novas"

e o diretorio que voce colocou na spell no caso seria na pasta scripts, sem nenhuma outra pasta so na scripts,

e o dano da spell sai normal

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

você verificou se existe no seu xml uma spell com esse nome? 

Tumb Earth

usa o spell name e não as words.

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)

Link para o post
Compartilhar em outros sites

@xWhiteWolf tem so que esta numa subpasta, aqui o codigo dela 

Spoiler

<instant name="Earth Tumb" words="Tumb earth" lvl="160"  mana="500" prem="1" exhaustion="2000" needlearn="0" event="script" value="novas/exevo mas tera.lua">
        <vocation id="6"/>
    </instant>

 

mano desculpa.... velho sou muito desatento.... desculpa cara namoral....

                                                 Projects are being developed....

Link para o post
Compartilhar em outros sites

deu certo agora com Earth Tumb? xD

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)

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo