Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 04/07/13 em todas áreas
-
Coerência e princípios em mapping
BlackTheRabbit e 7 outros reagiu a vital900 por um tópico no fórum
Olá galera Eksiana, Por meio deste material, estarei tentando explicar a galera oque é certo e oque é errado no mapping. Para mostrar oque têm e oque não têm lógica. Tentando acabar com os baiaks e poke styles. Bom, para começar isto tenho que explicar oque seria lógico.. Bom algo lógico seria algo coerente, ou seja, para você fazer uma boa área ela tem que ser coerente com aquilo que você deseja retratar, ela tem que "seguir um padrão". Primeiro, para quem não sabe oque é coerência, Coerência: Idéias ou fatos que unidos tornam algo lógico, algo que possa existir. Logo, percebemos que para mappear não podemos simplesmente unir várias 'coisas' e formar uma COISA, que esta 'lindo', para retratar algo que seja realmente bom, você deve tentar recriar o real, e para fazer o magnifico fazer este real virar uma obra, devemos pintar (editada) até o ultimo espaço com o material certo. Exemplo de uma boa obra: Exemplo do magnífico (retratando o mesmo tema). Podemos perceber que para se haver coerência, os seguintes termos devem ser adotados em seu mapa: [Localização] O local retratado deve condizer com tudo em todos os termos. [Tamanho & Formato] Tamanho correto, nem muito grande nem apertado demais. Nada deve ser quadrado demais. [Detalhes & Auto-Border] Habitat (local) com detalhes apropriados para oque se deseja retratar. Não use auto border! *Todas as imagens usadas nesse tutorial são apenas para explicação do mesmo. __________________________________________ Iniciando, Recomendo que antes de prosseguir, você leia o tutorial sobre os equipamentos a se usar para se mappear e sobre como ter seu primeiro contato com o RME. Depois de ter lido você já sabe o básico sobre o mapping, então continuemos. Localização Bom este tópico pode ser divido em dois: NPC's/Monstros [Respaw] Para se fazer um mapa coerente, este deve apresentar coerência em tudo, até no local onde você irá colocar os seus respaws, seja de monstro, seja de NPC. Pensemos: <> Monstro pelo tipo do local: é ilógico existir um monstro do elemento fogo em um ambiente gélido, logo colocar um Demon numa área de gelo seria incoerente, logo errado. Agora colocar tal monstro em ambientes de lava seria o correto a se fazer, pois o elemento do monstro seria coerente ao elemento do ambiente. <> Monstro em determinados locais: Bom, alguns 'mappers' decidem colocar por achar legal, um monstro de grande poder próximo ao local de 'entrada' do servidor [os famosos Templos], isto é totalmente errado, pois nestes locais sagrados existem jogadores de todos os níveis (newbies ou não), assim seria errado colocar qualquer monstro de ATK nas proximidades deste ambiente. <> Local em determinado ambiente: Certas coisas devem ser levadas em conta na hora de mappear, por exemplo: Eu montei uma área de lava/fogo.. Por mais criativo que eu seja, nunca ficaria legal, ou funcionaria combar esta área com um ambiente gélido (ligar uma área a outra é algo importante, logo a lógica deve ser usada), ou até mesmo com um templo de nature.. Pisos de 'azulejo' não deve ser usados como ruas para sua cidade.. Etc.. Deve-se ter um senso, do que é correto ou não. Tamanho & Formato Um comum erro entre os iniciantes, é exagerar no tamanho das construções e as deixa-las quadrada de mais.. Uma área grande atrapalha e muito na hora de mappear, pois uma grande área requer uma grande quantidade de detalhes, e poucos são os capacitados a detalha-la bem com um tamanho tão grande. Caso você crie algo grande e seja iniciante, deverá sair como a imagem acima, sem detalhes, algo feio e 'sem-vida'. E tente retirar o formato quadrado, procure ou retangula-lo ou arredonda-lo. Pois o pior formato que se pode ter é o quadrangular. Veja um mero exemplo de uma construção, ela esta simples, pequena e arretangulada.. Viu, algo simples e pequeno. Porém muito mais belo que o grande e 'complexo'. Não pense que estes erros de tamanho e formato acontecem apenas em construções não.. Eles acontecem em nature também, e em maior incidência nas montanhas. Lembre-se, pela lógica o natural não é 'fixo' ele tem variantes em seus formatos e tamanhos. Veja um mero exemplo de uma montanha feita erroneamente. Usando-se auto border, fazendo-a quadrada e grande.. Agora veja uma montanha feita no raw, com paciência, e usando os critérios de tamanho e formato.. Viu, basta fazer algo menos e caprichado que o resultado vêm com facilidade, e obviamente usando a lógica no que esta fazendo. Detalhes & Auto Border Bom os detalhes devem condizer com o local tratado, ou seja, você deve usar a lógica na hora de detalhar suas áreas. Pois qualquer erro, mesmo que bobo, pode tirar um pouco da magnifícidade de seu mapa. O auto border ele faz o mapper perder a sua credibilidade, pois este programa ele mappeia para o mapper, e não só isto o trabalho que este sistema(A.B.) faz só atrapalha o mapper, seja suas bordas retas, sua facilidade em ajudar o mapper a cometer erros fatais entre outros.. Um mapa feito no RAW é um mapa SEU, um mapa feito no Auto Border é um mapa feio e do programa. Erros que devem ser evitados, pois estão incoerentes com o ambiente ou com 'abuso de auto border'.. Áreas corretamente feitas, você deve procurar retrata-las. Sem auto border. Bom, eu esta esperando apenas um comentário como: Para continuar o tutorial. Anne (para quem não conhece, AnneMotta é/foi uma grande mapper), na verdade é esta seriedade para com o mapping que o traz ser divertido, pois você tenta explorar a sua criatividade para fazê-lo bonito, lógico e bom de ser jogado. <> O Tibia Global é um exemplo a se seguir em muito aspectos, porém eles não são perfeitos, no mapping eles vêm melhorando.. Porém ainda existem áreas com bug's (estes dias o GuizitoG, encontrou cerca de 30 bug's de mapping no tibia global por uso de "auto-border". Como você disse na POI existem áreas com lava e madeira.. Mas pense, se eu posso ser original e coerente a ponto de fazer algo comum e monótono virar algo 'incomum', coerente (lógico) e até mesmo magnífico, porque me limitar?. Então para transformar a área sem lógica acima em algo coerente, basta colocar alguns 'fields' de fogo sobre esta ponte, para aparentar que ela esta se queimando, que ela esta sendo denegrida pelo constante contato com o fogo, fazendo assim uma área mais bela e lógica. Espero que tenham gostado. Créditos: vital900 Rippar é crime. Obs: oque não é de minha autoria tem o link de redirecionamento ou os créditos.8 pontos -
The OTX Emporia - Global Full + Razachai + Quest.
SamueLGuedes e 2 outros reagiu a Animal Pak por um tópico no fórum
Informações: Servidor utiliza a versão do OTX 2.51 Itens, Monstros e Magias 8.7-9.81 Mapa Global Full Recompensas por nível Vocações balanceadas Comandos !saveme, !bless, !spells, !aol entre outros Trainers War System Servidor 100% estável Livre de erros e bugs E mais! Imagens: Download The OTX Server (Emporia) x32: Mega Scan The OTX Server (Emporia) x32: Virustotal Download The OTX Server (Emporia) x64: Mega Scan The OTX Server (Emporia) x64: Virustotal Acc GOD: mythos/mythos Créditos: The OTX Team Emporia Team Mythos SmoOkeR3 pontos -
Frozen/Stop
Fausto32 e um outro reagiu a LuckinhaSan por um tópico no fórum
É uma talkaction bem simples, que simplesmente serve para deixar o player parado, sem deslogar ou andar. De alguma forma acho útil para a staff, ou em eventos... Tentem ser criativos. Vá em data/talkactions/scripts, copie um arquivo .lua e renomeie para stop, cole isso - Adicione a seguinte tag em talkactions.xml - <talkaction log="yes" words="/stop" access="5" event="script" value="stop.lua"/> Imagens - Créditos - Fausto322 pontos -
2 pontos
-
Duvida Num Script aki
PsyMcKenzie e um outro reagiu a 448055 por uma questão
Aew pessoa Boa Tarde a todos quero saber se tem alguma faltando ou errada nesse script que eu fis se tiver como dizer se ta errado ou ta certo ou se tive faltando alguma coisa agradeço '-' Valendo Rep+ function onUse(cid, item, frompos, item2, topos) if item.uid = 16591 then queststatus = getPlayerStorageValue(cid,16591) if queststatus = -1 then if getPlayerLevel(cid) >= 100 then doPlayerSendTextMessage(cid,22, "Voce Comseguiu Completar a Quest") doPlayerAddItem(cid,2160,100) setPlayerStorageValue(cid,16591,1) else doPlayerSendTextMessage(cid,22, "Você ja pegou sue premio vaza") end else return 0 end return 1 end2 pontos -
Parabens Pelo Topico2 pontos
-
<?xml version="1.0" encoding="UTF-8"?> <groups> <group id="1" name="Player"/> <group id="2" name="Tutor" flags="16809984" customFlags="2" access="1" violationReasons="0" nameViolationFlags="0"/> <group id="3" name="Senior Tutor" flags="68736352256" customFlags="14" access="2" violationReasons="0" nameViolationFlags="0" statementViolationFlags="0" maxVips="200"/> <group id="4" name="GameMaster Tellus" flags="3808558964575" customFlags="257215" access="3" violationReasons="0" nameViolationFlags="0" statementViolationFlags="0" depotLimit="3000" maxVips="300" outfit="75"/> <group id="5" name="GameMaster Tellus" flags="3840774348794" customFlags="781823" access="4" violationReasons="0" nameViolationFlags="0" statementViolationFlags="0" depotLimit="4000" maxVips="400" outfit="266"/> <group id="6" name="Master Tellus" flags="3845069447162" customFlags="2097151" access="5" violationReasons="23" nameViolationFlags="170" statementViolationFlags="213" depotLimit="5000" maxVips="500" outfit="302"/> </groups>2 pontos
-
Vip System By Mock 100%
Bluetooth reagiu a Natanael Beckman por um tópico no fórum
Boa galera eu mais uma vez trazendo comodidade e algo seguro pra nós. Esse sistema VIP do Mock foi modificado e aptado em alumas partes dos scripts, para um funcionamento correto e com isso tivemos a ajuda dos scripts, Doidin, Luke sky walker e por min por ter ido atraz de todas as soluções pra completa algo incompleto. Vamos nois: 1° Acesse a pasta data/lib copie la um arquivo.lua e renomeio para 049-vipsys.lua, após isso apague tudo dentro desse arquivo e adicione este coder: vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `vip_time` INTEGER"; query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "sqlite" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end 2° Abra a pasta data/creaturescrpits/scripts copie la um arquivo.lua e renomeio para vip.lua, dentro dele adicione: By Lukeskywalker function onLogin(cid) local temple = { x =32369, y = 32246, z = 6} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,55555) ~= 1 then setPlayerStorageValue(cid,55555,1) end else if getPlayerStorageValue(cid,55555) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Your VIP Time over!") db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid))..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 55555, 0) end end return true end Você pode troca as coordenadas do templo: local temple = {x=32369, y=32246, z=6}. 3° Em data/creaturescripts/scripts/login.lua adicione essas tags: registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "VipReceive") 4° Em data/creaturescripts/creaturescripts.xml adicione está tag: <event type="login" name="FimVip" event="script" value="vip.lua"/> 5º Em data\movements\scripts copie la um arquivo.lua e renomeio para viptile.lua e adicione este coder dentro do mesmo: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "You need to be a vip player to access this area.", enterMsg = "Welcome to vip area!", enterEffect = CONST_ME_MAGIC_RED, } if isPlayer(cid) == true then if vip.hasVip(cid) == FALSE then doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true end end 6° Em data\movements\movements.xml adicione a tag: <movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/> Vejam a numeração 13500 você irá usar no tile que você quer para a passagem de player VIP para configurar adicione a numeração em ActionID do tile. 7° Em data/talkactions/scripts acrecente dentro da pasta scripts uma outra pasta com o nome VIP vamos precisar de 7 arquivos.lua quem teram os nomes e coder a seguir: add.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Added "..param.." Vip Days.") return doPlayerAddVipDays(cid, param) end addvipp.lua function onSay(cid, words, param) if param == "" then return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Real\n---------------\nDeletar vip:\n/vip del player\n/vip del Real\n---------------\nVer a vip:\n/vip see player\n/vip see Real\n---------------\n") end if param:lower():find('add') == 1 and 3 then local _,_,id,name = param:lower():find('add (%d+) (.+)') name = name or "" id = tonumber(id or 1) or 1 if tonumber(id) == nil or getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Adicionar vip:\n/vip add days player\n/vip add 30 Real\n[Player: "..name.."]") end if isPlayer(getPlayerByName(name)) == TRUE then vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".") doPlayerSendTextMessage(getPlayerByName(name),MESSAGE_INFO_DESCR,"Você recebeu "..tonumber(id).." dias de vip.") else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,name.." não esta online ou não existe.") end elseif param:lower():find('del') == 1 and 3 then local _,_,name = param:lower():find('del (.+)') if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Deletar vip:\n/vip del player\n/vip del Real\n") end vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time()) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"A vip de "..name.." foi apagada.") elseif param:lower():find('see') == 1 and 3 then local _,_,name = param:lower():find('see (.+)') name = name or "" if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Ver a vip:\n/vip see player\n/vip see Real\n") end local ret_ = vip.getVip(getPlayerByName(name)) if ret_ == 0 then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,name.." Não tem vip, e nunca teve.") else return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_)) end end return TRUE end get.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, ""..getPlayerVipDays(cid).." days VIP left.") end is.lua function onSay(cid, words, param, channel) if isPlayerVip(cid) == TRUE then doPlayerSendCancel(cid, "You are a VIP player.") else doPlayerSendCancel(cid, "You are not a VIP player.") end end removevip.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Vip removed.") return doPlayerRemoveVip(cid) end set.lua function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end 8°Em data/talkactions/talkactions.xml adicione está tag: <!-- VIP System --> <talkaction log="yes" words="/vip" access="5" event="script" value="VIP/addvipp.lua" /> <talkaction words="!vipdays" event="script" value="VIP/vipdays.lua" /> 9° Para finalizar execute este comando na sua database na tabela accounts: alter table `accounts` add `vip_time` INT NOT NULL; Bom galera fim este sistema vip adiciona os dias corretos e ao termino do VIP o player recebe a menssagem que o VIP acabou é teleportado pro templo porque se no caso ele estiver na área VIP essa é uma saida e zera a coluna vip_time. Creditos: Mock (por ter iniciado algo e não terminou) Lukeskywalker (Sistema de finalização perfeito do vip.) Natan Beckman (Por ter ido atrás a conclusão 100% in game e php)1 ponto -
[Pokemon] Servidor Gabrieltxu e suas Versões
Silvaninho reagiu a Gabrieltxu por um tópico no fórum
Conteudo Retirado.1 ponto -
Estou aqui hoje para trazer um sistema simples que eu criei, porém pode ser até muito útil, o Sistema de Reputação ! Esse sistema vai funcionar da seguinte forma, você adiciona os monstros que darão Rep+ ao morrer, e a cada monstro desse, o player que o matou conquista +1 ponto de Reputação. Exemplo de monstro que seria legal adicionar: Bosses. Outro meio de ganhar Reputação com esse sistema será matando outros players que estejam pk. E o único meio de perder Pontos de Reputação é matando players que não estejam pk. O Sistema também vem com um rank de Reputação que sera adicionado nas talkactions e listara os tops Reputação e um comando para verificar seus pontos de reputação. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Para que Esse Sistema pode ser Útil: Vamos pensar da seguinte maneira, pontos ao matar. Diminuirá o número de pk's in-game pois mais players vão querer mata-los. (REP +) Pontos negativos ao matar players comuns, também contribuirá para diminuição de pk's. (REP -) Pontos por matar bosses e outros monstros fortes, vai estimular os player's a matarem monstros mais perigosos. (REP +) Esse Sistema pode ser útil também para que só players com certa quantidade de Rep+ possam: -Entrar em lugares; -Fazer quests; -Usar magias; -Usar outras talkactions; -E várias outras coisas. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Agora vamos ao que interessa os scripts: Primeiro vai em "data/creaturescripts/scripts/" duplica um arquivo dessa pasta e renomeia para "repsystem" sem as aspas, nele cole: --<Script by jhon992>-- function onKill(cid, target, lastHit) vetMonster = { "Demon", "Morgaroth", "Hydra", "Dragon" } -- adicionar monstros que darão rep+ -- Ao matar monstros do vetMonster, ganhara rep+. for i=0, #vetMonster do if (getCreatureName(target) == vetMonster[i]) then setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086)+1) doSendAnimatedText(getThingPos(cid), 'Rep+', 30) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você ganhou 1 ponto de reputação por matar um "..vetMonster[i]..".") return TRUE end end -- Ao matar um pk, ganhara rep+. if (isPlayer(target) == true) then if (getCreatureSkullType(target) > 2) then setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086)+1) doSendAnimatedText(getThingPos(cid), 'Rep+', 30) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você ganhou 1 ponto de reputação por matar "..getCreatureName(target)..".") return TRUE end -- Ao matar um player normal, ganhara rep-. setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086)-1) doSendAnimatedText(getThingPos(cid), 'Rep-', 144) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você perdeu 1 ponto de reputação por matar "..getCreatureName(target)..".") return TRUE end return TRUE end Agora em "data/creaturescripts/creaturescripts.xml" cole a tag: <event type="kill" name="RepSystem" event="script" value="repsystem.lua"/> Entre na pasta "data/creaturescripts/scripts" novamente, e abra o arquivo "login.lua" sem as aspas. Nele cole a tag: -- Verificar se é primeira vez que loga, pois ao usar storage ele ja começa com -1, -- Então vamos zera-lo para que sua Reputação comece do 0. if (getPlayerStorageValue(cid, 102087) ~= 1) then setPlayerStorageValue(cid, 102087, 1) setPlayerStorageValue(cid, 102086, 0) end registerCreatureEvent(cid, "RepSystem") Terminamos a parte do Sistema e agora vamos para o talkaction de rank. Vai na pasta "data/talkaction/scripts", duplique um arquivo e remomeie para "rankrep" sem as aspas. Abra-o e cole: function getPlayerNameByGUID2(n) local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";") if c:getID() == -1 then return "SQL_ERROR["..n.."]" end return c:getDataString("name") end function onSay(cid, words, param) if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você possui "..getPlayerStorageValue(cid, 102086).." pontos de Reputação.") return TRUE end if (param == "rank") then local max = 50 local letters_to_next = 50 local name_now local name = "Highscore for Reputação\n" local rkn = 0 local no_break = 0 name = name.."\n" name = name.."Rank. Pontos | Nome do Jogador\n" local v = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = 102086 ORDER BY cast(value as INTEGER) DESC;") local kk = 0 repeat if kk == max or v:getID() == -1 then break end kk = kk+1 name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id"))) space = "" for i=1, letters_to_next-l do space = space.." " end if name_now == nil then name_now = 'sql error['..v:getDataInt("player_id")..']' end name = name..kk..". "..v:getDataInt("value").." | "..name_now..space.." \n" until v:next() == false if name ~= "Highscore\n" then doPlayerPopupFYI(cid, name) end return TRUE else doPlayerSendCancel(cid, "Command valid: !rep, !rep rank.") return TRUE end end E por último mais não menos importante, abra "data/talkactions/talkacitons.xml" e cole a tag: <talkaction words="!rep" event="script" value="rankrep.lua"/> Pronto, terminamos o nosso Simple Reputation System! -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Reputation Door----- Vai em data/actions/script, duplica um arquivo e nomeia para "repDoor" sem as aspas e nele cole: function onUse(cid, item, frompos, item2, topos) local quantRep = 30 -- quantidade de reset para entrar na porta newnPosition = {x=784, y=805, z=7} -- onde será teleportado ao clicar na porta if item.actionid == 2085 and getPlayerStorageValue(cid, 102086) >= quantRep then doTeleportThing(cid, newnPosition) doSendMagicEffect(newnPosition, 10) else doCreatureSay(cid, "Voce nao tem reputação suficiente para entrar!", TALKTYPE_ORANGE_1) end return TRUE end Agora em data/actions/actions.xml cole a tag: <action actionid="2085" script="repDoor.lua"/> E por último com seu mapa editor, vai na porta desejada do seu server e coloque o actionid 2085. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Agora para fazer alavancas, baús e etc, basta seguir o exemplo do script acima da repDoor. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Quantidade de Reputação para usar determinado item ----- Vai em data/movements/script e duplica um arquivo dessa pasta e nomeie para "itemRep" sem aspas, abra-o e cole: local quantRep = 30 -- quantidade de reset para usar determinado item function onEquip(cid, item, slot) if getPlayerStorageValue(cid, 102086) < quantRep then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players com "..quantRep.." pontos de reputação ou mais, podem usar essa arma!") return FALSE end return TRUE end Agora vai em data/movements/movements.xml abre e adicione a tag: <movevent type="Equip" itemid="id do seu item" slot="hand" event="script" value="itemRep.lua"/> Troque os slots na tag acima como desejar, tipos de slots: head armor legs hand shield ring necklace feet pickupable Para itens que você for usar com a mesma quantidade de reps que o item anterior, apenas crie uma nova tag no movementes.xml com o itemid diferente. Senão você devera criar um novo script com o nome diferente e mudar a quantRep. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Comprar determinado item com Pontos de Reputação ----- Vai em data/talkactions/scripts, duplique um arquivo e nomeiei para "buyrep" sem as aspas e nele cole: local itemNames = { {name = "Dragon Shield", pontos = 2}, -- nome do item e pontos que gastara. {name = "Crown Armor", pontos = 8}, {name = "Arbalest", pontos = 25}, {name = "Heroic Axe", pontos = 20}, {name = "Magic Sword", pontos = 30}, {name = "Demon Armor", pontos = 50} } function onSay(cid, words, param, channel) if param == "" then for i=1, #itemNames do if i == 1 then text = "-- Lista de Items --\n" else text = text .. (itemNames[i].name) .." = ".. itemNames[i].pontos .." pontos\n" end end doShowTextDialog(cid,8977,text) return true end param = string.upper(param) for j=1, #itemNames do if (param == string.upper(itemNames[j].name)) then if getPlayerStorageValue(cid, 102086) < tonumber(itemNames[j].pontos) then doPlayerSendCancel(cid,"Você não possui pontos suficientes.") return true else doPlayerAddItem(cid, getItemIdByName(param)) doPlayerSendTextMessage(cid, 22, "Você comprou 1 ".. itemNames[j].name ..".") setPlayerStorageValue(cid, 102086, getPlayerStorageValue(cid, 102086) - itemNames[j].pontos) return true end end end doPlayerSendCancel(cid,"Este item não existe.") return true end Agora em data/talkactions/talkactions.xml cole a tag: <talkaction words="!buy" event="script" value="buyrep.lua"/> Em jogo, ao falar "!buy" aparecera a lista de itens que pode ser comprado e seus determinados custos, conforme foram configurados no arquivo "buyrep.lua". Para comprar um item basta ter a quantidade de reputação necessaria e usar o comando "!buy NomeDoItem". -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Mostrar Reputação no Look (by Vodkart)----- Vai em data/creaturescripts/scripts, duplique um arquivo e nomeiei para "showrep" sem as aspas e nele cole: function getReps(cid) return getPlayerStorageValue(cid,102086) < 0 and 0 or getPlayerStorageValue(cid,102086) end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\n[Reps: " .. getReps(thing.uid) .."]") end return true end No creaturescripts.xml cole a tag: <event type="look" name="showRep" event="script" value="showrep.lua"/> E no arquivo login.lua, antes do último return true: registerCreatureEvent(cid, "showRep") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- Versão 2.0 repsystem.lua ----- Caso você queira que cada monstro que você matar de pontos diferentes de reputação, voce deve substituir oque tem dentro do seu arquivo inicialmente criado e nomeado como repsystem.lua por isso: É isso aew galera, qualquer coisa que precise ser modificado ou dica para melhorar os scripts e o sistema serão bem vindas!1 ponto
-
GTA San Andreas Server
92221066 reagiu a Animal Pak por um tópico no fórum
Informações: Mapa próprio; 40+ Quests; Arena PVP; Sistema de Armas; Sistema de Moto, Bicicleta, Carro, Skate; Todos Npcs configurados; Cada vocação tem suas próprias outfits; Jetpack; Todos os items com suas respectivas sprites; Sistema de WoE; Servidor 100% estável sem bugs e erros; Imagens: Download Server: http://www.mediafire.com/?z316hb4caj1ised Scan Server: https://www.virustotal.com/pt/file/876d75ad9a638c4c44c9e772b7cde60a5fb349f332c7cadb7c69a854f9d6e72f/analysis/1364336402/ Dowload Client: http://www.mediafire.com/?kzt230l0aihwh24 Scan Client: https://www.virustotal.com/pt/file/c18d1e7e73620ba8b21b72d455b24ffc393cb61fa4c67d69ed3f427beb41ee8f/analysis/1364336430/ Account do GOD: Account: 258536 Password: zxcvbnm123 Créditos: GTA OT Team Kalito BT SmoOkeR1 ponto -
COM CAST SYSTEM!! Global 8.6 24h PVP IP/SITE:www.tibiaemperium.com Venha Logo Ser Top! Hoje estamos inaugurando o nosso mais novo servidor Emperium nele contém muitos sistemas inovadores, quests, aventuras e uma ótima Staff. Descrição do Server: » Mapa GLOBAL FULL » Guild War emblemas. » Sistemas novos e legais. » Eventos automáticos. Quest: » Quests novas. » Annihilator Quest. » The Demon Oak. » Wrath of the Emperor. » Svargrond e Zao Arena. e muito mais Server Information: Skills: 40x. Magic: 20x. Loot: 2.5x. Eventos: War of Emperium Zombie Event Para maiores informações acesse Server Info Não perca mais tempo Entre e prepare-se para a guerra. Tibia Emperium!1 ponto
-
Subwat Kamikaze V26 - Atualização 24/03
DarkPhanton reagiu a Delaks por um tópico no fórum
Olá pessoal,de volta e irei postar minha versão V26 de Subwat Kamikaze! Atualização V26: Nova vip,Blood VIP. Nova city Blood City Vip Vila de Houses Blood Vip Novas Hunts Novos monstros Eventos Blood Vip: Dice e BP Templo com novos pisos Novo set Blood,somente para Blood Vips Imagens Templo Super VIP Demonstração Blood VIP Novas Hunts/Novos Monsters Download: http://www.4shared.c...ikaze_v26.html? Scan: https://www.virustot...sis/1349299549/ Obrigado galera, essa foi mais uma atualização do Subwat Kamikaze!Rep e comentário para me ajudar !1 ponto -
Show Off
masdead reagiu a SamueLGuedes por um tópico no fórum
Bem eu nao tinha nada pra fazer ai começei a fazer uma cidade, mais primeiro logico, começei um templo e alguns lugares basicos como uma ilha e uma house, só pra treinar. Templo: Ilha: E uma house do lado do templo pra ficar bonito: @Edit (01/12/2012) Uma semi-montanha eu acho: E um vilarejo, esse eu demorei, eu tive que ver alguns tutoriais, acho que nao ficou bom: @Edit (11/12/2012) Outra ilha: @Edit (29/03/2013) para não deixar o tópico sem novidades, aqui vai mais uma obra minha, comentem: Eu vi alguns tutoriais de mapping e me inspirei a criar só que nao ficou muito bom kkk. Mais pra frente eu coloca mais imagens. Mas por inquanto comentem esse ai. Obrigado.1 ponto -
[Znote AAC] Naxtie Layout
alissonfgp reagiu a LuckinhaSan por um tópico no fórum
Então aqui vai, um layout novo para ZNote AAC... Divirta-se! Prints Download - Naxtie Layout Créditos - Naxtie1 ponto -
WebSite Spectral vBeta1 Opaa, fala ae xTzords!! Então... Sempre fui muito interessado em aprender a utilizar o Fireworks, mas só ontem eu tomei coragem e baixei, assisti umas vídeo aulas e montei um site informativo que pudesse colocar online para qualquer OT que use Account Manager. Não é muito bonito e nem contem scripts avançadas, eu fiz mais para aprender mesmo, nele fiz o design do site, coloquei uma barra de menu com botões de opções necessárias e coloquei um iframe para não ficar atualizando a página toda vez, assim o site fica mais leve e pratico. Confiram ele hospedado em um host pago: www.spectral-beta1.com sqn' (Esse host free tem limite de páginas, não irão poder acessar todas.) Caso a hospedagem fique ruim, confira nas ScreenShots: Editar o Site: Vocês podem editar tudo nele, pois estarei postando o arquivo.fw.png para quem tem Firework e partes do site em arquivo.psd para mudar o nome no banner ou nome do OT perto dos créditos e para quem não tem nenhum dos dois, também tem as imagens em branco para serem editadas no Paint. Em breve faço um tutorial de como colocar ele em uma hospedagem gratuita, editar todo ele, criar forum no forumeiros e também o "Xat". Compatibilidade com OTs: Todos OTs, Alissow, Baiak, GlobalRL, NaruTibia, PokeTibia, WoDBO e outros... (Qualquer OT com Account Manager) Obs: Depois irei mudar a estrutura do site para que possam mudar o fundo com mais praticidade sem utilizar o Firework, servirá mais para NaruTibia, PokeTibia etc.. Download: 4Shared Scan: Vírus Total Aceito sugestões para melhorar o site. Créditos: Spectrus1 ponto
-
[Arquivado]Faça parte de nossa história
viniciusdrika reagiu a MarceloCB por um tópico no fórum
vlw ae xD Sistema de cartas do rag é muito maneiro pra builds, outra ideia interessante para melhora-lo seria colocar em certas cartas uma espécie de Condição para ter chance de Drop. Essa condição deixaria mais Desafiante e não seria Revelada, fazendo os players tentarem diversas coisas afim de obter-las, como tentando resolver um mistério. Exemplo: Snake/Cobra - O player teria que ser envenenado pela Snake para ter chance de drop (Isso forçaria ao jogador ir mal equipado) Rat - Antes do player mata-lo ele teria usar um Queijo no Rat pra ter chance de dropar a carta. Orc Berserkers - O Orc terá que ter dado pelo menos 500 de dano antes de ser morto. Dano em outras criaturas seria contado em dobro. Wolf - Ele teria de ser morto com pelo menos 3+ lobos próximos pra ter chance de drop1 ponto -
[Encerrado] (Bug) fishing
BrunooMaciell reagiu a Roksas por um tópico no fórum
Alterei meu post, boa sorte.1 ponto -
Parabens pelo Mapa1 ponto
-
[Encerrado] Servidor gabriel
HesLife reagiu a Gabrieltxu por um tópico no fórum
só vc baixar a 3.1 abrir a pasta do client copiar a Dll e colar ela na pasta do client 3.1.11 ponto -
[8.54] Nto RobinHood - Copia do NtoShinobi
jucanando reagiu a SkyDarkyes por um tópico no fórum
Você deve estar fazendo errado alguma coisa,aqui abre normalmente,fale oque da errado.1 ponto -
Poketibia Erondio-Site e Suas versões!
BrunooMaciell reagiu a Furyonsz por um tópico no fórum
Manin isso é muito simples so voce ir no seguinte caminho: Poketibia Erondino Site v13.1\data\talkactions\talkactions.xml e mudar a seguinte linha: <talkaction words="/gogo" access="5" event="script" value="tst.lua"/> no lugar de words="/gogo" troque para words="/cb" e pronto... ficando assim: <talkaction words="/cb" access="5" event="script" value="tst.lua"/> Lembrando no PDA do digitar /cbnomepoke com a inicial tanto maiuscula quanto minuscula que funciona. porem no eron... apos o /cb ou /gogo devera sempre escrever com a inicial maiuscula, ou nao funcionara. Ex. /cb Charmander... Ok /cb charmander... aparece uma ball nao usavel... by Furyonsz1 ponto -
Duvida Num Script aki
448055 reagiu a PsyMcKenzie por uma questão
Lembre-se que são 2 ' == ' Gostei, esta aprendendo com os tutoriais que te passei. É assim que começa cara.1 ponto -
1 - Verificação de variáveis, sempre usamos 2 iguais (==) Troque: if queststatus = -1 then if item.uid = 16591 then Por: if queststatus == -1 then if item.uid == 16591 then 2 - Faltava um "end" no final. 3 - Parabéns, era só isso, agora fazendo do meu jeito ficaria: http://pastebin.com/fjgu5jM3 Não precisa fazer a verificação: if item.uid == 16591 then Se colocar isso no actions.xml na tag do script não precisa por dentro dele E eu acho que: if queststatus == -1 then Só acumula linhas, fazendo do meu jeito fica menor e mais simples, não precisa se preocupar com isso, apenas crie variáveis, se for precisar ou se quiser fazer configurações para o leitor arrumar ~~ Boa sorte com a sua carreira de scripter1 ponto
-
Gostei dessa ideia de MarceloCB ² O tibia começa mesmo a ficar meio chato porque , muita gente que não sabe jogar porém tem mais tempo para jogar acaba ganhando de players bem mais experientes porém não tem tempo de upar ( faculdade,trabalho, etc.) Com esse sistema o pessoal pega o lvl maximo e começa a matar monstros, mas , para conseguir drops e para ganhar mais dinheiro para comprar itens de War para o seu char..E assim vence na War aquele que eh melhor e que sabe montar sua build e não aquele que tem mais tempo disponivel... Idéia: Cartas de Monstros Função: Cada monstro tem uma porcentagem muito pequena de dropar a carta dele, e carta carta tem uma função, por exemplo: Carta Rat = Aumenta 2 de FOR,Carta Stalker = Aumenta sua atk speed, Carta Dragon= Rouba 5% do seu hit em life, etc. E carta carta vc pode equipar ou na armadura, no helmet, na boots... dependendo da carta. Ex: Rat só pode ser equipado em boots. Tambem cada equipamento tem uma quantidade maxima de sloots de cartas, tipo o steel helmet tem apenas 1 Sloot porem uma boa arm, porem o Leather Helmet tem 2 sloots, com isso dependendo se vc quiser montar um combo de cartas vc iria prefirir o leather helmet... Aonde quero chegar: Isso faz com que os players possam montar inúmeras builds, além de aumentar o mercado do jogo com a venda de cartas, que os players lvl alto percam seu tempo em rats por exemplo em procura de cartas..... Créditos: Eu vi este sistema no MMO Ragnarok, e muita gente joga ragnarok pela inumeras builds que podem ser feitas..1 ponto
-
1 ponto
-
Idéia: Level/Skill Cap Função: Existir Level/Skill máximo, ou o jogador não adquirir mais Exp com Hunts. Depois disso, ele poderia conseguir se fortalecer mais ainda, porém não caçando. Se conseguirem fazer um sistema, ou de alguma forma recompensar jogadores vitoriosos de Eventos/Wars/Quests seria interessante. Qualquer coisa que a interação dos jogadores fosse mais forte. Recompensas poderiam ser por exemplo, atributos, buffs temporários, itens, etc. Aonde quero chegar: Diminuir o grind no jogo, ou qualquer tipo de coisa repetitiva que beneficie demais os players. Isso provavelmente daria pouco motivo para bots (Em hunts pelo menos). Alias, muitos usam bots por causa de coisas cansativas de serem feitas mas com boa recompensa. Créditos: Muitos RPGs tem esse sistema tentando atingir essa proposta.1 ponto
-
[Duvida] Como colocar para que o mapa seja aberto por completo no minimap
otavio101 reagiu a BananaFight por uma questão
1: Minimap :http://www.xtibia.co...87#entry1499487 e http://www.xtibia.com/forum/topic/211483-mostrando-suas-hunts/ 2: Icones grandes http://www.xtibia.com/forum/topic/211229-duvida-como-aumentar-o-tamanho-dos-icones/ 3: Dentro da pasta "Mod" é só deletar ele, e para que ele não funcione você precisa compilar as sourcer com o protection bot ativado olhe esse sistema, e faça o seu. Como Compilar : http://www.xtibia.com/forum/topic/207691-compilando-ot-client/ 4: podem estar em qualquer tamanho, mais no formato .PNG1 ponto -
CreatureScripts bug Top Frags
cruelShark reagiu a CoLoRaDo por uma questão
Cruel, manda algum contato, de preferencia skype pra eu te ajudar, eu acho que sei o que fazer, mas é melhor eu te ajudar por skype.1 ponto -
Abaixe esse servidor e pegue a pasta raid. http://www.xtibia.com/forum/topic/206906-86-global-absolute-100-full/ espero ter ajudado Shuzin1 ponto
-
Defina a pessoa acima com uma palavra
LuckinhaSan reagiu a Piabeta Kun por um tópico no fórum
newfagretardado1 ponto -
Fala galera hoje vim ensinar a colocar aquelas mesagem quando o players entrao..Bem vamos ao que interesa.. em creaturescripts/scripts crie um arquivo .lua com o nome welcome.lua e dentro dele coloque isso: salve o arquivo. em seguida va em creaturescripts.xml e coloque a seguinte tag: Bem Galera e Isso Espero Ter Ajudado.. Creditos Kaiotp MasterDino1 ponto
-
Como colocar para dar item Random nesse script?
Roksas reagiu a PsyMcKenzie por uma questão
Testa ai manolo: function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! Você está morto.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] local items = {2160, 7958, 2352, 12610} if(winner) then doPlayerAddItem(cid,items[math.random(1,#items)], math.random(1, 100)) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "Você Ganhou o Evento Zombie !!! Parabéns.") doBroadcastMessage("After " .. os.time() - getPlayerZombiesEventStatus(winner) .. " segundos de evento " .. getCreatureName(winner) .. " você ganhou o Evento Zombie contra " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies !!!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("Zombie Evento Acabou !!! Não teve vencedor ?!?!?! Como Assim ?") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end1 ponto -
Excelente ideia, pensei em algo semelhante, quanto maior o Arm da armadura.. mais pesada ela será, e esta com um bônus negativo de speed. Vamos tentar unir o útil ao agradável.1 ponto
-
[Encerrado] Exani Hur up/down
Roksas reagiu a PsyMcKenzie por um tópico no fórum
Em data/spells/spells.xml, adicione a tag: <instant name="Levitate" words="exani hur" lvl="12" mana="50" prem="1" aggressive="0" exhaustion="1000" params="1" needlearn="0" function="Levitate"> <vocation name="Sorcerer" /> <vocation name="Druid" /> <vocation name="Paladin" /> <vocation name="Knight" /> <vocation name="Master Sorcerer" /> <vocation name="Elder Druid" /> <vocation name="Royal Paladin" /> <vocation name="Elite Knight" /> </instant>1 ponto -
de acordo com o vital a ideia é do Metalchau Mapa da ideia http://www.mediafire...587t5wgm0fd5hvw1 ponto
-
1 ponto
-
A flag é essa: PLAYERFLAG_CANANSWERRULEVIOLATIONS = 38 O valor dela é 2^38 Vá em data/XML/groups.xml e subtraia esse valor dos groups que tem esse acesso ao rule violation, no node 'flags', porem observe que as flags não podem ser negativas.1 ponto
-
ShopGuild Points 100% add em player offline.
SkyLigh reagiu a Natanael Beckman por um tópico no fórum
Não sei se meu shop vai te ajudar, devido outras alterações feitas por mim, mais testa ae: shopguild.php1 ponto -
Tutorial - Detalhando Houses
Roksas reagiu a PsyMcKenzie por um tópico no fórum
É sim mano Obrigado!1 ponto -
So da use quem e de x vocação
SkyLigh reagiu a drakylucas por uma questão
dalvorsn ta errado, vc ta colocando erro se for da vocação ^^ tente assim: function onUse(cid, item, frompos, item2, topos) local monstro = getItemAttribute(item.uid, "corpse") local health = getItemAttribute(item.uid, "health") local name = getItemAttribute(item.uid, "monstro") local vocationUse = {4, 8} -- poem a vocação e a promotion if #getCreatureSummons(cid) > 3 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ja esta usando uma reencarnação ou um pet") return true end if getPlayerMana(cid) < health/100*70 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem chakra suficiente") return true end if getPlayerStorageValue(cid, 24436) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode invocar mais de reanimação junto.") return true end if not isInArray(vocationUse, getPlayerVocation(cid)) then return doPlayerSendTextMessage(cid,22,"Você não tem a vocação apropriada") end t = doCreateMonster(monstro, getThingPos(cid)) doConvinceCreature(cid, t) setCreatureMaxHealth(t, health) doCreatureAddHealth(t, health) doPlayerAddMana(t, -getItemAttribute(item.uid, "health")/90) setPlayerStorageValue(cid, 24436, name) return true end (só coloquei o not, de resto tava certo)1 ponto -
[MODERN ACC] Modern acc Pokémon by:Junior001
RirukaSannin reagiu a Junior001 por um tópico no fórum
Ok irei fazer isso e obrigado pelo elogio1 ponto -
Apos acabar a carga! AJUDA - +REp
SkyLigh reagiu a drakylucas por uma questão
mude doPlayerSendTextMessage(attacker, 22, "Sua weapon esta quebrada.") para doRemoveItem(getPlayerSlotItem(attacker, slotWeapon).uid)1 ponto -
[Encerrado]Cavaleiros do Zodiaco
JG6 reagiu a Desnecessario por um tópico no fórum
Pronto, acabou com sua carreira que já estava acabada. auhhuauha n quis falar isso =P Recomendo criar 1 fake bob sponja , e um e-mail novo obvio..1 ponto -
Eu desenvolvi um "algoritmo" para decidir as posições de empurrar e puxar das magias, que comparam a posição do jogador para com a posição do alvo. Já do jeito que você quer, eu teria que fazer um novo algoritmo, não com base na comparação de posições, mas sim na direção do olhar do jogador, uma vez que: E no momento estou com preguiça de refazer minha magia que já me agrada como está. Abração.1 ponto
-
Vip System By Mock 100%
SkyLigh reagiu a Natanael Beckman por um tópico no fórum
Executa dentro da tabela accounts.1 ponto -
valeu slider parabéns mano ótimo trabalho estamos chegando o mais próximo da perfeição do PDA talvez seja muita pretensão minha mais essa versão ta muito loca hehehehe muitos bugs retirado e muita coisa nova desde que o brun123 disponibilizou pra geral baixar você merece meu REP+ e nois mano1 ponto
-
Pokemon Erodino V9
jhonnyyakato reagiu a ErondinoSite por um tópico no fórum
Ae cara creditos para Erondino Site ... e essa versao é a antiga ja tem a v10 v9 tem muitos bugs... Edit: Se tiro esse topico do poketibia tutoriais? eles pego do meu site...1 ponto
