-
Total de itens
59 -
Registro em
-
Última visita
-
Dias Ganhos
6
Tudo que digo1040 postou
-
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
-
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
-
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
-
--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
-
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.
-
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
-
A função doMutePlayer cria uma condição de Muted
-
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.
-
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
-
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
-
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>
-
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"/>
-
Eai, usando houses ou o próprio sistema de premmium do tibia, dúvida sanada, tópico reportado para moverem
-
Como o DeathAngels postou o erro está no vocations.xml, pois o account manager utiliza as informações do vocations.xml
-
Eai, tudo bem? substitua a função db.executeQuery por db.query
-
Eai, utilize o db.query
-
Como Criar Uma Sala Onde So Pode Netrar Um Player De Cada Vez?
tópico respondeu ao Frandruid de digo1040 em Lixeira Pública
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 -
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- ");
-
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á
-
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
-
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
-
Eai, No script há o comando db.query, substitua ele por db.executeQuery
-
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
-
Dexa eu ver se eu entendi, você quer editar os skills iniciais do char?
-
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.