Ir para conteúdo

[Aula 7] Aplicações em OTServer (Parte 1)


Roksas

Posts Recomendados

14y2xlc.jpg

 

 

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.

 

 

divisor.png

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)

 

cid:
CreatureID (Monsters, NPCS, Players);

item:
O item que iremos clicar, podemos informar ele no script ou no .xml;

frompos:
Na posição que estou clicando;

item2:
Items com use with...

topos:
Para a posição;

 

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)

 

corpse
: Corpo ao morrer;

killer:
Quem matou;

target:
Quem o cid atacou;

lastHitKiller:
O último a hitar;

mostDamageKiller:
O que mais hitou;

lastHit:
O valor do último hit;

attacker:
Quem atacou o cid;

 

 

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)

 

item: O item que o cid equipou / desequipou ou andou em cima;

 

 

 

 

 

 

Talkactions:

function onSay(cid, words, param)

 

words:
Palavras ditas;

param:
Parâmetros das palavras;

 

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.

 

 

 

divisor.png

 

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.

Editado por victorfasano
Link para o comentário
Compartilhar em outros sites

get-verbo: obter, conseguir, receber, adquirir, ganhar, arranjar, comprar, atingir, procurar, ir buscar,

aprender, compreender, ter de, apurar, vir a ser, ser obrigado a, tornar-se.

 

nao vi nd ae de 'checar/verificar' uahauh mas blz...

 

achu q uma parte ali bugo nos quote e code kk' e achu q seria bom dizer q os parametros das funçoes principais ali podem ser qlqr coisa... soh oq realmente importa eh a ordem deles... ;p

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

Tentei fazer um Script na qual o Player ao usar o item, ganha um item dependendo de seu level.. acho que pode funcionar..

 

function onUse(cid, item, itemEx, fromPos, toPos)
               if getPlayerLevel (cid) <=45 then
               doPlayerRemoveItem(cid, 2342, 1)
               doPlayerAddItem (cid, 7834, 1)
               doPlayerSendTextMessage(cid, "Você ganhou 1 Fire Stone!")
               if getPlayerLevel(cid) >=46 then
               doPlayerAddItem(cid, 7834, 2)
               doPlayerRemoveItem(cid, 2342, 1)
               doPlayerSendTextMessage(cid, "VocÊ ganhou 2 Fire Stones!")
               end
               return true
               end   
               end

 

Editado por victorfasano
Link para o comentário
Compartilhar em outros sites

/\ na verdade o correto seria isso...

function onUse(cid, item, itemEx, fromPos, toPos)
   if getPlayerLevel (cid) <= 45 then
      doPlayerRemoveItem(cid, 2342, 1)
      doPlayerAddItem (cid, 7834, 1)
      doPlayerSendTextMessage(cid, "Você ganhou 1 Fire Stone!")
   elseif getPlayerLevel(cid) >= 46 then
      doPlayerAddItem(cid, 7834, 2)
      doPlayerRemoveItem(cid, 2342, 1)
      doPlayerSendTextMessage(cid, "VocÊ ganhou 2 Fire Stones!")
   end
return true
end

perceba q no seu, soh players lvl 45- ganhariam a stone... pois o if dos lvls 46+ nunca iria ser executado, ja q ele estava dentro do if dos lvls 45-...

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

Slicer, na verdade, a sua correção também está uma parte errada.

doPlayerRemoveItem(cid, 2342, 1)

isso só vai remover o item caso ele esteja com o player.

tente doRemoveItem(item.uid)

 

isso fará remover mesmo se estiver no chão.

(sei que vc sabe disso, mas só estou respondendo para que, quem for ler a correção, entender que um script deve ser pensado com possibilidades de bugs ao ser feito :p )

 

 

 

edit: a é, esqueci de falar... parabens Roksas pela criação dos tutoriais... eu não frequento muito mais fóruns de tibia, entrei hoje aqui e vi muita coisa nova no XTibia, inclusive essa seção de aulas, que adorei a ideia e a iniciativa sua de ensinar as pessoas.

parabens.

Editado por DrakyLucas
Link para o comentário
Compartilhar em outros sites

Muito bom Roksas!

Está bem completo, porém acho que você poderia adicionar, ainda, os comentário nas funções para actions, globalevents, talkactions e etc., assim como você fez na lista de funções get, set, do e is. Apesar de ser de fácil tradução, eu senti falta disso quando era iniciante.

 

Parabéns! Digno de REP+!

Link para o comentário
Compartilhar em outros sites

Muito bom Roksas!

Está bem completo, porém acho que você poderia adicionar, ainda, os comentário nas funções para actions, globalevents, talkactions e etc., assim como você fez na lista de funções get, set, do e is. Apesar de ser de fácil tradução, eu senti falta disso quando era iniciante.

 

Parabéns! Digno de REP+!

Amigo eu faço parte da escolinha e sou um desses aprendizes e o Roksas ainda irar explicar as funções que estão faltando, só estamos dando tempo para o pessoal termina as atividades para que as próximas sejam passadas. wink.png

Editado por infernity
Link para o comentário
Compartilhar em outros sites

@Slicer Dá pra encurtar esse script e corrigir o que o DrakyLucas falou:

function onUse(cid, item)
	if getPlayerLevel(cid) <= 45 then
		doRemoveItem(item.uid)
		doPlayerAddItem(cid, 7834, 1)
		doPlayerSendTextMessage(cid, "Você ganhou 1 Fire Stone!")
		else
		doPlayerAddItem(cid, 7834, 2)
		doRemoveItem(item.uid)
		doPlayerSendTextMessage(cid, "VocÊ ganhou 2 Fire Stones!")
	end 
	return true
end

@Roksas Achei um erro na aula 6, da uma olhada la

Link para o comentário
Compartilhar em outros sites

Gente estou começando agora e queria saber se vocês podem me ajudar com o seguinte script:

 

 

function onUse(cid, item, frompos, item2, topos) -- Ainda não entendi quando e qual usar
	if getPlayerMagLevel(cid) == 24 then
		doPlayerSendTextMessage(cid, "Hmmm... Boiola")
	if getPlayerMagLevel(cid) == 25 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o Buff Kienzan")
	if getPlayerMagLevel(cid) == 50 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o buff Flash")
	if getPlayerMagLevel(cid) == 70 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o Buff Punch")
	if getPlayerMagLevel(cid) == 80 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o buff Explosion este e o seu ultimo Buff")
	if getPlayerLevel(cid) == 250 then
		doPlayerSendTextMessage(cid, "Voce ja esta preparado para fazer a Reborn Quest junte a sua party e DIVIRTA-SE")
			doPlayerAddItem(cid, (não sei ainda qual o ID do item), 2)
				doBroadcastMessage(getCreatureName(cid)..'ESTA PREPARADO PARA FAZER A REBORN QUEST')
		end
	return true
	end
 
Editado por cmgabriel
Link para o comentário
Compartilhar em outros sites

@cmgabriel

Ta errado esse script, não funcionaria, o correto seria assim:

function onUse(cid, item, frompos, item2, topos)
	if getPlayerMagLevel(cid) == 24 then
		doPlayerSendTextMessage(cid, "Hmmm... Boiola")
		elseif getPlayerMagLevel(cid) == 25 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o Buff Kienzan")
		elseif getPlayerMagLevel(cid) == 50 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o buff Flash")
		elseif getPlayerMagLevel(cid) == 70 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o Buff Punch")
		elseif getPlayerMagLevel(cid) == 80 then
		doPlayerSendTextMessage(cid, "Voce ja pode usar o buff Explosion este e o seu ultimo Buff")
		elseif getPlayerLevel(cid) == 250 then
		doPlayerSendTextMessage(cid, "Voce ja esta preparado para fazer a Reborn Quest junte a sua party e DIVIRTA-SE")
		doPlayerAddItem(cid, itemid, 2)
		doBroadcastMessage("ESTA PREPARADO PARA FAZER A REBORN QUEST")
	end
end 

Pra entender seu erro leia a aula 4, e pra entender o que as functions fazem leia a aula 7.

Editado por WillOliveira
Link para o comentário
Compartilhar em outros sites

  • 4 months later...

Roksas Voce Errou Ali

 

function onUse(cid, item, frompos, item2, topos)

    if getPlayerLevel(cid) >= 300 then
    doCreatureAddHealth(cid, 100000)
    doCreatureAddMana(cid, 100000)
end

end

Voce Falou Que Cura Toda A HP E MP Do Player E Esta Errado Pq Se É Um Ot De Exp Alta Provavelmente O Player Tera Mais Do Que 100K De Life Entao Nao Curará Toda A Hp, O Certo Seria

 

doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) 
doCreatureAddMana(cid, getCreatureMaxMana(cid))
Shadownzinho
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...