Ir para conteúdo

digo1040

Campones
  • Total de itens

    59
  • Registro em

  • Última visita

  • Dias Ganhos

    6

Tudo que digo1040 postou

  1. Eai, fiz um globalevents que apaga os chars que estão inativos a 60 dias. Em globalevents/scripts crie um arquivo e nele coloque isto: --< Created by Digaao for xtibia >-- function onTimer() local rguild = true -- se o player for dono de uma guild apagar a guild local nologin = false -- deletar quem nunca logou (nao importa o tempo) local time = 60 * 24 * 60 * 60 -- tempo em segundos de inatividade para deletar local nlogin = "" if nologin == false then nlogin = " AND `p`.`lastlogin` > 0 " end local tmp = db.getResult("SELECT `p`.`id` AS id, `g`.`id` AS guild, `g`.`ownerid` AS `dono` FROM `players` p LEFT JOIN `guild_ranks` gr ON `p`.`rank_id` = `gr`.`id` LEFT JOIN `guilds` g ON `gr`.`guild_id` = `g`.`id` WHERE `p`.`lastlogin` < " .. os.time() - time .. nlogin .. ";") if tmp:getID() ~= -1 then repeat local guid = tmp:getDataInt("id") local guild = tmp:getDataInt("guild") local dono = tmp:getDataInt("dono") local house = getHouseByPlayerGUID(guid) if type(house) == "number" and house > 0 then cleanHouse(house) setHouseOwner(house, NO_OWNER_PHRASE,true) end db.executeQuery("DELETE FROM player_skills WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM guild_invites WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM player_items WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM player_depotitems WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM player_spells WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM player_storage WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM player_viplist WHERE player_id = " .. guid .. ";") db.executeQuery("DELETE FROM player_deaths WHERE player_id = " .. guid .. ";") if rguild == true and guid == dono then local tg = db.getResult("SELECT id FROM guild_ranks WHERE guild_id = " .. guild .. ";") if tg:getID() ~= -1 then repeat local rank = tg:getDataInt("id") db.executeQuery("UPDATE players SET rank_id = 0 AND guildnick = '' WHERE rank_id = " .. rank .. ";") until not tg:next() tg:free() end db.executeQuery("DELETE FROM guild_ranks WHERE guild_id = " .. guild .. ";") db.executeQuery("DELETE FROM guild_invites WHERE guild_id = " .. guild .. ";") db.executeQuery("DELETE FROM guilds WHERE id = " .. guild .. ";") end db.executeQuery("DELETE FROM players WHERE id = " .. guid .. ";") until not tmp:next() tmp:free() end return true end E no arquivo globalevents.xml coloque esta tag: <globalevent name="inativos" time="00:00" event="script" value="nome do seu script.lua"/> Bom é isso, lembrando que em alguns ots algumas coisas mudam, se der algum erro como: Vá no script procure function onTimer() e troque por function onTime(). E se ocorrer um erro assim: Vá no script e troque todos os db.executeQuery por db.query Bom é isso
  2. Eai, tudo bem? tente assim. function onUse(cid, item, frompos, item2, topos) doPlayerLearnInstantSpell(cid, "Haste") addEvent(doPlayerUnlearnInstantSpell, 10*1000, cid, "Haste") return true end E lembre que no arquivo spells.xml, o argumento needlearn na tag da magia precisa ser 1
  3. digo1040

    !rank Bugado

    Eai, segundo o erro no distro está tentando realizar alguma operação matemática com variáveis não numéricas, poste o seu script para que possamos lhe ajudar
  4. --Edit Ahh até fazer o script já tinham postado Eai, tudo bele? Vá em creaturescripts/scripts crie um arquivo e coloque isso nele: local config = { [1] = { -- { item id, quantidade} { 2268, 50 }, }, [2] = { { 2268, 50 }, }, [3] = { }, [4] = { }, [5] = { { 2268, 50 }, }, [6] = { { 2268, 50 }, }, [7] = { }, [8] = { } } local storage = 12554 local level = 45 function onAdvance(cid, skill, oldLevel, newLevel) if newLevel == level and getPlayerStorageValue(cid, storage) < 0 then local voc = config[getPlayerVocation(cid)] if voc ~= nil then for _,a in pairs(voc) do doPlayerAddItem(cid, a[1], a[2]) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens voce acaba de ganhar " .. a[2] .. " " .. getItemNameById(a[1]) .. "!") end setPlayerStorageValue(cid, storage, 1) end end return true end Em creaturescripts.xml coloque isso: <event type="advance" name="itembylevel" event="script" value="nome do seu script.lua"/> E para finalizar, no arquivo creaturescripts/scripts/login.lua coloque isso: registerCreatureEvent(cid, "itembylevel") Bom para adicionar um novo item seguindo o modelo do script, adicione na parte da vocação desejada isto: { item id, quantidade} Bom é isso vlw
  5. Eai, a key da storage é um valor númerico quando se tenta definir uma string como key é considerado o número 0. Mas vamos la, em creaturescript/scripts crie um arquivo e nele coloque: function onKill(cid, target, lastHit) local config = { --["Nome do Monstro"] = {numero da storage} ["Demon"] = {12345}, ["Dragon"] = {12346}, ["Dragon Lord"] = {12347}, ["Ferumbras"] = {12348} } local monstro = config[getCreatureName(target)] if isMonster(target) and monstro ~= nil then setPlayerStorageValue(cid, monstro, getPlayerStorageValue(cid, monstro) == -1 and 1 or getPlayerStorageValue(cid, monstro)+1) end return true end No creaturescripts.xml coloque: <event type="kill" name="killcount" event="script" value="nome do seu script.lua"/> E por último vá em creaturescripts/scripts/login.lua e coloque isso: registerCreatureEvent(cid, "killcount") Bom, essa é a parte em lua, agora você precisa criar uma página (em php provavelmente) que realize as consultas e exiba os resultados.
  6. digo1040

    Promotion Vip (Epic)

    Eai, no arquivo creaturescripts/scripts/login.lua, antes do return coloque isso: if getPlayerStorageValue(cid, 13540) > os.time() then if getPlayerStorageValue(cid, 122131) == 1 and isInArray({ 5, 6, 7, 8 }, getPlayerVocation(cid)) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) end else if isInArray({ 9, 10, 11, 12 }, getPlayerVocation(cid)) then doPlayerSetVocation(cid, getPlayerVocation(cid)-4) end end Eu fiz assim, quando fala com o npc ganha uma storage no script de exemplo 122131, ou seja, se ele ja comprou a promotion ele tem a storage, se não comprou não tem. No login, ele verifica se é vip, se for ele verifica se ele tem a storage e se a vocação estar errada ele corrige. E se o player não for vip, a vocação é corrigida. Bom é isso, qualquer dúvida só pedir
  7. digo1040

    Spell Trap

    A função doMutePlayer cria uma condição de Muted
  8. digo1040

    Spell Trap

    E deixar muted, é uma atitude exagerada, cortar o braço pra pessoa não usar o teclado, mas o autor do tópico decide o que mais atende as suas necessidades. Além que alguns itens dos eu script vai contra as regras de scripter, por exemplo, condições devem "declaradas" durante o carregamento do script e não no momento que é usado a spell/talkactions.
  9. digo1040

    Spell Trap

    Eai, tente assim: local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_SUBID, 2) setConditionParam(exhaust, CONDITION_PARAM_TICKS, 10 * 1000) function onCastSpell(cid, var) return doAddCondition(getCreatureTarget(cid), exhaust) end Não tenho certeza se funcionará, mas dar muted no player na minha opinião não é a melhor solução
  10. Eu estava fazendo algo assim, tinha dado o nome de essence system, mas acabei não terminando ele, nele você conseguia roubar a essência de alguns bos com um cristal, e transferi-la para um anel, e assim quando você usava, era somada a sua velocidade a velocidade do monstro, o que eu não acabei foi a parte das magias
  11. digo1040

    Ajuda

    Eai, tente assim: <monster name="(PET) Safira" nameDescription="(PET) Safira" race="blood" experience="0" speed="18000" manacost="450"> <health now="10000000" max="10000000"/> <look type="224" head="114" body="114" legs="114" feet="114" corpse="6080"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="1"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="25"/> </flags> <attacks> <attack name="melee" interval="2000" skill="47" attack="150000"/> </attacks> <defense name="healing" interval="1000" chance="13" min="1000000" max="1500000"/> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="0"/> <immunity poison="0"/> <immunity lifedrain="0"/> <immunity paralyze="0"/> <immunity outfit="0"/> <immunity drunk="0"/> <immunity invisible="0"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="Me De Comida!"/> <voice sentence="Estou Com Sono Queru Dormir!"/> <voice sentence="Vamos Matar Uns Noobs Na Arena?!"/> <voice sentence="Sou Forte Como Um Touro!"/> <voice sentence="Hard OTServ!"/> <voice sentence="Sou Foda!!!"/> </voices> <loot> <item id="2148" countmax="15" chance1="100000" chancemax="0"/> <item id="2388" chance="6666"/> <item id="2386" chance="5000"/> <item id="2484" chance="20000"/> <item id="2530" chance="6666"/> <item id="2649" chance="10000"/> <item id="3976" countmax="10" chance1="50000" chancemax="0"/> <item id="1987" chance="100000"> <inside> <item id="2787" countmax="2" chance1="20000" chancemax="0"/> </inside> </item> </loot> </monster>
  12. Eai, nem tinha olhado elas kk dexa elas assim: <movevent type="Equip" itemid="2124" slot="ring" event="script" value="mensaguem.lua"/> <movevent type="DeEquip" itemid="2124" slot="ring" event="script" value="mensaguem.lua"/>
  13. Eai, usando houses ou o próprio sistema de premmium do tibia, dúvida sanada, tópico reportado para moverem
  14. Como o DeathAngels postou o erro está no vocations.xml, pois o account manager utiliza as informações do vocations.xml
  15. Eai, tudo bem? substitua a função db.executeQuery por db.query
  16. Eai, para entrar na área tem que passar por algum piso, teleport ou usar algum item? E quanto a pegar monstros, npc ... é só usar o comando isPlayer
  17. Eai, não tenho certeza absoluta, mas no arquivo config-and-functions.php procure por: $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- '"); e substitua essa linha por $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- ");
  18. Eai, tudo bem? Nos arquivos do seu gesior, abra o arquivo index.php, e nele procure por: $login_password = trim($_POST['password_login']); De um enter e coloque: if ($login_account == 1) { $login_account = "asdfgkjahdfjakldfhlakjdhfnvalkehrfjbdvcjkasdjfuhdfbjasdfvbdsjf"; } Vai ficar algo assim: $login_account = strtoupper(trim($_POST['account_login'])); $login_password = trim($_POST['password_login']); if ($login_account == 1) { $login_account = "asdfgkjahdfjakldfhlakjdhfnvalkehrfjbdvcjkasdjfuhdfbjasdfvbdsjf"; } if(!$logged && !empty($login_account) && !empty($login_password)) { Com isso o login falhará
  19. Eai, tudo bem? Quanto ao primeiro erro, na linha 2 do script start.lua existe provavelmente um comando assim: db.Query mude para db.query , se mesmo assim não funcionar mude para db.executeQuery, e quanto ao segundo erro, o tfs 0.4 realiza a contagem em milissegundos, ou seja 1 segundo = 1000 milissegundos
  20. Eai, tente assim: em talkactions/scripts crie um arquivo e nele coloque: function onSay(cid, words, param) local texto = "Digite aqui o texto que ira aparecer" doShowTextDialog(cid,7528,texto) return true end E no talkactions.xml coloque: <talkaction words="!up" event="script" value="nome do seu script.lua"/> Bom é isso
  21. Eai, No script há o comando db.query, substitua ele por db.executeQuery
  22. Eai, tudo bem? Abra o arquivo accountmanagement.php e procure por: $newchar_errors[] .= 'This name is already used. Please choose another name!'; De um enter e coloque: $name2 = "[VIP] ".$newchar_name; $check_name_in_database2 = $ots->createObject('Player'); $check_name_in_database2->find($name2); if($check_name_in_database2->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; Deve ficar algo assim: if(empty($newchar_errors)) { $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($newchar_name); if($check_name_in_database->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $name2 = "[VIP] ".$newchar_name; $check_name_in_database2 = $ots->createObject('Player'); $check_name_in_database2->find($name2); if($check_name_in_database2->isLoaded()) $newchar_errors[] .= 'This name is already used. Please choose another name!'; $number_of_players_on_account = $account_logged->getPlayersList()->count(); Bom, é isso
  23. Dexa eu ver se eu entendi, você quer editar os skills iniciais do char?
  24. Eai, é sim kkk nem tinha me tocado que era string e não integer. Atualizei o post
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...