Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''action''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Tiagotwos

    war.lua

    war.lua local guild = getPlayerGuildId(cid) function onSay(cid, words, param, channel) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.executeQuery("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end
  2. Ola pessoal, estou com um problema, quando meu servidor fica um tempo online, tipow o dia todo, parece que fica sem memoria para o catch de pokemons impossibilitando o catch e aparecendo essa msg no console toda ves que alguem joga uma ball em um poke. [05/02/2016 20:32:59] [Error - Action Interface] [05/02/2016 20:32:59] In a timer event called from: [05/02/2016 20:32:59] data/actions/scripts/catch.lua:onUse [05/02/2016 20:33:00] Description: [05/02/2016 20:33:00] not enough memory Alguem sabe me dizer o que pode ser e como resolver? Obs: Quando acontece isso todas as balls jogadas nos pokes brilham como se o player tivesse capturado o poke mais nao capturou e aparece essa msg ai de cima no console.
  3. Opa, e ai galera do XTibia. Sabe aqueles jogos FPS que fornecem ao jogador um valor baseado na quantidade de death e kill do jogador. Foi lembrando deste sistemas que remontei este kill/death ratio e fiz a integração com uma página Gesior para manter um rank interativo com os jogadores. Espero que gostem 1°- Siga até o diretório "/data/creaturescripts/" e adicione a tag ao arquivo "creaturescripts.xml": <!-- K.D System --> <event type="kill" name="killpoint" event="script" value="onkill.lua"/> <event type="preparedeath" name="deathpoint" event="script" value="onpd.lua"/> <event type="look" name="KdrLook" event="script" value="onlook.lua"/> 2°- Siga até o diretório "/data/creaturescripts/scripts" e adicione os registros de login em "login.lua": registerCreatureEvent(cid, "KdrLook") registerCreatureEvent(cid, "killpoint") registerCreatureEvent(cid, "deathpoint") 3°- Siga até o diretório "/data/creaturescripts/scripts", crie um arquivo chamado "onpd.lua" e preencha: function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) if isPlayer(cid) == true then db.query("UPDATE `players` SET `deaths` = `deaths` + 1 WHERE id = " .. getPlayerGUID(cid) .. ";") doCreatureSay(cid, '+1 Death Point!', TALKTYPE_ORANGE_1) end return true end 4°- Siga até o diretório "/data/creaturescripts/scripts", crie um arquivo chamado "onkill.lua" e preencha: function onKill(cid, target, damage, flags) if isPlayer(target) == true then db.query("UPDATE `players` SET `frags` = `frags` + 1 WHERE id = " .. getPlayerGUID(cid) .. ";") doCreatureSay(cid, '+1 Frag Point!', TALKTYPE_ORANGE_1) end return true end 5°- Siga até o diretório "/data/creaturescripts/scripts", crie um arquivo chamado "onlook.lua" e preencha: function onLook(cid, thing, position, lookDistance) function getKillsPlayer(cid) local Info = db.getResult("SELECT `frags` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1") local frags= Info:getDataInt("frags") return frags end function getDeathsPlayer(cid) local Info = db.getResult("SELECT `deaths` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1") local deaths= Info:getDataInt("deaths") return deaths end if isPlayer(thing.uid) then local kdr = getKillsPlayer(thing.uid)/getDeathsPlayer(thing.uid) doPlayerSetSpecialDescription(thing.uid, (getPlayerSex(thing.uid) == 0 and "\nShe" or "\nHe") .. " has Killed: ["..getKillsPlayer(thing.uid).."] Players."..(getPlayerSex(thing.uid) == 0 and "\nShe" or "\nHe") .. " has Died: ["..getDeathsPlayer(thing.uid).."] Times.\nThe Kdr(Kill Death Ratio) is: ["..kdr.."].") end if(thing.uid == cid) then local kdr = getKillsPlayer(thing.uid)/getDeathsPlayer(thing.uid) doPlayerSetSpecialDescription(thing.uid, "\nYou have Killed: ["..getKillsPlayer(thing.uid).."] Players.\nYou have Died: ["..getDeathsPlayer(thing.uid).."] Times.\nYou Kdr(Kill Death Ratio) is: ["..kdr.."].") end return true end 6°- Siga até a pasta de seu website Gesior e prepare o "index.php" pare receber a página: <?PHP $page = $_REQUEST['page']; if(count($config['site']['worlds']) > 1) { foreach($config['site']['worlds'] as $idd => $world_n) { if($idd == (int) $_GET['world']) { $world_id = $idd; $world_name = $world_n; } } } if(!isset($world_id)) { $world_id = 0; $world_name = $config['server']['serverName']; } $offset = $page * 100; //jesli chodzi o skilla if(isset($id)) $skills = $SQL->query('SELECT * FROM players, player_skills WHERE players.world_id = '.$world_id.' AND players.deleted = 0 AND players.group_id < '.$config['site']['players_group_id_block'].' AND players.id = player_skills.player_id AND player_skills.skillid = '.$id.' AND players.account_id != 1 ORDER BY value DESC, count DESC LIMIT 101 OFFSET '.$offset); else { $skills = $SQL->query('SELECT * FROM players WHERE players.world_id = '.$world_id.' AND players.deleted = 0 AND players.group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 AND deaths != 1 ORDER BY frags/deaths DESC, level DESC LIMIT 101 OFFSET '.$offset); $list_name = 'K.D System Ratio'; $list = 'frags'; } //wyswietlanie wszystkiego $main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD><TD><CENTER><H2>Ranking for '.$list_name.' on '.$world_name.'</H2></CENTER><BR>'; if(count($config['site']['worlds']) > 1) { $main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD> <FORM ACTION="index.php?subtopic=highscores&list='.$list.'" METHOD=get><INPUT TYPE=hidden NAME=subtopic VALUE=highscores><INPUT TYPE=hidden NAME=list VALUE=experience> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>World Selection</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['lightborder'].'"> <TABLE BORDER=0 CELLPADDING=1><TR><TD>World: </TD><TD><SELECT SIZE="1" NAME="world"><OPTION VALUE="" SELECTED>(choose world)</OPTION>'; foreach($config['site']['worlds'] as $id => $world_n) { $main_content .= '<OPTION VALUE="'.$id.'">'.$world_n.'</OPTION>'; } $main_content .= '</SELECT> </TD><TD><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18> </TD></TR></TABLE></TABLE></FORM></TABLE><br>'; } $main_content .= '<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD WIDTH=5% CLASS=whites><B>Rank</B></TD> <TD WIDTH=65% CLASS=whites><B>Name</B></TD><TD WIDTH=30% CLASS=whites><b><center>K/D</center></B></TD>'; $main_content .= '<TD CLASS=whites><b><center>Level</center></B></TD>'; $main_content .= '</TR><TR>'; foreach($skills as $skill) { if($number_of_rows < 100) { /* INICIO SCRIPT CONTAGEM */ $deathssss = $skill['deaths']-1; $fragsss = $skill['frags']-1; if($skill['deaths'] > 0){$num = $skill['deaths'];}else{ $num = 1;} $number2 = $skill['frags']/$num; $number = number_format($number2, 2, '.', ''); if($number2 > 1){$st = "#98FB98";}elseif($number2 < 1){$st = "#FF6A6A";}else{$st = ""; /*#87CEEB*/} /* FIM SCRIPT CONTAGEM */ $skill['value'] = $skill['level']; if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'" style="background: '.$st.' !important;"> <td>'.($offset + $number_of_rows).'.</td> <td>'.$flag.'<a href="index.php?subtopic=characters&name='.urlencode($skill['name']).'">'.$skill['name'].'</a>'; if($config['site']['showMoreInfo']) $main_content .= '<br><small>Level: '.$skill['level'].', '.$vocation_name[$skill['world_id']][$skill['promotion']][$skill['vocation']]; if(count($config['site']['worlds']) > 1) $main_content .= ', '.$config['site']['worlds'][$skill['world_id']]; $main_content .= '</small>'; $main_content .= '<td><center><b>'.$number.' </b> ('.$fragsss.'/'.$deathssss.')</center></td>'; $main_content .= '</td><td>'.$skill['value'].'</td>'; $main_content .= '</tr>'; } else $show_link_to_next_page = TRUE; } $main_content .= '</TABLE><TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>'; //link to previous page if actual page isn't first if($page > 0) $main_content .= '<TR><TD WIDTH=100% ALIGN=right VALIGN=bottom><A HREF="index.php?subtopic=eventrank&world='.$world_id.'&page='.($page - 1).'" CLASS="size_xxs">Previous Page</A></TD></TR>'; //link to next page if any result will be on next page if($show_link_to_next_page) $main_content .= '<TR><TD WIDTH=100% ALIGN=right VALIGN=bottom><A HREF="index.php?subtopic=eventrank&world='.$world_id.'&page='.($page + 1).'" CLASS="size_xxs">Next Page</A></TD></TR>'; //end of page $main_content .= '</TABLE></TD> </TR> </TABLE>'; $main_content .= '<center><b>Desenvolvido por: Wênio Ferraz - <a href="http://www.chaitosoft.com" target="_blank">ChaitoSoft.com</a></b></center>'; ?> 7°- Siga até seu banco de dados e execute as seguintes QUERYS: ALTER TABLE `players` ADD `frags` INT( 11 ) NOT NULL DEFAULT '1'; ALTER TABLE `players` ADD `deaths` INT( 11 ) NOT NULL DEFAULT '1'; Prontinho, obrigado!
  4. É um script de quest feito 100% por mim O que ela retorna? Essa quest simplesmente te fornece um conjunto de itens dentro de uma bag, itens básicos, porém os itens recebidos da quest são diferentes para cada vocação, e detalhe, ela fornece uma sword ou um axe ou um club para o jogador caso ele seja knight, o tipo da arma dependerá do skill do mesmo, se seu maior skill for axe, ele receberá um machado, e o maior skill for club ele recebe uma clava e se o maior for sword ele recebe uma espada, é um sistema de fácil configuração e acredito que pode ser útil de alguma forma principalmente aos programadores iniciantes. Implementação; Abra a pasta data/actions/scripts -> copie e cole um arquivo qualquer e o renomeie para recompensa.lua Apague tudo que tiver dentro e cole o seguinte código: function onUse(cid, item, frompos, item2, topos) --A Configuração abaixo local config = { level_min = 20, -- level mínimo Premium = true, -- Necessita P.A? true para sim ou false para não Club = 7381, -- id da clava caso o suposto knight tenha skill club superior Sword = 7385, -- id da espada caso o suposto knight tenha skill sword superior Axe = 2435 -- id da machado caso o suposto knight tenha skill axe superior } -- Fim da config OBS Configure dessa linha pra baixo se e somente se souber o que está fazendo local SkillClub = getPlayerSkillLevel(cid, 1) local SkillSword = getPlayerSkillLevel(cid, 2) local SkillAxe = getPlayerSkillLevel(cid, 3) local level = getPlayerLevel(cid) local Voc = getPlayerVocation(cid) local QuestStatus = getPlayerStorageValue(cid,13139) if config.Premium and not isPremium(cid) then doPlayerSendTextMessage(cid,29,"Apenas para jogadores premium accounts") return 0 end if Voc == 4 or Voc == 8 then if level >= config.level_min then if QuestStatus == -1 then if (SkillClub > SkillSword) and (SkillClub > SkillAxe) then doPlayerAddItem(cid,config.Club,1) elseif (SkillSword > SkillClub) and (SkillSword > SkillAxe) then doPlayerAddItem(cid,config.Sword,1) elseif (SkillAxe > SkillClub) and (SkillAxe > SkillSword) then doPlayerAddItem(cid,config.Axe,1) end local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 2463, 1) doAddContainerItem(bag, 2457, 1) doAddContainerItem(bag, 2661, 1) doAddContainerItem(bag, 2525, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end elseif Voc == 3 or Voc == 7 then if level >= config.level_min then if QuestStatus == -1 then local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 8872, 1) doAddContainerItem(bag, 2457, 1) doAddContainerItem(bag, 2661, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 7438, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end elseif Voc == 1 or Voc == 5 then if level >= config.level_min then if QuestStatus == -1 then local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2323, 1) doAddContainerItem(bag, 2188, 1) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 8892, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 2661, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end elseif Voc == 2 or Voc == 6 then if level >= config.level_min then if QuestStatus == -1 then local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2323, 1) doAddContainerItem(bag, 2185, 1) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 8892, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 2661, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end end return true end feito isso salve e feche o arquivo. Agora vá na pasta data/actions/actions.xml e cole a seguinte tag abaixo: <action uniqueid="7111" script ="recompensa.lua" /> Feito isso basta abrir seu map editor e colocar o unique id no local onde o player vai clicar pra fazer a quest, seja lá o que for, um baú, uma estátua, uma parede,etc. Gostou? REP+ Analíse, critique, elogie, comente, me ajude a crescer. By Totonho 18, autor do código :smile_positivo:
  5. Olá Gente, queria a ajuda de vcs para tirar um erro de uma script que peguei aqui do xtibia, é o seguinte, são duas scripts, essas scripts foi feita pelo Slicer, é um sistema de Ir Pro Pvp, e voltar para city que entrou no Pvp, é tipo assim,a primeira script funciona assim, a pessoa pisa em um tile que tem a action X, e quando a pessoa pisa nesse tile com essa action a pessoa é teleportado para X lugar e ganha X Storage, e tem a segunda script, que a pessoa pisa em outro tile que tem outra Action, e a pessoa é teleportado para a city que a pessoa ganhou a X Storage. link do sistema que to falando. http://www.xtibia.com/forum/topic/177592-pokemon-dvidas-pda/page-368#entry1208284 sendo que quando eu piso no tile da primeira script ta dando esse erro ai da imagem, e a pessoa n ganha a Storage, e nem da para voltar para o cp usando a segunda script. as scripts para tirar o erro. Primeira Script e a segunda script se precisar, o da volta do pvp para ir pro cp que a pessoa entrou no pvp. Up
  6. Fruit Picking Introdução: é um sistema simples, consiste em você pode colher a fruta da arvore e ela crescer depois de um tempo de novo. Instalar o script: em action/script crie: FruitHarvesting.lua adicione: -- Do not remove the credits -- -- [ACTION] Fruit Harvesting -- -- Developed by Rigby -- -- Especially for the Xtibia.com -- local config = { -- [ID_DA_ARVORE] = {FRUTA, QUANTIDADE{minimo, maximo}, ID_DA_ARVORE_SEM_FRUTO, TEMPO_PARA_ÀRVORE_FICA_COM_FRUTO} [5157] = {fruit = 5097, quantity = {0,1}, treeWithoutFruit = 5156, timeToGrow = 5}, [4006] = {fruit = 2675, quantity = {0,3}, treeWithoutFruit = 4008, timeToGrow = 20}, [5094] = {fruit = 2676, quantity = {3,6}, treeWithoutFruit = 5092, timeToGrow = 30}, [5096] = {fruit = 2678, quantity = {2,7}, treeWithoutFruit = 2726, timeToGrow = 70}, } function onUse(cid, item, fromPosition, itemEx, toPosition) for i, k in pairs(config) do if (isInArray(i, item.itemid) == true) then random = math.random(k.quantity[1],k.quantity[2]) doTransformItem(item.uid, k.treeWithoutFruit, 1) doPlayerAddItem(cid,k.fruit,random) addEvent(function() doTransformItem(getThingFromPos(toPosition).uid, i) end, k.timeToGrow * 1000) if random > 0 then doPlayerSendTextMessage(cid,27,"Você pego "..random.." "..getItemNameById(k.fruit).."!") else doPlayerSendTextMessage(cid,27,"Àrvore não deu nenhum fruto!") end end end return true end em action/action.xml adicione a tag: <action itemid="5157;4006;5094;5096" event="script" value="FruitHarvesting.lua"/> Se você adicionar mais arvore não esqueça de adiciona o id na tag também.
  7. Salve galera tudo tranquilo? Então recentemente eu resolvi voltar a mexer com poketibia e comecei a "fuçar" na base do PSTORM que tem disponível tentando adaptar os scripts dela em outra base coisa que não ta dando muito certo mas fazer o que sou brasileiro e não desisto \o/ Voltando ao assunto do tópico quando tentei colocar o catch system em outra base, ele começou a dar um erro realmente "CHATOOOOOOO" eis o erro: [30/01/2016 18:08:22] [Error - Action Interface] [30/01/2016 18:08:22] data/actions/scripts/catch.lua:onUse [30/01/2016 18:08:22] Description: [30/01/2016 18:08:22] (luaAddEvent) Callback parameter should be a function. Tipo ele solta o efeito de captura tudo bonitinho só que na hora de mandar a msg e add o item ele da esse erro maldito. Eis o script: Solicito a ajuda de vocês pelo amr de deus T-T #up #up #up Pelo amr de deus me ajudem!
  8. Bom á muito tempo, muitas pessoas procuram tutoriais para pokemon dash, erondino, entre outras bases antigas, de como adicionar pokemons, colocar para evoluir, adicionar fly, ride, surf, criar spells, adicionar attacks aos pokemons etc. Irei fazer este tutorial justamente para quem tanto procura esse tipo de coisa e quer ingressar em uma coisa séria! Aviso! (É trabalhoso e exige dedicação e atenção) ( ͡° ͜ʖ ͡°) Tutorial n° 1 (Como adicionar novos pokemons) Bom como em todos os servidores é obrigatório ter o xml do pokemon e o seu registro na pasta monster. (Pularei a parte da monster...) Para adicionar um novo pokemon ao caught "Catch" Siga as imagens: Como exemplo de adição utilizarei o pokemon Salamence. Em data/actions/scripts/catch.lua SE AS IMAGENS FICAREM PEQUENAS NO TÓPICO BASTA CLICAR NAS MESMAS! Imagem: Após adicioná-lo ai ele já poderá ser capturado, mas calma. Depois de tê-lo posto em catch.lua você precisa colocá-lo no goback.lua localizado na mesma pasta. Imagem: Todo novo pokemon precisa de Dex e moves, e sim é preciso criar uma dex.. Para criar a dex do novo pokemon você vai em data/pokedex Crie um arquivo .txt para o exemplo de pokemon usado criarei Salamence.txt Mas para que ele seja reconhecido na pokedex vá em data/lib/pokeLib.lua, abra e procure por "newpokedex", siga ao final até o ultimo pokemon e siga a imagem.. Pronto agora seu pokemon tem dex e pode ser capturado, Agora só falta os moves.. Para adicionar os moves em seu pokemon você precisará de paciência e principalmente VONTADE! Vá em data/talkactions/scripts/move1, move2, move3 etc.. Eu irei mostrar somente o move 1, pois para add move 2, move 3 até move 12 é só ir nos seguintes arquivos e ir adicionando igualmente á imagem: Para por portrait em um pokemon vá em data/movements/scripts/portrait.lua e siga. imagem: Após isso, seu pokemons terá catch, dex e moves e portrait determinados por você (Eu pessoalmente prefiro essa dificuldade por ser ajustável ao meu jeito tanto a dex quanto HP, força que ajuda no balanceamento). Agora você se pergunta Salamence tem fly como vou adicionar.. Fácil! Em data/actions/scripts/order.lua Para adicionar rock smash, dig, cut na mesma order.lua um pouco mais embaixo: Imagem: Para adicionar surf vá em data/movements/scripts/surf.lua e siga a imagem: Agora um exemplo de como criar novas magias: Bom galera é isso, espero que curtam. iiBoooa! Espero que tenham força de vontade para fazer tudo rs' Créditos á mim pois fiz todo o tutorial!
  9. Bom pessoal, vasculhando pelo forum encontrei um talkaction de teleport, faltava algumas coisas eu adicionei com ajuda de membros mas ainda preciso de ajuda em 2 coisas para deixar o teleport perfeito, me ajudando vai estar ajudando a comunidade pois irei postar o script. 1° coisa, na verdade nem sei se é possível: deixar o player completamente paralisado durante os 10 segundos em que o player vai estar sendo teletransportado(se possível, com uma mensagem "você não pode se mover enquanto teleporta") 2° durante os 10 segundos o player fique com um efeito que só acabe quando ele for teleportado. script: Desde já obrigado. @UP @up @UP @UP
  10. Olá queria que ao sair do fly, ride e surf, o pokemon volte para dentro da ball. Eu tentei fazer, consegui, está funcionando, ele volta para a ball, a ball fica como on(pronta para ser usada) e atualiza a cd bar, o único problema é que está dando um erro na distro quando saio do fly,ride ou surf, esse erro não impede nada, mas com muitos onlines saindo do fly toda hora irá aparecer o erro na distro toda hora e pode dar lag Preciso que refaçam o que pedi, ou concertem o que eu fiz, vou deixar o order.lua das actions (único lugar onde mexi) antes de eu mexer, e depois que eu mexi, vou deixar também um print do erro mais abaixo. Caso precisem de mais algum arquivo, é só pedir. OBS: Uso PDA com icon system e cd bar Order de antes de eu mexer: data\actions\scripts\order.lua Order depois que eu mexi (funciona mas da um erro na distro quando desço do fly/ride/surf) : data\actions\scripts\order.lua Print do erro que aparece quando desço do fly/ride/surf usando o arquivo que modifiquei:
  11. Olá, não sei se é aqui o local mais indicado... Se não for, por favor, me movam para o local. Estou montando o meu servidor com uma MEGA ESTRUTURA E preciso de alguém pra me ajudar com scripts e actions... Pago por PROJETO! Exemplo: fazer script 1,2,3. Raid: 1,2,3. Testar e por pra rodar. O servidor já está 90% Precisamos arrumar alguns ultimos detalhes. Preciso de alguém responsável e profissional. Que me mantenha informado sempre das coisas. estou no email também. fullprojectibia.com whats: 041 9653-9809
  12. o shop guild não entre o item ... uso tfs 0_4 globalevents/scripts/shopguild.lua shopguild.php [ site ]
  13. Olá Bom dia xt; Gostaria que vocês me ajudassem com uma spell de invisibilidade como o tópico ja diz... Detalhes: *Ao usar essa spell o Player não poderá levar dano e ficará como se fosse do group id 3 ou 2 totalmente invisível. *Essa Spell terá um time(tempo) para o jogador voltar a fica visível novamente, de preferência 3 seg. Então é isso espero que me ajudem, irei continuar tentando fazer... Se eu conseguir postarei aqui. Obrigado desde já, valendo REP++. UP, Ajudem ai favor '-'... precisando só desta Spell; Duvida: * doCreatureExecuteTalkaction no TFS 1x não existe ou se faz de outra forma?
  14. Olá gente, queria pedir a vcs para modificar 2 scripts pra mim, queria tirar as funções de " Clan " dessas scripts, é de poketibia. scripts Up Up up
  15. Olá Gente, queria pedir duas scripts a 1° é uma script de teleport, o player pisa em um tile com Tal Uniqueid, e ele é teleportado para o Trade Center de poketibia, eu procurei aqui no xtibia e achei mas ta acontecendo um bug, se o player entrar no pvp com o Pokemon pra fora da ball, o pokemon morre, quero um teleport que ele possa entrar com o poke pra fora sem morrer. e a 2° é uma script de teleport que o player volta para o cp e a city de onde ele entrou pro trade center, tipo, se ele entra no teleport de Saffron e ele é teleportado para o trade center, ai teria esse Teleport no trade center que ao ele entrar, voltaria para o cp de Saffron que foi a city que ele entrou, no caso se ele entrasse no Teleport de cerulean para ir pro trade center, quando ele entrasse no teleport que teria no trade center, ele voltaria para Cerulean que foi a city que ele entrou no primeiro pedido ai que eu fiz. Desculpa se ta mal explicado kk. Up deixa, já achei 2 scripts aqui com o nome Trade_Go E Trade_Back que faz essas funções ai.
  16. Alguem poderia me ajudar numa coisa estou tentano adicionar Outfitter 8.60 gesior. Do Tutorial : http://www.xtibia.com/forum/topic/238688-outfitter-860-gesior/ e la fala pra mim subistituir algumas linhas porem no meu script não contem essas linhas meu script whoisonline.php Obrigado :XTibia_smile: REPP++
  17. Olá pessoal, hoje tenho um tempo livre para dedicar, e decidi criar um tutorial de SQL, nele vou explicar algumas coisas básicas, e algumas que pesquisei para ter certeza do que estou passando, no final do tutorial vou fornecer fontes, que podem ser usadas como forma de estudo. Antes de começar, vou utilizar algumas formatações para facilitar: Esse tutorial pode ser usado para MySQL também, pois o MySQL como o próprio nome já dá enfase, usa uma interface em SQL - que é uma linguagem, não confunda SQL com SQLite Studio ou MySQL. Primeiramente tenho que explicar o que é: SQL - (Structured Query Language) Linguagem de Consulta Estruturada, é uma linguagem de banco de dados, ou seja, serve para guardar, consultar e editar quase quaisquer dados. No seu arquivo .sql que fica na sua pasta \schemas, contém uma database salva através de vários QUERYS, como eu disse antes, querys são parte da interface do SQL, e com eles, você pode jogar num MySQL que abrirá magicamente, ou simplesmente executará os querys preenchendo sua database. Exemplo de arquivo .SQL: Os arquivos .s3db são do SQLite Studio, essa extensão de arquivo é usada para armazenar a database para o programa em específico. Trecho retirado de: http://www.w3schools.com/sql/sql_syntax.asp Querys - query, pode ser traduzido para: pergunta, questão, dúvida. Eles são usados em tudo dentro da linguagem, tudo que você faz com seus dados na database, é um query que roda no interpretador. Cada tabela contém colunas, e cada coluna, contém data = dados, e o conjunto de dados forma a sua database, através da organização de rows e colunas. Vou explicar melhor na prática: Sintaxe - é todo o conjunto de comandos de uma linguagem. que serve para montar a lógica. Umas das sintaxes do SQL: SELECT - Extrai dados da database UPDATE - Atualiza dados da database DELETE - Deleta dados de uma database INSERT INTO - Insere novos dados dentro da database CREATE DATABASE - Cria uma nova database ALTER DATABASE - Altera uma database CREATE TABLE - Cria uma nova tabela ALTER TABLE - Modifica uma tabela DROP TABLE - Deleta uma tabela CREATE INDEX - Cria um index DROP INDEX - Deleta um index DISTINCT - Usa-se junto com SELECT para distinguir o que selecionar WHERE - Usa para impor condições AND - Usa para somar condições OR - Usa para subtrair condições ...E etc... Acesse este link, é um interpretador de querys, com uma database. No canto direito "You Database:" você pode visualizar os dados, e restaurar, restaure quando você fizer alguma merda (como deletar ou alterar algo sem querer). Lá dentro, escreva isto, e aperte "Run SQL >>" , o interpretador irá rodar/executar o query. SELECT * FROM Customers; Essa expressão acima, seleciona * (todos os dados) da tabela Customers (poderia ser tabela Accounts ou Players), que contém várias rows/fileiras (um total de 91), vamos diminuir utilizando outro comando, para diminuir a quantidade de informação: SELECT * FROM Customers WHERE CustomerID < 4; Ótimo, agora ficará assim: Para explicar o que é o que: Quando usamos um QUERY para selecionar, seguimos o seguinte padrão: SELECT coluna FROM tabela WHERE coluna=1; Ou SELECT ContactName FROM Customers WHERE Address="Obere Str. 57" isso vai selecionar direto "Maria Anders" pois os endereços são únicos... Essa situação pode ser usada no tibia por exemplo, para selecionar o noivo ou noiva no marriage system, já que eles precisam ser colocados no banco de dados. Os storages não são nada mais nada menos do que dados da database, que são chamados e alterados através de querys, por LUA ou C++... Vale lembrar pessoal que para usar um query em LUA, é só usar a função: db.query("SELECT * FROM `accounts`") o query dentro foi somente um exemplo. Fontes: http://www.w3schools.com/sql/ http://www.1keydata.com/pt/sql/ Não usei, mas é uma opção em português. Recomendo muito o w3schools, não só para sql, mas para tudo que tiver lá, eles explicam muito bem. Bom, foi isso pessoal, espero que tenham gostado e que ajude nas suas empreitadas QUALQUER Crítica construtiva ou sugestão pode comentar abaixo. Posso fazer outros tópicos de sql, caso este esteja bom. Suporte no tópico. :smile_positivo:
  18. Author:Printer Como funciona: Instalação: Vá em actions/actions.xml e adicione essa linha: <action actionid="8000" script="tronEventLever.lua" /> Vá em actions/scripts e crie um arquivo chamado ''tronEventLever.lua'' e adicione isso dentro: function onUse(player, item, fromPosition, target, toPosition, isHotkey) if item.itemid == 1945 then if tronEvent:onUseLever(player) == false then return true end end item:transform(item.itemid == 1945 and 1946 or 1945) return true end Agora vá em movements/movements.xml e remova essas linhas: <movevent event="AddItem" itemid="1492" function="onAddField" /> <movevent event="StepIn" itemid="1493" function="onStepInField" /> <movevent event="StepIn" itemid="1500" function="onStepInField" /> <movevent event="AddItem" itemid="1500" function="onAddField" /> <movevent event="StepIn" itemid="1506" function="onStepInField" /> <movevent event="AddItem" itemid="1506" function="onAddField" /> E adicione essas linhas: <movevent event="StepIn" itemid="1492" script="tronEventMovement.lua" /> <movevent event="StepIn" itemid="1500" script="tronEventMovement.lua" /> <movevent event="StepIn" itemid="1506" script="tronEventMovement.lua" /> Vá em movements/scripts e crie um arquivo chamado "tronEventMovement.lua" e adicione isso dentro: function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if player == nil then return false end position:sendMagicEffect(CONST_ME_FIREAREA) tronEvent:onPlayerDeath(player, tonumber(item:getAttribute(ITEM_ATTRIBUTE_TEXT)) or 0) return true end Agora em data/global.lua,adicione essa linha: dofile('data/tronEvent.lua') Create new lua inside data folder and name it: "tronEvent.lua" and paste this: http://pastebin.com/qdjptfYe
  19. Olá pessoal do XTibia, tudo na boa? Após pesquisar muito não consegui encontrar um sistema de reset para usar no servidor de nosso cliente Demolidores então decidi fazer a junção de alguns sistemas e montei também um ranking para Gesior. Chega de blá blá blá e vamos direto ao script. 1°- Adicione a tag em seu "talkactions.xml"; <talkaction words="!resetar;!reset" event="script" value="reseting.lua"/> 2°- Adicione o arquivo "reseting.lua" ao diretório "/data/talkactions/scripts/"; function onSay(cid, words, param, channel) config = { RemainingLvl=8, exper=4200, pid=getPlayerGUID(cid), batle="yes" } function getPlayerResets(cid) resets = getPlayerStorageValue(cid,1021) if resets < 0 then resets = 0 end return resets end if (config.batle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.") return TRUE end if (getPlayerStorageValue(cid, 11548) >= os.time()) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"Por medidas de segurança você só pode utilizar este comando em " .. (getPlayerStorageValue(cid, 11548)-os.time()+(0)) .. " segundos.") return TRUE end local healthMax, manaMax = getCreatureMaxHealth(cid), getCreatureMaxMana(cid) ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 85 and getPlayerResets(cid) == 15 then if getPlayerLevel(cid) >= 16000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 16000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 80 and getPlayerResets(cid) == 14 then if getPlayerLevel(cid) >= 15000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 15000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 70 and getPlayerResets(cid) == 13 then if getPlayerLevel(cid) >= 14000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 14000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 65 and getPlayerResets(cid) == 12 then if getPlayerLevel(cid) >= 13000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 13000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 60 and getPlayerResets(cid) == 11 then if getPlayerLevel(cid) >= 12000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 12000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 55 and getPlayerResets(cid) == 10 then if getPlayerLevel(cid) >= 11000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 11000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 50 and getPlayerResets(cid) == 9 then if getPlayerLevel(cid) >= 10000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 10000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 45 and getPlayerResets(cid) == 8 then if getPlayerLevel(cid) >= 9000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 9000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 40 and getPlayerResets(cid) == 7 then if getPlayerLevel(cid) >= 8000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 8000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 35 and getPlayerResets(cid) == 6 then if getPlayerLevel(cid) >= 7000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 7000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 30 and getPlayerResets(cid) == 5 then if getPlayerLevel(cid) >= 6000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 6000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 25 and getPlayerResets(cid) == 4 then if getPlayerLevel(cid) >= 5000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 5000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 20 and getPlayerResets(cid) == 3 then if getPlayerLevel(cid) >= 4000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 4000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 15 and getPlayerResets(cid) == 2 then if getPlayerLevel(cid) >= 3000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 3000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 10 and getPlayerResets(cid) == 1 then if getPlayerLevel(cid) >= 2000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 2000 ou mais para poder resetar.") end end ---------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid,1021) < 5 and getPlayerResets(cid) == 0 then if getPlayerLevel(cid) >= 1000 then setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1) setPlayerStorageValue(cid,11548,os.time()+30) doPlayerAddLevel(cid, config.RemainingLvl) setCreatureMaxHealth(cid, healthMax) setCreatureMaxMana(cid, manaMax) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED) db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid) else doPlayerSendCancel(cid,"Você precisa ter level 1000 ou mais para poder resetar.") end end return true end 3°- Execute a query SQL para criar a coluna "reset" no banco de dados Mysql; ALTER TABLE `players` ADD `reset` BIGINT(255) NOT NULL DEFAULT '0'; 4°- Configure o "index.php" do seu Gesior para receber a página PHP; <?php $limitt = 100; $zap = $SQL->query('SELECT `name`,`level`, `reset` FROM `players` WHERE `group_id` < '.$config['site']['players_group_id_block'].' AND `name` != "Account Manager" ORDER BY `reset` DESC, `level` DESC LIMIT 100;'); $number_of_rows = 0; $main_content .= ' <center><h2>Reset Ranking</h2></center> <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%> <tr bgcolor="#af2126"> <td><font color="white">Nome</font></td> <td><font color="white">Reset</font></td> <td><font color="white">Level</font></td> </tr> '; foreach($zap as $wynik) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= ' <tr bgcolor="'.$bgcolor.'"> <td> <a href="index.php?subtopic=characters&name='.urlencode($wynik['name']).'"> <b> '.$wynik['name'].' </b></a> </td> <td> '.$wynik['reset'].' </td> <td> '.$wynik['level'].' </td> </tr> '; } $main_content .= ' </tr> </table>'; ?> Seria basicamente isto, espero que possa ter contribuído com alguém. Para alterar o numero de resets permitidos é só remover ou adicionar as linhas.
  20. Este é um sistema para comprar potions por alavanca, só que podendo configurar a quantidade de potions a ser comprada. Exemplo: !potions 50 ~~comprará 50 potions a cada vez que usar a alavanca. Primeiro vou dar o exemplo da gmp Crie um arquivo em data/actions/scripts com o nome de greatmp.lua e coloque: em actions.lua coloque : Agora em talkactions Crie um arquivo chamado potions.lua e coloque: em talkactions.lua coloque: Agora vá no rme e coloque o action id 1515 na alavanca que irá ser usada Extras: movements para o jogador na primeira vez que ele passar em movements, crie potions.lua e coloque: movements.lua ***Para evitar que os jogadores joguem lixo em cima das potions de ilustração, vá no rme e coloque o item 1548 (invisible blocking item) em cima delas. Scripts das outras potions abaixo: mana potion great health potion: spirit potion: strong health potion strong mana potion: ultimate health potion: créditos: eu
  21. Então galera, eu tenho o event battlefield no meu servidor, porém ele é de 1 em 1 hora, e queria saber se tem alguma talkaction que pode executar a globalevent que abre o evento
  22. Alguem poderia me ajudar em 3 talkaction in game para website que consistem em ! 1° - !sacar quantia - Retira tal quantia premium_points em determinado item atraves do jogo ! 2° - !saldo - mostra quantos points tem no saldo do site in game 3° - !depositar quantia - Deposita quantia no saldo in game! TFS 0.3.6 8.60 ! Alguem poderia me ajudar nessas talkactions ! Obrigado desde-ja :biggrin: :XTibia_smile: REPP ++
  23. leofox97

    error catch

    ao taca ball no pokemon to recebendo esse error: [30/01/2016 12:04:57] [Error - Action Interface] [30/01/2016 12:04:57] In a timer event called from: [30/01/2016 12:04:57] data/actions/scripts/catch.lua:onUse [30/01/2016 12:04:57] Description: [30/01/2016 12:04:57] data/lib/catch system.lua:180: attempt to perform arithmetic on local 'clevel' (a nil value) [30/01/2016 12:04:57] stack traceback: [30/01/2016 12:04:57] data/lib/catch system.lua:180: in function <data/lib/catch system.lua:103>
  24. Olá Gente, queria saber o seguinte, tenho 2 scripts aqui no action, mas queria usar 1 item nas 2 tags dessas scripts no xml. sendo que quando eu uso o item, da duplicate registered item, por que eu to usando o mesmo item nas 2 tags, queria saber se tem algum modo deu usar esse item nas duas tags sem da duplicate. Up
  25. Olá Galera, queria pedir a ajuda de vcs, estou com 2 scripts que está dando erros quando é ativadas, quero remover esses erros sem danificar as scripts e sem desativar as funções delas, a primeira script é uma spell chamada Poision Job, uso base pde de poketibia. quando um monstro selvagem que possui essa spell ataca meu pokemon a distro da esse erro. Script para tirar o erro da spell. script da spell que indica na lib O 2° erro. é o seguinte, o segundo erro acontece quando eu do order no Ditto para ele se transformar no poke que estou dando order em cima dele, quando tento fazer o ditto se transformar ele da esse erro. Script que indica o erro. é isso. Do Rep+ Quem Me Ajudar. obg Up
×
×
  • Criar Novo...