Vinc
-
Total de itens
625 -
Registro em
-
Última visita
-
Dias Ganhos
4
Histórico de Reputação
-
Vinc recebeu reputação de sprague em Spell Com Delay
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 7, 14) local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7) setCombatArea(combat, area) function onCastSpell(cid, var) doSendMagicEffect(getPlayerPosition(cid),5) doSendAnimatedText(getPlayerPosition(cid), '500', 3) addEvent(doCombat,6000,cid, combat, var) return true end
@Leoxtibia
n fique postando coisas sem testar,se n possui conhecimentos em lua.
isso que se fez no script ta completamante errado
-
-
Vinc deu reputação a Refe em creature:soltaMagia("name") PARA TFS 1.x
Olá, hoje eu vim postar a função
creature:soltaMagia("nomedamagia")
Para o TFS 1.X.
Bom, eu estou fazendo um Poketibia com base no TFS 1.3 e vou postar essa função para quem quiser seguir o mesmo.
Segue um exemplo de uso:
Em LUASCRIPT.CPP
Abaixo de
registerMethod("Player", "addExperience", LuaScriptInterface::luaPlayerAddExperience); Adicione:
registerMethod("Creature", "soltaMagia", LuaScriptInterface::luaSoltaMagia); Logo abaixo da função:
int LuaScriptInterface::luaCreatureGetEvents(lua_State* L) Adicione:
int LuaScriptInterface::luaSoltaMagia(lua_State* L) { //creature:soltaMagia("name") const std::string& spellName = getString(L, 2); if(Creature* creature = getUserdata<Creature>(L, 1)) { InstantSpell* spell = g_spells->getInstantSpellByName(spellName); if(!spell) { lua_pushboolean(L, false); return 1; } Creature* target = creature->getAttackedCreature(); if(target) spell->castSpell(creature, target); else spell->castSpell(creature, creature); lua_pushboolean(L, true); } else { lua_pushboolean(L, false); } return 1; } Em luascript.h registre:
static int luaSoltaMagia(lua_State* L);
static int luaSoltaMagia(lua_State* L); Agora é só compilar a proveitar
-
Vinc recebeu reputação de RigBy em Dodge System
acho que ficaria melhor colocar um "return true" no fim do scopo do primeiro if depois do for,pra n continua o loop atoa.
e tbm coloca o valor da storage numa varivel, n tem nessecidade usar varias veses a função pra pegar o valor.
e pra que até 100 se so aumenta até o 11? trolagem com os player isso em.
-
Vinc recebeu reputação de Aberos em Opcode Duvida
sim
algo do tipo:
buy = { [2160] = 10000, } function onExtendedOpcode(cid, opcode, buffer) if opcode == 30 then local item,quant = string.explode(buffer,":") item,quant = tonumber(item),tonumber(quant) if buy[item] and doPlayerRemoveMoney(cid, buy[item]*quant ) then doPlayerAddItem(cid, item, quant, false) else doPlayerSendCancel(cid, "Você não tem dinheiro suficiente para comprar "..quant.." "..getItemNameById(item)..". ") end end end e no cliente vc mandaria na forma "itemid:quantidade" por opcode
-
Vinc recebeu reputação de Aberos em Opcode Duvida
lol,que pog
é so manda vida dele direto por
caso seja o cid do poke:
doSendPlayerExtendedOpcode(getCreatureMaster(cid), 51, getCreatureHealth(cid))
caso seja o cid do player:
doSendPlayerExtendedOpcode(cid, 51, getCreatureHealth(getCreatureSummons(cid)[1]))
vc pode mandar qualquer string que desejar por opcode
tá ligado que isso so vai printa no console né?
tem que usar algo do tipo
ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer) health = tonumber(buffer) end) -
Vinc recebeu reputação de Strogman em Opcode Duvida
lol,que pog
é so manda vida dele direto por
caso seja o cid do poke:
doSendPlayerExtendedOpcode(getCreatureMaster(cid), 51, getCreatureHealth(cid))
caso seja o cid do player:
doSendPlayerExtendedOpcode(cid, 51, getCreatureHealth(getCreatureSummons(cid)[1]))
vc pode mandar qualquer string que desejar por opcode
tá ligado que isso so vai printa no console né?
tem que usar algo do tipo
ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer) health = tonumber(buffer) end) -
Vinc recebeu reputação de Vills em [5 REP+] Ot client programas
o link da das sourcers para funcionar normalmente aki
caso n funciona ai pode usar o repositorio das sourcers do otc(use um programa adequado para baixar o repositorio )
https://github.com/edubart/otclient.git
(n é link de download de navegador,como disse deve se usar um programa adequado como o proprio progama da da git ,eclipse,ect)
link das libs
mingW32
-
Vinc recebeu reputação de Omega em getPrimes([range])
lol vcs tão checando se se numeros pares são primos e checando se numeros impares são divisiveis por pares...
checa de 2 em dois a partir do 3.
-
Vinc recebeu reputação de Omega em Patterns
como o dalvorsn falo fato a união de conjuntos.
e tbm casos do tipo [1-9 ](numeros de 1 a 9), [a-d] (letras de "a" á "d"), [1-7a-cf-k] (numeros de 1 a 7 ou letras de "a" a "c" ou letras de "f" a"k"), ect
e gfind n existe mais, é gmatch, troca que se n os cara usa e da erro.
-
Vinc deu reputação a Omega em X-Weapons
Apresento-lhes as X-Weapons, uma pequena galeria com alguns scripts para armas especiais. O @Lucasmml me ajudou fazendo a primeira sprite pra incrementar a iniciativa.
Magebane - o terror dos magos
Uma arma lendária: ela tem o poder de, a cada golpe, retirar um pouco do poder mágico do alvo.
Winter's Charm - o poder do inverno Esse poderoso cajado se adapta aos poderes do mago que o utiliza, disparando gelo e atrapalhando a movimentação do alvo.
Maul of Doom - o martelo dos amaldiçoados Esse martelo foi submetido a rituais profanos, recebendo poderes sobrenaturais que afligem com dores contínuas quem tem o azar de receber seus golpes.
-- Importante --
Esse código foi feito pelo @brun123 para uma magia, só adaptei ele pra criar uma arma.
Fury's Edge - no pain, no gain Essa espada se alimenta da raiva do seu usuário, causando maior dano conforme o percentual de vida decresce.
The Blood Drinker Esse machado é capaz de se alimentar do sangue fresco de suas vítimas, absorvendo-o para aumentar sua força.
-
-
Vinc recebeu reputação de dalvorsn em Patterns
como o dalvorsn falo fato a união de conjuntos.
e tbm casos do tipo [1-9 ](numeros de 1 a 9), [a-d] (letras de "a" á "d"), [1-7a-cf-k] (numeros de 1 a 7 ou letras de "a" a "c" ou letras de "f" a"k"), ect
e gfind n existe mais, é gmatch, troca que se n os cara usa e da erro.
-
Vinc recebeu reputação de dalvorsn em getPrimes([range])
lol vcs tão checando se se numeros pares são primos e checando se numeros impares são divisiveis por pares...
checa de 2 em dois a partir do 3.
-
Vinc deu reputação a MaXwEllDeN em Como funcionam os scripts?
Como funcionam os Scripts?
Você já deve ter se perguntado como os scripts funcionam ou não. Por exemplo: Como o servidor sabe que quando eu apertar com o botão direito em um Health Potion ele terá que healar o player alvo?
Em primeiro lugar devemos entender o que são callbacks. Do modo mais simples callback é algo que acontece devido a uma reação, é como a Terceira Lei de Newton que diz que toda ação gera uma reação, esse callback é a nossa reção, é uma função que vai ser executada assim que algo acontecer, no caso do Health Potion assim que ele for usado.
Quando um item é usado ele provoca a chamada de um callback dessa função:
– Max, que parâmetros são esses? :hum:
– É simples.
O Script do Health Potion ficaria +/- assim:
local config = { min_heal = 100, -- Minimo que vai healar max_heal = 200, -- Máximo que vai healar empty = 7636, -- Id do Potion vazio } function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then doCreatureSay(cid, "Aaaah...", 19) doSendMagicEffect(toPosition, 12) doCreatureAddHealth(itemEx.uid, math.random(config.min_heal, config.max_heal)) doTransformItem(item.uid, config.empty) else doPlayerSendCancel(cid, "You cannot use this object.") end return true end
Funções usadas:
Bem, esse aí é o script, agora só é você salvar, colocar na sua pasta actions/scripts e pronto!
– Max, se existem vários scripts na pasta actions/scripts, como meu OT sabe qual usar?
– Por causa das chamadas TAGs.
– TAGs?
– Sim, é uma linha que é colocada no .xml para dizer ao seu servido que o Callback para um item x será a função daquele script.
As Tags das actions seguem esse modelo:
<action itemid = "7618" event = "script" value = "HealthPotion.lua" /> itemid - É o id do item, que ao ser usado o callback dele vai ser o script que está em value, no caso HealthPotion.lua
event - Indica o que vai acontecer quando usar o item, no caso vai ler o script. Não precisa se preocupar com isso por enquanto.
value - É o nome do script que tem o callback que você quer usar no item 7618
Exercício: Crie uma Action que quando eu usar uma Warlord Sword em alguém essa pessoa diga "Aí, isso doi". Poste a TAG também!
Resposta SÓ ABRA DEPOIS DE RESOLVER:
É isso aí pessoal, essa foi a primeira aula de Scriptwriting que eu escreví, espero que gostem :3
-
Vinc deu reputação a sailorv em Tic Tac Toe
Foi eu que fiz o importante e que funcione nao e ?
LuckinhaSan obrigado por trazer aqui :]
e pelo que eu to vendo xtibia e o unico forum de tibia que talvez ainda nao esta morto, ( prefiro receber critica do que nao receber nada )
ou por que minha ideia nao interessa ninguem :[
-
Vinc recebeu reputação de sailorv em Tic Tac Toe
mais da pra melhora bastante,acho que ficaraia melhor se fosse por action, dai o npc so dava um item(que seria como serviria com caneta pra marca).
-
Vinc deu reputação a dalvorsn em System of Fire In Forests
• Autor: Dalvo
• Versão testada: TFS 0.4_rev3884
• Descrição: O script como o próprio nome diz, é um sistema de incêndio em florestas, você da use com um item que tem a caracteristica useable no items.otb(que tem with chross hair) numa arvore que esteja configurada para queimar, ela começa a queimar e o fogo vai se alastrando para todas as arvores ao redor, numa distancia de 1sqm, e as arvores que forem sendo queimadas também alastram o fogo nas mesmas condições, até que acabem todas as arvores "coladas". Graças a um bug do tfs não ficou muito bonito o código, tive que trabalhar com posições para pegar uid, isso não foi muito legal, mas está bem funcional. O código é livre para uso de qualquer um, só peço que mantenham os créditos.
Obs.: Créditos a loManoMano(deragon) pela idéia do script.
System Of Fire In Forests
• Crie um arquivo lua em actions, defina a tag colocando o(s) itemid(s) dos item(s) que poderão iniciar incendios), e coloque isso no arquivo lua:
7tkyCN79[/pastebin]
Configuração
local burningTrees = {
[TreeId] = BurningTreeId,
}
TreeId -> Id de um item que pode ser queimado;
BurningTreeId -> Id do item ao qual será o resultado do TreeId queimado;
Bem, é isso, espero que gostem. No mais qualquer duvida, bugs ou sugestões postem no tópico.
-
Vinc recebeu reputação de SkyLigh em Somente uma certa vocation passa pelo tile se não perde 10k
smartbox esse seus script macarronicos.
fih, se testo esse treco, n funciona n .
if getPlayerVocation(cid,vocation) then -- getPlayerVocation(cid) só recebe uma varivel a segunda n serve pra nada,ou seja qualquer vocação ... return true -- script acabo aki
-
Vinc recebeu reputação de SkyLigh em Somente uma certa vocation passa pelo tile se não perde 10k
se tive usando otscriptlive,para de usa porque a indentação ta toda zuada.
continua tendo um erro
se muda o storage do cara pra 1 e depois checa se é 1,obvio que vai ser true
coloca um return true depois do "setPlayerStorageValue(cid, config.storage , 1)",que arruma.
-
Vinc recebeu reputação de Roksas em Como Criar A Pasta Mods?
usa uma potion de double xp que n seja por mod
n sei se tem como simplesmente adiciona a pasta de mods
-
Vinc recebeu reputação de Roksas em pessoas com deficiência geneticas
O que você acha da atitude que a sociedade tem sobre deficientes(os por causas genetica) atualmente?
Os filhos de um deficiente genetico podem herdar o genes defeituos e passarema seus filhos, que passaram aos filhos dele e assim por diante, espalhando cada ves mais o genes defeituosos. O que pode causar serios problemas a humanidade no futuro.
Deixa-los vivos, não é se por contra a seleção natural(afinal eles não sobreviveriam sem a tecnologia e ajuda de pessoas normais)?
Antes de postar, lembre que aqui é o papo cabeça,se pretende chingar simplemente retirese.
Espero ver resposta baseadas em argumentos científicos.
-
Vinc recebeu reputação de Snowsz em Como usar Stats Change
wtf
essa é uma função callback de C pra quando uma criatura ganha ou perde hp ou mana
se n sabe n fala
@topico
vamo explica direito
onStatsChange(cid, attacker, _type, combat, value)
os argumentos(arg) podem ter qualquer nome que desejar,so importa a ordem dos mesmos
1ºarg = cid esse n precisa de explicação
2ºarg = attacker quem deu o dano(ou healo)
3ºarg = _type(n use o nome type,pois type é uma função que pode ser bem util)
o _type pode ser 4 tipos
STATSCHANGE_HEALTHGAIN(quando ganha hp),
STATSCHANGE_HEALTHLOSS(quando perde hp),
STATSCHANGE_MANALOSS(quando perde mana),
STATSCHANGE_MANAGAIN(quando ganha mana)
como usa-los?
coloque um if pra checalos
se vc quer quando perder sangue use
if _type == STATSCHANGE_HEALTHLOSS then
4ºarg = combat o tipo de dano physical,fire,etc. caso queira que seja quan um tipo de dano em epecifico use um "if combat == NomeDoTipoDeDano then"
os tipos de dano podem ser visto na lib 000-constant
5ºarg = value o quando de hp ou mana ganho/perdeu
exemplo de script
torna player imunea danos fire enquanto tiver o storage
function onStatsChange(cid, attacker, _type, combat, value) if _type == STATSCHANGE_HEALTHLOSS then --checa se foi uma perda de hp if getPlayerStorageValue(cid,666) == 1 then --checa o storage if combat == COMBAT_FIREDAMAGE then --checa se foi por dano de fogo return false --retorna falso(encerando o script) sendo assim n muda o hp do jogador end end end return true --retorna verdadeiro mudando o hp de player end
agora ela compactada e sem comentarios
function onStatsChange(cid, attacker, _type, combat, value) if _type == STATSCHANGE_HEALTHLOSS and getPlayerStorageValue(cid,666) == 1 and combat == COMBAT_FIREDAMAGE then return false end return true end
lembrece de sempre indendar o script pra deixar organizado
-
Vinc recebeu reputação de dwhfms em Quem ai curte bots?
meu deus até vc se odeia.
ps:pra quem n sabe Newtonnotwen é a antiga conta dele,banida por bostiar no barzinho,no papo cabeça, em outras seções.
-
Vinc recebeu reputação de Slicer em Como usar Stats Change
wtf
essa é uma função callback de C pra quando uma criatura ganha ou perde hp ou mana
se n sabe n fala
@topico
vamo explica direito
onStatsChange(cid, attacker, _type, combat, value)
os argumentos(arg) podem ter qualquer nome que desejar,so importa a ordem dos mesmos
1ºarg = cid esse n precisa de explicação
2ºarg = attacker quem deu o dano(ou healo)
3ºarg = _type(n use o nome type,pois type é uma função que pode ser bem util)
o _type pode ser 4 tipos
STATSCHANGE_HEALTHGAIN(quando ganha hp),
STATSCHANGE_HEALTHLOSS(quando perde hp),
STATSCHANGE_MANALOSS(quando perde mana),
STATSCHANGE_MANAGAIN(quando ganha mana)
como usa-los?
coloque um if pra checalos
se vc quer quando perder sangue use
if _type == STATSCHANGE_HEALTHLOSS then
4ºarg = combat o tipo de dano physical,fire,etc. caso queira que seja quan um tipo de dano em epecifico use um "if combat == NomeDoTipoDeDano then"
os tipos de dano podem ser visto na lib 000-constant
5ºarg = value o quando de hp ou mana ganho/perdeu
exemplo de script
torna player imunea danos fire enquanto tiver o storage
function onStatsChange(cid, attacker, _type, combat, value) if _type == STATSCHANGE_HEALTHLOSS then --checa se foi uma perda de hp if getPlayerStorageValue(cid,666) == 1 then --checa o storage if combat == COMBAT_FIREDAMAGE then --checa se foi por dano de fogo return false --retorna falso(encerando o script) sendo assim n muda o hp do jogador end end end return true --retorna verdadeiro mudando o hp de player end
agora ela compactada e sem comentarios
function onStatsChange(cid, attacker, _type, combat, value) if _type == STATSCHANGE_HEALTHLOSS and getPlayerStorageValue(cid,666) == 1 and combat == COMBAT_FIREDAMAGE then return false end return true end
lembrece de sempre indendar o script pra deixar organizado
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.