• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Guia] Lua - Scripting Guia

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1[Guia] Lua - Scripting Guia Empty [Guia] Lua - Scripting Guia Miér Feb 01, 2017 6:51 pm

    Jano

    Jano
    Spriter
    Spriter
    Bueno, después de cierto tiempo decidí compartir una Guía de scripting!

    Espero que disfrute de su estancia y aprenda mucho de ella: D

    Esta guía es completamente acerca de scripting relacionados con lua, aprenderás aquí desde cosas básicas hasta cosas avanzadas.
    Si piensas que falta algo, dime qué y se agregará.

    Por favor, no te vayas sin comentar! ayudarias, mucho.

    PARTE I - Funciones ... (¿Para qué son? ¿Para qué sirven?

    Las funciones son básicamente la única cosa que le dice al servidor lo que quieres que suceda con este Script.
    Hay muchas funciones pero tienes que dividirlas en 2 grupos.

    Grupo 1: Las "Funciones Primarias" esas funciones siempre se escuchan en el primer inicio de un Script que dicen qué tipo de acción se ejecutará ahora.
    Grupo 2: Las "Funciones Secundarias" estas funciones siempre se ordenan bajo la "Función Primaria" pero son tan importantes como las "Funciones Primarias".

    Ahora entramos en Detalles ...

    Comencemos con la función primaria.

    Como ya he dicho que son las funciones que tienen que ser ontop siempre. Vamos a profundizar en los detalles para que usted entienda por qué es así!

    Lista de las "Funciones Primarias" NOTA (Las Funciones pueden variar dependiendo de la distribución de servidor que utilice)

    Básicos:

    Código:
    function onUse(cid, item, fromPosition, itemEx, toPosition)
    function onStepIn(cid, item, frompos, itemEx, topos)
    function onStepOut(cid, item, frompos, itemEx, topos)
    function onSay(cid, words, param)
    function onEquip(cid, item, slot)
    function onDeEquip(cid, item, slot)
    function onAddItem(cid, moveitem, tileitem, position)
    function onRemoveItem(cid, moveitem, tileitem, position)

    Creaturescripts:

    Código:
    function onLogin(cid)
    function onLogout(cid)
    function onJoinChannel(cid, channel, users)
    function onLeaveChannel(cid, channel, users)
    function onAdvance(cid, skill, oldLevel, newLevel)
    function onLook(cid, thing, position, lookDistance)
    function onSendMail((cid, receiver, open, itemBox)
    function onReceiveMail(cid, sender, open, itemBox)
    function onTradeRequest(cid, target, item)
    function onTradeAccept(cid, target, item)
    function onTextEdit(cid, item, newText)
    function onReportBug(cid, comment)
    function onThink(cid, interval)
    function onDirection(cid, old, current)
    function onOutfit(cid, old, current)
    function onStatsChange(cid, attacker, type, combat, value)
    function onAreaCombat(cid, ground, position, aggressive)
    function onPush(cid, target)
    function onTarget(cid, target)
    function onFollow(cid, target)
    function onCombat(cid, target)
    function onAttack(cid, target)
    function onCast(cid, target)
    function onKill(cid, target, damage, flags)
    function onDeath(cid, corpse, deathList)
    function onPreprareDeath(cid, deathList)

    Globalevents:

    Código:
    function onStartUp()
    function onShutdown()
    function onGlobalSave()
    function onRecord(current, old, cid)
    function onTime(time)
    function onThink(interval)

    Esas son las funciones que las Distros actualizadas han tenido hasta ahora.

    Déjame explicarte cada función ahora.

    Código:
    function onUse(cid, item, fromPosition, itemEx, toPosition)

    Al igual que usted puede adivinar fácilmente esto hará que algo suceda cuando se utiliza algo

    ejemplo:

    Tiras una palanca y se creará una pared.

    Código:
    function onStepIn(cid, item, frompos, itemEx, topos)

    Esto hará que algo suceda cuando caminas en un sqm específico, sí has oído bien este será ejecutado sólo cuando se camina sobre una baldosa.

    ejemplo:

    Caminas sobre un sqm y recibes un mensaje de bienvenida.

    Código:
    function onStepOut(cid, item, frompos, itemEx, topos)

    Éste es justo la diferencia de "onStepIn" éste SOLAMENTE trabaja cuando usted camina de un azulejo específico.

    ejemplo:

    Se camina desde un sqm y se teletransportará a otra posición.

    Código:
    function onSay(cid, words, param)

    Este solo funcionará cuando un jugador diga una palabra específica que ejecutará el script entonces ...

    ejemplo:

    El jugador tiene que decir "!quest" para iniciar una búsqueda.

    Código:
    function onEquip(cid, item, slot)

    Pones una Crown Armor en tu Body Equipment Slot.

    Código:
    function onDeEquip(cid, item, slot)

    Casi igual que "onEquip", pero para conseguir que funcione usted tiene que posponer un elemento de Body Equipment Slot.

    ejemplo:

    Colocas la Crown Armor fuera de Body Equipment Slot.

    Código:
    function onAddItem(cid, moveitem, tileitem, position)

    Esta función tampoco es muy utilizada. Es necesario eliminar un elemento de un sqm específico para que funcione

    hasta aquí dejare esta guía, si quieren que siga, comenten y den +rep (:

    Esta fue una pequeña explicación de las "Funciones Primarias"
    Ahora debería ser capaz de reconocer qué uso tiene esa función.

    Lista "Secundaria": - Funciones de tfs 0.3.6pl1

    Código:
    //get*
        getCreatureHealth(cid)
        getCreatureMaxHealth(cid)
        getCreatureHideHealth(cid)
        getCreatureMana(cid)
        getCreatureMaxMana(cid)
        getCreatureSpeakType(cid)
        getCreatureMaster(cid)
        getCreatureSummons(cid)
        getCreatureOutfit(cid)
        getCreaturePosition(cid)
        getCreatureLookDirection(cid)
        getCreatureName(cid)
        getCreatureSpeed(cid) //TODO
        getCreatureBaseSpeed(cid) //TODO
        getCreatureTarget(cid) //TODO
        getCreatureByName(name)
        getCreatureSkullType(cid)
        getCreatureCondition(cid, condition[, subId]) //TODO
        getCreatureNoMove(cid) //TODO
        getMonsterInfo(name)
        getMonsterHealingSpells(name) //TODO
        getMonsterAttackSpells(name) //TODO
        getMonsterLootList(name) //TODO
        getMonsterSummonList(name) //TODO
        getMonsterTargetList(cid) //TODO
        getMonsterFriendList(cid) //TODO
        getPlayerByNameWildcard(name~[, ret = false]) //TODO
        getPlayerLossSkill(cid) //TODO
        getPlayerLossPercent(cid, lossType) //TODO
        getPlayerGUIDByName(name[, multiworld = false]) //TODO
        getPlayerNameByGUID(guid[, multiworld = false[, displayError = true]]) //TODO
        getPlayerFood(cid)
        getPlayerLevel(cid)
        getPlayerExperience(cid)
        getPlayerMagLevel(cid[, ignoreBuffs = false]) //TODO
        getPlayerSpentMana(cid) //TODO
        getPlayerAccess(cid)
        getPlayerGhostAccess(cid)
        getPlayerSkillLevel(cid, skillId)
        getPlayerSkillTries(cid, skillId) //TODO
        getPlayerTown(cid)
        getPlayerVocation(cid)
        getPlayerRequiredMana(cid, magicLevel) //TODO
        getPlayerRequiredSkillTries(cid, skillId, skillLevel) //TODO
        getPlayerItemCount(cid, itemid[, subType = -1])
        getPlayerSoul(cid)
        getPlayerAccountId(cid) //TODO
        getPlayerAccount(cid) //TODO
        getPlayerIp(cid) //TODO
        getPlayerFreeCap(cid)
        getPlayerLight(cid)
        getPlayerSlotItem(cid, slot)
        getPlayerWeapon(cid[, ignoreAmmo = false]) //TODO
        getPlayerItemById(cid, deepSearch, itemId[, subType = -1]) //TODO
        getPlayerDepotItems(cid, depotid)
        getPlayerGuildId(cid)
        getPlayerGuildName(cid)
        getPlayerGuildRank(cid)
        getPlayerGuildNick(cid)
        getPlayerGuildLevel(cid) //TODO: From here, all bottoms
        getPlayerSex(cid)
        getPlayerStorageValue(uid, key)
        getPlayerGUID(cid)
        getPlayerFlagValue(cid, flag)
        getPlayerCustomFlagValue(cid, flag)
        getPlayerPromotionLevel(cid)
        getPlayerGroupId(cid)
        getPlayerLearnedInstantSpell(cid, name)
        getPlayerInstantSpellCount(cid)
        getPlayerInstantSpellInfo(cid, index)
        getPlayerBlessing(cid, blessing)
        getPlayerStamina(cid)
        getPlayerExtraExpRate(cid)
        getPlayerPartner(cid)
        getPlayerParty(cid)
        getPlayerPremiumDays(cid)
        getPlayerBalance(cid)
        getPlayerMoney(cid)
        getPlayerSkullTicks(cid, type)
        getPlayerRates(cid)
        getPlayerLastLogin(cid)
        getPlayerLastLoginSaved(cid)
        getPlayerAccountManager(cid)
        getInstantSpellInfo(cid, name)
        getPlayersByAccountId(accountNumber)
        getPlayersByIp(ip[, mask = 0xFFFFFFFF])
        getChannelUsers(channelId)
        getPlayersOnline()
        getPartyMembers(lid)
        getAccountIdByName(name)
        getAccountByName(name)
        getAccountIdByAccount(accName)
        getAccountByAccountId(accId)
        getIpByName(name)
        getItemRWInfo(uid)
        getItemProtection(uid)
        getItemDescriptionsById(itemid)
        getItemWeightById(itemid, count[, precise])
        getItemDescriptions(uid)
        getItemWeight(uid[, precise])
        getItemAttack(uid)
        getItemExtraAttack(uid)
        getItemDefense(uid)
        getItemExtraDefense(uid)
        getItemArmor(uid)
        getItemAttackSpeed(uid)
        getItemHitChance(uid)
        getItemShootRange(uid)
        getItemIdByName(name[, displayError = true])
        getItemLevelDoor(itemid)
        getItemWeaponType(uid)
        getFluidSourceType(type)
        getContainerSize(uid)
        getContainerCap(uid)
        getContainerCapById(itemid)
        getContainerItem(uid, slot)
        getDepotId(uid)
        getTileItemById(pos, itemId[, subType = -1])
        getTileItemByType(pos, type)
        getTileThingByPos(pos)
        getTileInfo(pos)
        getTopCreature(pos)
        getClosestFreeTile(cid, targetpos[, extended = false[, ignoreHouse = true]])
        getThingFromPos(pos)
        getThing(uid)
        getThingPos(uid)
        getHouseInfo(id)
        getHouseAccessList(houseid, listid)
        getHouseByPlayerGUID(playerGUID)
        getHouseFromPos(pos)
        getTownId(townName)
        getTownName(townId)
        getTownTemplePosition(townId)
        getTownHouses(townId)
        getWorldType()
        getWorldTime()
        getWorldLight()
        getWorldCreatures(type) //0 players, 1 monsters, 2 npcs, 3 all
        getWorldUpTime()
        getHighscoreString(skillId)
        getVocationInfo(id)
        getGuildId(guildName)
        getGuildMotd(guildId)
        getSpectators(centerPos, rangex, rangey[, multifloor = false])
        getSearchString(fromPosition, toPosition[, fromIsCreature = false[, toIsCreature = false]])
        getWaypointPosition(name)
        getGameState()
        getNotationsCount(accId)
        getBanData(value)
        getBanList(type[, value])
        getBanReason(id)
        getBanAction(id[, ipBanishment])
        getGlobalStorageValue(valueid)
        getExperienceStage(level)
        getConfigFile()
        getConfigValue(key)
        getModList()
        loadmodlib(libName)
        domodlib(libName)
        getLogsDir()
        getDataDir()
        getWaypointList()
        getTalkActionList()
        getExperienceStageList()
     
        //set*
        setCreatureMaxHealth(cid, health)
        setCreatureMaxMana(cid, mana)
        setHouseOwner(houseid, ownerGUID)
        setHouseAccessList(houseid, listid, listtext)
        setItemName(uid)
        setItemPluralName(uid)
        setItemArticle(uid)
        setItemAttack(uid, attack)
        setItemExtraAttack(uid, extraattack)
        setItemDefense(uid, defense)
        setItemArmor(uid, armor)
        setItemExtraDefense(uid, extradefense)
        setItemAttackSpeed(uid, attackspeed)
        setItemHitChance(uid, hitChance)
        setItemShootRange(uid, shootRange)
        setCombatArea(combat, area)
        setCombatCondition(combat, condition)
        setCombatParam(combat, key, value)
        setConditionParam(condition, key, value)
        setCombatCallBack(combat, key, function_name)
        setCombatFormula(combat, type, mina, minb, maxa, maxb)
        setConditionFormula(combat, mina, minb, maxa, maxb)
        setGlobalStorageValue(key, newValue)
        setWorldType(type)
     
        //do*
        doCreatureAddHealth(cid, health[, force])
        doCreatureAddMana(cid, mana)
        doCreatureSetDropLoot(cid, doDrop)
        doCreatureSetSkullType(cid, skull)
        doCreatureSetSpeakType
        doCreatureSetLookDirection(cid, dir)
        doPlayerSetMaxCapacity(cid, cap)
        doCreatureChangeOutfit(cid, outfit)
        doCreatureSay(uid, text, type[, ghost = false[, cid = 0[, pos]]])
        doCreatureSetNoMove(cid, cannotMove)
        doSetCreatureLight(cid, lightLevel, lightColor, time)
        doSetCreatureOutfit(cid, outfit, time)
        doRemoveCreature(cid[, executeLogout = true])
        doMoveCreature(cid, direction)
        doConvinceCreature(cid, target)
        doChallengeCreature(cid, target)
        doChangeSpeed(cid, delta)
        doSummonMonster(name, pos)
        doCreateMonster(name, pos)
        doMonsterChangeTarget(cid)
        doMonsterSetTarget(cid, target)
        doCreateNpc(name, pos)
        doSetMonsterOutfit(cid, name, time)
        doPlayerBroadcastMessage(cid, message[, type])
        doPlayerSetSex(cid, newSex)
        doPlayerSetTown(cid, townid)
        doPlayerSetVocation(cid, voc)
        doPlayerSetStorageValue(uid, key, newValue)
        doPlayerSetGroupId(cid, newGroupId)
        doPlayerSetPromotionLevel(cid, level)
        doPlayerSetStamina(cid, minutes)
        doPlayerSetBalance(cid, balance)
        doPlayerSetExtraExpRate(cid, value)
        doPlayerSetPartner(cid, guid)
        doPlayerRemoveItem(cid, itemid, count[, subtype])
        doPlayerAddExperience(cid, amount)
        doPlayerSetGuildId(cid, id)
        doPlayerSetGuildRank(cid, rank)
        doPlayerSetGuildNick(cid, nick)
        doPlayerAddOutfit(cid,looktype, addons)
        doPlayerRemoveOutfit(cid,looktype, addons)
        doPlayerSetRedSkullTicks(cid, amount)
        doPlayerSetLossPercent(cid, lossType, newPercent)
        doPlayerSetLossSkill(cid, doLose)
        doPlayerAddSkillTry(cid, skillid, n)
        doPlayerAddSpentMana(cid, amount)
        doPlayerAddSoul(cid, soul)
        doPlayerAddItem(uid, itemid[, count/subtype[, canDropOnMap = true]])
        doPlayerAddItemEx(cid, uid[, canDropOnMap = false])
        doPlayerSendTextMessage(cid, MessageClasses, message)
        doPlayerSendChannelMessage(cid, author, message, SpeakClasses, channel)
        doPlayerSendToChannel(cid, targetId, SpeakClasses, message, channel[, time])
        doPlayerAddMoney(cid, money)
        doPlayerRemoveMoney(cid, money)
        doPlayerTransferMoneyTo(cid, target, money)
        doPlayerPopupFYI(cid, message)
        doPlayerSendTutorial(cid, id)
        doPlayerAddMapMark(cid, pos, type[, description])
        doPlayerAddPremiumDays(cid, days)
        doPlayerAddBlessing(cid, blessing)
        doPlayerAddStamina(cid, minutes)
        doPlayerResetIdleTime(cid)
        doPlayerLearnInstantSpell(cid, name)
        doPlayerUnlearnInstantSpell(cid, name)
        doPlayerFeed(cid, food)
        doPlayerSendCancel(cid, text)
        doPlayerSendDefaultCancel(cid, ReturnValue)
        doPlayerSetRate(cid, type, value)
        doPlayerJoinParty(cid, lid)
        doPlayerSendOutfitWindow(cid)
        doPlayerSave(cid[, shallow = false])
        doCreateItem(itemid, type/count, pos)
        doCreateItemEx(itemid[, count/subtype])
        doAddContainerItemEx(uid, virtuid)
        doAddContainerItem(uid, itemid[, count/subtype])
        doChangeTypeItem(uid, newtype)
        doDecayItem(uid)
        doRemoveItem(uid[, count])
        doTransformItem(uid, toitemid[, count/subtype])
        doSetItemActionId(uid, actionid)
        doSetItemText(uid, text[, writer[, date]])
        doSetItemSpecialDescription(uid, desc)
        doSetItemOutfit(cid, item, time)
        doSetItemProtection(uid, value)
        doTileAddItemEx(pos, uid)
        doTileQueryAdd(uid, pos[, flags])
        doAddCondition(cid, condition)
        doRemoveCondition(cid, type[, subId])
        doRemoveConditions(cid[, onlyPersistent])
        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)
        doCombat(cid, combat, param)
        doTeleportThing(cid, newpos[, pushmove = true])
        doCreateTeleport(itemid, topos, createpos)
        doSendMagicEffect(pos, type[, player])
        doSendDistanceShoot(frompos, topos, type[, player])
        doSendAnimatedText(pos, text, color[, player])
        doShowTextDialog(cid, itemid, text)
        doRelocate(pos, toPos[, creatures = true])
        doBroadcastMessage(message, type)
        doWaypointAddTemporial(name, pos)
        doSetGameState(stateId)
        doAddIpBanishment(ip[, length[, comment[, admin]]])
        doAddNamelock(name[, reason[, action[, comment[, admin]]]])
        doAddBanishment(accId[, length[, reason[, action[, comment[, admin]]]]])
        doAddDeletion(accId[, reason[, action[, comment[, admin]]]]])
        doAddNotation(accId[, reason[, action[, comment[, admin]]]]])
        doRemoveIpBanishment(ip[, mask])
        doRemoveNamelock(name)
        doRemoveBanisment(accId)
        doRemoveDeletion(accId)
        doRemoveNotations(accId)
        doSaveServer()
        doReloadInfo(id[, cid])
        doCleanHouse(houseId)
        doCleanMap()
        doRefreshMap()
     
        //is*
        isCreature(cid)
        isMonster(uid)
        isNpc(uid)
        isPlayer(cid)
        isPlayerPzLocked(cid)
        isItemStackable(itemid)
        isItemRune(itemid)
        isItemMovable(itemid)
        isItemDoor(itemid)
        isItemContainer(itemid)
        isItemFluidContainer(itemid)
        isContainer(uid)
        isCorpse(uid)
        isMovable(uid)
        isSightClear(fromPos, toPos, floorCheck)
        isIpBanished(ip[, mask])
        isPlayerNamelocked(name)
        isAccountBanished(accId)
        isAccountDeleted(accId)
        isInArray({array}, value[, lower = true])
     
        //others
        registerCreatureEvent(uid, eventName)
        createCombatArea({area}[, {exArea}])
        createConditionObject(type[, ticks[, buff[, subId]]])
        addDamageCondition(condition, rounds, time, value)
        addOutfitCondition(condition, lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet)
        createCombatObject()
        numberToVariant(number)
        stringToVariant(string)
        positionToVariant(pos)
        targetPositionToVariant(pos)
        variantToNumber(var)
        variantToString(var)
        variantToPosition(var)
        canPlayerWearOutfit(cid, lookType, addons)
        executeRaid(name)
        addEvent(callback, delay, ...)
        stopEvent(eventid)
        hasProperty(uid)
     
        md5(str)
        sha1(str)
     
        //db table
        db.executeQuery(query)
        db.storeQuery(query)
        db.escapeString(str)
        db.escapeBlob(s, length)
        db.stringComparisonOperator()
        db.lastInsertId()
     
        //result table
        result.getDataInt(resId, s)
        result.getDataLong(resId, s)
        result.getDataString(resId, s)
        result.getDataStream(resId, s, length)
        result.next(resId)
        result.free(resId)
     
        //bit table
        #bit.cast
        bit.bnot(n)
        bit.band(type, n)
        bit.bor(type, n)
        bit.bxor(type, n)
        bit.lshift(type, n)
        bit.rshift(type, n)
        #bit.arshift
        #bit.ucast
        bit.ubnot(n)
        bit.uband(type, n)
        bit.ubor(type, n)
        bit.ubxor(type, n)
        bit.ulshift(type, n)
        bit.urshift(type, n)
        #bit.uarshift
     
        //compats
        table.getPos = table.find
        doSetCreatureDropLoot = doCreatureSetDropLoot
        doPlayerSay = doCreatureSay
        doPlayerAddMana = doCreatureAddMana
        playerLearnInstantSpell = doPlayerLearnInstantSpell
        doPlayerRemOutfit = doPlayerRemoveOutfit
        pay = doPlayerRemoveMoney
        broadcastMessage = doBroadcastMessage
        getPlayerName = getCreatureName
        getPlayerPosition = getCreaturePosition
        getCreaturePos = getCreaturePosition
        creatureGetPosition = getCreaturePosition
        getPlayerMana = getCreatureMana
        getPlayerMaxMana = getCreatureMaxMana
        hasCondition = getCreatureCondition
        isMoveable = isMovable
        isItemMoveable = isItemMovable
        saveData = saveServer
        savePlayers = saveServer
        getPlayerSkill = getPlayerSkillLevel
        getPlayerSkullType = getCreatureSkullType
        getCreatureSkull = getCreatureSkullType
        getAccountNumberByName = getAccountIdByName
        getIPByName = getIpByName
        getPlayersByIP = getPlayersByIp
        getThingfromPos = getThingFromPos
        getPlayersByAccountNumber = getPlayersByAccountId
        getIPByPlayerName = getIpByName
        getPlayersByIPNumber = getPlayersByIp
        getAccountNumberByPlayerName = getAccountIdByName
        convertIntToIP = doConvertIntegerToIp
        convertIPToInt = doConvertIpToInteger
        queryTileAddThing = doTileQueryAdd
        getTileHouseInfo = getHouseFromPos
        executeRaid = doExecuteRaid
        saveServer = doSaveServer
        cleanHouse = doCleanHouse
        cleanMap = doCleanMap
        shutdown = doShutdown
        mayNotMove = doCreatureSetNoMove
        doPlayerSetNoMove = doCreatureSetNoMove
        getPlayerNoMove = getCreatureNoMove
        getConfigInfo = getConfigValue
        doPlayerAddExp = doPlayerAddExperience
        isInArea = isInRange
        doPlayerSetSkillRate = doPlayerSetRate
        getCreatureLookDir = getCreatureLookDirection
        getPlayerLookDir = getCreatureLookDirection
        getPlayerLookDirection = getCreatureLookDirection
        doCreatureSetLookDir = doCreatureSetLookDirection
        getPlayerLookPos = getCreatureLookPosition
        setPlayerStamina = doPlayerSetStamina
        setPlayerPromotionLevel = doPlayerSetPromotionLevel
        setPlayerGroupId = doPlayerSetGroupId
        setPlayerPartner = doPlayerSetPartner
        setPlayerStorageValue = doPlayerSetStorageValue
        setPlayerBalance = doPlayerSetBalance
        doAddMapMark = doPlayerAddMapMark
        doSendTutorial = doPlayerSendTutorial
     
        //lua-made functions
        doPlayerGiveItem(cid, itemid, amount, subType)
        doPlayerTakeItem(cid, itemid, amount)
        doPlayerBuyItem(cid, itemid, count, cost, charges)
        doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges)
        doPlayerSellItem(cid, itemid, count, cost)
        doPlayerWithdrawMoney(cid, money)
        doPlayerDepositMoney(cid, money)
        comparePos(pos, posEx)
        isInRange(pos, fromPos, toPos)
        getArea(pos, rangeX, rangeY)
        isPremium(cid)
        getMonthDayEnding(day)
        getMonthString(m)
        getArticle(str)
        isNumber(str)
        getDistanceBetween(firstPosition, secondPosition)
        doPlayerAddAddons(cid, addon)
        isSorcerer(cid)
        isDruid(cid)
        isPaladin(cid)
        isKnight(cid)
        isRookie(cid)
        getDirectionTo(pos, posEx)
        getCreatureLookPosition(cid)
        getPosByDir(fromPosition, direction, size)
        doPlayerWithdrawAllMoney(cid)
        doPlayerDepositAllMoney(cid)
        doPlayerTransferAllMoneyTo(cid, target)
        doPlayerAddLevel(cid, amount, round)
        doPlayerAddMagLevel(cid, amount)
        doPlayerAddSkill(cid, amount)
        playerExists(name)
        getTibiaTime()
        doWriteLogFile(file, text)
        isInArea(pos, fromPos, toPos)
        getExperienceForLevel(lv)
        doMutePlayer(cid, time)
        getPlayerGroupName(cid)
        getPlayerVocationName(cid)
        getPromotedVocation(vid)
        doPlayerRemovePremiumDays(cid, days)
        getPlayerMasterPos(cid)
        getHouseOwner(houseId)
        getHouseName(houseId)
        getHouseEntry(houseId)
        getHouseRent(houseId)
        getHousePrice(houseId)
        getHouseTown(houseId)
        getHouseTilesCount(houseId)
        getItemNameById(itemid)
        getItemPluralNameById(itemid)
        getItemArticleById(itemid)
        getItemName(uid)
        getItemPluralName(uid)
        getItemArticle(uid)
        getItemText(uid)
        getItemSpecialDescription(uid)
        getItemWriter(uid)
        getItemDate(uid)
        getTilePzInfo(pos)
        getTileZoneInfo(pos)
        debugPrint(text)
        doShutdown()
        doSummonCreature(name, pos)
        getOnlinePlayers()
        getPlayerByName(name)
        isPlayerGhost(cid)
        getPlayerFrags(cid)
        getPartyLeader(cid)
        isInParty(cid)
        isPrivateChannel(channelId)
        doConvertIntegerToIp(int, mask)
        doConvertIpToInteger(int, mask)
        getBooleanFromString(str)
        doCopyItem(item, attributes)
        exhaustion.check(cid, storage)
        exhaustion.get(cid, storage)
        exhaustion.set(cid, storage, time)
        exhaustion.make(cid, storage, time)
        table.find(table, value)
        table.isStrIn(txt, str)
        table.countElements(table, item)
        table.getCombinations(table, num)
        string.split(str)
        string.trim(str)
        string.explode(str, sep)

    Koob.-


    5 participantes
    https://discordapp.com/channels/340869651896598528/3408696518965

    2[Guia] Lua - Scripting Guia Empty Re: [Guia] Lua - Scripting Guia Dom Feb 12, 2017 10:47 pm

    Jano

    Jano
    Spriter
    Spriter
    PARTE II - If...Else...Elseif...Return...End...(¿En qué Orden los uso?)

    En esta parte escribimos nuestro primer guión.
    ¡NOTA! No haré un Script para un servidor por lo que será más fácil de entender al principio...

    Código:
    if My Car is repaired then -- "if" is the start of something, "then" means what will happen now.
        I'll drive to work with it -- this will happen then
    end -- everytime you start an "if" you have to "end" it!

    Esta es la estructura básica de un guión...
    Pero ¿qué hacemos si el coche no se repara?

    Código:
    if My Car is repaired then
        I'll drive to work with it
    else -- "else" is used as an "single" counterpart of an "if", means basicly just that if the "if" is not true in this case the else will be read. NOTE an "else" doesn't need an extra "end"
        I'll go by Bike -- this will happen if the car is still not repaired.
    end

    Acabo de notar que mi hermano tomó mi bicicleta Sad ¿qué haremos ahora?

    Código:
    if My Car is repaired then
        I'll drive to work with it
    elseif My Bike is taken then -- This is similiar to "else" but the difference is that you can make different situations out of it. NOTE an "elseif" doesn't need an extra "end"
        I'll go by Bus -- will happen when my car is still not repaired.
    end

    El autobús se fue antes de que yo viniera. Así que voy a esperar para el próximo autobús.

    Código:
    if My Car is repaired then
        I'll drive to work with it -- happens if the car is repaired.
    elseif My Bike is taken then
        I'll go by Bus -- happens if my bike is taken.
    elseif I miss the Bus then
        I'll wait for the next one -- happens if i miss the buss
    end

    Parece bastante fácil, ¿no?

    Vamos a ir para un script de servidor ahora. (Echa un vistazo a la lista de funciones por lo tanto)
    Este script será un interruptor que le da un mensaje cuando lo tire!

    Código:
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        if item.itemid == 1945 then
            doPlayerSendTextMessage(cid,21,"It works !")
            doTransformItem(item.uid, item.itemid + 1)
        elseif item.itemid == 1946 then
            doPlayerSendTextMessage(cid,21,"You pulled it back!")
            doTransformItem(item.uid, item.itemid - 1)
        end
        return TRUE
    end -- Every Function has to have an own "end" too.

    Ahora la explicación ... Usted tal vez se pregunte ahora "wtf es item.itemid etc" Déjame explicarlo un poco.

    Código:
    item.itemid == 1945 -- item.itemid stands for the item which we used to get the action to work, == is meant that it "equals" to the thing after. In this case 1945. (there are different types like "<"-- [I]is smaller as[/I],">"-- [I]is greater as[/I],"<="-- [I]is smaller or same as[/I],">="[I]is greater or same as[/I],"~="-- [I]is not same as[/I])
    cid -- This reflects the Player who is starting the action currently.
    21 -- In this case it's the number which stands for an color (not really necessary to know at the moment)
    "it works !" -- The text which will we receive when we execute the script
    return TRUE -- We have to return "TRUE" because we want something to happen, if we would return "FALSE" in this case we wouldn't get a message or anything else (You can return many other things aswell not just only "TRUE" or "FALSE")

    Ahora ya sabes los fundamentos de Scripting. Ahora debe ser capaz de construir una estructura adecuada y explicar lo que hace.

    Proximo PARTE III.

    5 participantes
    https://discordapp.com/channels/340869651896598528/3408696518965

    3[Guia] Lua - Scripting Guia Empty Re: [Guia] Lua - Scripting Guia Miér Mar 28, 2018 2:19 pm

    Mexxx

    Mexxx
    Nuevo Miembro
    Nuevo Miembro
    Esta guía la conozco de un foro inglés que me gustó mucho y la entendí bien por ahora. Vengo a preguntar aquí porque Maya me dijo que acá era.

    Ahora, no soy tan~nuevo en scripting, pero mi único conomiento se basa en el ensayo y error, y en un copia y pega de pedazos de otros scripts a ver si la fusión genera el resultado deseado. Sí, soy el Mendel del script.

    Mis preguntas están polarizadas hacia saber la base: parametros y sub-parámetros. ¿Qué son? Ahí los mencionas, y los colocas diciendo que és lo que significa cid, itemid, pos, etc, pero la definición de parámetro y sub parámetro no queda claro.

    Por ejemplo: doPlayerSendTextMessage(cid, MessageClasses, message)
    ¿Qué implica que mi función tenga los parámetros cid, messageclasses, message? ¿Qué información puedo manipular con saber los parámetros de esa función? me refiero: de qué me sirve a mi saber que mi función tiene el parametro 'message' y 'messageclasses'?

    Hago muchas preguntas porque soy muy curioso y me gusta aprender, y obvio no desaprovecharé esta oportunidad.

    5 participantes

    4[Guia] Lua - Scripting Guia Empty Re: [Guia] Lua - Scripting Guia Miér Mar 28, 2018 2:54 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Mexxx escribió:Esta guía la conozco de un foro inglés que me gustó mucho y la entendí bien por ahora. Vengo a preguntar aquí porque Maya me dijo que acá era.

    Ahora, no soy tan~nuevo en scripting, pero mi único conomiento se basa en el ensayo y error, y en un copia y pega de pedazos de otros scripts a ver si la fusión genera el resultado deseado. Sí, soy el Mendel del script.

    Mis preguntas están polarizadas hacia saber la base: parametros y sub-parámetros. ¿Qué son? Ahí los mencionas, y los colocas diciendo que és lo que significa cid, itemid, pos, etc, pero la definición de parámetro y sub parámetro no queda claro.

    Por ejemplo: doPlayerSendTextMessage(cid, MessageClasses, message)
    ¿Qué implica que mi función tenga los parámetros cid, messageclasses, message? ¿Qué información puedo manipular con saber los parámetros de esa función? me refiero: de qué me sirve a mi saber que mi función tiene el parametro 'message' y 'messageclasses'?

    Hago muchas preguntas porque soy muy curioso y me gusta aprender, y obvio no desaprovecharé esta oportunidad.


    doPlayerSendTextMessage(cid, MessageClasses, message)


    cid --------> se refiere al player

    MessageClasses ---> tipos de mensajes programados en la fuente de compilacion y encontrados en constant.lua

    message ---> es el texto a ejecutar



    [Guia] Lua - Scripting Guia YNU5B25
    5 participantes
    http://www.tibiaface.com

    5[Guia] Lua - Scripting Guia Empty Re: [Guia] Lua - Scripting Guia Miér Mar 28, 2018 4:07 pm

    Mexxx

    Mexxx
    Nuevo Miembro
    Nuevo Miembro
    [Admin] God Maya escribió:


    doPlayerSendTextMessage(cid, MessageClasses, message)


    cid --------> se refiere al player

    MessageClasses  ---> tipos de mensajes programados en la fuente de compilacion y encontrados en constant.lua

    message  ---> es el texto a ejecutar

    Pero la pregunta es ¿qué implica que ese comando tenga esos parámetros? ¿Por qué tiene esos y no por ejemplo el parametro 'pos' o 'item.id'?

    5 participantes

    6[Guia] Lua - Scripting Guia Empty Re: [Guia] Lua - Scripting Guia Dom Oct 23, 2022 3:07 pm

    miqi666

    miqi666
    Nuevo Miembro
    Nuevo Miembro
    Yo soy dev backend no conozco mucho Lua pero en si es como cualquier otro lenguaje, entonces las funciones son algoritmos predefinidos (Genéricos) los cuales se les definen parámetros (no obligatorio), estos parámetros al definirse tienen asignado un tipo y orden el cual debe respetarse para hacer uso de esa función.

    Entonces como ejemplo:

    La función doPlayerSendTextMessage tiene definidos 3 parámetros y al tú usar esta función debes pasar los parametros en el mismo orden y tipo de dato ya que esto es una regla definida de la función.

    //definición
    doPlayerSendTextMessage(cid, MessageClasses, message)

    //implementación o uso 1: char, 2:number, 3:cadena de texto
    doPlayerSendTextMessage(cid, 21,"texto string")


    Para mayor entendimiento en alto nivel puedes aprender Programación orientada a objetos (POO), estructuras de datos, Herencia, Polimorfismo, bucles y claramente sintaxis. Recomiendo aprender con Java, PHP o Typescript o en su defecto Python...

    Y claramente de ante mano agradecer al dueño del post con muy buena información.

    Saludos!

    5 participantes

    7[Guia] Lua - Scripting Guia Empty Re: [Guia] Lua - Scripting Guia Jue Mayo 25, 2023 1:32 pm

    alien7100

    alien7100
    Nuevo Miembro
    Nuevo Miembro
    Mexxx escribió:
    [Admin] God Maya escribió:


    doPlayerSendTextMessage(cid, MessageClasses, message)


    cid --------> se refiere al player

    MessageClasses  ---> tipos de mensajes programados en la fuente de compilacion y encontrados en constant.lua

    message  ---> es el texto a ejecutar

    Pero la pregunta es ¿qué implica que ese comando tenga esos parámetros? ¿Por qué tiene esos y no por ejemplo el parametro 'pos' o 'item.id'?
    .


    Amigos estoy buscando como crear un script con el lenguaje lua para que el personaje diga exana pox solo cuando este envenenado

    5 participantes

    Contenido patrocinado


    5 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).