Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    113

Tudo que Vodkart postou

  1. usou aquele meu lá embaixo? só editar o script function onSay(cid, words, param) local amount = 1 -- qnto de skill vai ser dado local skill = { ["first"] = {id = 0,limit = 200,price = 2000,vocations = {1,2,3,4,5,6,7,8}} ["club"] = {id = 1,limit = 200,price = 2000,vocations = {1,2,3,4,5,6,7,8}} ["sword"] = {id = 2,limit = 160,price = 7000,vocations = {4,8}} ["axe"] = {id = 3,limit = 160,price = 7000,vocations = {4,8}} ["distance"] = {id = 4,limit = 170,price = 8000,vocations = {3,7}} ["shield"] = {id = 5,limit = 180,price = 10000,vocations = {1,2,3,4,5,6,7,8}} } local magic = {limit = 200,price = 8000,vocations = {1,2,5,6}} if (param == "magic") then if getTilePzInfo(getCreaturePosition(cid)) == FALSE then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"você precisa estar em protection zone.") elseif getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battler.") elseif not isInArray(magic.vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Você não pode comprar essa skill.") elseif getPlayerMagLevel(cid) >= magic.limit then return doPlayerSendCancel(cid, "Você já atingiu o número máxido de magic !.") elseif doPlayerRemoveMoney(cid, magic.price) == FALSE then return doPlayerSendCancel(cid, "Você precisa de "..magic.price.." gps para comprar essa skill!.") end return doPlayerSetMagic(cid, getPlayerMagLevel(cid)+amount) end if not skill[param] then return doPlayerSendCancel(cid,"Você precisa digitar ex: !comando Nome_da_skill.") elseif getTilePzInfo(getCreaturePosition(cid)) == FALSE then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"você precisa estar em protection zone.") elseif getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battler.") elseif not isInArray(skill[param].vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Você não pode comprar essa skill.") elseif getPlayerSkillLevel(cid,skill[param]) >= skill[param].limit then return doPlayerSendCancel(cid, "Você já atingiu o número máxido de skills!.") elseif doPlayerRemoveMoney(cid, skill[param].price) == FALSE then return doPlayerSendCancel(cid, "Você precisa de "..skill[param].price.." gps para comprar essa skill!.") end return doPlayerSetSkill(cid, skill[param].id, getPlayerSkillLevel(cid, skill[param].id)+amount) end n esquece de adicionar na lib aquelas funções function doPlayerSetSkill(cid, skill, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";") return TRUE end function doPlayerSetMagic(cid, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid) return TRUE end
  2. @UP só adicionar as storages em outfits.xml
  3. nem lembrava desse script uahuhauaua mas eu fiz um topico pra vocations outfit tbm .-. http://www.xtibia.com/forum/topic/152827-vocation-oufit/
  4. http://www.xtibia.com/forum/topic/159239-talk-comprar-skill/
  5. Ah é ihauhaahiuahiuahaia eu esqueci de editar '...',pq eu fui testa ele mal ai abraços
  6. creaturescript nome do seu script.lua function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) == true then if isInArray({2196,2130,2131}, getPlayerSlotItem(cid, 2).itemid) then doCreatureSetDropLoot(cid, false) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) return TRUE end end return TRUE end login.lua add: registerCreatureEvent(cid, "infinityAmulet") creaturescript.xml <event type="preparedeath" name="infinityAmulet" event="script" value="nome do seu script.lua"/> items.xml <item id="2196" article="a" name="Perfect amulet"> <attribute key="description" value="serve como aol e infinito." /> <attribute key="weight" value="420" /> <attribute key="slotType" value="necklace" /> <attribute key="speed" value="80" /> <attribute key="showattributes" value="1" /> </item> <item id="11387" article="a" name="Perfecty amulet"> <attribute key="description" value="serve como aol e infinito." /> <attribute key="weight" value="420" /> <attribute key="slotType" value="necklace" /> <attribute key="speed" value="80" /> <attribute key="showattributes" value="1" /> </item> <item id="10719" article="a" name="Perfect amuleto"> <attribute key="description" value="serve como aol e infinito nao perde itens red." /> <attribute key="weight" value="420" /> <attribute key="slotType" value="necklace" /> <attribute key="speed" value="150" /> <attribute key="showattributes" value="1" /> </item>
  7. Sim,óbvio... se você der /mute Vodkart,1 vai mutar o jogador por 1 minuto(60 segundos)
  8. ele queria um item,não uma talk... function onUse(cid, item, frompos, item2, topos) local out = {[0] = 270,[1] = 273} doPlayerAddOutfit(cid,out[getPlayerSex(cid)],3) doRemoveItem(item.uid,1) return true end coloquei para dar female outfit 270 e male outifit 273 só editar :]
  9. Em talkactions/script muteplayer.lua local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) if (words == "/mute") then local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player,time,pid = getPlayerByName(t[1]),t[2],getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) setPlayerStorageValue(player, 90000, os.time()+time*60) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") elseif (words == "/desmute") then if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(param) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end if getCreatureCondition(player, CONDITION_MUTED) == false then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "este jogador não está mutado.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você desmutou o jogador "..param..".") doRemoveCondition(player, CONDITION_MUTED) setPlayerStorageValue(player, 90000, -1) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi desmutado.") end return true end talkactions.xml <talkaction log="yes" words="/mute;/desmute" access="2" event="script" value="muteplayer.lua"/> Comando: /mute NOME,MINUTOS /desmute NOME Em creaturescript/script mute_check.lua local v = {} for k = 1, 100000 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*1000) end function onLogin(cid) if getPlayerStorageValue(cid, 90000) >= os.time() then doAddCondition(cid, v[tonumber(getPlayerStorageValue(cid, 90000) - os.time())]) end return TRUE end creaturescript.xml <event type="login" name="MutePlayer" event="script" value="mute_check.lua"/>
  10. o comando vc usa esse: local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player,time,pid = getPlayerByName(t[1]),t[2],getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) setPlayerStorageValue(player, 90000, os.time()+time*60) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") return true end e em creaturescript/script cria um arquivo.lua e renomeie para: mute_check.lua local v = {} for k = 1, 100000 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*1000) end function onLogin(cid) if getPlayerStorageValue(cid, 90000) >= os.time() then local i = getPlayerStorageValue(cid, 90000) - os.time() doAddCondition(cid, v[tonumber(i)]) end return TRUE end em creaturescript.xml add <event type="login" name="MutePlayer" event="script" value="mute_check.lua"/> Pois é,simples assim não é? se você não sabe mexer em scripts,procure aprender pelo menos o básico,pois ninguém nasceu sabendo.
  11. tem,acho que daria para fazer usando storage + os.time() porque ai daria para retornar o valor em segundos e mutar o player
  12. porque você mesmo não adicionou? local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player,time,motivo,pid = getPlayerByName(t[1]),t[2],t[3],getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end if not motivo then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "digite nome,tempo,motivo") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") doBroadcastMessage("O jogador ".. getCreatureName(player).. " foi mutado por ".. getCreatureName(cid).. ". Motivo:\n".. motivo .. ".", BroadCast_Type) return true end
  13. storage = 1338 function onSay(cid, words, param) if words == "/muted" then if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "digite o nome do jogador.") return TRUE end local player = getPlayerByName(param) local pid = getPlayerByNameWildcard(param) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end if getPlayerStorageValue(player, storage) <= 0 then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR,"Voce recebeu muted por realizar muito Spam") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você mutou o jogador "..param) domutedThing(player) setPlayerStorageValue(player, storage, 1) else doPlayerSendTextMessage(cid,22,"este jogador já está mutado") end elseif words == "/desmuted" then if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "digite o nome do jogador.") return TRUE end local player = getPlayerByName(param) local pid = getPlayerByNameWildcard(param) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end if getPlayerStorageValue(player, storage) >= 1 then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR,"seu muted foi removido") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você desmutou o jogador "..param) dodesmutedThing(player) setPlayerStorageValue(player, storage, -1) else doPlayerSendTextMessage(cid,22,"este jogador não está mutado") end end return true end <talkaction log="yes" access="5" words="/muted;/desmuted" event="script" value="nome do seu script.lua"/> OBS: essa função domutedThing() Não existe no tfs ¬¬ ou seja não vai funcionar ---edited tem esse comando muted que eu revisei ontem: http://www.xtibia.com/forum/topic/181694-talkaction-ajuda-aki-rep/
  14. local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByName(t[1]) local time = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") return true end flw
  15. function onLogin(cid) local rate = 1.5 -- 50% local config = { welvip = "você tem "..((rate - 1)*100).."% de exp a mais agora!", not_vip = "Tornesse premium e ganhe "..((rate - 1)*100).."% a mais de experiencia!" } if isPremium(cid) == TRUE then doPlayerSetExperienceRate(cid, rate) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip) end return TRUE end
  16. pois é,o certo é editar nas source para quando dar !disband deletar a guild,e não acontece isso,ai eu fiz para deletar a guild caso não tiver player :T
  17. Vodkart

    Comando !level

    function onSay(cid, words, param, channel) return doBroadcastMessage(getPlayerName(cid) .. " está no level " ..getPlayerLevel(cid), MESSAGE_STATUS_CONSOLE_ORANGE) end
  18. Não Não,tem muita gente que só abre um server para se divertir e jogar com os amigos,esses mesmos servidores tem uma validade curta... Mas eles não colocam sistemas donate nos servers (:
  19. Primeiro temos que avaliar o servidor,o histórico dele,se é um projeto sério,há quanto tempo está online,por que pagarei vip? quais os benefícios disso? Somente depois de pensar bastante é hora de quebrar o porquinho para ir gastar o dinheiro que o papai te dá em algo duvidoso,porque de qualquer forma sempre será um servidor private(pirata),e na politica deles não poderão devolver seu dinheiro caso o servidor vir a fechar um dia por motivos que for. Mas porque sistemas vips em servidores? Está pergunta é bem óbvia,todos jogos online sempre tem um sistema "premium","vip" que traz junto um diferencial dos outros players que usufruem desses sistemas,seja com itens,casas,moedas,lugares,houses,etc... uma infinidade de benefícios,e é justo porque manter o servidor online requer vários upgrades,dedicados,equipe que se dividem em vários setores, e isso não cai no céu,não é de graça. Creio eu que ninguém vai abrir um jogo para ter prejuízo e tirar do próprio bolso para fazer a alegria da criançada,até palhaço recebe salário. O que acontece nos servidores hoje em dia é que falta foco e comprometimento,muitos projetos nem na metade chegam,alguns se ocupam com estudos,trabalhos e deixam de levar o projeto a sério,atrasando e roubando a esperança do sonho de ter um grande servidor,mas não basta sonhar,é preciso estabelecer prioridades para executar essas metas,e isso só vai ocorrer se ambas as partes se comprometer com a sua equipe.
  20. tópico original: http://www.xtibia.co...4-aol-infinito/ também dá para fazer de outro jeito,vai nas source em player.cpp e edita para: void Player::dropLoot(Container* corpse) { if(corpse && lootDrop) { if(inventory[sLOT_NECKLACE] && inventory[sLOT_NECKLACE]->getID() == ITEM_AMULETOFLOSS && getSkull() != SKULL_RED && g_game.getWorldType() != WORLD_TYPE_PVP_ENFORCED) { g_game.internalRemoveItem(inventory[sLOT_NECKLACE], 1); } else { for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { Item* item = inventory[i]; if(item) { if(((item->getContainer()) || random_range(1, 100) <= 10 || getSkull() == SKULL_RED)) { g_game.internalMoveItem(this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0); sendRemoveInventoryItem((slots_t)i, inventory[(slots_t)i]); } } } } } if(!inventory[sLOT_BACKPACK]) __internalAddThing(SLOT_BACKPACK, Item::CreateItem(1987)); }
  21. local pb = doPlayerAddItem(cid, ID DA BAG 1) doAddContainerItem(pb, ID DRAGON SCALE, 1) vai fazer com que adicione o dragon scale dentro da bag...
  22. ... Algum erro? porque eu testei aqui e funcionou...
  • Quem Está Navegando   0 membros estão online

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