Skip to content

Instantly share code, notes, and snippets.

@TheUltDev
Last active July 19, 2021 14:51
Show Gist options
  • Save TheUltDev/b5c0bb863fca95c97696b23b632fe021 to your computer and use it in GitHub Desktop.
Save TheUltDev/b5c0bb863fca95c97696b23b632fe021 to your computer and use it in GitHub Desktop.
TFS Sublime Autocomplete Generator
var Promise = require("bluebird"),
os = require('os'),
fs = Promise.promisifyAll(require('fs')),
fse = Promise.promisifyAll(require('fs-extra'));
var dogen = function() {
return fs.readFileAsync('./lua-functions.txt')
// Parse XML contents into an object
.then(function(contents) {
var outputVisualCode = {},
outputSublimeText = [],
lines = contents.toString().split(os.EOL);
// Iterate over each function
lines.forEach(function(line) {
var match = line.toString().match(/^(?:(.+):)?(.+)\((?:(.+))?\)$/i);
if (match) {
var className = match[1],
funcName = match[2],
funcArgs = match[3],
fullName = (className ? className.charAt(0).toUpperCase() + className.substr(1) + ":" : '') + funcName,
tabIndex = className ? 2 : 1,
argList = funcArgs ? funcArgs.split(', ').map(function(name, index) {
return "${" + (tabIndex + index) + ":" + name + "}"
}) : [];
// Build snippet
var snippetContents = (className ? "${1:" + className + "}:" : "") + funcName + "(" + argList.join(', ') + ")$" + (argList.length + tabIndex);
// Generate code for Sublime Text 3
outputSublimeText.push({
"trigger": fullName,
"contents": snippetContents
});
// Generate code for Microsoft Visual Code
outputVisualCode[fullName] = {
"prefix": funcName,
"body": [ snippetContents ],
"description": fullName
};
}
});
// Write all snippet files
fse.outputFileAsync('./build/doc/tfs-lua.sublime-completions', JSON.stringify({scope:"source.lua", completions: outputSublimeText}, null, 2));
return fse.outputFileAsync('./build/doc/lua.json', JSON.stringify(outputVisualCode, null, 2));
})
};
dogen();
getPlayerFlagValue(cid, flag)
getPlayerInstantSpellCount(cid)
getPlayerInstantSpellInfo(cid, index)
doPlayerAddItem(uid, itemid, <optional: default: 1> count/subtype)
doPlayerAddItem(cid, itemid, <optional: default: 1> count, <optional: default: 1> canDropOnMap, <optional: default: 1>subtype)
doCreateItem(itemid, type/count, pos)
doCreateItemEx(itemid, <optional> count/subtype)
doTileAddItemEx(pos, uid)
doMoveCreature(cid, direction)
doSetCreatureLight(cid, lightLevel, lightColor, time)
getCreatureCondition(cid, condition, subId)
isValidUID(uid)
isDepot(uid)
isMovable(uid)
doAddContainerItem(uid, itemid, <optional> count/subtype)
getDepotId(uid)
getWorldTime()
getWorldLight()
getWorldUpTime()
createCombatArea( {area}, <optional> {extArea} )
createConditionObject(type)
setCombatArea(combat, area)
setCombatCondition(combat, condition)
setCombatParam(combat, key, value)
setConditionParam(condition, key, value)
addDamageCondition(condition, rounds, time, value)
addOutfitCondition(condition, lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet)
setCombatCallBack(combat, key, function_name)
setCombatFormula(combat, type, mina, minb, maxa, maxb)
setConditionFormula(combat, mina, minb, maxa, maxb)
doCombat(cid, combat, param)
createCombatObject()
doAreaCombatHealth(cid, type, pos, area, min, max, effect)
doTargetCombatHealth(cid, target, type, min, max, effect)
doAreaCombatMana(cid, pos, area, min, max, effect)
doTargetCombatMana(cid, target, min, max, effect)
doAreaCombatCondition(cid, pos, area, condition, effect)
doTargetCombatCondition(cid, target, condition, effect)
doAreaCombatDispel(cid, pos, area, type, effect)
doTargetCombatDispel(cid, target, type, effect)
doChallengeCreature(cid, target)
doSetMonsterOutfit(cid, name, time)
doSetItemOutfit(cid, item, time)
doSetCreatureOutfit(cid, outfit, time)
isInArray(array, value)
addEvent(callback, delay, ...)
stopEvent(eventid)
saveServer()
cleanMap()
debugPrint(text)
isInWar(cid, target)
doPlayerSetOfflineTrainingSkill(cid, skill)
getWaypointPosition(name)
sendChannelMessage(channelId, type, message)
sendGuildChannelMessage(guildId, type, message)
registerClass(className, baseClass, newFunction)
registerTable(tableName)
registerMethod(className, functionName, function)
registerMetaMethod(className, functionName, function)
registerGlobalMethod(functionName, function)
registerVariable(tableName, name, value)
registerGlobalVariable(name, value)
registerEnum(value)
registerEnumIn(tableName, value)
getPlayerFlagValue(cid, flag)
getPlayerInstantSpellCount(cid)
getPlayerInstantSpellInfo(cid, index)
doPlayerAddItem(cid, itemid, <optional: default: 1> count/subtype, <optional: default: 1> canDropOnMap)
doPlayerAddItem(cid, itemid, <optional: default: 1> count, <optional: default: 1> canDropOnMap, <optional: default: 1>subtype)
doTileAddItemEx(pos, uid)
doCreateItem(itemid, <optional> type/count, pos)
doCreateItemEx(itemid, <optional> count/subtype)
debugPrint(text)
getWorldTime()
getWorldLight()
getWorldUpTime()
createCombatObject()
createCombatArea( {area}, <optional> {extArea} )
createConditionObject(type)
setCombatArea(combat, area)
setCombatCondition(combat, condition)
setCombatParam(combat, key, value)
setConditionParam(condition, key, value)
addDamageCondition(condition, rounds, time, value)
addOutfitCondition(condition, lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet, lookAddons, lookMount)
setCombatCallBack(combat, key, function_name)
setCombatFormula(combat, type, mina, minb, maxa, maxb)
setConditionFormula(condition, mina, minb, maxa, maxb)
doCombat(cid, combat, param)
doAreaCombatHealth(cid, type, pos, area, min, max, effect, origin = ORIGIN_SPELL)
doTargetCombatHealth(cid, target, type, min, max, effect, origin = ORIGIN_SPELL)
doAreaCombatMana(cid, pos, area, min, max, effect, origin = ORIGIN_SPELL)
doTargetCombatMana(cid, target, min, max, effect, origin = ORIGIN_SPELL)
doAreaCombatCondition(cid, pos, area, condition, effect)
doTargetCombatCondition(cid, target, condition, effect)
doAreaCombatDispel(cid, pos, area, type, effect)
doTargetCombatDispel(cid, target, type, effect)
doChallengeCreature(cid, target)
doSetCreatureOutfit(cid, outfit, time)
doSetMonsterOutfit(cid, name, time)
doSetItemOutfit(cid, item, time)
doMoveCreature(cid, direction)
isValidUID(uid)
isDepot(uid)
isMoveable(uid)
isMovable(uid)
doAddContainerItem(uid, itemid, <optional> count/subtype)
getDepotId(uid)
isInArray(array, value)
doSetCreatureLight(cid, lightLevel, lightColor, time)
addEvent(callback, delay, ...)
stopEvent(eventid)
isInWar(cid, target)
doPlayerSetOfflineTrainingSkill(cid, skillid)
getWaypointPositionByName(name)
sendChannelMessage(channelId, type, message)
sendGuildChannelMessage(guildId, type, message)
isType(derived, base)
rawgetmetatable(metatableName)
os.mtime()
table.create(arrayLength, keyLength)
Game.getSpectators(position, multifloor = false, onlyPlayer = false, minRangeX = 0, maxRangeX = 0, minRangeY = 0, maxRangeY = 0)
Game.getPlayers()
Game.loadMap(path)
Game.getExperienceStage(level)
Game.getMonsterCount()
Game.getPlayerCount()
Game.getNpcCount()
Game.getTowns()
Game.getHouses()
Game.getGameState()
Game.setGameState(state)
Game.getWorldType()
Game.setWorldType(type)
Game.getReturnMessage(value)
Game.createItem(itemId, count, position)
Game.createContainer(itemId, size, position)
Game.createMonster(monsterName, position, extended = false, force = false)
Game.createNpc(npcName, position, extended = false, force = false)
Game.createTile(x, y, z, isDynamic = false)
Game.createTile(position, isDynamic = false)
Game.startRaid(raidName)
Variant(number/string/position/thing)
Variant:getNumber()
Variant:getString()
Variant:getPosition()
Position(x = 0, y = 0, z = 0, stackpos = 0)
Position(position)
position:getDistance(positionEx)
position:isSightClear(positionEx, sameFloor = true)
position:sendMagicEffect(magicEffect, player = nullptr)
position:sendDistanceEffect(positionEx, distanceEffect, player = nullptr)
Tile(x, y, z)
Tile(position)
tile:getPosition()
tile:getGround()
tile:getThing(index)
tile:getThingCount()
tile:getTopVisibleThing(creature)
tile:getTopTopItem()
tile:getTopDownItem()
tile:getFieldItem()
tile:getItemById(itemId, subType = -1)
tile:getItemByType(itemType)
tile:getItemByTopOrder(topOrder)
tile:getItemCountById(itemId, subType = -1)
tile:getBottomCreature()
tile:getTopCreature()
tile:getBottomVisibleCreature(creature)
tile:getTopVisibleCreature(creature)
tile:getItems()
tile:getItemCount()
tile:getDownItemCount()
tile:getTopItemCount()
tile:getCreatures()
tile:getCreatureCount()
tile:hasProperty(property, item)
tile:getThingIndex(thing)
tile:hasFlag(flag)
tile:queryAdd(thing, flags)
tile:getHouse()
NetworkMessage()
networkMessage:getByte()
networkMessage:getU16()
networkMessage:getU32()
networkMessage:getU64()
networkMessage:getString()
networkMessage:getPosition()
networkMessage:addByte(number)
networkMessage:addU16(number)
networkMessage:addU32(number)
networkMessage:addU64(number)
networkMessage:addString(string)
networkMessage:addPosition(position)
networkMessage:addDouble(number)
networkMessage:addItem(item)
networkMessage:addItemId(itemId)
networkMessage:reset()
networkMessage:skipBytes(number)
networkMessage:sendToPlayer(player, broadcast)
ModalWindow(id, title, message)
modalWindow:getId()
modalWindow:getTitle()
modalWindow:getMessage()
modalWindow:setTitle(text)
modalWindow:setMessage(text)
modalWindow:getButtonCount()
modalWindow:getChoiceCount()
modalWindow:addButton(id, text)
modalWindow:addChoice(id, text)
modalWindow:getDefaultEnterButton()
modalWindow:setDefaultEnterButton(buttonId)
modalWindow:getDefaultEscapeButton()
modalWindow:setDefaultEscapeButton(buttonId)
modalWindow:hasPriority()
modalWindow:setPriority(priority)
modalWindow:sendToPlayer(player)
Item(uid)
item:isItem()
item:getParent()
item:getTopParent()
item:getId()
item:clone()
item:split(count = 1)
item:remove(count = -1)
item:getUniqueId()
item:getActionId()
item:setActionId(actionId)
item:getCount()
item:getCharges()
item:getFluidType()
item:getWeight()
item:getSubType()
item:getName()
item:getPluralName()
item:getArticle()
item:getPosition()
item:getTile()
item:hasAttribute(key)
item:getAttribute(key)
item:setAttribute(key, value)
item:removeAttribute(key)
item:moveTo(position/cylinder)
item:transform(itemId, count/subType = -1)
item:decay()
item:getDescription(distance)
item:hasProperty(property)
Container(uid)
container:getContentDescription()
container:getSize()
container:getCapacity()
container:getEmptySlots(recursive = false)
container:getItemHoldingCount()
container:getItem(index)
container:hasItem(item)
container:addItem(itemId, count/subType = 1, index = INDEX_WHEREEVER, flags = 0)
container:addItemEx(item, index = INDEX_WHEREEVER, flags = 0)
container:getItemCountById(itemId, subType = -1)
Teleport(uid)
teleport:getDestination()
teleport:setDestination(position)
Creature(id/name/userdata)
creature:registerEvent(name)
creature:unregisterEvent(name)
creature:isRemoved()
creature:isCreature()
creature:isInGhostMode()
creature:isHealthHidden()
creature:canSee(position)
creature:canSeeCreature(creature)
creature:getParent()
creature:getId()
creature:getName()
creature:getTarget()
creature:setTarget(target)
creature:getFollowCreature()
creature:setFollowCreature(followedCreature)
creature:getMaster()
creature:setMaster(master)
creature:getLight()
creature:setLight(color, level)
creature:getSpeed()
creature:getBaseSpeed()
creature:changeSpeed(delta)
creature:setDropLoot(doDrop)
creature:getPosition()
creature:getTile()
creature:getDirection()
creature:setDirection(direction)
creature:getHealth()
creature:addHealth(healthChange)
creature:getMaxHealth()
creature:setMaxHealth(maxHealth)
creature:setHiddenHealth(hide)
creature:getMana()
creature:addMana(manaChange, animationOnLoss = false)
creature:getMaxMana()
creature:getSkull()
creature:setSkull(skull)
creature:getOutfit()
creature:setOutfit(outfit)
creature:getCondition(conditionType, conditionId = CONDITIONID_COMBAT, subId = 0)
creature:addCondition(condition, force = false)
creature:removeCondition(conditionType, conditionId = CONDITIONID_COMBAT, subId = 0, force = false)
creature:remove()
creature:teleportTo(position, pushMovement = false)
creature:say(text, type, ghost = false, target = nullptr, position)
creature:getDamageMap()
creature:getSummons()
creature:getDescription(distance)
creature:getPathTo(pos, minTargetDist = 0, maxTargetDist = 1, fullPathSearch = true, clearSight = true, maxSearchDist = 0)
Player(id/name/userdata)
player:isPlayer()
player:getGuid()
player:getIp()
player:getAccountId()
player:getLastLoginSaved()
player:getLastLogout()
player:getAccountType()
player:setAccountType(accountType)
player:getCapacity()
player:setCapacity(capacity)
player:getFreeCapacity()
player:getDepotChest(depotId, autoCreate = false)
player:getInbox()
player:getSkullTime()
player:setSkullTime(skullTime)
player:getDeathPenalty()
player:updateUnjustPoints(progressDay, killsRemainingDay, progressWeek, killsRemainingWeek, progressMonth, killsRemainingMonth, skullDuration)
player:getExperience()
player:addExperience(experience, sendText = false)
player:removeExperience(experience, sendText = false)
player:getLevel()
player:getMagicLevel()
player:getBaseMagicLevel()
player:setMaxMana(maxMana)
player:getManaSpent()
player:addManaSpent(amount)
player:getSkillLevel(skillType)
player:getEffectiveSkillLevel(skillType)
player:getSkillPercent(skillType)
player:getSkillTries(skillType)
player:addSkillTries(skillType, tries)
player:getItemCount(itemId, subType = -1)
player:getItemById(itemId, deepSearch, subType = -1)
player:getVocation()
player:setVocation(id/name/userdata)
player:getSex()
player:setSex(newSex)
player:getTown()
player:setTown(town)
player:getGuild()
player:setGuild(guild)
player:getGuildLevel()
player:setGuildLevel(level)
player:getGuildNick()
player:setGuildNick(nick)
player:getGroup()
player:setGroup(group)
player:getStamina()
player:setStamina(stamina)
player:getSoul()
player:addSoul(soulChange)
player:getMaxSoul()
player:getBankBalance()
player:setBankBalance(bankBalance)
player:getStorageValue(key)
player:setStorageValue(key, value)
player:addItem(itemId, count = 1, canDropOnMap = true, subType = 1, slot = CONST_SLOT_WHEREEVER)
player:addItemEx(item, canDropOnMap = false, index = INDEX_WHEREEVER, flags = 0)
player:addItemEx(item, canDropOnMap = true, slot = CONST_SLOT_WHEREEVER)
player:removeItem(itemId, count, subType = -1, ignoreEquipped = false)
player:getMoney()
player:addMoney(money)
player:removeMoney(money)
player:showTextDialog(itemId, text, canWrite, length)
player:sendTextMessage(type, text, position, primaryValue = 0, primaryColor = TEXTCOLOR_NONE, secondaryValue = 0, secondaryColor = TEXTCOLOR_NONE)
player:sendChannelMessage(author, text, type, channelId)
player:sendPrivateMessage(speaker, text, type)
player:channelSay(speaker, type, text, channelId)
player:openChannel(channelId)
player:getSlotItem(slot)
player:getParty()
player:addOutfit(lookType)
player:addOutfitAddon(lookType, addon)
player:removeOutfit(lookType)
player:removeOutfitAddon(lookType, addon)
player:hasOutfit(lookType, addon = 0)
player:sendOutfitWindow()
player:addMount(mountId)
player:removeMount(mountId)
player:hasMount(mountId)
player:getPremiumDays()
player:addPremiumDays(days)
player:removePremiumDays(days)
player:hasBlessing(blessing)
player:addBlessing(blessing)
player:removeBlessing(blessing)
player:canLearnSpell(spellName)
player:learnSpell(spellName)
player:forgetSpell(spellName)
player:hasLearnedSpell(spellName)
player:sendTutorial(tutorialId)
player:addMapMark(position, type, description)
player:save()
player:popupFYI(message)
player:isPzLocked()
player:getClient()
player:getHouse()
player:setGhostMode(enabled)
player:getContainerId(container)
player:getContainerById(id)
player:getContainerIndex(id)
Monster(id/userdata)
monster:isMonster()
monster:getType()
monster:getSpawnPosition()
monster:isInSpawnRange(position)
monster:isIdle()
monster:setIdle(idle)
monster:isTarget(creature)
monster:isOpponent(creature)
monster:isFriend(creature)
monster:addFriend(creature)
monster:removeFriend(creature)
monster:getFriendList()
monster:getFriendCount()
monster:addTarget(creature, pushFront = false)
monster:removeTarget(creature)
monster:getTargetList()
monster:getTargetCount()
monster:selectTarget(creature)
monster:searchTarget(searchType = TARGETSEARCH_DEFAULT)
Npc(id/name/userdata)
npc:isNpc()
npc:setMasterPos(pos, radius)
npc:getSpeechBubble()
npc:setSpeechBubble(speechBubble)
Guild(id)
guild:getId()
guild:getName()
guild:getMembersOnline()
guild:addMember(player)
guild:removeMember(player)
guild:addRank(id, name, level)
guild:getRankById(id)
guild:getRankByLevel(level)
guild:getMotd()
guild:setMotd(motd)
guild:getBankBalance()
guild:setBankBalance(bankBalance)
Group(id)
group:getId()
group:getName()
group:getFlags()
group:getAccess()
group:getMaxDepotItems()
group:getMaxVipEntries()
Vocation(id/name)
vocation:getId()
vocation:getClientId()
vocation:getName()
vocation:getDescription()
vocation:getRequiredSkillTries(skillType, skillLevel)
vocation:getRequiredManaSpent(magicLevel)
vocation:getCapacityGain()
vocation:getHealthGain()
vocation:getHealthGainTicks()
vocation:getHealthGainAmount()
vocation:getManaGain()
vocation:getManaGainTicks()
vocation:getManaGainAmount()
vocation:getMaxSoul()
vocation:getSoulGainTicks()
vocation:getAttackSpeed()
vocation:getBaseSpeed()
vocation:getDemotion()
vocation:getPromotion()
Town(id/name)
town:getId()
town:getName()
town:getTemplePosition()
House(id)
house:getId()
house:getName()
house:getTown()
house:getExitPosition()
house:getRent()
house:getOwnerGuid()
house:setOwnerGuid(guid, updateDatabase = true)
house:getBeds()
house:getBedCount()
house:getDoors()
house:getDoorCount()
house:getTiles()
house:getTileCount()
house:getAccessList(listId)
house:setAccessList(listId, list)
ItemType(id/name)
itemType:isCorpse()
itemType:isDoor()
itemType:isContainer()
itemType:isFluidContainer()
itemType:isMovable()
itemType:isRune()
itemType:isStackable()
itemType:isReadable()
itemType:isWritable()
itemType:getType()
itemType:getId()
itemType:getClientId()
itemType:getName()
itemType:getPluralName()
itemType:getArticle()
itemType:getDescription()
itemType:getSlotPosition()
itemType:getCharges()
itemType:getFluidSource()
itemType:getCapacity()
itemType:getWeight(count = 1)
itemType:getHitChance()
itemType:getShootRange()
itemType:getAttack()
itemType:getDefense()
itemType:getExtraDefense()
itemType:getArmor()
itemType:getWeaponType()
itemType:getElementType()
itemType:getElementDamage()
itemType:getTransformEquipId()
itemType:getTransformDeEquipId()
itemType:getDestroyId()
itemType:getDecayId()
itemType:getRequiredLevel()
itemType:hasSubType()
Combat()
combat:setParameter(key, value)
combat:setFormula(type, mina, minb, maxa, maxb)
combat:setArea(area)
combat:setCondition(condition)
combat:setCallback(key, function)
combat:setOrigin(origin)
combat:execute(creature, variant)
Condition(conditionType, conditionId = CONDITIONID_COMBAT)
condition:delete()
condition:getId()
condition:getSubId()
condition:getType()
condition:getIcons()
condition:getEndTime()
condition:clone()
condition:getTicks()
condition:setTicks(ticks)
condition:setParameter(key, value)
condition:setFormula(mina, minb, maxa, maxb)
condition:setOutfit(outfit)
condition:setOutfit(lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet, lookAddons, lookMount)
condition:addDamage(rounds, time, value)
MonsterType(name)
monsterType:isAttackable()
monsterType:isConvinceable()
monsterType:isSummonable()
monsterType:isIllusionable()
monsterType:isHostile()
monsterType:isPushable()
monsterType:isHealthShown()
monsterType:canPushItems()
monsterType:canPushCreatures()
monsterType:getName()
monsterType:getNameDescription()
monsterType:getHealth()
monsterType:getMaxHealth()
monsterType:getRunHealth()
monsterType:getExperience()
monsterType:getCombatImmunities()
monsterType:getConditionImmunities()
monsterType:getAttackList()
monsterType:getDefenseList()
monsterType:getElementList()
monsterType:getVoices()
monsterType:getLoot()
monsterType:getCreatureEvents()
monsterType:getSummonList()
monsterType:getMaxSummons()
monsterType:getArmor()
monsterType:getDefense()
monsterType:getOutfit()
monsterType:getRace()
monsterType:getCorpseId()
monsterType:getManaCost()
monsterType:getBaseSpeed()
monsterType:getLight()
monsterType:getStaticAttackChance()
monsterType:getTargetDistance()
monsterType:getYellChance()
monsterType:getYellSpeedTicks()
monsterType:getChangeTargetChance()
monsterType:getChangeTargetSpeed()
party:disband()
party:getLeader()
party:setLeader(player)
party:getMembers()
party:getMemberCount()
party:getInvitees()
party:getInviteeCount()
party:addInvite(player)
party:removeInvite(player)
party:addMember(player)
party:removeMember(player)
party:isSharedExperienceActive()
party:isSharedExperienceEnabled()
party:shareExperience(experience)
party:setSharedExperience(active)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment