Aplicações em OTServer
Saudações queridos alunos, até agora aprendemos o básico, a Lua pura, aonde nós tivemos uma noção do que aprender realmente. Nesta aula estaremos ensinando funções e como criar seus próprios códigos em OTServer.
Primeiramente irei mostar á vocês as funções [get] que em inglês significa (checar, verificar). Esses tipos de funções checam e verificam X coisa. Irei cá postar a maioria delas e como funcionam.
Funções [get]:
getPlayerFood(cid) -- Checar a fome do playergetPlayerGroupName(cid) -- Checar o nome do grupo do playergetArea(pos, rangeX, rangeY) -- Checar uma área de X a YgetItemSpecialDescription(uid) -- Checar descrição especial do itemgetItemArticleById(itemid) -- Checar se é um item com artigo feminino ou masculinogetHouseTilesCount(houseId) -- Checar a quantidade de SQMS da housegetTileZoneInfo(pos) -- Verificar informações do tilegetCreatureLookPosition(cid) -- Checar a direção do playergetPlayerGhostAccess(cid) -- Checar invisibilidadegetPlayerSkullTicks(cid, type) -- Checar quanto tempo para sair skull do playergetMonsterSummonList(name) -- Checar todos summons que o monstro pode fazergetPlayerLastLogin(cid) -- Checar a ultima vez que o player logougetPlayerAccountManager(cid) -- Checar o Account Manager do playergetCreatureHideHealth(cid) -- Checar a vida invisivel do playergetItemProtection(uid) -- Checar a proteção do itemgetChannelUsers(channelId) -- Checar os usuários do channelgetCreatureLookDirection(cid) -- Checar a direção da criaturagetHouseInfo(id) -- Checar informações da housegetAccVipTime(acc) -- Checar o tempo de vip restante da contatype(vl) -- Checar o tipo do dado (boolean, string, number, table, nil, etc)getPosByDir(maspos, getdir) -- Checar a posição pela direçãogetHighscoreString(skillId) -- Checar Top skillgetAccountStorageValue(accid,value_id) -- Checar storage da contagetPlayerInfo(cid,val) -- Checar informações do playergetArticle(str) -- Checar artigo da stringgetDistanceBetween(firstPosition, secondPosition) -- Checar distancia de SQMS entre pos1 e pos2playerExists(name) -- Checar se o player existegetTibiaTime() -- Checar o horário do TibiagetExperienceForLevel(lv) -- Checar quantidade de EXP para chegar em tal levelgetItemArticle(uid) -- Checar artigo do itemgetPlayerFrags(cid) -- Checar frags do playergetPartyLeader(cid) -- Checar o dono da partygetOnlinePlayers() -- Retorna uma tabela com todos players onlinegetPlayerByName(name) -- Checar o player pelo namegetItemText(uid) -- Checar o texto do itemgetItemWriter(uid) -- Checar o escritor do texto do itemgetPlayerVocationName(cid) -- Checar o nome da vocação do playergetPromotedVocation(vid) -- Checar a promotion da vocationgetPlayerMasterPos(cid) -- Checar a posição do templo do playergetDirectionTo(pos1, pos2) -- Checar a direção entre pos1 e pos2getPlayerLookPos(cid) -- Checar a direção do playergetPlayerRates(cid) -- Checar as rates do playergetHouseFromPos(pos) -- Checar a house pela posiçãogetItemShootRange(uid) -- Checar a distancia de shoot do itemgetGuildMotd(guildId) -- Checar mensagem da guildgetTileInfo(pos) -- Checar informações do tilegetItemLevelDoor(itemid) -- Checar o level necessário para passar em tal portagetInstantSpellInfo(cid, name) -- Checar informações de tal spellgetAccountIdByAccount(accName) -- Checar ID da account pelo nomegetItemWeight(uid, precis) -- Checar peso do itemgetAccountByAccountId(accId) -- Checar a conta pelo IDgetBooleanFromString(str) -- Checar a boolean pela string (yes, no, true, false)getCreatureNoMove(cid) -- Checar se o player pode se mexergetMonsterInfo(name) -- Checar informações do monstrogetMonsterHealingSpells(name) -- Checar as magias de heal do monstrogetMonsterAttackSpells(name) -- Checar ataques do monstrogetMonsterLootList(name) -- Checar loots do monstrogetPlayerVipTime(cid) -- Checar o tempo de vip do playergetCreatureHealth(cid) -- Checar health atual do playergetThingfromPos(positem4) -- Checar algo em tal posiçãogetCreatureMaxHealth(cid) -- Checar a vida full de tal criaturagetCreatureMana(cid) -- Checar a mana atual do playergetCreatureMaxMana(cid) -- Checar a mana máxima (full) da criaturagetPlayerLevel(cid) -- Checar level do playergetPlayerExperience(cid) -- Checar experiencia do playergetPlayerMagLevel(cid) -- Checar magic level do playergetPlayerSpentMana(cid) -- Checar quanto de mana falta para upar Magic levelgetPlayerAccess(cid) -- Checar acesso do playergetPlayerSkillLevel(cid, skillid) -- Checar level de tal skill do playergetPlayerTown(cid) -- Checar cidade do playergetPlayerVocation(cid) -- Checar vocação do playergetPlayerIp(cid) -- Checar IP do playergetPlayerRequiredMana(cid, magicLevel) -- Checar mana necessária para upar tal MLgetPlayerItemCount(cid, itemid) -- Checar quantos items de tal ID o player temgetPlayerSoul(cid) -- Checar soul do playergetPlayerFreeCap(cid) -- Checar cap restante do playergetPlayerLight(cid) -- Checar a luz do playergetPlayerSlotItem(cid, slot) -- Checar item que está em tal slot do playergetPlayerWeapon(cid, <optional> ignoreAmmo) -- Checar a arma do player que está nas mãosgetPlayerItemById(cid, deepSearch, itemId, <optional> subType) -- Checar o item pelo IDgetPlayerDepotItems(cid, depotid) -- Checar os items que o player tem no depotgetPlayerGuildId(cid) -- Checar o ID da guild do playergetPlayerGuildName(cid) -- Checar o name da guild do playergetPlayerGuildRank(cid) -- Checar rank do player na guildgetPlayerGuildNick(cid) -- Checar o nick do player na guildgetPlayerSex(cid) -- Checar o sexo do playergetPlayerGUID(cid) -- Checar o ID do playergetPlayerAccountId(cid) -- Checar o ID da conta do playergetPlayerAccount(cid) -- Checar conta do playergetPlayerPromotionLevel(cid) -- Checar a promotion do playercanPlayerLearnInstantSpell(cid, name) -- Checar se o player pode aprender tal spellgetPlayerLearnedInstantSpell(cid, name) -- Checar a spell que o player ja aprendeugetPlayerInstantSpellCount(cid) -- Checar quantas spells o player tem e pode usargetPlayerInstantSpellInfo(cid, index) -- Checar informações da spellgetInstantSpellInfoByName(cid, name) -- Checar informações da spell pelo nomegetInstantSpellWords(name) -- Checar oque fala para soltar a spellgetPlayerStorageValue(uid, valueid) -- Checar a storage value do playergetGlobalStorageValue(valueid) -- Checar uma storage globalgetThing(uid) -- Checar coisagetThingPos(uid) -- Checar a posição de tal coisagetTileItemById(pos, itemId, <optional> subType) -- Checar um item no chão por IDgetTileItemByType(pos, type) -- Checar um item no chão por quantidadegetTopCreature(pos) -- Checar a criatura do topo da posiçãogetMonsterTargetList(cid) -- Checar a lista de targets do monstrogetMonsterFriendList(cid) -- Checar a lista de criaturas amigáveis do monstrocanPlayerWearOutfit(cid, looktype, addons) -- Checar se o player pode vestir tal roupagetCreatureCondition(cid, condition) -- Checar condtion do playergetPlayerLossPercent(cid, lossType) -- Checar quantos % o player tem para perder skills, itemsgetCreatureByName(name) -- Checar a criatura pelo nomegetPlayerGUIDByName(name) -- Checar o ID do player pelo nomegetPlayerNameByGUID(guid) -- Checar o nome do player pelo IDgetContainerSize(uid) -- Checar quantos slots tem o containergetContainerItem(uid, slot) -- Checar se o player que está em tal slot é containergetHouseOwner(houseid) -- Checar o dono da housegetHouseName(houseid) -- Checar o nome da housegetHouseEntry(houseid) -- Checar a entrada da housegetHouseRent(houseid) -- Checar o aluguel da casagetHousePrice(houseid) -- Checar o preço da casagetHouseTown(houseid) -- Checar a cidade da casagetHouseAccessList(houseid, listid) -- Checar os player que podem entrar na housegetHouseByPlayerGUID(playerGUID) -- Checar a house do player pelo ID do playergetDepotId(uid) -- Checar o ID do depotgetWorldCreatures(type) -- Checar as criaturas do servergetWorldUpTime() -- Checar quanto tempo o sv ta ongetGuildId(guild_name) -- Checar o ID da guildgetCreatureOutfit(cid) -- Retorna uma tabela com a outfit do playergetCreaturePosition(cid) -- Checar a posição da criaturagetCreatureName(cid) -- Checar o nome da criaturagetCreatureSpeed(cid) -- Checar a velocidade da criaturagetCreatureBaseSpeed(cid) -- Checar a velocidade de base da criaturagetCreatureTarget(cid) -- Checar o target da criaturagetItemDescriptionsById(itemid) -- Checar descrições do item pelo IDgetItemNameById(itemid) -- Checar nome do item pelo IDgetItemPluralNameById(itemid) -- Checar o nome plural do item pelo IDgetItemIdArticleById(itemid) -- Checar o artigo do item pelo IDgetItemWeightById(itemid, count, <optional: default: 1> precise) -- Checar o peso pelo ID do itemgetItemDescriptions(uid) -- Checar descrições do item,getItemName(uid) -- Checar nome do itemgetItemPluralName(uid) -- Checar nome plural do itemgetItemAttack(uid) -- Checar o ataque do itemgetItemExtraAttack(uid) -- Checar o ataque extra do itemgetItemDefense(uid) -- Checar a defesa do itemgetItemExtraDefense(uid) -- Checar a defesa extra do itemgetItemArmor(uid) -- Checar a armor do itemgetItemAttackSpeed(uid) -- Checar a velocidade de ataque do itemgetItemHitChance(uid) -- Checar a chance de hitar do itemgetItemIdByName(name) -- Checar o ID do item pelo nomegetPlayersByAccountId(accId) -- Checar os players que estão numa conta pelo ID da contagetIpByName(name) -- Checar o IP pelo nomegetPlayersByIp(ip[, mask = 0xFFFFFFFF]) -- Checar o Ip dos playersgetPlayerPremiumDays(cid) -- Checar os premium days do playergetCreatureSkullType(cid) -- Checar o tipo de skull do playergetPlayerRedSkullTicks(cid) -- Checar quanto tempo resta de red skull do playergetItemWeaponType(uid) -- Checar o tipo de weapon do item (axe, club, distance, etc)getPlayerBalance(cid) -- Checar money no bank do playergetPlayerBlessing(cid, blessing) -- Checar os bless do playergetPlayerStamina(cid) -- Checar a stamina do playergetPlayerNoMove(cid) -- Checar se o player pode andargetPlayerExtraExpRate(cid) -- Checar a experiencia extra do playergetPlayerParty(cid) -- Checar party do playergetPartyMembers(lid) -- Checar membros da partygetCreatureMaster(cid) -- Checar o dono da criatura summonadagetCreatureSummons(cid) -- Checar os summons da criaturagetTownId(townName) -- Checar ID da cidade pelo nomgetTownName(townId) -- Checar nome da cidade pelo IDgetTownTemplePosition(townId) -- Checar posição do templo da cidade pelo IDgetSpectators(centerPos, rangex, rangey, multifloor) -- Checar players em tal areagetVocationInfo(id) -- Checar informações da vocationgetNotationsCount(accId) -- Checar a quantidade de notations, advertências o player temgetBanReason(id) -- Checar a razão do bangetPlayerMoney(cid) -- Checar o dinheiro do playergetPlayerAccount(cid) -- Checar a conta do playergetPlayerLastLoginSaved(cid) -- Checar o ultimo login salvo do player
Funções [is]:
isSorcerer(cid) -- Checar se o player é sorcererisArmor(uid) -- Checar se o item é armorisWeapon(uid) -- Checar se o item é uma weaponisInRange(pos, fromPos, toPos) -- Verificar se tal posição está numa areaisPremium(cid) -- Checar se o player é premiumisNumber(str) -- Checar se é numero oque estiver no parametroisSorcerer(cid) -- Checar se o player é sorcererisDruid(cid) -- Checar se o player é druidisPaladin(cid)-- Checar se o player é paladinisKnight(cid) -- Checar se o player é knightisRookie(cid) -- Checar se o player é rooker (não tem vocation)isInArea(pos, fromPos, toPos) -- Checar se está em uma áreaisInParty(cid) -- Checar se o player está em partyisPrivateChannel(channelId) -- Checar se o channel é private ou publicisVip(cid) -- Checar se o player é vipisPlayer(cid) -- Checar se é playerisPlayerPzLocked(cid) -- Checar se o player está dentro da PZisPlayerGhost(cid) -- Checar se o player está invisivelisPlayerSaving(cid) -- Checar se o player está salvandoisMonster(cid) -- Checar se a criatura é monstroisNpc(cid) -- Checar se a criatura é NPCisOnline(name) -- Checar se o player está onlineisCreature(cid) -- Checar se é criaturaisContainer(uid) -- Checar se o item é bag, backpack, containerisCorpse(uid) -- Checar se é um corpo o itemisMovable(uid) -- Checar se o item pode ser movidoisItemStackable(itemid) -- Checar se o item pode se agruparisItemRune(itemid) -- Checar se o item é runaisItemDoor(itemid) -- Checar se o item é portaisItemLevelDoor(itemid) -- Checar se a porta é de levelisItemContainer(itemid) -- Checar se o item é um container pelo IDisItemFluidContainer(itemid) -- Checar se é potion vazia o itemisItemMovable(itemid) -- Checar se pode mover o itemisSightClear(fromPos, toPos, floorCheck) -- Checar se a posição e andar é claroisInArray(array, value) -- Checar se há um valor em uma array [tabelas]isIpBanished(ip) -- Checar se o IP está banidoisPlayerNamelocked(name) -- Checar se o nome do player é lockedisLevel(cid,level) -- Checar se o player está em tal levelisAccountBanished(accId) -- Checar se a conta do player é banidaisAccountDeleted(accId) -- Checar se a conta do player foi deletadaisAccVip(acc) -- Checar se tal account é vip
Funções [do]:
doPlayerAddLevel(cid, amount, round) -- Adicionar level ao playerdoPlayerAddMagLevel(cid, amount) -- Adicionar magic level ao playerdoPlayerAddSkill(cid, skill, amount) -- Adicionar skill ao playerdoPlayerSetRate(cid, type, value) -- Setar as tal rates do playerdoPlayerSetStorageValue(uid, key, newValue) -- Setar storage do playerdoPlayerSetGroupId(cid, newGroupId) -- Setar ID do group do playerdoPlayerAddExperience(cid, amount) -- Adicionar experience pro playerdoPlayerSetPromotionLevel(cid, level) -- Mudar promotion do playerdoPlayerSetStamina(cid, minutes) -- Setar stamina do playerdoPlayerSetBalance(cid, balance) -- Setar balance do bank do playerdoPlayerSetExtraExpRate(cid, value) -- Setar exp extra do playerdoCreatureSetLookDirection(cid, dir) -- Mudar direção do playerdoPlayerSetMaxCapacity(cid, cap) -- Setar cap do playerdoCleanTile(pos) -- Limpar items de tal tiledoCreatureSetHideHealth(cid, bool) -- Mudar vida invisivel do playermayNotMove(cid, bool) -- Mudar se o player pode andar ou nãodoPlayerUnlearnInstantSpell(cid, name) -- Retirar spell do playerdoPlayerSetExperienceRate(cid, value) -- Mudar experience rate do playerdoPlayerSetMagicRate(cid, value) -- Mudar rate de magic level do playerexecuteInArea(cmd, pos, area) -- Executar algo em uma areadoRemoveBanisment(accId) -- Remove banimento de uma conta pelo IDdoSaveServer() -- Salvar o sererdoCleanHouse(houseId) -- Limpar house pelo IDdoCleanMap() -- Limpar mapadoPlayerGiveItem(cid, itemid, amount, subType) -- Adicionar item ao playerdoPlayerTakeItem(cid, itemid, amount) -- Retirar item do playerdoPlayerBuyItem(cid, itemid, count, cost, charges) -- Player comprar itemdoPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges) -- Comprar container itemdoPlayerSellItem(cid, itemid, count, cost) -- Player vender itemdoPlayerAddAddons(cid, addon) -- Adicionar addons ao playerdoPlayerWithdrawAllMoney(cid) -- Retirar todo dinheiro do banco do playerdoPlayerDepositAllMoney(cid) -- Depositar todo dinheiro do player no bancodoPlayerTransferAllMoneyTo(cid, target) -- Transferir todo dinheiro do playerdoShutdown() -- Derrubar o serverdoMutePlayer(cid, time) -- Mutar o playerdoPlayerRemovePremiumDays(cid, days) -- Remover dias de premium do playerdoPlayerSetSkillRate(cid, skill, value) -- Setar rates de tal skill do playerdoPlayerJoinParty(cid, lid) -- Player entrar em partydoPlayerSendOutfitWindow(cid) -- Aparecer janela de mudar outfit para o playerdb.executeQuery(query) -- Executar uma querydoPlayerRemoveItem(cid, itemid, count, subtyp) -- Remover tal item do playerdoCreateNpc(name, pos) -- Criar Npc em tal posiçãodoPlayerSendChannelMessage(cid, author, message, SpeakClasses, channel) -- Msg pro playerdoPlayerSendToChannel(cid, targetId, SpeakClasses, message, channel, time) -- Player enviar msgdoSummonMonster(name, pos) -- Summonar monstro em tal posiçãodoCreateMonster(name, pos) -- Criar monstro em tal posiçãodoAccountSetVipTime(acc,time) -- Setar tempo de vip do playerdoRemoveItem(ui,qt) -- Remover itemdoPlayerLearnInstantSpell(cid, name) -- Player aprender spelldoPlayerFeed(cid, food) -- Adicionar fome ao playerdoPlayerSendCancel(cid, text) -- Mandar mensagem de cancel pro playerdoPlayerSendDefaultCancel(cid, ReturnValue) -- Mandar default cancel pro playerdoTeleportThing(cid, newpos, <optional> pushmove) -- Teleportar criatura para tal posiçãodoTransformItem(uid, toitemid, <optional> count/subtype) -- Transformar tal item em outrodoCreatureSay(cid, text, type) -- A criatura falar algodoSendMagicEffect(pos, type[, player]) -- Mandar efeito magico em tal posiçãodoSendDistanceShoot(frompos, topos, type) -- Enviar shoot distancedoChangeTypeItem(uid, newtype) -- Mudar quantidade de itemsdoSetItemActionId(uid, actionid) -- Mudar action id do itemdoSetItemText(uid, text) -- Mudar texto do itemdoSetItemSpecialDescription(uid, desc) -- Mudar descrição special do itemdoSendAnimatedText(pos, text, color) -- Mandar texto animadodoPlayerAddSkillTry(cid, skillid, n) -- Adicionar skill pro playerdoCreatureAddHealth(cid, health) -- Adicionar vida pro playerdoCreatureAddMana(cid, mana) -- Adicionar mana pro playerdoPlayerAddSpentMana(cid, amount) -- Adicionar mana para upar pro playerdoPlayerAddSoul(cid, soul) -- Adicionar soul para o playerdoPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) -- Adicionar item para o playerdoPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) -- Adicionar item2 para o playerdoPlayerSendTextMessage(cid, MessageClasses, message) -- Mandar msg para o playerdoPlayerAddMoney(cid, money) -- Adicionar money para o playerdoPlayerRemoveMoney(cid, money) -- Remover money do playerdoPlayerWithdrawMoney(cid, money) -- Sacar dinheiro do playerdoPlayerDepositMoney(cid, money) -- Depositar dinheirodoPlayerTransferMoneyTo(cid, target, money) -- Transferir dinheirodoShowTextDialog(cid, itemid, text) -- Mandar texto em dialogodoDecayItem(uid) -- Decay itemdoCreateItem(itemid, type/count, pos) -- Criar item em tal posiçãodoCreateItemEx(itemid, <optional> count/subtype) -- Criar item2doTileAddItemEx(pos, uid) -- Adicionar item2 em tal posiçãodoCreateTeleport(itemid, topos, createpos) -- Criar teleportedoSummonCreature(name, pos) -- Summonar uma criaturadoConvinceCreature(cid, target) -- Convencer criatura (exeta res)doMonsterSetTarget(cid, target) -- Mudar target do monstrodoMonsterChangeTarget(cid) -- Mudar target aleatorio do monstrodoAddCondition(cid, condition) -- Adicionar condition ao playerdoRemoveCondition(cid, type) -- Remover condition do playerdoRemoveConditions(cid) -- Remover todas conditions do playerdoRemoveCreature(cid) -- Kikar criaturadoMoveCreature(cid, direction) -- Mover criaturadoPlayerSetTown(cid, townid) -- Mudar town da criaturadoPlayerSetVocation(cid,voc) -- Mudar vocação da criaturadoPlayerAddExp(cid, exp) -- Adicionar exp ao playerdoPlayerSetGuildId(cid, id) -- Mudar ID da guild do playerdoPlayerSetGuildRank(cid, rank) -- Mudar rank da guild do playerdoPlayerSetGuildNick(cid, nick) -- Mudar nick na guild do playerdoPlayerAddOutfit(cid,looktype,addons) -- Adicionar outfit para o playerdoPlayerRemoveOutfit(cid,looktype,addons) -- Remover outfit do playerdoSetCreatureLight(cid, lightLevel, lightColor, time) -- Mudar luz do playerdoCreatureSetDropLoot(cid, doDrop) -- Mudar chance de dropdoPlayerSetLossPercent(cid, lossType, newPercent) -- Mudar % de loss itemsdoPlayerSetLossSkill(cid, doLose) -- Mudar % de loss skillsdoPlayerSave(cid) -- Salvar playerregisterCreatureEvent(uid, eventName) -- registrar eventodoBroadcastMessage(message, type) -- Mensagem para todosdoPlayerBroadcastMessage(cid, message, <optional> type)doPlayerSetSex(cid, newSex) -- Mudar sexo do playercreateCombatArea( {area}, <optional> {extArea} ) -- Criar uma area de combatecreateConditionObject(type) -- Criar uma conditionaddDamageCondition(condition, rounds, time, value) -- Adicionar condition de hitsaddOutfitCondition(condition, lookTypeEx, lookType, lookHead, lookBody, lookLegs, lookFeet)doCombat(cid, combat, param) -- Adicionar conditiondoAreaCombatHealth(cid, type, pos, area, min, max, effect) -- Tirar vida em tal areadoTargetCombatHealth(cid, target, type, min, max, effect) -- Tirar vida de alguemdoAreaCombatMana(cid, pos, area, min, max, effect) -- Tirar mana em tal areadoTargetCombatMana(cid, target, min, max, effect) -- Tirar mana de alguemdoChangeSpeed(cid, delta) -- Mudar velocidade da criaturadoCreatureChangeOutfit(cid, outfit) -- Mudar outfit da criaturadoSetMonsterOutfit(cid, name, time) -- Mudar outfit do player, para uma de monstrodoSetItemOutfit(cid, item, time) -- Coocar item como outfit do playerdoSetCreatureOutfit(cid, outfit, time) -- Mudar outfit do player durante temposaddEvent(callback, delay, ...) -- Agendar um eventostopEvent(eventid) -- Para um eventodoPlayerPopupFYI(cid, message) -- Mandar mensagem em PopupdoPlayerSendTutorial(cid, id) -- Mandar tutorial ao playerdoPlayerAddMapMark(cid, pos, type, <optional> description) -- Adicionar mark no minimap do playerdoPlayerAddPremiumDays(cid, days) -- Adicionar premium days ao playerdoCreatureSetSkullType(cid, skull) -- Mudar skull do playerdoPlayerSetRedSkullTicks(cid, amount) -- Mudar tempo para sair skull do playerdoPlayerAddBlessing(cid, blessing) -- Adicionar bless ao playerdoPlayerAddStamina(cid, minutes) -- Adicionar stamina ao playerdoPlayerSetNoMove(cid, cannotMove) -- Mudar se a criatura pode andar ou nãodoPlayerResetIdleTime(cid) -- Resetar tempo paradodoAddIpBanishment(ip) -- Banir IPdoAddNamelock(name) -- Lockar namedoAddBanishment(accId) -- Banir contadoAddDeletion(accId) -- Deletar contadoAddNotation(accId) -- Adverter contadoRemoveIpBanishment(ip) -- Remover IP banidodoRemoveNamelock(name) -- Remover nome lockadodoRemoveBanishment(accId) -- Remover banimento da contadoRemoveDeletion(accId) -- Remover deletação contadoRemoveNotations(accId) -- Remove advertências da contaexecuteRaid(name) -- Executar tal raid pelo namesaveServer() -- Salvar servercleanHouse(houseId) -- Limpar a house pelo IDcleanMap() -- Limpar mapashutdown() -- Kikar servidordoItemBroken(cid, itemid, chancemin, chancemax) -- Quebrar itemdoRaid(startpos,endpos,monsters,delay,raidcount,monstercount,message1type,message2type,message1,message2) -- Executar raiddoCreatureExecuteTalkAction(uid, talk) -- Criatura executar talk
Funções [set]:
setPlayerName(cid,name,msg) -- Setar nome do playersetAccountStorageValue(accid,value_id,value) -- Setar storage da contasetPlayerPromotionLevel(cid) -- Setar level de promotion do playersetPlayerGroupId(cid, newGroupId) -- Setar ID do group do playersetPlayerStamina(cid, minutes) -- Setar stamina do playersetPlayerStorageValue(uid, valueid, newvalue) -- Setar storage do playersetItemArticle(uid) -- Setar artigo do itemsetHouseAccessList(houseid, listid, listtext) -- Mudar lista de acess da housesetHouseOwner(houseid, ownerGUID[, clean]) -- Mudar owner da housesetWorldType(type) -- Mudar type do worldsetCombatArea(combat, area) -- Setar area de combatesetCombatCondition(combat, condition) -- Setar conditionsetCombatFormula(combat, type, mina, minb, maxa, maxb) -- Setar formula de combatesetConditionFormula(combat, mina, minb, maxa, maxb) -- Setar formula de conditionsetItemName(uid) -- Setar name do itemsetItemPluralName(uid) -- Setar name plural do itemsetItemIdArticle(uid)setItemAttack(uid, attack) -- Setar item attacksetItemExtraAttack(uid, extraattack) -- Setar extra item attack do itemsetItemDefense(uid, defense) -- Setar defense do itemsetItemExtraDefense(uid, extradefense) -- Setar extra defense do itemsetItemArmor(uid, armor) -- Setar armor do itemsetItemAttackSpeed(uid, attackspeed) -- Setar attack speed do itemsetItemHitChance(uid, hitChance) -- Setar chance de hit do itemsetItemShootRange(uid, shootRange) -- Setar shoot range do itemsetPlayerExtraExpRate(cid, value) -- Setar extra exp rate do playersetPlayerPartner(cid, guid) -- Setar partner do player
Nós temos diversos tipos de scripts que podemos criar em OTServ (Actions, Creaturescripts, Globalevents, Movements, Talkactions, etc)
Como começar?
Actions:
function onUse(cid, item, frompos, item2, topos)oufunction onUse(cid, item, fromPosition, itemEx, toPosition)
Creaturescripts:
function onLogin(cid)function onLogout(cid)function onDie(cid)function onDeath(cid, corpse, killer)function onAdvance(cid, skill, oldlevel, newlevel)function onAttack(cid, target)function onCombat(cid, target)function onLook(cid, thing, position, lookDistance)function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)function onKill(cid, target, lastHit)function onTextEdit(cid, item, newText)function onStatsChange(cid, attacker, type, combat, value)
Globalevents:
function onThink(interval, lastExecution, thinkInterval)function onTimer()
Movements:
function onEquip(cid, item, slot)function onDeEquip(cid, item, slot)function onStepOut(cid, item, pos)function onStepIn(cid, item, pos)function onAddItem(moveitem, tileitem, pos)function onRemoveItem(moveitem, tileitem, pos)
Talkactions:
function onSay(cid, words, param)
Explicações:
callbacks -- Nome das funçõesExemplos: onSay, onKill. parameters ou parâmetros -- São tudo que vem depois do callback e entre ( e ).Exemplos: (cid, item)
Criandos os scripts:
Primeiramente, devemos saber oque queremos fazer. Se vamos clicar em algo (actions), se vamos falar (talkactions), se vamos colocar / retirar items ou andar (movements), entre outros. Digamos que iremos criar um actions:
function onUse(cid, item, frompos, item2, topos)
Agora queremos adicionar ao script, uma verificação. Caso o player tenha level maior que 300, ele irá healar toda sua health e mana:
function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) >= 300 then doCreatureAddHealth(cid, 100000) doCreatureAddMana(cid, 100000)endend
Utilizando operadores relacionais verificamos se o level do cid (player), é 300 ou maior. E assim, adicionar mana e health.
Exercícios para casa:
1º Exercício: Tente criar um item que ao clicar, me dê 100gps.
2º Exercício: Faça oque puder com oque aprendemos, tente utilizar 10 funções.
3º Exercício: Escolha um script qualquer na internet, e explique ele completo.