-
Total de itens
250 -
Registro em
-
Última visita
-
Dias Ganhos
14
Tudo que Kydrai postou
-
Que maldade O bom é que vc provavelmente vc não irá cometer o msm erro novamente... O projeto de vcs vai ficar bom, só tem que tomar cuidado para não colocar muita gente e dps perde o controle. Eu atualmente to estudando programação, mas só sei o básico, ainda não entendo muito a distro. Então boa sorte ae pro pessoal e tomara que o projeto va pra frente msm.
-
[Encerrado] Meu Server Quando Salva Demora Muito Pra Volta
tópico respondeu ao brabopp de Kydrai em Tópicos Sem Resposta
Procura na area de scripts, eu vi esse code em algum lugar, se não achar faz um pedido. Basicamente é só ler o sql, eu não to no meu pc agora, então nem da pra ver. -
[Encerrado] Meu Server Quando Salva Demora Muito Pra Volta
tópico respondeu ao brabopp de Kydrai em Tópicos Sem Resposta
O jeito é salvar em determinados horarios, colocar um "auto-delete" pra contas inativas. Eu nem sei como funciona o save, mas acredito que seja lento msm. -
[Encerrado] [erro] [27/07/2009 01:10:55] Vocations::getvocation
tópico respondeu ao G0han de Kydrai em Tópicos Sem Resposta
deve estar com a vocação errada, verifica no sqlite se for o caso em players>vocation -
Eu achei a idéia interessante. Eu tava estudando algumas coisas novas em c++ sobre manipulação de memória pra saber como funcianavam os ips changers ai pensei nisso tbm. Mas não sei como funcionaria isso, tenho que pesquisar, ainda so iniciante em programação.
-
Ah, na actions.xml <action itemid="2148" event="script" value="other/changegold.lua"/> <action itemid="2152" event="script" value="other/changegold.lua"/> <action itemid="2160" event="script" value="other/changegold.lua"/> <action itemid="ID_DA_MOEDA" event="script" value="changegold.lua"/> Procura algo parecido e põe a 4ª linha
-
Acho que vc não ta abrindo certo, abre com o Bloco de Notas, vc deve ta abrindo com o iexplorer.
-
Não entendi direito, olha um exemplo para trocar 100 crystal coins por 1 moeda: No lugar de: elseif item.itemid == ITEM_CRYSTAL_COIN then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_PLATINUM_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_PLATINUMBLUE) Coloca: --Troca 100 crystal coins por 1 moeda elseif item.itemid == ITEM_CRYSTAL_COIN and item.type == ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, MOEDA, 1) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_TEAL) --Troca 1 crystal coins por 100 platinum coins elseif item.itemid == ITEM_CRYSTAL_COIN and item.type < ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_PLATINUM_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_YELLOW) --Troca 1 moeda coins por 100 crystal coins elseif item.itemid == MOEDA then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_CRYSTAL_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_YELLOW) ITEM_CRYSTAL_COIN >> Id da crystal (2160) ITEMCOUNT_MAX >> Quantidade maxima no slot (100) MOEDA >> Id da moeda ITEM_PLATINUM_COIN >> Id da platinum(2152) E é só mudar as cores do $$$ que fica pronto. Acho que ta tudo certo oq eu coloquei
-
Sobre a moeda virtual, é que nem o Daniel disse, tem que ser tudo livre. Embora essa moeda pudesse incentivar alguns aqui no fórum (ou não). Agora, sou a favor de poder mudar o nome de 6 em 6 meses, não vejo um pq não.
-
talkaction [talkaction] De God, Gm, Tutor, Etc. Do 8.4
tópico respondeu ao estimoarte de Kydrai em Actions e Talkactions
Isso que vc postou não faz sentido. As talkactions variam para cada OT, logo a pessoa não pode excluir a que vem pronta e colar outra qualquer. Camandos como esses não existem: <talkaction words="!masturb" script="masturb.lua" /> <talkaction words="god" script="godslayer.lua" /> <talkaction words="God" script="godslayer2.lua" /> <talkaction words="GOd" script="godslayer3.lua" /> ... Acredito que seu post não sirva pra nada. -
Tem uma parte assim: if isPlayer(killer) == TRUE then byPlayer = TRUE end Só colocar a mensagem ai: if isPlayer(killer) == TRUE then byPlayer = TRUE broadcastMessage("" .. assassino .. " Matou " .. vitima .."!", MESSAGE_STATUS_CONSOLE_ORANGE) end E tirar a mensagem no final do script pra não exibir 2 vezes.
-
[GlobalEvent] Alguem Sabe O Id Do Magic Level?
tópico respondeu ao TomSapolandia de Kydrai em Globalevents e Spells
Tenta mudar o manamultiplier. Pelo que vi quanto maior for ele mais lerdo fica o ml. Quanto ao skill id que vc mudou pertence ao axe, vc deixou ele mais rapido. -
[GlobalEvent] Script De Mensagens Alternadas
tópico respondeu ao lukinhaztl de Kydrai em Globalevents e Spells
O code ta errado, tem 1 "end" a mais: --Script by Lukinhaztl function onThink(interval, lastExecution) local cor = 22 -- cor 22 é branca local mensagens = {"Mensagem 1", "Mensagem 2", "Mensagem 3", "Mensagem 4" } -- Escreva entre as aspas oque vai aparecer doBroadcastMessage(mensagens[math.random(1,table.maxn(mensagens))], cor) return TRUE end No lugar de "table.maxn(mensagens)" seria mais simples "#mensagens", mas as 2 formas servem. Msm assim bom code -
Vc usou a function onDeath 2 vezes, mas pelo que vc falou isso deve estar funcionando. Se vc fosse usar o doPlayerAddItem seria assim: doPlayerAddItem(cid, itemid, count, canDropOnMap) Pode por isso dps do: broadcastMessage(""..player.." ["..level.."] acabou de ser morto(a) por "..killername.." ["..levelkiller.."].",19) Fica assim: broadcastMessage(""..player.." ["..level.."] acabou de ser morto(a) por "..killername.." ["..levelkiller.."].",19) doPlayerAddItem(killer, 2160, 10, TRUE) Acho que isso deve dar, se tiver com erro avisa qual o erro que da.
-
O erro ta aqui: if item.itemid == 1945 and doPlayerRemoveMoney(cid,4000) == 1 then Ao invés de doPlayerRemoveMoney(cid,4000) == 1 coloca doPlayerRemoveMoney(cid,4000) == TRUE O outro erro é o da bp vazia: container = doPlayerAddItem(cid, 2000, 1) Vc usou o comando antes de verficar o dinheiro no if E o código ta gigante, da pra simplifica mais: function onUse(cid, item, frompos, item2, topos) if doPlayerRemoveMoney(cid,4000) == TRUE then container = doPlayerAddItem(cid, 2000, 1) for i=1, 20 do doAddContainerItem(container, 8473, 7) end if(item.itemid == 1945) then doTransformItem(item.uid,item.itemid+1) elseif(item.itemid == 1946) then doTransformItem(item.uid,item.itemid-1) end else doPlayerSendCancel(cid,"Sorry, you don't have enough money!") end return TRUE end
-
[Arquivado][functions] Todas As Functions ....
tópico respondeu ao voodo de Kydrai em Noticias - Arquivo
Bom, mas acho que da pra melhorar ainda. Como o Marcryzius disse, colocar uma descrição rapida delas. E seria bom se separasse os tipos (get, do, set, ...) Estilo o tópico do frerety sobre as funções. -
É sempre bom manter um padrão na hora de criarmos os scripts. Assim fica muito mais facil e simples. Vou ver se tem algo para ser melhorado no seu artigo. Aproveitando isso, pq é ruim de usar?
-
[Creatureevents] Anunciador De Quem Mata E Quem Morre.
tópico respondeu ao 951357 de Kydrai em Globalevents e Spells
if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getCreatureName(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end Acho que não precisa do "if(isPlayer(lastHitKiller) == TRUE) then", pq ele vai realizar sempre a msm função. if(lastHitKiller ~= FALSE) then hitKillerName = getCreatureName(lastHitKiller) O resto parece bom :smile_positivo: -
A linha 29 ta assim: end </FONT></P> <P><FONT color=#007700>function onSay(cid, words, param) Deixa assim: end function onSay(cid, words, param) Ja na linha 93 e 94 ta assim: doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(c id) .. ' let you go out from jail! See you later') Devia ser só uma linha: doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. ' let you go out from jail! See you later')
-
Poderia falar seu server neh. Testei com monster, falto com player. No TFS 0.3.4(Crying Damson) faz assim, vai em data\creaturescripts\scripts\playerdeath.lua Depois de: if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getPlayerGUID(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end Adiciona: doBroadcastMessage(" "..getPlayerName(cid).." has been killed by "..hitKillerName..".") Fica assim: if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getPlayerGUID(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end doBroadcastMessage(" "..getPlayerName(cid).." has been killed by "..hitKillerName..".") Qualquer coisa, se seu OT for outro ve se tem a playerdeath.lua ou uma função parecida e avisa aqui.
-
Eu testei a minha função e vi que tava dando erro, olha a certa: function onAdvance(cid, skill, oldLevel, newLevel) if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".") end end O erro era que esqueci de colocar o skill na função, ai não funcionava ^^
-
-- feito por marcryzius devil function onAdvance(cid, oldLevel, newLevel) if (getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200) then doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".") end end Marcryzius, não sei se são todos os servs assim, eu to com o TFS 0.3.4 Crying Damson. A função onAdvance não é executada só quando avança o lvl, mas tbm o ml e os skills. Ou seja, se o player passa o ml e esta no lvl 50 a mensagem é exibida novamente. Então aqui, com algumas modificações, eu teria que colocar assim: (arrumada) function onAdvance(cid, skill, oldLevel, newLevel) if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".") end end newLevel == getPlayerLevel(cid) o newLevel teria que ser igual ao lvl do player, assim não será executado caso o newLevel seja o ml. (getPlayerLevel(cid)%50 == 0) toda vez que lvl/50 tiver resto 0 será executado, assim evito fazer assim: (getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200)
-
Quando Servidor Cair Reiniciar Automaticamente?
tópico respondeu ao vicXD de Kydrai em Lixeira Pública
Pesquisa por restater, auto-restater, acho que é uma coisa assim. É um programinha bem simples, pode ser feito em bat. Da uma olhada nesse http://www.xtibia.com/forum/Otrestarter-V203-t101780.html -
Comocomprarumapa,ouganhardinheironanet.(legalmente)
tópico respondeu ao defjamps2 de Kydrai em Lixeira Pública
Isso não funciona, esse site é scan, ou seja, não te paga. Provas? Vc nunca comprou nada, deixa de ser mentiroso. Se não me engano isso não é permitido aqui no xtibia. -
[duvida] Como Saber A Que Versao Será Compilada
tópico respondeu ao alex008 de Kydrai em Lixeira Pública
Vc pode procurar nas sources por protocol q será 8.31,... Ex: #define CLIENT_VERSION_MAX 831 Ou vc compila roda ele em qualquer versão do tibia q ele irá falar o protocolo q deve ser usado.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.