Jump to content
  • 0
Sign in to follow this  
=ADM.SPITE=

Adaptaçao de Script

Question

Ai Galera eu precisava de uma adaptação de Script, se alguém puder me ajudar nisso Agradeceria.

 

 

/*

* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
*/
package com.l2jfrozen.gameserver.script.faenor;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Logger;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import javax.script.ScriptContext;
import javax.script.ScriptException;
import org.w3c.dom.Node;
import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.script.Parser;
import com.l2jfrozen.gameserver.script.ParserNotCreatedException;
import com.l2jfrozen.gameserver.script.ScriptDocument;
import com.l2jfrozen.gameserver.script.ScriptEngine;
import com.l2jfrozen.gameserver.script.ScriptPackage;
import com.l2jfrozen.gameserver.scripting.L2ScriptEngineManager;
/**
* @author Luis Arias
*/
public class FaenorScriptEngine extends ScriptEngine
{
static Logger _log = Logger.getLogger(FaenorScriptEngine.class.getName());
public final static String PACKAGE_DIRECTORY = "data/faenor/";
public final static boolean DEBUG = true;
private LinkedList<ScriptDocument> _scripts;
public static FaenorScriptEngine getInstance()
{
return SingletonHolder._instance;
}
private FaenorScriptEngine()
{
_scripts = new LinkedList<ScriptDocument>();
loadPackages();
parsePackages();
}
public void reloadPackages()
{
_scripts = new LinkedList<ScriptDocument>();
parsePackages();
}
private void loadPackages()
{
File packDirectory = new File(Config.DATAPACK_ROOT, PACKAGE_DIRECTORY);//_log.sss(packDirectory.getAbsolutePath());
FileFilter fileFilter = new FileFilter() {
public boolean accept(File file)
{
return file.getName().endsWith(".zip");
}
};
File[] files = packDirectory.listFiles(fileFilter);
if(files == null)
return;
ZipFile zipPack;
for(File file : files)
{
try
{
zipPack = new ZipFile(file);
}
catch(ZipException e)
{
e.printStackTrace();
continue;
}
catch(IOException e)
{
e.printStackTrace();
continue;
}
ScriptPackage module = new ScriptPackage(zipPack);
List<ScriptDocument> scrpts = module.getScriptFiles();
for(ScriptDocument script : scrpts)
{
_scripts.add(script);
}
try
{
zipPack.close();
}
catch(IOException e)
{}
}
/*for (ScriptDocument script : scripts)
{
_log.sss("Script: "+script);
}
_log.sss("Sorting");
orderScripts();
for (ScriptDocument script : scripts)
{
_log.sss("Script: "+script);
}*/
}
public void orderScripts()
{
if(_scripts.size() > 1)
{
//ScriptDocument npcInfo = null;
for(int i = 0; i < _scripts.size();)
{
if(_scripts.get(i).getName().contains("NpcStatData"))
{
_scripts.addFirst(_scripts.remove(i));
//scripts.set(i, scripts.get(0));
//scripts.set(0, npcInfo);
}
else
{
i++;
}
}
}
}
public void parsePackages()
{
L2ScriptEngineManager sem = L2ScriptEngineManager.getInstance();
ScriptContext context = sem.getScriptContext("beanshell");
try
{
sem.eval("beanshell", "double log1p(double d) { return Math.log1p(d); }");
sem.eval("beanshell", "double pow(double d, double p) { return Math.pow(d,p); }");
for(ScriptDocument script : _scripts)
{
parseScript(script, context);
}
}
catch(ScriptException e)
{
e.printStackTrace();
}
}
public void parseScript(ScriptDocument script, ScriptContext context)
{
if(DEBUG)
{
_log.fine("Parsing Script: " + script.getName());
}
Node node = script.getDocument().getFirstChild();
String parserClass = "faenor.Faenor" + node.getNodeName() + "Parser";
Parser parser = null;
try
{
parser = createParser(parserClass);
}
catch(ParserNotCreatedException e)
{
_log.warning("ERROR: No parser registered for Script: " + parserClass);
e.printStackTrace();
}
if(parser == null)
{
_log.warning("Unknown Script Type: " + script.getName());
return;
}
try
{
parser.parseScript(node, context);
_log.fine(script.getName() + "Script Sucessfullty Parsed.");
}
catch(Exception e)
{
e.printStackTrace();
_log.warning("Script Parsing Failed.");
}
}
@Override
public String toString()
{
if(_scripts.isEmpty())
return "No Packages Loaded.";
String out = "Script Packages currently loaded:\n";
for(ScriptDocument script : _scripts)
{
out += script;
}
return out;
}
@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
protected static final FaenorScriptEngine _instance = new FaenorScriptEngine();
}
}

 

Ta ai o Código

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0
package com.l2jfrozen.gameserver.script.faenor;


import java.io.File;

import java.io.FileFilter;

import java.io.IOException;

import java.util.LinkedList;

import java.util.List;

import java.util.logging.Logger;

import java.util.zip.ZipException;

import java.util.zip.ZipFile;


import javax.script.ScriptContext;

import javax.script.ScriptException;


import org.w3c.dom.Node;


import com.l2jfrozen.Config;

import com.l2jfrozen.gameserver.script.Parser;

import com.l2jfrozen.gameserver.script.ParserNotCreatedException;

import com.l2jfrozen.gameserver.script.ScriptDocument;

import com.l2jfrozen.gameserver.script.ScriptEngine;

import com.l2jfrozen.gameserver.script.ScriptPackage;

import com.l2jfrozen.gameserver.scripting.L2ScriptEngineManager;


So pega essa parte e mudar de acordo com seus imports dentro do java, posto os seus imports sera possivel, é e provável que aparecer outros erros ao compilar mais e so adaptar tambem.


newassinaturai.jpg

Share this post


Link to post
Share on other sites
  • 0

 

package com.l2jfrozen.gameserver.script.faenor;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Logger;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import javax.script.ScriptContext;
import javax.script.ScriptException;
import org.w3c.dom.Node;
import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.script.Parser;
import com.l2jfrozen.gameserver.script.ParserNotCreatedException;
import com.l2jfrozen.gameserver.script.ScriptDocument;
import com.l2jfrozen.gameserver.script.ScriptEngine;
import com.l2jfrozen.gameserver.script.ScriptPackage;
import com.l2jfrozen.gameserver.scripting.L2ScriptEngineManager;
So pega essa parte e mudar de acordo com seus imports dentro do java, posto os seus imports sera possivel, é e provável que aparecer outros erros ao compilar mais e so adaptar tambem.

 

 

Mano é pq sou meio noob na parte de Java. não entendo muito dessa parte por isso tava precisando tipo de uma moral pra adaptar

Share this post


Link to post
Share on other sites
  • 0

Sim provavelmente vai ser ate mais facil, deve somente mudar imports pra sua revisão e depois ver ser vai da certo, se nao pegar tem que adaptar algumas coisas, mais como provavelmente a base dessa revisão dever ser frozen ent e facil. caso ainda tenha duvida me mande um mp irei ajuda-lo


newassinaturai.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  



     



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Cai de paraquedas aqui.
    • Eu tinha "customer" na l2jnetwork.
    • Perdi 1h do meu tempo olhando cada comentario aqui nesse seu poste e sabe oque no final eu olhei ? Um caramada dando a tal atencao pra algo que foi jogado com erros, espero que voce Christian-SDM chegue mas longe viu . PARABENS MLQ, voce e unico que eu vejo aqui dando o tal suporte sem quere tirar lucro encima disso
    • Christian-SDM FAZ O QUE ELES TE PEDE BROTHER , VOCÊ É BOM NO QUE FAZ. FAZ TUTORIAIS, VIDEOS ETC.. SE ALGUÉM NÃO ENTENDER. QUE PERGUNTE NO TÓPICO OU TE MANDE UM PM.
    • A Regra diz justamente isso  Meu caro, as regras existem de vc chegar nessa comunidade, não é pq vc não concorda que vc vai mudá-las,  entende?  Você pode estar fazendo uma boa ação, mas pessoas podem utilizar dessa técnica para aplicar golpes e por isso ela não é permitida. Não estou julgando pro vc estar fazendo isso, mas vc ajudar via teamviwer está ajudando 1, vc incentivar ele a postar a duvida e vc responder vc ajudará centenas.  viu a diferença? Você pode fazer lives explicando como fazer algo, pode criar video tutoriais, novos tutoriais, casos de uso, enfim, vc pode ajudar e vc quer fazer isso pelo que entendi.   O que o moderador lhe sugeriu é o correto, ele apenas não lhe advertiu na primeira vez, por isso foi necessário fazer novamente, vc não deve criar essa prática nem essa cultura do suporte exclusivo, isso aqui é uma comunidade aberta, a dúvida de um pode ser a dúvida do outro amanhã e por isso somos quem somos hj pq muitos vão pro google pesquisar e nos encontram.   Meu "puxão de orelha" não é para lhe desanimar, pelo contrário, meu objetivo é justamente o contrário, eu quero com que vc participe e colabora exatamente como está fazendo, mas precisa entender que há limites e regras para que a comunidade continue a funcionar como está a 11 anos.   Qualquer outra dúvida ou resposta ao que postei favor encaminhar para minha caixa de mensagem privada para não poluir o tópico com esse assunto.
    • como vai atualizar pra 382, se essa revisão foi completamente alterada, a base foi retirada do site oficial da acis do tryskell, mas varios programadores trabalharam nesse pack, acredito eu!, nem a versão eu encontrei dentro do core, é completamente diferente da acis do tryskell, outras palavras, foi modificado.
    • ta normal amigo. mato raid bosses eles some na hora, e aparece no .raidinfo, ja os grand bosses, alguns demoram um pouco, dando //kill,  o sistema do jogo demora pra reconhecer, como queen ant e zaken por exemplo, mas ja baium ele some rapidamente, olha video ate o final, demorou mas ele some. E aparece normalmente no .raidinfo. Testa com char normal, e de preferencia online, porque online ele tem  delay e  o sistema trabalha melhor 😄    
    • bom meu querido olha ai o rapas deu report nos boss... :) :v
×
×
  • Create New...