Migration
Please use the migrated document at URL shown below.
To check the quality of the text itself
À corriger par rapport à l'anglais
User guide for Ark, short for Ryzom Arkitect.
For historical reasons, those manuals refers very often, almost always, to A.R.C.C..
This is due to the fact that the full documentation has been started with the initial name, ARCC, meaning Advanced Ryzom Content Creator.
Note: with the exception of paragraph 2.1, all paragraphs Level 2 are in single page that can be accessed by clicking on the arrow (→) behind the title of the functions.
The script functions
This guide is intended to show how to use the scripting capabilities of the ARCC, Advanced Ryzom Content Creator.
It is recommended to read the volume I for having an overview of the use of the ARCC.
The functions of the script are classified into five groups.
- Visualizations
- Actions without player intervention
- Checks
- Captures information
- Steps to be validated by player
Visualizations
This group has only one function, one of the simplest and most common.
It serves as a reference with regard to the areas and buttons common to all functions detailed in separate pages for an easy maintenance of the ARRC documentation.
- Common objects will be reported in the documentation by [common].
- The tag [expert] corresponds to the advanced editing mode (see below paragraph 10).
window title and function name
|
The edit mode is also indicated by an icon alongside the function which was published in this mode.
|
weVMessage (Displaying a message)
|
Internal function name: weVMessage
|
window title and function name
This function displays a message in a WebIG window, with a title (in the sample here: Unit_test: " May the Force be with you " )
- 1) [commun] Function name.
- 2) [expert] Always display this message (Yes/No)
- 3) [expert] Player must click the link in the message (Yes/No)
- 4) Text field for the message.
- 5) [commun] enlargement zone corner (4)
- 6) [commun] toggle button editor. (assisted mode or not)
- 7) [expert] Type of message content:
- bbcode (recommended; an aide-memoire of ryzom bbcode is provided in a dedicated page.)
Exemple :
[session=url_validated][scriptinfos]is_valid_url[/scriptinfos][/session]
- html (Specific, studied later, but immediately testable in web page)
Exemple :
<hr/>Hello!
<br/>this is a new line
<hr>External link!
<img src="http://wiki.blender.org/skins/naiad/images/blender_logo.png"/><hr/>
- lua (very specific; to see later)
Exemple :
[lua]
function game:onMissionSelected(index)
disableModalWindow()
self:updateCurrMissionComboBox()
local missionWnd = getMissionWindow()
setOnDraw(missionWnd, "game:updateArccMissionCustomDesc()")
end
...
updateArccMissionCustomDesc_loop = 100
game:updateArccMissionCustomDesc(1)
[/lua]
- 8) [commun] Internal name of the function. This name is used especially for jumps, loops ...
- 9) [commun] Save Changes button.
- 10) [commun] toggle the "Basic Edition" mode to "Advanced Edit" mode.
Once in "Advanced Edit" mode, it is no longer possible to return to the "Basic Edition" mode.
The description of functions in that guide will always be in "Advanced Edit" mode.
The specific "Advanced objects" are indicated by [expert]
Actions without player intervention
End of script →
Migration
Please use the migrated document at URL shown below.
|
Function name : lEnd_v4
|
It is "wise" to finish the scripts systematically by an "End of Script". The "End of script" can be judiciously used to abort a script. At the end of the script, it helps to have a single output accessed by conditional branches as weAJump (jump).
This function has only one parameter: the name.
The name of all functions is always initiated by a single code, but it can be modified to facilitate the writing and reading of the script, for example, and especially when the function can be called by another, including jumps and connections . (Here the function was renamed "Terminator").
Jump →
Migration
Please use the migrated document at URL shown below.
|
Function name : lJump_v4
|
This function allows you to interrupt the sequence of steps (also called "stages" in ARCC) by connecting to another function within the script.
It only allows to jump "foreward." To go back, use the function weAWhile .
The only parameter to provide is the function that will be executed next.
Include →
Migration
Please use the migrated document at URL shown below.
|
Function name : lInclude_v4
|
This function allows you to call another script for the event and after back to proccessing other stages.
- 1) [expert] Reset scripts to be run (Yes / No)
- 2) Name of the script to run.
While →
Migration
Please use the migrated document at URL shown below.
Do not work
|
Function name : weAWhile
|
Window (webig windows management) →
|
Function name : weAWindow_v3
|
This feature allows you to manage dialogs (open / close, size and position)
- 1) Execute action : (Activate/Close). Used to open a new window or close an existing one (see below).
- 2) Resize : (Yes / No) If yes, use the values in W(3) et H(4) .
- 3) W : Width in pixels (In the example of the IG window, the value is 400)
- 4) H : Height in pixels (In the example of the IG window, the value is 300)
- 5) Move : (Yes / No) If yes, use the values in X(6) et Y(7) . These values are in percent relatively to the dimensions of the window Ryzom.
- 6) X en %: Relative position in X, 100% box on the right (Like here, in the example of the IG window).
- 7) Y en %: Relative position in Y, 100 % box on the top. (In the example of the IG window, the value 50 % put de box in the middle)
- 8) [expert] Webig window. The default is "Current" in basic mode. This setting determines what kind of WebIG window has to be controlled.
- → BBCode :
- →$_GET[« current_window »] :
- → Webig: Is the window that opens when you do <shift> + w. This is the one that displays web apps
- → Browse Npc: Is the window that opens when talking to an NPC. So this is the one that opens when you link a script to an NPC.
- → Web Transaction: This is a hidden window that receives responses from the server. The player should never see.
- 9) windowTitle : The title of the window when that last one is visible.
DisplayIgMessage (Display message in game: broadcast, crafting information...) →
Migration
Please use the migrated document at URL shown below.
|
Nom interne de la fonction : weADisplayIgMessage
|
This function allows you to post messages in chat channels (2).
Note that the use of the traduction allows you to have the text in the language of the player. For the key "Blade Runner", the text in English here is: "We call it Voight-Kampff for short" as shown in the IG picture.
WeADisplayIgMessagewindow
The following table lists the characteristics of the choice of channels offered by the function (4).
Mode
|
where
|
color
|
channel
|
SYS. INFO
|
Default message system
|
|
White
|
|
Yes
|
Only in arround channel
|
|
Yellow
|
Around
|
No
|
Ambiance
|
Top
|
Yellow
|
|
Yes (3)
|
Task
|
Bottom
|
white
|
|
Yes
|
Broadcast messages
|
Top
|
White
|
Around
|
Yes
|
Title
|
Bottom
|
Yellow
|
|
Yes (1)
|
Taged broadcast messages...
|
Top
|
White
|
Around
|
Yes
|
XP gain
|
Bottom
|
Yellow
|
|
Yes (1)
|
SP gain
|
Bottom
|
Yellow
|
|
Yes (1)
|
Zone
|
Top
|
White
|
|
Yes
|
Damage to me
|
|
Red
|
|
Yes (2)
|
Damage to me
|
|
Red
|
|
Yes (2)
|
Damage to me from player
|
|
Dark red
|
|
Yes
|
Damage from me
|
|
Orange
|
|
Yes
|
The opponent misses
|
|
Grey
|
|
Yes (4)
|
I miss
|
|
White
|
|
Yes
|
Item
|
Bottom
|
Green
|
|
Yes
|
Item other in group
|
Bottom
|
Grey
|
|
|
Item failed
|
Bottom
|
Magenta
|
|
Yes
|
Spell to me
|
|
Blue
|
|
Yes
|
Spell from me
|
|
Light blue
|
|
Yes
|
Emote
|
|
Pink
|
|
Yes
|
Message of the day
|
Bottom
|
Yellow
|
|
Yes (1)
|
Forage Locate Deposit
|
Bottom
|
Green
|
|
|
False
|
Top
|
Orange
|
|
Yes
|
False in battle
|
Top
|
Yellow
|
|
Yes (3)
|
PVP timer
|
Bottom
|
Orange
|
|
|
Thema finished
|
Bottom
|
Yellow
|
|
Yes (1)
|
Item special effec
|
|
Slate
|
|
Yes (4)
|
Item special effect with center text
|
Top
|
Slate
|
|
Yes
|
Outpost state message
|
Top
|
Light blue
|
|
Yes
|
Ring invitation
|
|
Green
|
Around
|
|
ShapeManager →
Migration
Please use the migrated document at URL shown below.
|
Function name : weAShapeManager_v2
|
WeAShapeManager allows to pop objects in Ryzom. Here, a magic bag back appears levitating above the character.
WeAShapeManager Main Window
- 1) clear
- 2) shapes: Any quantity of objects may be added. They are described below:
- 3) [commun] The internal name of the function. This name is useful for jumps, loops ...
- shape: <an_object>.ps
- shapeName: Name given to the object.
- shapeUrl: THIS&bag
- texture:
- posX: X absolute position in the map of Ryzom.
- posY: Y absolute position in the map of Ryzom.
- posZ: Z absolute position in the map of Ryzom.
- posA: Angle around Z axis.
- scale: Default = 1.
Database (Save value in the database) →
Migration
Please use the migrated document at URL shown below.
|
Function name : weADatabase_v2
|
This function is used to store information in a usable local DB thereafter in the same script or another in the same event. It can also increment the numerical values.
It is best to use the assisted edition mode in a first step, as viewed here.
- 1) Database name : for the whole the event, Omega, in the example.
- 2) databaseRow : Khi, in the example.
- 3) databaseId : player, guild, arcc, civ, cult, org, race.
- 4) Conversion method : (setvalue/addvalue) : there are two modes of insertion into the database, or overwriting the previous contents or by adding another algebraic value.
- 5) param : may be different static values recovered from elsewhere or calculated. Those are:
- A Blank or an <empty>. In calculation, the "empty" may be equated with "zero."
- A Constant: "-1" in "Addvalue" mode creates a decrement.
- A common parameter to the event : [param]Max_player_bag[/param] or [session]LocalTemporaryData[/session]
- A value contained in another database : [db=Player_Bag]Last[/db]
- A function : [func]now[/func]
- A calculation :
[func=min]
[math]
([func]now[/func]
-
[db=Bags]
Status:[get]bag[/get]
[/db])
[/math]
..|12
[/func]
ReceiveItems (Player received item) →
Migration
Please use the migrated document at URL shown below.
|
Function name : weAReceiveItems
|
|
WeAReceiveItems script window
- 1) Received items: Here a soft toy has been added in the bag of the player.
- 2) Several object may be added. You need at least one. ([commun] tool for multi sub-selections)
- 3) inventory: Where the object will be stored: the bag, the house, the guild hall, an animal (mektoub riding or pack) or a temporary location.
- 4) random (Yes / No):
- 5) askForResponse (Yes / No):
- 6) isHmagicNextCommand: This is a magical command (Yes / No):
- 7) [commun] The internal name of the function. This name is useful for jumps, loops ...
- 8) Parameters: created by the function.
- 9) Sheet name
- 10) Quantity
- 11) Quality
- 12) Items in bag.
- 13) quantity_max
- 14) quality_max
- 15) customName
- 16) customText: Item Description shown in info-menu.
|
DeleteItems →
Migration
Please use the migrated document at URL shown below.
|
Function name: weADeleteItems
|
WeADeleteItems script window
- 1) Deleted items: Here a soft toy. Sheet description of the object is identical to that used for ReceiveItems (Player received item)
- 2) Several object may be added. You need at least one. ([commun] tool for multi sub-selections)
- 3) inventory: From where the object will be removed: the bag, the house, the guild hall, an animal (mektoub riding or pack) or a temporary location.
- 4) random (Yes / No): (Respectively, to what?)
- 5) [common] The internal name of the function. This name is useful for jumps, loops ...
- 6) Parameters: created by the function.
NpcManager →
Migration
Please use the migrated document at URL shown below.
Not checked
|
Nom interne de la fonction : weANpcManager
|
Gestion du PNJ.
- 1) groupName
- 2) hmagicActions: List of hmagicActions for the NPC. ([commun] tool for multi sub-selections)
- 3) [commun] The internal name of the function. This name is useful for jumps, loops ...
weAGroupScript
weASpawnBot
|
- 1) Sheet name
- 2) Quantity
- 3) dispersion
- 4) orientation
- 5) botName
- 6) posX
- 7) posY
- 8) look
|
weADeSpawnBot
weAGroupScriptSay
weAGroupScriptEmote
weAGroupScriptAiAction
Hmagic (Send command to server) →
Migration
Please use the migrated document at URL shown below.
|
Function name : WeHMagic
|
Hmagic will send a command to the server.
- 1) hmagicActions List ([commun] tool for multi sub-selections)
- 2) Every hmagicActions is editable. ([commun] tool for multi sub-selections)
- 3) One can add a new hmagicActions behind each one or at the and of the list. ([commun] tool for multi sub-selections)
- 4) hmagicActions can be reordered. ([commun] tool for multi sub-selections)
- 5) callAfterCheck (Yes / No). Not operational.
- 6) valideAction:action to be performed if Hmagic is validated. The choices are the same as those proposed by the Jump.
- 7) failAction:action to be performed if Hmagic is not validated. The choices are the same as those proposed by the Jump.
- 8) [commun] Internal name of the function. This name is used especially for jumps, loops ...
weASendUrl
Used to open an url in a player.
It should be used for instance for to Rangers rite
|
- 1) isTarget: Yes / No
- 2) playerName: It may be recovered in previous stages or stored in the DB data from the vent.
- 3) appName: It may be recovered in previous stages or stored in the DB data from the vent.
- 4) appParams: It may be recovered in previous stages or stored in the DB data from the vent.
|
weATeleport
Téléports player and possibly his mount.
|
- 1) x: X coordinate
- 2) y: Y coordinate
- 3) z: Z coordinate. 0 indicates that the object is placed on the ground.
- 4) t: Time in seconds to start teleporting.
- 5) tpMektoub (Yes / No): Mektoub to teleport. Default: No
- 6) forbidWhenPvpFlag (Yes / No): Prohibition to teleport with the PVP flag on. Default: Yes.
|
weATeleportToEntity
|
- 1) entity: Entity to which the player will be teleported.
- 2) tpMektoub (Yes / No): téléportage of Mektoub. Default: No
- 3) forbidWhenPvpFlag (Yes / No): Prohibition to teleport with the PVP flag on. Default: Yes.
|
weAManageMoney
Give or Take Dappers.
|
- 1) hmagicAction: (give/take)
- 2) Dappers: How many (direct number, supplied or calculated).
|
weAChangeFame
|
- 1) faction: To chose among Fyros, Matis, Tryker, Zoraï, Kami and Karavan.
- 2) hmagicAction: (add/delete/set)
- 3) Quantité: How many (direct number, supplied or calculated).
|
weAChangeFactionPoints
|
- 1) faction: To chose among Fyros, Matis, Tryker, Zoraï, Kami and Karavan.
- 2) hmagicAction: (add/delete/set)
- 3) Quantité: How many (direct number, supplied or calculated).
|
weAManageGuildMoney
|
- 1) hmagicAction: (give/take)
- 2) Dappers: How many (direct number, supplied or calculated).
|
weAManageBuilding
Sell / make accessible player or guild house.
|
- 1) hmagicAction: buying / saling apartment / guild hall.
- 2) building: a long list of property available, but not easy to understand.
|
weATriggerPacs
Trigger an event PACS (to activate an elevator or vortex)
|
- 1) hmagicAction: (in/out)
- 2) triggerId: How fill it?!!
|
weASetOrganization
Defining the Third Faction Player (Marauder, Ranger, Trytonist)
|
- 1) orgName: Actually, only one value marauder.
|
weAFixOldBuildings
|
- 1) scopeAction: (Player / guild)
|
Checks
All these check offers action after a logical evaluation, TRUE or FALSE.
Check Datas →
Migration
Please use the migrated document at URL shown below.
|
Function name: weCDatas
|
This function is the equivalent of a logical test: if Value compared with testValue by testFunction is TRUE then make valideAction else failAction .
- 1) Left value to be checked.
- 2) Kind of test (==, !=, <, >, <=, >=)
- 3) Right value of the test
- 4) Action if the test is "True".
- 5) Action if the test is "False".
- 6) [commun] Internal name of the function. This name is used especially for jumps, loops ...
Switch →
Migration
Please use the migrated document at URL shown below.
|
Function name : weCSwitch_v2
|
This function allows 10 conditional branches + 1 default based on a value supplied as the first parameter of comparison.
- 1) Left value to be checked.
- 2) Kind of test (==, !=, <, >, <=, >=)
- 3) Right value of the test
- 4) Action if the test is "True". The last line gives the default action, ie when all the previous tests were given "False".
- 5) [commun] Internal name of the function. This name is used especially for jumps, loops ...
Check Database (Verification of value in database) →
Migration
Please use the migrated document at URL shown below.
|
Function name : weCDatabase
|
This function allows to chain actions depending on a value in a database of the event.
- 1) Database name : the event of a base (omega in the example).
- 2) databaseRow : a base row (omega, in the example)
- 3) databaseId : (global, player, guild)
- 4) testFunction: Kind of test (==, !=, <, >, <=, >=)
- 5) testValue: Right value of the test
- 6) valideAction: Action if the test is "True".
- 7) failAction: Action if the test is "False".
- 8) [commun] Internal name of the function. This name is used especially for jumps, loops ...
Check PlayerInfos (Player verification check from server: Fames, Dapper, Position...) →
|
Function name : weCPlayerInfos
|
weCPlayerInfos can test any information stored on the server for the player and run an appropriate action.
- 1) checks: A list of tests that will be performed in this step added by the "plus" icon. ([commun] tool for multi sub-selections)
- 2) valideAction: Action to do if all the tests are validated (True).
- 3) failAction: Action to do if at least one test is not validated (False).
- 4) resetScriptIfFailed: (Yes / No) Resetting the script if failure (at least one test is not validated).
- 5) openWindow: Window to be open to display the tests results. (None, WebIG, Browse NPC, Web Transaction).
- 6) hiddenWindow (Yes / No)
- 7) [commun] Internal name of the function. This name is used especially for jumps, loops ...
weCPlayerFaction
Tests if the player belongs to a faction.
|
- 1) faction: faction to test. This faction may take one of the following:
- neutral civ, neutral cult, neutral civ cult;
- fyros, matis tryker, zorai;
- kami, karavan;
- marauder, ranger, trytonist.
|
weCPlayerDappers
Tests if the player has a certain amount of dappers.
|
- 1) Quantity: quantity of required dappers.
|
weCPlayerPosition
Examines the position of the player. If the player is in the rectangle bounded by coordinates mi /max x/y the return value is TRUE.
|
- 1) min_x: minimum x-coordinate in absolute in the map of Atys.
- 2) min_y: minimum y-coordinate in absolute in the map of Atys.
- 3) max_x: maximum x-coordinate in absolute in the map of Atys.
- 4) max_y: maximum y-coordinate in absolute in the map of Atys.
|
weCPlayerItem
Tests if a certain amount of item at certain level is present in one of the containers of the player.
|
- 1) inventory: Location where should be found the item: bag, player_room, guild, pet_animal (1-4) or temporary.
- 2) sheet name
- 3)Quality: the required quality of the item.
- 4) minQuantity: the minimum amount.
|
weCPlayerTarget
Tests if the target is the desired one.
|
- 1) type: Sheet, bot_name, player_name, leaguemate, teammate or guildmate.
- 2) Value: the first three types require precision (Sheet, bot_name, player_name)
|
weCPlayerFame
Tests reputation in the nations and factions.
|
- 1) faction: faction that can be tested are:
- fyros, matis, tryker, zoraï
- kami, karavan
- Combinations may be used to test marauders, rangers...
- 2) below_or_above: determines if the test is on the lower or higher of the following value given in next field (3).
- 3) Valeur: minimum or maximum level required for the fame respectively with the comparison selected in the previous field below_or_above below_or_above (2).
|
weCPlayerGuild
Tests the rank of the player in his guild
|
- 1) rank: Leader, High Officer, Officer, Member.
|
weCPlayerGuildDappers
Tests if a minimum amount of dappers is in the treasury of the guild.
|
- 1) Quantity: quantity of required dappers.
|
weCPlayerFreetrial
Test if the player is free version or not.
|
no params
|
Captures information
PlayerInfos (Captures information on the player) →
Migration
Please use the migrated document at URL shown below.
|
Function name : weGPlayerInfos
|
weGPlayerInfos allows you to take all the information stored on the target or position of the player.
- 1) info (target, targetPos, playerPos)
- 2) [commun] Internal name of the function. This name is used especially for jumps, loops ...
Steps to be validated by player
NewGiveItems →
Migration
Please use the migrated document at URL shown below.
|
Function name : weSNewGiveItems
|
weSNewGiveItems can give items.
WeSNewGiveItems main window
- 1) Items wanted (one). ([commun] tool for multi sub-selections)
- 2) [commun] Internal name of the function. This name is used especially for jumps, loops ...
Description of items requested.
WeSNewGiveItems item sub window
- 1) Sheet name: *.sitem
- 2) Quantity: the required quantity of the item
- 3) Quality: the required quality of the item
- 4) quantity_max: maximum amount.
- 5) quality_max: maximum quality.
NpcDialog (NPC dialog bubble option like classic missions) →
Migration
Please use the migrated document at URL shown below.
|
Function name : weSNpcDialog_v2
|
This function creates a bubble of an NPC dialogue with options to choose.
This bubble are composed of two parts.
- The upper part contains an introductory text, which can be a lengthy monologue.
- The lower part contains a set of choices that enchaîneront other actions.
- 1) Note that this feature enables a parameter weSNpcDialog_v2_1rpqpga2:SELECTED which returns the number of the user's choice.
- 2) {npcRowId}
- 3) This field contains the top part of the bubble. Message can be relatively long.
- 4) This field contains 8 choices available to players.
- 5) Each option can lead to a specific action.
- 5.1) The right column gives the displaying question. Using the translation tool can adapt a text for each languages of Ryzom.
If the all field is empty, there are no question in the bubble. (but how to chain to a second bubble?)
- 5.2) The left column displays the actions arising from the choice of the players.
- Actions are divided into:
- 5.2.1) none
- 5.2.2) resume or finish de script
- 5.2.3) open or finish the URL
- 5.2.4) jump to a stage (only after the current step as the Jump function)
- 5.2.5) run script
- 5.2.6) include script (same as Include function)
Timer (The player must wait X seconds for validation, automated validation possible) →
Migration
Please use the migrated document at URL shown below.
|
Function name : weSTimer
|
This function triggers a countdown displayed at the top of the IG window showed by filling the arrow.
- 1) seconds: Time countdown in seconds
- 2) abortWhenMove: Cancel action if the player moves: (Yes / No)
- 3) [commun] Internal name of the function. This name is used especially for jumps, loops ...
Mission →
Migration
Please use the migrated document at URL shown below.
|
Function name : weSMission
|
This function allows you to create missions like this.The NPC announcing the action "Replicant Kitin Eradicator", gave the mission "Eradication Mission" which is "You have to kill goo-kitins, now!".
Mission function enables one mission at a time.
- 1) Selection of a mission.
- 2) icon, name and description of the mission.
- 3) count
- 4) [commun] Internal name of the function. This name is used especially for jumps, loops ...
weAMissionGeneric
|
- 1) target
- 2) title: Title of the mission as seen in the top part of Missions IG window.
- 3) Description: Description of the mission displayed in the middle part of Missions IG window when selecting a mission in the tom part. This is the final aim of the mission.
- 4) obj: The detail of the of the mission displayed in the bottom main part of Missions IG window when selecting a mission in the tom part. This is the remaining aim of the mission.
|
weAMissionLoot
|
- 1) target
- 2) tool
- 3) no_tool_message
- 4) title
- 5) Description
- 6) obj
|
weAMissionTalkTo
|
- 1) target
- 2) actionText
- 3) title
- 4) Description
- 5) obj
|
weAMissionKillFauna
|
- 1) target
- 2) title
- 3) Description
- 4) obj
|
weAMissionKillNpc
|
- 1) target
- 2) title
- 3) Description
- 4) obj
|
weAMissionRemove
Itemshop →
Migration
Please use the migrated document at URL shown below.
|
Function name : weSItemshop
|
This function allows you to sell specific objects to players. Here the NPC sell four potions for free (0 dappers). The Itemshop allows only to buy one type of item at a time.
WeSItemshopScript main window
- 1) item: Selection of a type of item.
- 2) icon, name and description of the item.
- 3) price
- 4) timer: delay to buy another item.
- 5) currency (money/pvp_points)
- 6) saveInDatabaseId: some specifc data and/or DB for that???
- 7) valideAction: Next action if the item was bought out.
- 8) openWindow: window to be open to display the tests results. (None, WebIG, Browse NPC, Web Transaction).
- 9) [commun] Internal name of the function. This name is used especially for jumps, loops ...
weItems
Technical description of the item
|
- 1) Sheet name: *.sitem
- 2) Quantity
- 3) quantity_max
- 4) Quality
- 5) quality_max
- 6) customName
- 7) customText
|
Items in bag: how to use it IG?
weNamedItem
Item name. Why not the standard translation function?
|
- 1) phraseId
- 2) itemNameFR
- 3) itemNameEN
- 4) itemNameDE
- 5) itemNameRU
- 6) itemNameES
|
weVirtualItem
Virtual item!!??
|
- 1) virtualItem
- 2) Icon
- 3) itemName
- 4) Quantity
|