This commit is contained in:
sfb 2011-05-31 07:35:31 -05:00
commit 334b76a0dd
12 changed files with 496 additions and 41 deletions

View file

@ -9,9 +9,11 @@ SET(OVQT_EXT_SYS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin
${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h)
SET(OVQT_PLUG_GEORGES_EDITOR_HDR georges_editor_plugin.h
georges_editor_form.h)
georges_editor_form.h
georges_dirtree_dialog.h)
SET(OVQT_PLUG_GEORGES_EDITOR_UIS georges_editor_form.ui )
SET(OVQT_PLUG_GEORGES_EDITOR_UIS georges_editor_form.ui
georges_dirtree_form.ui)
SET(OVQT_PLUGIN_GEORGES_EDITOR_RCS georges_editor.qrc)

View file

@ -0,0 +1,99 @@
// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2011 Adrian Jaekel <aj at elane2k dot com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// Project includes
#include "georges_dirtree_dialog.h"
// Qt includes
#include <QtGui/QWidget>
#include <QSettings>
// NeL includes
//using namespace NLMISC;
namespace Plugin
{
CGeorgesDirTreeDialog::CGeorgesDirTreeDialog(QString ldPath, QWidget *parent)
:QDockWidget(parent), m_ldPath(ldPath)
{
m_ui.setupUi(this);
m_dirModel = new CGeorgesFileSystemModel(m_ldPath);
m_ui.dirTree->setModel(m_dirModel);
if (m_dirModel->isCorrectLDPath())
{
m_dirModel->setRootPath(m_ldPath);
m_ui.dirTree->setRootIndex(m_dirModel->index(m_ldPath));
}
else
{
m_dirModel->setRootPath(QDir::currentPath());
}
m_ui.dirTree->setAnimated(false);
m_ui.dirTree->setIndentation(20);
connect(m_ui.dirTree, SIGNAL(activated(QModelIndex)),
this, SLOT(fileSelected(QModelIndex)));
}
CGeorgesDirTreeDialog::~CGeorgesDirTreeDialog()
{
delete m_dirModel;
}
void CGeorgesDirTreeDialog::fileSelected(QModelIndex index)
{
QString name;
if (index.isValid() && !m_dirModel->isDir(index))
{
Q_EMIT selectedForm(m_dirModel->fileName(index));
}
}
void CGeorgesDirTreeDialog::changeFile(QString file)
{
QModelIndex index = m_dirModel->index(file);
m_ui.dirTree->selectionModel()->select(index,QItemSelectionModel::ClearAndSelect);
m_ui.dirTree->scrollTo(index,QAbstractItemView::PositionAtCenter);
fileSelected(index);
}
void CGeorgesDirTreeDialog::ldPathChanged(QString path)
{
m_ldPath = path;
delete m_dirModel;
m_dirModel = new CGeorgesFileSystemModel(m_ldPath);
m_ui.dirTree->setModel(m_dirModel);
if (m_dirModel->isCorrectLDPath())
{
m_dirModel->setRootPath(m_ldPath);
m_ui.dirTree->setRootIndex(m_dirModel->index(m_ldPath));
}
else
{
m_dirModel->setRootPath(QDir::currentPath());
}
}
} /* namespace NLQT */

View file

@ -0,0 +1,62 @@
// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2011 Adrian Jaekel <aj at elane2k dot com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef GEORGES_DIRTREE_DIALOG_H
#define GEORGES_DIRTREE_DIALOG_H
// Qt includes
#include <QtGui/QWidget>
// STL includes
// NeL includes
// Project includes
#include "ui_georges_dirtree_form.h"
#include "georges_filesystem_model.h"
namespace Plugin
{
class CGeorgesDirTreeDialog: public QDockWidget
{
Q_OBJECT
public:
CGeorgesDirTreeDialog(QString ldPath, QWidget *parent = 0);
~CGeorgesDirTreeDialog();
void ldPathChanged(QString);
private:
Ui::CGeorgesDirTreeDialog m_ui;
CGeorgesFileSystemModel *m_dirModel;
QString m_ldPath;
Q_SIGNALS:
void selectedForm(const QString);
private Q_SLOTS:
void fileSelected(QModelIndex index);
void changeFile(QString file);
friend class CMainWindow;
}; /* CGEorgesDirTreeDialog */
} /* namespace NLQT */
#endif // GEORGES_DIRTREE_DIALOG_H

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CGeorgesDirTreeDialog</class>
<widget class="QDockWidget" name="CGeorgesDirTreeDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>111</height>
</size>
</property>
<property name="features">
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
</property>
<property name="windowTitle">
<string>Leveldesign Path</string>
</property>
<widget class="QWidget" name="dockWidgetContents">
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTreeView" name="dirTree">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -17,6 +17,7 @@
// Project includes
#include "georges_editor_form.h"
#include "georges_editor_constants.h"
#include "georges_dirtree_dialog.h"
#include "../core/icore.h"
#include "../core/imenu_manager.h"
@ -34,36 +35,44 @@ namespace Plugin
{
GeorgesEditorForm::GeorgesEditorForm(QWidget *parent)
: QMainWindow(parent)
: QMainWindow(parent),
m_georgesDirTreeDialog(0)
{
m_ui.setupUi(this);
m_undoStack = new QUndoStack(this);
_openAction = new QAction(tr("&Open..."), this);
_openAction->setIcon(QIcon(Core::Constants::ICON_OPEN));
_openAction->setShortcut(QKeySequence::Open);
_openAction->setStatusTip(tr("Open an existing file"));
_openAction = new QAction(tr("&Open..."), this);
_openAction->setIcon(QIcon(Core::Constants::ICON_OPEN));
_openAction->setShortcut(QKeySequence::Open);
_openAction->setStatusTip(tr("Open an existing file"));
connect(_openAction, SIGNAL(triggered()), this, SLOT(open()));
_newAction = new QAction(tr("&New..."), this);
_newAction->setIcon(QIcon(Core::Constants::ICON_NEW));
_newAction->setShortcut(QKeySequence::New);
_newAction->setStatusTip(tr("Create a new file"));
_newAction = new QAction(tr("&New..."), this);
_newAction->setIcon(QIcon(Core::Constants::ICON_NEW));
_newAction->setShortcut(QKeySequence::New);
_newAction->setStatusTip(tr("Create a new file"));
connect(_newAction, SIGNAL(triggered()), this, SLOT(newFile()));
_saveAction = new QAction(tr("&Save..."), this);
_saveAction->setIcon(QIcon(Core::Constants::ICON_SAVE));
_saveAction->setShortcut(QKeySequence::Save);
_saveAction->setStatusTip(tr("Save the current file"));
_saveAction = new QAction(tr("&Save..."), this);
_saveAction->setIcon(QIcon(Core::Constants::ICON_SAVE));
_saveAction->setShortcut(QKeySequence::Save);
_saveAction->setStatusTip(tr("Save the current file"));
connect(_saveAction, SIGNAL(triggered()), this, SLOT(save()));
_fileToolBar = addToolBar(tr("&File"));
_fileToolBar->addAction(_openAction);
_fileToolBar->addAction(_newAction);
_fileToolBar = addToolBar(tr("&File"));
_fileToolBar->addAction(_openAction);
_fileToolBar->addAction(_newAction);
_fileToolBar->addAction(_saveAction);
readSettings();
// create leveldesign directory tree dockwidget
m_georgesDirTreeDialog = new CGeorgesDirTreeDialog(m_leveldesignPath, this);
addDockWidget(Qt::LeftDockWidgetArea, m_georgesDirTreeDialog);
//m_georgesDirTreeDialog->setVisible(false);
connect(Core::ICore::instance(), SIGNAL(changeSettings()),
this, SLOT(settingsChanged()));
}
GeorgesEditorForm::~GeorgesEditorForm()
@ -98,6 +107,10 @@ void GeorgesEditorForm::readSettings()
QSettings *settings = Core::ICore::instance()->settings();
settings->beginGroup(Constants::GEORGES_EDITOR_SECTION);
settings->endGroup();
settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_leveldesignPath = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString();
settings->endGroup();
}
void GeorgesEditorForm::writeSettings()
@ -108,4 +121,19 @@ void GeorgesEditorForm::writeSettings()
settings->sync();
}
void GeorgesEditorForm::settingsChanged()
{
QSettings *settings = Core::ICore::instance()->settings();
settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
QString oldLDPath = m_leveldesignPath;
m_leveldesignPath = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString();
settings->endGroup();
if (oldLDPath != m_leveldesignPath)
{
m_georgesDirTreeDialog->ldPathChanged(m_leveldesignPath);
}
}
} /* namespace Plugin */

View file

@ -26,6 +26,7 @@
namespace Plugin
{
class CGeorgesDirTreeDialog;
class GeorgesEditorForm: public QMainWindow
{
Q_OBJECT
@ -36,13 +37,12 @@ public:
QUndoStack *undoStack() const;
Q_SIGNALS:
public Q_SLOTS:
void open();
void newFile();
void save();
void settingsChanged();
private Q_SLOTS:
private:
void readSettings();
void writeSettings();
@ -50,10 +50,13 @@ private:
QUndoStack *m_undoStack;
Ui::GeorgesEditorForm m_ui;
CGeorgesDirTreeDialog *m_georgesDirTreeDialog;
QToolBar *_fileToolBar;
QAction *_openAction;
QAction *_newAction;
QAction *_saveAction;
QString m_leveldesignPath;
}; /* class GeorgesEditorForm */
} /* namespace Plugin */

View file

@ -69,12 +69,12 @@ void GeorgesEditorPlugin::setNelContext(NLMISC::INelContext *nelContext)
QString GeorgesEditorPlugin::name() const
{
return tr("GeorgesEditor");
return tr("Georges Editor");
}
QString GeorgesEditorPlugin::version() const
{
return "0.1";
return "0.2";
}
QString GeorgesEditorPlugin::vendor() const
@ -84,13 +84,14 @@ QString GeorgesEditorPlugin::vendor() const
QString GeorgesEditorPlugin::description() const
{
return "Tool to create & edit sheets or forms.";
return tr("Tool to create & edit sheets or forms.");
}
QStringList GeorgesEditorPlugin::dependencies() const
{
QStringList list;
list.append(Core::Constants::OVQT_CORE_PLUGIN);
list.append("ObjectViewer"); // TODO
return list;
}

View file

@ -0,0 +1,95 @@
// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2011 Adrian Jaekel <aj at elane2k dot com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "georges_filesystem_model.h"
#include <QApplication>
#include <QStyle>
namespace Plugin
{
CGeorgesFileSystemModel::CGeorgesFileSystemModel(QString ldPath, QObject *parent)
: QFileSystemModel(parent),
m_ldPath(ldPath),
m_correct(false)
{
checkLDPath();
}
CGeorgesFileSystemModel::~CGeorgesFileSystemModel()
{
}
QVariant CGeorgesFileSystemModel::data(const QModelIndex& index, int role) const
{
if (role == Qt::DecorationRole)
{
if (!m_correct)
return QVariant();
if (isDir(index))
return QApplication::style()->standardIcon(QStyle::SP_DirIcon);
}
if (!m_correct && role == Qt::DisplayRole)
{
if (index.parent().isValid())
return QVariant();
return tr("Set a correct leveldesign path ...");
}
return QFileSystemModel::data(index, role);
}
int CGeorgesFileSystemModel::columnCount(const QModelIndex &/*parent*/) const
{
return 1;
}
int CGeorgesFileSystemModel::rowCount(const QModelIndex &parent) const
{
if (!m_correct)
{
if(parent.isValid())
{
return 0;
}
else
{
return qMin(QFileSystemModel::rowCount(parent),1);
}
}
return QFileSystemModel::rowCount(parent);
}
void CGeorgesFileSystemModel::checkLDPath()
{
QFileInfo check1(QString("%1/game_element").arg(m_ldPath));
QFileInfo check2(QString("%1/DFN").arg(m_ldPath));
if (check1.exists() && check2.exists())
{
m_correct = true;
}
else
{
m_correct = false;
}
}
} /* namespace NLQT */
/* end of file */

View file

@ -0,0 +1,50 @@
// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2011 Adrian Jaekel <aj at elane2k dot com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef GEORGES_FILESYSTEM_MODEL_H
#define GEORGES_FILESYSTEM_MODEL_H
#include <QtGui/QFileSystemModel>
namespace Plugin
{
class CGeorgesFileSystemModel : public QFileSystemModel
{
QString m_ldPath;
public:
CGeorgesFileSystemModel(QString ldPath, QObject *parent = 0);
~CGeorgesFileSystemModel();
int columnCount(const QModelIndex &/*parent*/) const;
int rowCount(const QModelIndex &/*parent*/) const;
QVariant data(const QModelIndex& index, int role) const ;
bool isCorrectLDPath()
{
return m_correct;
}
void checkLDPath();
private:
bool m_correct;
};/* class CGeorgesFileSystemModel */
} /* namespace NLQT */
#endif // GEORGES_FILESYSTEM_MODEL_H

View file

@ -103,7 +103,7 @@ namespace Plugin
QString CLogPlugin::name() const
{
return "LogPlugin";
return "NeL Log";
}
QString CLogPlugin::version() const
@ -118,7 +118,7 @@ namespace Plugin
QString CLogPlugin::description() const
{
return "DockWidget to display all log messages from NeL.";
return tr("DockWidget to display all log messages from NeL.");
}
QStringList CLogPlugin::dependencies() const

View file

@ -688,12 +688,15 @@
<DYNAMIC_CHILD CLASS_NAME="recv_named_item"/>
<DYNAMIC_CHILD CLASS_NAME="recv_xp"/>
<DYNAMIC_CHILD CLASS_NAME="destroy_item"/>
<DYNAMIC_CHILD CLASS_NAME="give_control" />
<DYNAMIC_CHILD CLASS_NAME="recv_charge_point" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="recv_money" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="recv_money $amount$"/>
<PARAMETER NAME="amount" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="guild" TYPE="boolean" VISIBLE="true" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="chain_mission" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
@ -835,11 +838,20 @@
<PARAMETER NAME="faction" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="point" TYPE="string" VISIBLE="true"/>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="give_control" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
<PARAMETER NAME="outpost_name" TYPE="string" VISIBLE="true" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="recv_charge_point" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
<PARAMETER NAME="charge_points" TYPE="string" VISIBLE="true" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="recv_fame" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="recv_fame $value$ $fame_owner$"/>
<PARAMETER NAME="faction" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="value" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="guild" TYPE="boolean" VISIBLE="true" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="recv_guild_xp" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
@ -852,6 +864,7 @@
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="group" TYPE="boolean" VISIBLE="true"/>
<PARAMETER NAME="guild" TYPE="boolean" VISIBLE="true" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="learn_action" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
@ -1007,6 +1020,7 @@
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="item/quantity" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="group" TYPE="boolean" VISIBLE="true"/>
<PARAMETER NAME="guild" TYPE="boolean" VISIBLE="true" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="recv_xp" TYPE="node" AUTO_INIT="false" DELETABLE="true" NUMBERIZE="false">
@ -1019,6 +1033,7 @@
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="destroy_item $item/quantity/quality$"/>
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="guild" TYPE="boolean" VISIBLE="true" />
</PRIMITIVE>
<!-- Fin actions -->
@ -1093,6 +1108,8 @@
<DYNAMIC_CHILD CLASS_NAME="recv_named_item"/>
<DYNAMIC_CHILD CLASS_NAME="recv_xp"/>
<DYNAMIC_CHILD CLASS_NAME="destroy_item"/>
<DYNAMIC_CHILD CLASS_NAME="give_control" />
<DYNAMIC_CHILD CLASS_NAME="recv_charge_point" />
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="kill" TYPE="node" PARENT_CLASS="objective_parent">
@ -1106,6 +1123,9 @@
<PARAMETER NAME="faction/quantity" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="place" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="talk_to" TYPE="node" PARENT_CLASS="objective_parent">
@ -1115,7 +1135,9 @@
<DEFAULT_VALUE VALUE="$giver$"/>
</PARAMETER>
<PARAMETER NAME="phrase" TYPE="string_array" VISIBLE="true" FILE_EXTENSION="txt"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="cast" TYPE="node" PARENT_CLASS="objective_parent">
@ -1124,24 +1146,34 @@
<PARAMETER NAME="action" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="place" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="forage" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="forage"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="loot" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="loot"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="craft" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="craft"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="target" TYPE="node" PARENT_CLASS="objective_parent">
@ -1150,20 +1182,27 @@
<PARAMETER NAME="races_to_target" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="faunas_to_target" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="place" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="sell" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="sell"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="buy" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="buy"/>
<PARAMETER NAME="item/quantity/quality" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="give_item" TYPE="node" PARENT_CLASS="objective_parent">
@ -1173,7 +1212,9 @@
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="$giver$"/>
</PARAMETER>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="give_money" TYPE="node" PARENT_CLASS="objective_parent">
@ -1182,7 +1223,9 @@
<PARAMETER NAME="npc_name" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="$giver$"/>
</PARAMETER>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="visit" TYPE="node" PARENT_CLASS="objective_parent">
@ -1190,7 +1233,9 @@
<PARAMETER NAME="place" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="items_worn" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="escort" TYPE="node" PARENT_CLASS="objective_parent">
@ -1198,26 +1243,35 @@
<PARAMETER NAME="group_to_escort" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="save_all" TYPE="boolean" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="skill" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="skill $skill_name$ $level$"/>
<PARAMETER NAME="skill_name/level" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="do_mission" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="do_mission"/>
<PARAMETER NAME="mission_names" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="wait_ai_msg" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="wait_ai_msg $msg_content$"/>
<PARAMETER NAME="msg_content" TYPE="string_array" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="queue_start" TYPE="node" PARENT_CLASS="objective_parent">
@ -1250,13 +1304,18 @@
<CONTEXT_VALUE VALUE="zorai_newbie"/>
</COMBO_VALUES>
</PARAMETER>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>
<PRIMITIVE CLASS_NAME="ring_scenario" TYPE="node" PARENT_CLASS="objective_parent">
<PARAMETER NAME="name" TYPE="string" VISIBLE="true" AUTONAME="ring_scenario"/>
<PARAMETER NAME="scenario_tag" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="nb_guild_members_needed" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1" />
</PARAMETER>
</PRIMITIVE>

View file

@ -61,9 +61,11 @@
* trans_tool update_phrase_work
* trans_tool inject_clause
* trans_tool sort_trans_phrase
* trans_tool make_worksheet_diff
* trans_tool merge_worksheet_diff
* trans_tool crop_lines
* trans_tool extract_bot_names
* trans_tool extract_new_sheet_names
*/