Histórico de Curtidas
-
TonyHalk recebeu reputação de jacksonsns em Pasta Data - Funções Em LuaParte I – Funções Lua
irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).
Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui
Funções Get
São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
Dividi elas em dois grupos, a get simples e a get com parametros.
Funções get simples
São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
Os que há creature pode ser usados em monstros (a maioria).
São elas :
getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
getCreatureHealth(cid) – Verifica a health atual do player.
getCreatureMaxHealth(cid) – Verifica a health maxima do player.
getCreatureMana(cid) – Verifica a mana atual do player.
getCreatureMaxMana(cid) – Verifica a mana maxima do player.
getPlayerLevel(cid) – Verifica o level do player.
getPlayerExperience(cid) – Verifica a experiencia.
getPlayerMagLevel(cid) – Verifica o magic level.
getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
getPlayerTown(cid) - Verifica o id da cidade natal do player.
getPlayerVocation(cid) – Verifica a vocação dele.
getPlayerSoul(cid) – Verifica o soul points.
getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
getPlayerLight(cid) - Verifica o tamanho da luz do player.
getPlayerGuildId(cid) – Verifica o id atual da guild do player.
getPlayerGuildName(cid) – Verifica o nome da guild.
getPlayerGuildRank(cid) - Verifica o posto dele na guild.
getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
getPlayerGuildLevel(cid) – Verifica o nivel da guild.
getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
getPlayerGUID(cid) – Verifica o id dele na database.
getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
getCreatureOutfit(cid) – Verifica o id da roupa do player.
getCreaturePosition(cid) – Verifica a posição x,y,z do player.
getCreatureSpeed(cid) – Verifica a velocidade atual do player.
getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
getCreatureName(cid) – Verifica o nome do player.
getCreatureTarget(cid) – Verifica quem o player está atacando.
getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
getPlayerSkullType(cid) – Verifica qual skull o player possui.
getPlayerBalance(cid) – Verifica o saldo bancario do player.
getPlayerStamina(cid) – Verifica o tempo de stamina.
getPlayerNoMove(cid) – Verifica se ele pode se mover.
getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
getPlayerPartner(cid) – Se o player está em parte ou não.
getPlayerParty(cid) – Verifica informações da party do player.
getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
getCreatureSummons(cid) – Verifica os summons da criatura.
A sintaxe dessas funções é essa :
Exemplo :
if getCreatureMana(cid) == 20 then
Ou
mana = getCreatureMana(cid)
if mana == 20 then
Funções get com parametros.
Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
São elas :
getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
getPlayerInstantSpellInfo(cid, index) - Desconheço
getInstantSpellInfoByName(cid, name) - Verifica valores da magia
getInstantSpellWords(name) - Retorna a palavra magica da magia.
getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
getCreatureByName(name) - Retorna o nome da criatura.
getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
getContainerSize(uid) - Verifica quantos slots tem o container.
getContainerCap(uid) - Verifica quanto pesa o container.
getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
getDepotId(uid) - - Verifica o id da cidade do depot.
getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
getItemNameById(itemid) - - Pega o nome do item pelo id.
getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
getItemName(uid) - - Pega a descrição do item por uid.
getItemAttack(uid) - Pega o ataque do item por uid.
getItemPluralName(uid) - Pega o nome em plural por uid.
getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
getItemIdArticle(uid) - - Desconheço.
getItemDefense(uid) - - Pega a defesa do item por uid.
getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
getItemArmor(uid) - - Pega o valor de armour por uid.
getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
getItemIdByName(name) - - Retorna o id do item pelo nome.
getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.
Funções Set
São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
Exemplo :
Quote
if getItemNameById(item.uid) == 'boots of haste' then
setItemArmor(item.uid, 5)
end
No caso se o item se chamar boots of haste, o script coloca arm 5 nela.
São elas :
setItemAttack(uid, attack) - Modifica o ataque da arma
setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
setPlayerPartner(cid, guid) - Desconheço
setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
setItemName(uid) - Muda o nome do item.
setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
setItemDefense(uid, defense) - Modifica defesa no item
setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
setItemArmor(uid, armor) - Modifica a armor do item
setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced
Funções do
Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
A sintaxe dela é :
if item.itemid == 2195 then
doCreatureAddHealth(cid, -1000)
end
No caso se o item usado no script for 2195, ele remove 1000 de hp.
São elas :
doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
doRemoveItem(uid, quantidade) - Remove o item do player.
doPlayerFeed(cid, food) - Adiciona "comida" ao player.
doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
doCreatureSay(cid, text, type) - - Faz o player falar algo.
doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
doSetItemText(uid, text) - - Adiciona um texto ao item.
doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
doCreatureAddHealth(cid, health) - Adiciona life ao player.
doCreatureAddMana(cid, mana) - Adiciona mana ao player.
doPlayerSetTown(cid, townid) - Muda a cidade do player.
doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
doPlayerBroadcastMessage(cid, message, <optional> type) -
doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
doShowTextDialog(cid, itemid, text) - Mostra o texto do item
doDecayItem(uid) - Decai o item (aprodecer)
doCreateItem(itemid, type/count, pos) -
doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
doTileAddItemEx(pos, uid) - Cria um item2 em um tile
doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
doCreateTeleport(itemid, topos, createpos) - Cria um teleport
doSummonCreature(name, pos) - Sumona um monstro
Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.
Stackpos
Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.
Quote
0 – ground (chão)
1- Qualquer objeto acima do chão (se houver chão)
253 – player ou monstro
255 – item mais alto de qualquer pilha
65535 – dentro de um player
Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim
Quote
0 – chão
1 – mesa
2 – bag
Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.
Quote
0-chão
1-mesa
2-scarab coin
3-backpack
4-bag
Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
Veja esse exemplo :
stackpos:
Quote
0-areia
1-mesa
2-backpack
3-bag
4-gold coin
5-rope
6-shovel
7-machete
8-dead human
Nesse caso a ordem dos itens de baixo para cima é :
Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.
Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
Peço desculpas se ele fico confuso
Pois não estou vagal quanto antes e tenho pouco tempo...
Esperem que virão mais tutoriais.
Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
-
TonyHalk recebeu reputação de djteteh em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
-
TonyHalk recebeu reputação de mauropahoor em 9.8 Global Full com Rookguard !Informações:
.Exe estável (Tfs 0.4, anti-divulgação, War System..);
Novos elementos configurados;
GnomeBase, Warzone 1,2,e 3, - Monstros, Npcs e Teleports;
Outlaw Camp atualizado;
Montarias atualizadas;
Gray Island e Quirefang Global;
Market 100%;
Todos os suportes;
Rookgard 100%;
Sistemas domésticos 100%;
Venore Atualizada;
Nova montaria Buffalo adicionada;
Nova Demon Outfit adicionada;
120+ Quests;
25+ Raids automáticas;
War of Emperium;
Dota Conquista;
Evento Run;
Casa de Incêndio;
Tarefas;
Sistema de guerras com escudo;
29 Cidades;
Areá VIP;
Download Servidor Completo:
Mediafire
Scan Servidor:
Virustotal
Créditos:
Mkbrabsolut
Str4ng
Tfs Team
Chaito Soft
Fernandox
SmoOkeR
-
TonyHalk recebeu reputação de Black Fenix em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
-
TonyHalk recebeu reputação de bra em Pasta Data - Funções Em LuaParte I – Funções Lua
irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).
Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui
Funções Get
São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
Dividi elas em dois grupos, a get simples e a get com parametros.
Funções get simples
São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
Os que há creature pode ser usados em monstros (a maioria).
São elas :
getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
getCreatureHealth(cid) – Verifica a health atual do player.
getCreatureMaxHealth(cid) – Verifica a health maxima do player.
getCreatureMana(cid) – Verifica a mana atual do player.
getCreatureMaxMana(cid) – Verifica a mana maxima do player.
getPlayerLevel(cid) – Verifica o level do player.
getPlayerExperience(cid) – Verifica a experiencia.
getPlayerMagLevel(cid) – Verifica o magic level.
getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
getPlayerTown(cid) - Verifica o id da cidade natal do player.
getPlayerVocation(cid) – Verifica a vocação dele.
getPlayerSoul(cid) – Verifica o soul points.
getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
getPlayerLight(cid) - Verifica o tamanho da luz do player.
getPlayerGuildId(cid) – Verifica o id atual da guild do player.
getPlayerGuildName(cid) – Verifica o nome da guild.
getPlayerGuildRank(cid) - Verifica o posto dele na guild.
getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
getPlayerGuildLevel(cid) – Verifica o nivel da guild.
getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
getPlayerGUID(cid) – Verifica o id dele na database.
getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
getCreatureOutfit(cid) – Verifica o id da roupa do player.
getCreaturePosition(cid) – Verifica a posição x,y,z do player.
getCreatureSpeed(cid) – Verifica a velocidade atual do player.
getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
getCreatureName(cid) – Verifica o nome do player.
getCreatureTarget(cid) – Verifica quem o player está atacando.
getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
getPlayerSkullType(cid) – Verifica qual skull o player possui.
getPlayerBalance(cid) – Verifica o saldo bancario do player.
getPlayerStamina(cid) – Verifica o tempo de stamina.
getPlayerNoMove(cid) – Verifica se ele pode se mover.
getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
getPlayerPartner(cid) – Se o player está em parte ou não.
getPlayerParty(cid) – Verifica informações da party do player.
getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
getCreatureSummons(cid) – Verifica os summons da criatura.
A sintaxe dessas funções é essa :
Exemplo :
if getCreatureMana(cid) == 20 then
Ou
mana = getCreatureMana(cid)
if mana == 20 then
Funções get com parametros.
Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
São elas :
getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
getPlayerInstantSpellInfo(cid, index) - Desconheço
getInstantSpellInfoByName(cid, name) - Verifica valores da magia
getInstantSpellWords(name) - Retorna a palavra magica da magia.
getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
getCreatureByName(name) - Retorna o nome da criatura.
getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
getContainerSize(uid) - Verifica quantos slots tem o container.
getContainerCap(uid) - Verifica quanto pesa o container.
getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
getDepotId(uid) - - Verifica o id da cidade do depot.
getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
getItemNameById(itemid) - - Pega o nome do item pelo id.
getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
getItemName(uid) - - Pega a descrição do item por uid.
getItemAttack(uid) - Pega o ataque do item por uid.
getItemPluralName(uid) - Pega o nome em plural por uid.
getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
getItemIdArticle(uid) - - Desconheço.
getItemDefense(uid) - - Pega a defesa do item por uid.
getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
getItemArmor(uid) - - Pega o valor de armour por uid.
getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
getItemIdByName(name) - - Retorna o id do item pelo nome.
getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.
Funções Set
São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
Exemplo :
Quote
if getItemNameById(item.uid) == 'boots of haste' then
setItemArmor(item.uid, 5)
end
No caso se o item se chamar boots of haste, o script coloca arm 5 nela.
São elas :
setItemAttack(uid, attack) - Modifica o ataque da arma
setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
setPlayerPartner(cid, guid) - Desconheço
setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
setItemName(uid) - Muda o nome do item.
setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
setItemDefense(uid, defense) - Modifica defesa no item
setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
setItemArmor(uid, armor) - Modifica a armor do item
setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced
Funções do
Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
A sintaxe dela é :
if item.itemid == 2195 then
doCreatureAddHealth(cid, -1000)
end
No caso se o item usado no script for 2195, ele remove 1000 de hp.
São elas :
doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
doRemoveItem(uid, quantidade) - Remove o item do player.
doPlayerFeed(cid, food) - Adiciona "comida" ao player.
doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
doCreatureSay(cid, text, type) - - Faz o player falar algo.
doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
doSetItemText(uid, text) - - Adiciona um texto ao item.
doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
doCreatureAddHealth(cid, health) - Adiciona life ao player.
doCreatureAddMana(cid, mana) - Adiciona mana ao player.
doPlayerSetTown(cid, townid) - Muda a cidade do player.
doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
doPlayerBroadcastMessage(cid, message, <optional> type) -
doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
doShowTextDialog(cid, itemid, text) - Mostra o texto do item
doDecayItem(uid) - Decai o item (aprodecer)
doCreateItem(itemid, type/count, pos) -
doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
doTileAddItemEx(pos, uid) - Cria um item2 em um tile
doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
doCreateTeleport(itemid, topos, createpos) - Cria um teleport
doSummonCreature(name, pos) - Sumona um monstro
Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.
Stackpos
Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.
Quote
0 – ground (chão)
1- Qualquer objeto acima do chão (se houver chão)
253 – player ou monstro
255 – item mais alto de qualquer pilha
65535 – dentro de um player
Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim
Quote
0 – chão
1 – mesa
2 – bag
Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.
Quote
0-chão
1-mesa
2-scarab coin
3-backpack
4-bag
Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
Veja esse exemplo :
stackpos:
Quote
0-areia
1-mesa
2-backpack
3-bag
4-gold coin
5-rope
6-shovel
7-machete
8-dead human
Nesse caso a ordem dos itens de baixo para cima é :
Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.
Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
Peço desculpas se ele fico confuso
Pois não estou vagal quanto antes e tenho pouco tempo...
Esperem que virão mais tutoriais.
Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
-
TonyHalk recebeu reputação de gabirucola em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
-
TonyHalk recebeu reputação de Nto Wise em Pasta Data - Funções Em LuaParte I – Funções Lua
irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).
Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui
Funções Get
São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
Dividi elas em dois grupos, a get simples e a get com parametros.
Funções get simples
São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
Os que há creature pode ser usados em monstros (a maioria).
São elas :
getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
getCreatureHealth(cid) – Verifica a health atual do player.
getCreatureMaxHealth(cid) – Verifica a health maxima do player.
getCreatureMana(cid) – Verifica a mana atual do player.
getCreatureMaxMana(cid) – Verifica a mana maxima do player.
getPlayerLevel(cid) – Verifica o level do player.
getPlayerExperience(cid) – Verifica a experiencia.
getPlayerMagLevel(cid) – Verifica o magic level.
getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
getPlayerTown(cid) - Verifica o id da cidade natal do player.
getPlayerVocation(cid) – Verifica a vocação dele.
getPlayerSoul(cid) – Verifica o soul points.
getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
getPlayerLight(cid) - Verifica o tamanho da luz do player.
getPlayerGuildId(cid) – Verifica o id atual da guild do player.
getPlayerGuildName(cid) – Verifica o nome da guild.
getPlayerGuildRank(cid) - Verifica o posto dele na guild.
getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
getPlayerGuildLevel(cid) – Verifica o nivel da guild.
getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
getPlayerGUID(cid) – Verifica o id dele na database.
getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
getCreatureOutfit(cid) – Verifica o id da roupa do player.
getCreaturePosition(cid) – Verifica a posição x,y,z do player.
getCreatureSpeed(cid) – Verifica a velocidade atual do player.
getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
getCreatureName(cid) – Verifica o nome do player.
getCreatureTarget(cid) – Verifica quem o player está atacando.
getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
getPlayerSkullType(cid) – Verifica qual skull o player possui.
getPlayerBalance(cid) – Verifica o saldo bancario do player.
getPlayerStamina(cid) – Verifica o tempo de stamina.
getPlayerNoMove(cid) – Verifica se ele pode se mover.
getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
getPlayerPartner(cid) – Se o player está em parte ou não.
getPlayerParty(cid) – Verifica informações da party do player.
getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
getCreatureSummons(cid) – Verifica os summons da criatura.
A sintaxe dessas funções é essa :
Exemplo :
if getCreatureMana(cid) == 20 then
Ou
mana = getCreatureMana(cid)
if mana == 20 then
Funções get com parametros.
Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
São elas :
getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
getPlayerInstantSpellInfo(cid, index) - Desconheço
getInstantSpellInfoByName(cid, name) - Verifica valores da magia
getInstantSpellWords(name) - Retorna a palavra magica da magia.
getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
getCreatureByName(name) - Retorna o nome da criatura.
getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
getContainerSize(uid) - Verifica quantos slots tem o container.
getContainerCap(uid) - Verifica quanto pesa o container.
getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
getDepotId(uid) - - Verifica o id da cidade do depot.
getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
getItemNameById(itemid) - - Pega o nome do item pelo id.
getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
getItemName(uid) - - Pega a descrição do item por uid.
getItemAttack(uid) - Pega o ataque do item por uid.
getItemPluralName(uid) - Pega o nome em plural por uid.
getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
getItemIdArticle(uid) - - Desconheço.
getItemDefense(uid) - - Pega a defesa do item por uid.
getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
getItemArmor(uid) - - Pega o valor de armour por uid.
getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
getItemIdByName(name) - - Retorna o id do item pelo nome.
getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.
Funções Set
São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
Exemplo :
Quote
if getItemNameById(item.uid) == 'boots of haste' then
setItemArmor(item.uid, 5)
end
No caso se o item se chamar boots of haste, o script coloca arm 5 nela.
São elas :
setItemAttack(uid, attack) - Modifica o ataque da arma
setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
setPlayerPartner(cid, guid) - Desconheço
setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
setItemName(uid) - Muda o nome do item.
setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
setItemDefense(uid, defense) - Modifica defesa no item
setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
setItemArmor(uid, armor) - Modifica a armor do item
setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced
Funções do
Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
A sintaxe dela é :
if item.itemid == 2195 then
doCreatureAddHealth(cid, -1000)
end
No caso se o item usado no script for 2195, ele remove 1000 de hp.
São elas :
doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
doRemoveItem(uid, quantidade) - Remove o item do player.
doPlayerFeed(cid, food) - Adiciona "comida" ao player.
doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
doCreatureSay(cid, text, type) - - Faz o player falar algo.
doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
doSetItemText(uid, text) - - Adiciona um texto ao item.
doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
doCreatureAddHealth(cid, health) - Adiciona life ao player.
doCreatureAddMana(cid, mana) - Adiciona mana ao player.
doPlayerSetTown(cid, townid) - Muda a cidade do player.
doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
doPlayerBroadcastMessage(cid, message, <optional> type) -
doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
doShowTextDialog(cid, itemid, text) - Mostra o texto do item
doDecayItem(uid) - Decai o item (aprodecer)
doCreateItem(itemid, type/count, pos) -
doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
doTileAddItemEx(pos, uid) - Cria um item2 em um tile
doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
doCreateTeleport(itemid, topos, createpos) - Cria um teleport
doSummonCreature(name, pos) - Sumona um monstro
Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.
Stackpos
Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.
Quote
0 – ground (chão)
1- Qualquer objeto acima do chão (se houver chão)
253 – player ou monstro
255 – item mais alto de qualquer pilha
65535 – dentro de um player
Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim
Quote
0 – chão
1 – mesa
2 – bag
Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.
Quote
0-chão
1-mesa
2-scarab coin
3-backpack
4-bag
Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
Veja esse exemplo :
stackpos:
Quote
0-areia
1-mesa
2-backpack
3-bag
4-gold coin
5-rope
6-shovel
7-machete
8-dead human
Nesse caso a ordem dos itens de baixo para cima é :
Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.
Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
Peço desculpas se ele fico confuso
Pois não estou vagal quanto antes e tenho pouco tempo...
Esperem que virão mais tutoriais.
Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
-
TonyHalk recebeu reputação de lucascampos em [Resolvido] Erro RMEVai em
C:\Arquivos de programas\Remere's Map Editor Delete as 2 Dlcs abaixo e Execute o RME.EXE Não o Atalho na Área de Trabalho
"WSOCK32.dll" e "RPCRT4.dll".
Delete o atalho do RME que está na sua área de trabalho. (Caso utilizar este atalho irá criar as dll's novamente)
SE AJUDEI DA REP
-
TonyHalk recebeu reputação de Allef Araujo em [Resolvido] Erro RMEVai em
C:\Arquivos de programas\Remere's Map Editor Delete as 2 Dlcs abaixo e Execute o RME.EXE Não o Atalho na Área de Trabalho
"WSOCK32.dll" e "RPCRT4.dll".
Delete o atalho do RME que está na sua área de trabalho. (Caso utilizar este atalho irá criar as dll's novamente)
SE AJUDEI DA REP
-
TonyHalk recebeu reputação de Gabriel05 em Como Add OutfitOLá Pessoal,
Vim postar um tutorial de : Como ADD Outfit Em seu OT Serv
Bom Poco Papo E Mais Trabalho
O Primeiro Passo é Simples !
Entre em seuotserv/data/xml/outfit.
Agora Aperte o Butao Direito do mause e selecione Editar
Navegue e Adicione Depois De :
<outfit id="22" premium="yes">
<list gender="0" lookType="336" name="Warmaster"/>
<list gender="1" lookType="335" name="Warmaster"/>
</outfit>
Adicione isso:
<outfit id="y" premium="yes">
<list gender="x" lookType="w" name="h"/>
<list gender="z" lookType="k" name="f"/>
</outfit>
Legenda !
Y
= Nesse caso 23 MAS se For 30 Ponha 31 Se 40 Ponha 41 sempre 1 a + Nao pode Add ID's Iguals
X,Y,= Genero Ponha Um 1 E otro 0
W = Newtype pro Gender X
K = Newtype Pro Gender Z
H = Nome Da Outfit Male ou Female
F = Nome Da Outfit Male ou Female
Pronto!
><Observaçao><
Gender = 1 = Male,Homen
Gender = 0 = Female,Mulher
•Nao Deixe De Usar os Espaços que eu pus nos quots
Se nao Usar o Espaço Nao Vai Dar Certo
•E o Ultimo Outfit Que tem no Outfit.xml nao tire o ultimo </outfits>
Se nao, Nao Vai Da Certo
-
TonyHalk recebeu reputação de Gabriel05 em Editando Wands & RodsAe Pessoal do Tibiaking, aqui é o Tony
hoje vou estar ensinando vocês como dar uma boa editada nos Wands & Rods de seu Otserv
lembrando que estou usando como base meu Servidor 8.6 Rook War (hellwarot.no-ip.biz)
Vamos ir em
data\items\items.xml Vamos Procurar o Wand ou Rod a ser Editado
Wand of Dimensions
no meu caso
Script dele é esse
<item id="ID DO ITEM" article="Wand of Dimensions" " NOME DO ITEM " name="Wand of Dimension"> <attribute key="weight" value="2300" /> " Aqui é o Peso do Item " <attribute key="weaponType" value="wand" /> " Aqui é o Tipo da Arma no Caso Wand, se colocar axe ele vai Upar Axe nos Skill's " <attribute key="shootType" value="death" /> " Death é o Tipo do Ataque se for Colocar Ice, ele vai atacar Ice " <attribute key="range" value="3" /> " Aqui é a Distancia por SQM que ele vai pegar " Aqui ele já foi Editado.
vamos Ensinar agora como Mudar a Força do Ataque dele
Vá em
\data\weapons\Weapons.xml Aqui o Script da Nossa wand
Vamos editar e explicar
<wand id="2186" level="LEVEL QUE PODERA USAR " mana="MANA QUE IRA GASTAR POR ATAQUE" min=MINIMO DE ATAQUE " 300 " " max="MAXIMO DE ATAQUE "320" " type="ice" event="function" value="default"> <vocation id="2"/> EM
type="ice"
Aqui você vai colocar o Mesmo que você colocou no Script do Item.xml porque se não ele vai tacar gelo e fazer efeito de Fogo.
Então Ice>Ice nos 2.
Obrigado a Todos - TONY
-
TonyHalk recebeu reputação de nathy1234 em Pasta Data - Funções Em LuaParte I – Funções Lua
irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).
Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui
Funções Get
São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
Dividi elas em dois grupos, a get simples e a get com parametros.
Funções get simples
São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
Os que há creature pode ser usados em monstros (a maioria).
São elas :
getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
getCreatureHealth(cid) – Verifica a health atual do player.
getCreatureMaxHealth(cid) – Verifica a health maxima do player.
getCreatureMana(cid) – Verifica a mana atual do player.
getCreatureMaxMana(cid) – Verifica a mana maxima do player.
getPlayerLevel(cid) – Verifica o level do player.
getPlayerExperience(cid) – Verifica a experiencia.
getPlayerMagLevel(cid) – Verifica o magic level.
getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
getPlayerTown(cid) - Verifica o id da cidade natal do player.
getPlayerVocation(cid) – Verifica a vocação dele.
getPlayerSoul(cid) – Verifica o soul points.
getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
getPlayerLight(cid) - Verifica o tamanho da luz do player.
getPlayerGuildId(cid) – Verifica o id atual da guild do player.
getPlayerGuildName(cid) – Verifica o nome da guild.
getPlayerGuildRank(cid) - Verifica o posto dele na guild.
getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
getPlayerGuildLevel(cid) – Verifica o nivel da guild.
getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
getPlayerGUID(cid) – Verifica o id dele na database.
getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
getCreatureOutfit(cid) – Verifica o id da roupa do player.
getCreaturePosition(cid) – Verifica a posição x,y,z do player.
getCreatureSpeed(cid) – Verifica a velocidade atual do player.
getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
getCreatureName(cid) – Verifica o nome do player.
getCreatureTarget(cid) – Verifica quem o player está atacando.
getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
getPlayerSkullType(cid) – Verifica qual skull o player possui.
getPlayerBalance(cid) – Verifica o saldo bancario do player.
getPlayerStamina(cid) – Verifica o tempo de stamina.
getPlayerNoMove(cid) – Verifica se ele pode se mover.
getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
getPlayerPartner(cid) – Se o player está em parte ou não.
getPlayerParty(cid) – Verifica informações da party do player.
getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
getCreatureSummons(cid) – Verifica os summons da criatura.
A sintaxe dessas funções é essa :
Exemplo :
if getCreatureMana(cid) == 20 then
Ou
mana = getCreatureMana(cid)
if mana == 20 then
Funções get com parametros.
Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
São elas :
getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
getPlayerInstantSpellInfo(cid, index) - Desconheço
getInstantSpellInfoByName(cid, name) - Verifica valores da magia
getInstantSpellWords(name) - Retorna a palavra magica da magia.
getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
getCreatureByName(name) - Retorna o nome da criatura.
getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
getContainerSize(uid) - Verifica quantos slots tem o container.
getContainerCap(uid) - Verifica quanto pesa o container.
getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
getDepotId(uid) - - Verifica o id da cidade do depot.
getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
getItemNameById(itemid) - - Pega o nome do item pelo id.
getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
getItemName(uid) - - Pega a descrição do item por uid.
getItemAttack(uid) - Pega o ataque do item por uid.
getItemPluralName(uid) - Pega o nome em plural por uid.
getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
getItemIdArticle(uid) - - Desconheço.
getItemDefense(uid) - - Pega a defesa do item por uid.
getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
getItemArmor(uid) - - Pega o valor de armour por uid.
getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
getItemIdByName(name) - - Retorna o id do item pelo nome.
getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.
Funções Set
São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
Exemplo :
Quote
if getItemNameById(item.uid) == 'boots of haste' then
setItemArmor(item.uid, 5)
end
No caso se o item se chamar boots of haste, o script coloca arm 5 nela.
São elas :
setItemAttack(uid, attack) - Modifica o ataque da arma
setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
setPlayerPartner(cid, guid) - Desconheço
setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
setItemName(uid) - Muda o nome do item.
setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
setItemDefense(uid, defense) - Modifica defesa no item
setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
setItemArmor(uid, armor) - Modifica a armor do item
setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced
Funções do
Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
A sintaxe dela é :
if item.itemid == 2195 then
doCreatureAddHealth(cid, -1000)
end
No caso se o item usado no script for 2195, ele remove 1000 de hp.
São elas :
doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
doRemoveItem(uid, quantidade) - Remove o item do player.
doPlayerFeed(cid, food) - Adiciona "comida" ao player.
doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
doCreatureSay(cid, text, type) - - Faz o player falar algo.
doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
doSetItemText(uid, text) - - Adiciona um texto ao item.
doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
doCreatureAddHealth(cid, health) - Adiciona life ao player.
doCreatureAddMana(cid, mana) - Adiciona mana ao player.
doPlayerSetTown(cid, townid) - Muda a cidade do player.
doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
doPlayerBroadcastMessage(cid, message, <optional> type) -
doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
doShowTextDialog(cid, itemid, text) - Mostra o texto do item
doDecayItem(uid) - Decai o item (aprodecer)
doCreateItem(itemid, type/count, pos) -
doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
doTileAddItemEx(pos, uid) - Cria um item2 em um tile
doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
doCreateTeleport(itemid, topos, createpos) - Cria um teleport
doSummonCreature(name, pos) - Sumona um monstro
Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.
Stackpos
Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.
Quote
0 – ground (chão)
1- Qualquer objeto acima do chão (se houver chão)
253 – player ou monstro
255 – item mais alto de qualquer pilha
65535 – dentro de um player
Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim
Quote
0 – chão
1 – mesa
2 – bag
Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.
Quote
0-chão
1-mesa
2-scarab coin
3-backpack
4-bag
Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
Veja esse exemplo :
stackpos:
Quote
0-areia
1-mesa
2-backpack
3-bag
4-gold coin
5-rope
6-shovel
7-machete
8-dead human
Nesse caso a ordem dos itens de baixo para cima é :
Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.
Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
Peço desculpas se ele fico confuso
Pois não estou vagal quanto antes e tenho pouco tempo...
Esperem que virão mais tutoriais.
Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
-
TonyHalk recebeu reputação de paulino em Como Usar Gesior + Acc ManagerTente seguir esse tutorial para min Funciono
-
TonyHalk recebeu reputação de gabrielfdp em Editando Wands & RodsAe Pessoal do Tibiaking, aqui é o Tony
hoje vou estar ensinando vocês como dar uma boa editada nos Wands & Rods de seu Otserv
lembrando que estou usando como base meu Servidor 8.6 Rook War (hellwarot.no-ip.biz)
Vamos ir em
data\items\items.xml Vamos Procurar o Wand ou Rod a ser Editado
Wand of Dimensions
no meu caso
Script dele é esse
<item id="ID DO ITEM" article="Wand of Dimensions" " NOME DO ITEM " name="Wand of Dimension"> <attribute key="weight" value="2300" /> " Aqui é o Peso do Item " <attribute key="weaponType" value="wand" /> " Aqui é o Tipo da Arma no Caso Wand, se colocar axe ele vai Upar Axe nos Skill's " <attribute key="shootType" value="death" /> " Death é o Tipo do Ataque se for Colocar Ice, ele vai atacar Ice " <attribute key="range" value="3" /> " Aqui é a Distancia por SQM que ele vai pegar " Aqui ele já foi Editado.
vamos Ensinar agora como Mudar a Força do Ataque dele
Vá em
\data\weapons\Weapons.xml Aqui o Script da Nossa wand
Vamos editar e explicar
<wand id="2186" level="LEVEL QUE PODERA USAR " mana="MANA QUE IRA GASTAR POR ATAQUE" min=MINIMO DE ATAQUE " 300 " " max="MAXIMO DE ATAQUE "320" " type="ice" event="function" value="default"> <vocation id="2"/> EM
type="ice"
Aqui você vai colocar o Mesmo que você colocou no Script do Item.xml porque se não ele vai tacar gelo e fazer efeito de Fogo.
Então Ice>Ice nos 2.
Obrigado a Todos - TONY
-
TonyHalk recebeu reputação de DammitPlayer em [Resolvido] Erro RMErsrsr Aceito o VSF como um Vai ser Feliz kpaspakskpaskp
De nada mano
-
TonyHalk recebeu reputação de Fernandooww em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
-
TonyHalk recebeu reputação de Ahamaladha em Pasta Data - Funções Em LuaParte I – Funções Lua
irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).
Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui
Funções Get
São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
Dividi elas em dois grupos, a get simples e a get com parametros.
Funções get simples
São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
Os que há creature pode ser usados em monstros (a maioria).
São elas :
getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
getCreatureHealth(cid) – Verifica a health atual do player.
getCreatureMaxHealth(cid) – Verifica a health maxima do player.
getCreatureMana(cid) – Verifica a mana atual do player.
getCreatureMaxMana(cid) – Verifica a mana maxima do player.
getPlayerLevel(cid) – Verifica o level do player.
getPlayerExperience(cid) – Verifica a experiencia.
getPlayerMagLevel(cid) – Verifica o magic level.
getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
getPlayerTown(cid) - Verifica o id da cidade natal do player.
getPlayerVocation(cid) – Verifica a vocação dele.
getPlayerSoul(cid) – Verifica o soul points.
getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
getPlayerLight(cid) - Verifica o tamanho da luz do player.
getPlayerGuildId(cid) – Verifica o id atual da guild do player.
getPlayerGuildName(cid) – Verifica o nome da guild.
getPlayerGuildRank(cid) - Verifica o posto dele na guild.
getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
getPlayerGuildLevel(cid) – Verifica o nivel da guild.
getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
getPlayerGUID(cid) – Verifica o id dele na database.
getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
getCreatureOutfit(cid) – Verifica o id da roupa do player.
getCreaturePosition(cid) – Verifica a posição x,y,z do player.
getCreatureSpeed(cid) – Verifica a velocidade atual do player.
getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
getCreatureName(cid) – Verifica o nome do player.
getCreatureTarget(cid) – Verifica quem o player está atacando.
getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
getPlayerSkullType(cid) – Verifica qual skull o player possui.
getPlayerBalance(cid) – Verifica o saldo bancario do player.
getPlayerStamina(cid) – Verifica o tempo de stamina.
getPlayerNoMove(cid) – Verifica se ele pode se mover.
getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
getPlayerPartner(cid) – Se o player está em parte ou não.
getPlayerParty(cid) – Verifica informações da party do player.
getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
getCreatureSummons(cid) – Verifica os summons da criatura.
A sintaxe dessas funções é essa :
Exemplo :
if getCreatureMana(cid) == 20 then
Ou
mana = getCreatureMana(cid)
if mana == 20 then
Funções get com parametros.
Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
São elas :
getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
getPlayerInstantSpellInfo(cid, index) - Desconheço
getInstantSpellInfoByName(cid, name) - Verifica valores da magia
getInstantSpellWords(name) - Retorna a palavra magica da magia.
getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
getCreatureByName(name) - Retorna o nome da criatura.
getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
getContainerSize(uid) - Verifica quantos slots tem o container.
getContainerCap(uid) - Verifica quanto pesa o container.
getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
getDepotId(uid) - - Verifica o id da cidade do depot.
getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
getItemNameById(itemid) - - Pega o nome do item pelo id.
getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
getItemName(uid) - - Pega a descrição do item por uid.
getItemAttack(uid) - Pega o ataque do item por uid.
getItemPluralName(uid) - Pega o nome em plural por uid.
getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
getItemIdArticle(uid) - - Desconheço.
getItemDefense(uid) - - Pega a defesa do item por uid.
getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
getItemArmor(uid) - - Pega o valor de armour por uid.
getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
getItemIdByName(name) - - Retorna o id do item pelo nome.
getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.
Funções Set
São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
Exemplo :
Quote
if getItemNameById(item.uid) == 'boots of haste' then
setItemArmor(item.uid, 5)
end
No caso se o item se chamar boots of haste, o script coloca arm 5 nela.
São elas :
setItemAttack(uid, attack) - Modifica o ataque da arma
setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
setPlayerPartner(cid, guid) - Desconheço
setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
setItemName(uid) - Muda o nome do item.
setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
setItemDefense(uid, defense) - Modifica defesa no item
setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
setItemArmor(uid, armor) - Modifica a armor do item
setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced
Funções do
Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
A sintaxe dela é :
if item.itemid == 2195 then
doCreatureAddHealth(cid, -1000)
end
No caso se o item usado no script for 2195, ele remove 1000 de hp.
São elas :
doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
doRemoveItem(uid, quantidade) - Remove o item do player.
doPlayerFeed(cid, food) - Adiciona "comida" ao player.
doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
doCreatureSay(cid, text, type) - - Faz o player falar algo.
doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
doSetItemText(uid, text) - - Adiciona um texto ao item.
doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
doCreatureAddHealth(cid, health) - Adiciona life ao player.
doCreatureAddMana(cid, mana) - Adiciona mana ao player.
doPlayerSetTown(cid, townid) - Muda a cidade do player.
doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
doPlayerBroadcastMessage(cid, message, <optional> type) -
doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
doShowTextDialog(cid, itemid, text) - Mostra o texto do item
doDecayItem(uid) - Decai o item (aprodecer)
doCreateItem(itemid, type/count, pos) -
doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
doTileAddItemEx(pos, uid) - Cria um item2 em um tile
doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
doCreateTeleport(itemid, topos, createpos) - Cria um teleport
doSummonCreature(name, pos) - Sumona um monstro
Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.
Stackpos
Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.
Quote
0 – ground (chão)
1- Qualquer objeto acima do chão (se houver chão)
253 – player ou monstro
255 – item mais alto de qualquer pilha
65535 – dentro de um player
Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim
Quote
0 – chão
1 – mesa
2 – bag
Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.
Quote
0-chão
1-mesa
2-scarab coin
3-backpack
4-bag
Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
Veja esse exemplo :
stackpos:
Quote
0-areia
1-mesa
2-backpack
3-bag
4-gold coin
5-rope
6-shovel
7-machete
8-dead human
Nesse caso a ordem dos itens de baixo para cima é :
Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.
Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
Peço desculpas se ele fico confuso
Pois não estou vagal quanto antes e tenho pouco tempo...
Esperem que virão mais tutoriais.
Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
-
TonyHalk recebeu reputação de Cthulhu em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
-
TonyHalk recebeu reputação de Misael boy em [Resolvido] Como arrumar isso !@Stigal Sub-Moderação é Proibido, Reportado.
Se você não souber executar na Tabela
Vai em localhost:8090/phpmyadmin > Sua Database > SQL no canto Superior Esquerdo > Coloca o Código
e executar
-
TonyHalk recebeu reputação de andreguima em Como Editar um NPC 8.6 [VENDA]Ola pessoal, aqui é tony hoje vou ensinar vocês
como mexer em um Npc edita-lo, e o quer serve as Principais Configurações
Vamos começar
Vamos pegar essa parte Simples.
<npc name="Dark Rodo" script="data/npc/scripts/runes.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="133" head="0" body="86" legs="0" feet="38" addons="1"/> </npc> npc name
Nome dado o NPC, no caso aqui é o Dark rodo Vendedor de Magias e Wands e Rods.
Script="data/npc/scripts/runes.lua"
Aqui é o Lugar a onde esta a Venda dele, os Itens a ser vendidos
tendo Preço ID e o Nome do Item
<health now="1000" max="1000"/>
Health now e max é a vida do Npc exemplo aqui esta 1000 se eu coloca-se 20 ele teria somente 20 de vida mesmo que ele não seja atacado.
<look type="133" head="0" body="86" legs="0" feet="38" addons Look type é o Addon do Npc, no caso 133 é o Addon Mage, se você subistituir para 302 ele vai ficar com roupa de GOD ou 75 para Roupa de GM, HEAD BODY LEGS FEET é a cor da Roua do NPC
addons="1" é 1 ou 2, First addon ou Second Addon.
que o npc tera
-
TonyHalk recebeu reputação de leandrohackers em [Resolvido] Erro RMEVai em
C:\Arquivos de programas\Remere's Map Editor Delete as 2 Dlcs abaixo e Execute o RME.EXE Não o Atalho na Área de Trabalho
"WSOCK32.dll" e "RPCRT4.dll".
Delete o atalho do RME que está na sua área de trabalho. (Caso utilizar este atalho irá criar as dll's novamente)
SE AJUDEI DA REP
-
TonyHalk recebeu reputação de AGuyWhoOwn em Como Editar um NPC 8.6 [VENDA]Ola pessoal, aqui é tony hoje vou ensinar vocês
como mexer em um Npc edita-lo, e o quer serve as Principais Configurações
Vamos começar
Vamos pegar essa parte Simples.
<npc name="Dark Rodo" script="data/npc/scripts/runes.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="133" head="0" body="86" legs="0" feet="38" addons="1"/> </npc> npc name
Nome dado o NPC, no caso aqui é o Dark rodo Vendedor de Magias e Wands e Rods.
Script="data/npc/scripts/runes.lua"
Aqui é o Lugar a onde esta a Venda dele, os Itens a ser vendidos
tendo Preço ID e o Nome do Item
<health now="1000" max="1000"/>
Health now e max é a vida do Npc exemplo aqui esta 1000 se eu coloca-se 20 ele teria somente 20 de vida mesmo que ele não seja atacado.
<look type="133" head="0" body="86" legs="0" feet="38" addons Look type é o Addon do Npc, no caso 133 é o Addon Mage, se você subistituir para 302 ele vai ficar com roupa de GOD ou 75 para Roupa de GM, HEAD BODY LEGS FEET é a cor da Roua do NPC
addons="1" é 1 ou 2, First addon ou Second Addon.
que o npc tera
-
TonyHalk recebeu reputação de samlecter em Pasta Data - Funções Em LuaParte I – Funções Lua
irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome.
Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells.
Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça).
Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui
Funções Get
São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir.
Dividi elas em dois grupos, a get simples e a get com parametros.
Funções get simples
São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players.
Os que há creature pode ser usados em monstros (a maioria).
São elas :
getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui.
getCreatureHealth(cid) – Verifica a health atual do player.
getCreatureMaxHealth(cid) – Verifica a health maxima do player.
getCreatureMana(cid) – Verifica a mana atual do player.
getCreatureMaxMana(cid) – Verifica a mana maxima do player.
getPlayerLevel(cid) – Verifica o level do player.
getPlayerExperience(cid) – Verifica a experiencia.
getPlayerMagLevel(cid) – Verifica o magic level.
getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...)
getPlayerTown(cid) - Verifica o id da cidade natal do player.
getPlayerVocation(cid) – Verifica a vocação dele.
getPlayerSoul(cid) – Verifica o soul points.
getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe.
getPlayerLight(cid) - Verifica o tamanho da luz do player.
getPlayerGuildId(cid) – Verifica o id atual da guild do player.
getPlayerGuildName(cid) – Verifica o nome da guild.
getPlayerGuildRank(cid) - Verifica o posto dele na guild.
getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses).
getPlayerGuildLevel(cid) – Verifica o nivel da guild.
getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem).
getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste).
getPlayerGUID(cid) – Verifica o id dele na database.
getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player.
getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso).
getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe.
getMonsterTargetList(cid) – Verifica os montros na qual você está atacando.
getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons).
getCreatureOutfit(cid) – Verifica o id da roupa do player.
getCreaturePosition(cid) – Verifica a posição x,y,z do player.
getCreatureSpeed(cid) – Verifica a velocidade atual do player.
getCreatureBaseSpeed(cid) – Verifica a velocidade base do player.
getCreatureName(cid) – Verifica o nome do player.
getCreatureTarget(cid) – Verifica quem o player está atacando.
getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui.
getPlayerSkullType(cid) – Verifica qual skull o player possui.
getPlayerBalance(cid) – Verifica o saldo bancario do player.
getPlayerStamina(cid) – Verifica o tempo de stamina.
getPlayerNoMove(cid) – Verifica se ele pode se mover.
getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar).
getPlayerPartner(cid) – Se o player está em parte ou não.
getPlayerParty(cid) – Verifica informações da party do player.
getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima.
getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona).
getCreatureSummons(cid) – Verifica os summons da criatura.
A sintaxe dessas funções é essa :
Exemplo :
if getCreatureMana(cid) == 20 then
Ou
mana = getCreatureMana(cid)
if mana == 20 then
Funções get com parametros.
Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player.
Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas.
São elas :
getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing).
getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis.
getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).
getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei).
getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo).
getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade).
getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei).
getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag.
getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia.
getPlayerInstantSpellInfo(cid, index) - Desconheço
getInstantSpellInfoByName(cid, name) - Verifica valores da magia
getInstantSpellWords(name) - Retorna a palavra magica da magia.
getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player
getCreatureByName(name) - Retorna o nome da criatura.
getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player.
getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql
getContainerSize(uid) - Verifica quantos slots tem o container.
getContainerCap(uid) - Verifica quanto pesa o container.
getContainerItem(uid, slot) - Verifica se há um container no slot especificado.
getDepotId(uid) - - Verifica o id da cidade do depot.
getItemDescriptionsById(itemid) - Pega a descrição do item pelo id.
getItemNameById(itemid) - - Pega o nome do item pelo id.
getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis).
getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função
getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id.
getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions).
getItemName(uid) - - Pega a descrição do item por uid.
getItemAttack(uid) - Pega o ataque do item por uid.
getItemPluralName(uid) - Pega o nome em plural por uid.
getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor).
getItemIdArticle(uid) - - Desconheço.
getItemDefense(uid) - - Pega a defesa do item por uid.
getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid.
getItemArmor(uid) - - Pega o valor de armour por uid.
getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid.
getItemHitChance(uid) - - Pega a chanche de dano do item por uid.
getItemIdByName(name) - - Retorna o id do item pelo nome.
getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer).
getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...).
getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade.
getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade.
Funções Set
São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais.
Exemplo :
Quote
if getItemNameById(item.uid) == 'boots of haste' then
setItemArmor(item.uid, 5)
end
No caso se o item se chamar boots of haste, o script coloca arm 5 nela.
São elas :
setItemAttack(uid, attack) - Modifica o ataque da arma
setPlayerStamina(cid, minutes) - Adicione tempo em stamina.
setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia
setPlayerPartner(cid, guid) - Desconheço
setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural.
setItemName(uid) - Muda o nome do item.
setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa)
setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma.
setItemDefense(uid, defense) - Modifica defesa no item
setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma
setItemArmor(uid, armor) - Modifica a armor do item
setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item
setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item
setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados)
setHouseOwner(houseid, ownerGUID) - Muda o dono da casa
setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced
Funções do
Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais.
A sintaxe dela é :
if item.itemid == 2195 then
doCreatureAddHealth(cid, -1000)
end
No caso se o item usado no script for 2195, ele remove 1000 de hp.
São elas :
doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela.
doRemoveItem(uid, quantidade) - Remove o item do player.
doPlayerFeed(cid, food) - Adiciona "comida" ao player.
doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela.
doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve.
doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição.
doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro.
doCreatureSay(cid, text, type) - - Faz o player falar algo.
doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico
doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia
doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis.
doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid.
doSetItemText(uid, text) - - Adiciona um texto ao item.
doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem).
doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é).
doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill).
doCreatureAddHealth(cid, health) - Adiciona life ao player.
doCreatureAddMana(cid, mana) - Adiciona mana ao player.
doPlayerSetTown(cid, townid) - Muda a cidade do player.
doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros).
doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player.
doPlayerAddExp(cid, exp) - Adiciona experiencia ao player.
doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player.
doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player.
doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid.
doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor.
doPlayerBroadcastMessage(cid, message, <optional> type) -
doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem)
doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player.
doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro.
doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item.
doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo.
doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador.
doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador
doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...)
doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador
doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player.
doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho).
doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player.
doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player
doPlayerRemoveMoney(cid, money) - Remove dinheiro do player.
doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco
doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco.
doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco.
doShowTextDialog(cid, itemid, text) - Mostra o texto do item
doDecayItem(uid) - Decai o item (aprodecer)
doCreateItem(itemid, type/count, pos) -
doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2.
doTileAddItemEx(pos, uid) - Cria um item2 em um tile
doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container
doCreateTeleport(itemid, topos, createpos) - Cria um teleport
doSummonCreature(name, pos) - Sumona um monstro
Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua.
Stackpos
Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer.
O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam.
Quote
0 – ground (chão)
1- Qualquer objeto acima do chão (se houver chão)
253 – player ou monstro
255 – item mais alto de qualquer pilha
65535 – dentro de um player
Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente...
Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim
Quote
0 – chão
1 – mesa
2 – bag
Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin.
Quote
0-chão
1-mesa
2-scarab coin
3-backpack
4-bag
Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo.
Veja esse exemplo :
stackpos:
Quote
0-areia
1-mesa
2-backpack
3-bag
4-gold coin
5-rope
6-shovel
7-machete
8-dead human
Nesse caso a ordem dos itens de baixo para cima é :
Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ?
Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo.
Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua.
Peço desculpas se ele fico confuso
Pois não estou vagal quanto antes e tenho pouco tempo...
Esperem que virão mais tutoriais.
Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.
-
TonyHalk recebeu reputação de sktygraule em [Resolvido] SERVIDOR ENTRA MAIS NÃO CONECTA NO CHARLibere as Portas 7171 e 7172 no Firewall e veja o se o seu IP no config.lua é o do no-ip fixo
-
TonyHalk recebeu reputação de Leonardo Skutcrz em Problemas Com Meu Site!Resolvendo o Erro.
http://tibiaking.com/forum/topic/9232-resolvendo-temple-position-is-wrong-contact-the-administrator/
Se Ajudei Rep+ ,Amigo