Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. Vocês nunca tentaram criar um script, uma uma magia, ou algo que seu otserv estive precisando e conseguiram? foi isso que eu fiz, a partir da nessecidade pesquisei e criei esse código sóh que não me apronfundei na area de c#. Resolvi postar o código porque eu achei que poderia ajudar alguem com a mesma dificudade que eu. O -rep foi por flood, "uma msg que não contribuiu em nada com o topico", em que você me acusa de algo que eu nunca fis e sem apresentar nenhuma prova. E vê se para de dar flood no topico.
  2. a primeira resposta eu que me confundi o a pasta certa é data/creaturescripts/scripts o amulet vai funcionar pra qualquer player n se preocupa. o ring jah configurei pra não cobrar nada é sóh no lugar do "local cointype = 2127" < vc poem o id do ring.
  3. O erro ali é alguma comparação invalida no arquivo idle.lua na pasta globalevents/scripts na linha 14. É bom postar o script dae fica mais facil de arrumar. ----------- O petsystem por item ali vc deve encontrar varios espalhados pelo xtibia. Acabei de fazer um só que funciona por talkaction da uma olhada aew: http://www.xtibia.co...__fromsearch__1 ---------- ring, duplica um arquivo na pasta data/movements/scripts, nomeia para "bangle_ring" sem as aspas e cola isso: obs: esse script não fui eu quem fez, eu tenho aqui + não lembro quem fez. acho que ele tem ae pelo xtibia. créditos pra quem fez. pra finalizar o ring poem no movements.xml <movevent type="Equip" itemid="iddoring" slot="ring" event="script" value="bangle_ring.lua"/> <movevent type="DeEquip" itemid="iddoring" slot="ring" event="script" value="bangle_ring.lua"/> -------- Amulet, créditos pro @VodKart: Em data/creaturescripts/scripts, duplique um arquivo e nomeie para "amulet_protection" sem as aspas e nele cole: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local config = { onlypremium = true, -- se precisa ser premium para não perder nada exp = true, -- se ao morrer o jogador irá perder exp skills = false, -- se ao morrer vai perder skills magic = false, -- se vai perder magic level loot = false, -- se ao morrer o jogador irá perder o loot iddoamulet = 1234 -- id do amuleto } if isPlayer(cid) and getPlayerSlotItem(cid, 2).itemid == config.iddoamulet then if config.onlypremium == true and not isPremium(cid) then return TRUE end if config.loot == false then doCreatureSetDropLoot(cid, false) end if config.magic == false then doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, 0) end if config.skills == false then doPlayerSetLossPercent(cid, PLAYERLOSS_SKILLS, 0) end if config.exp == false then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) end return TRUE end return TRUE end Agora em creaturescripts.xml cole a tag: <event type="preparedeath" name="ProtectionDeath" event="script" value="amulet_protection.lua"/> E no arquivo login.lua na pasta scripts, antes do último "return true" cole a tag: registerCreatureEvent(cid, "ProtectionDeath") ------ script de sword attack em area, achei esse: http://www.xtibia.co...de-attack-area/ + nem sei se é funcional. ------ O último pedido não entendi muito bem. Tu é novo no forum tão vou dar uma dica, antes de fazer pedido vasculhe o xtibia a procura dos scripts que deseja. Ao fazer pedidos não peça tudo de uma vez que tem menas possibilidade de alguem te ajudar, faça um pedido espere os usuarios responderem e depois faça outro.
  4. Fiz o script pra ti, foi complicadinho mais até eu gostei =) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Vamos começar com os talkactions. Primeiro vai em data/talkaction/scripts, duplica dois arquivos. Um você nomeia para "petsystem" sem as aspas e o outro para "petrevive" sem as aspas. Agora no petsystem.lua cole: local petNames = {"RAT","DRAGON","DEMON"} local petStorage = { ["RAT"] = 203105, -- storage do pet 1 ["DRAGON"] = 203106, -- storage do pet 2 ["DEMON"] = 203107 -- storage do pet 3 } function onSay(cid, words, param, channel) local summons = getCreatureSummons(cid) if param == "" then local text = "Você não possui pets!" local o = 0 for i=1, #petNames do if getPlayerStorageValue(cid, petStorage[petNames[i]]) > 0 then o = o + 1 if o == 1 then text = o.." - ".. string.lower(petNames[i]) .."\n" else text = text.. o .." - ".. string.lower(petNames[i]) .."\n" end end end doShowTextDialog(cid,8977,text) return true end if param == "back" then for k = 1, #summons do pet = getCreatureName(summons[k]) doCreatureSay(cid, string.lower(pet) ..", back!", 1) doRemoveCreature(summons[k]) setPlayerStorageValue(cid, petStorage[pet], 1) end return true end param = string.upper(param) if isInArray(petNames, param) then if getPlayerStorageValue(cid, petStorage[param]) == -1 then doPlayerSendCancel(cid,"Você não possui esse Pet.") return true elseif getPlayerStorageValue(cid, petStorage[param]) == 1 then if getTilePzInfo(getCreaturePosition(cid)) == false then x = doSummonCreature(param, getCreaturePosition(cid)) doConvinceCreature(cid, x) doCreatureSay(cid, string.lower(param) ..", go!", 1) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 2) setPlayerStorageValue(cid, petStorage[param], 2) else doPlayerSendTextMessage(cid, 22, "Você não pode sumonar seu Pet em Pz.") return true end elseif getPlayerStorageValue(cid, petStorage[param]) == 2 and #summons > 0 then doPlayerSendTextMessage(cid, 22, "Seu Pet esta sumonado, fale !pet back.") return true else doPlayerSendTextMessage(cid, 22, "Seu Pet esta morto, fale !petrevive nomedopet para revivelo.") return true end else doPlayerSendCancel(cid,"Esse Pet não existe.") end return true end Depois no petrevive.lua cole: local petNames = {"RAT","DRAGON","DEMON"} local petInfos = { ["RAT"] = {storage = 203105, custo = 2000}, -- nome do pet, storage do pet, custo para reviver pet. ["DRAGON"] = {storage = 203106, custo = 4000}, ["DEMON"] = {storage = 203107, custo = 6000} } function onSay(cid, words, param, channel) local summons = getCreatureSummons(cid) param = string.upper(param) if isInArray(petNames, param) then if getPlayerStorageValue(cid, petInfos[param].storage) == -1 then doPlayerSendCancel(cid,"Você não possui esse Pet.") return true elseif getPlayerStorageValue(cid, petInfos[param].storage) == 2 and #summons == 0 then if doPlayerRemoveMoney(cid, petInfos[param].custo) then doSendMagicEffect(getThingPos(cid), 3) -- troque o 2 pelo efeito desejado setPlayerStorageValue(cid, petInfos[param].storage, 1) doPlayerSendTextMessage(cid, 22,"Seu Pet foi revivido") return true else doPlayerSendTextMessage(cid, 22,"Você não possui ".. (petInfos[param].custo) .." gps.") return true end else doPlayerSendCancel(cid,"Seu Pet não esta morto.") return true end else doPlayerSendCancel(cid,"Esse Pet não existe.") end return true end Agora em talkactions.xml cole as tags: <talkaction words="!pet" event="script" value="petsystem.lua"/> <talkaction words="!petrevive" event="script" value="petrevive.lua"/> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Pronto, terminado a parte de talkactions, agora vamos para as actions. Vai na pasta data/actions/scripts, duplica um arquivo e nomeia para "egg_one" sem as aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) local petGain = {pet = "Rat", storage = 203105} -- nome do pet, storage. if getPlayerStorageValue(cid, petGain.storage) <= 0 then setPlayerStorageValue(cid, petGain.storage, 1) doPlayerSendTextMessage(cid, 22,"Você recebeu um novo Pet: ".. petGain.pet ..".") doSendMagicEffect(getThingPos(cid), 28) -- troque o 28 pelo efeito desejado doRemoveItem(item.uid, 1) else doPlayerSendTextMessage(cid, 22,"Você ja possui esse Pet.") doSendMagicEffect(getThingPos(cid), 2) end return TRUE end E por fim, em actions.xml cole a tag: <action itemid="iddoovo1" script="egg_one.lua"/> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Bom agora vou te explicar como vai funcionar: Primeiro você deve fazer mais arquivos nos actions com todos os eggs que você quiser e a unica linha que vc deve configurar é essa: local petGain = {pet = "Rat", storage = 203105} -- nome do pet, storage. E ir adicionando mais tags no actions.xml conforme adicionar mais eggs nos scripts. No petsystem.lua, voce deve configurar essas linhas: local petNames = {"RAT","DRAGON","DEMON"} local petStorage = { ["RAT"] = 203105, ["DRAGON"] = 203106, ["DEMON"] = 203107 } Alterando os nomes dos pets para os que voce adicionou nos actions e seus respectivos storages, lembrando que para funcionar perfeitamente sempre adicionar os nomes com letras maiusculas e após o último storage não coloque virgula. E no petrevive.lua, essas são as linhas configuraveis: local petNames = {"RAT","DRAGON","DEMON"} local petInfos = { ["RAT"] = {storage = 203105, custo = 2000}, -- nome do pet, storage do pet, custo para reviver pet em gps. ["DRAGON"] = {storage = 203106, custo = 4000}, ["DEMON"] = {storage = 203107, custo = 6000} } Você deve configura-lo como o script anterior apenas adicionando os custos para o pet ser revivido. ------------------------------------------------------------------------------------------------------------------------------------------------------------------ É isso aew, os comandos que você vai usar com o player são: !pet -- mostrar lista de pets que você possui. !pet NomeDoPet -- invocar pet, quaso você tenha. !pet back -- retornar pet. !petrevive NomeDoPet -- reviver pet morto.
  5. Cara antes de jugar algo, procure provas. Pode procurar esse script em qualquer forum, eu criei ele pq eu estava necessitando dele como ele esta ai. #Reputado negativamente.
  6. tens que estar com o bow e aas arrowns nos slots certos para poder funcionar.
  7. Deixa para todas as vocs, pq um mage vai deixar de usar rod ou wand se nem tem skill de sword... Ou um pally que tbm n tem. Deve dar pra por pra uma vocação só, mais nem conheço muito de editar sources, só conseguir fazer isso pq tava precisando muito, mais nem me aprondundei nessa area. até.
  8. tinha errado msm, agora arrumei, pega o último que eu postei ali em cima, substitui pelo teu e testa.
  9. @vital900 e @LordZezim, taum cada vez mais top em mapear hem. Parabéns
  10. Esse sistema que eu fiz é pra otservs que prezam mais o rpg, trazendo uma nova disputa pro server. Essa paradinha de virar monstro não tem nada a ver com meu script, nem vou implementar, mais se quiser modificar fica a vontade.
  11. -- <Script by jhon992> -- local weaponpar = {2377, 2378, 2379, 2380} -- id dos items que sugarão life local arrows = {1234, 5463} -- coloca o id das arrows local bows = {1234, 5463} -- coloque os ids das bows local chancepar = 5 -- chance de sugar (10 = 10%, 20 = 20%, 30 = 30%, 1 = 1%, 5 = 5%) e assim por diante function onAttack(cid, target) if ((getCreaturePosition(target).x == getCreaturePosition(cid).x or getCreaturePosition(target).x == getCreaturePosition(cid).x+1 or getCreaturePosition(target).x == getCreaturePosition(cid).x-1) and (getCreaturePosition(target).y == getCreaturePosition(cid).y or getCreaturePosition(target).y == getCreaturePosition(cid).y+1 or getCreaturePosition(target).y == getCreaturePosition(cid).y-1)) then if (isInArray(weaponpar, getPlayerSlotItem(cid, 5).itemid) or isInArray(weaponpar, getPlayerSlotItem(cid, 6).itemid)) then if (math.random(1,100) > (100 - chancepar)) then life = (getCreatureHealth(target)*0.1) doPlayerSendTextMessage(cid, 23, "Você sugou "..life.." de hp do "..getCreatureName(target)..".") doSendMagicEffect(getCreaturePosition(target), 68) doCreatureAddHealth(target, -life) doCreatureAddHealth(cid, life) return true else return true end end end if (isInArray(bows, getPlayerSlotItem(cid, 5).itemid) or isInArray(bows, getPlayerSlotItem(cid, 6).itemid)) then if (isInArray(arrows, getPlayerSlotItem(cid, 10).itemid)) then if (math.random(1,100) > (100 - chancepar)) then life = (getCreatureHealth(target)*0.1) doPlayerSendTextMessage(cid, 23, "Você sugou "..life.." de hp do "..getCreatureName(target)..".") doSendMagicEffect(getCreaturePosition(target), 68) doCreatureAddHealth(target, -life) doCreatureAddHealth(cid, life) return true else return true end end end return true end
  12. jhon992

    Troca De Pvp E Non-Pvp

    Vamo la. Primeiro vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "pvpmode" sem as aspas e nele cole: function onCombat(cid, target) if (isPlayer(cid) and isPlayer(target)) then if getPlayerStorageValue(cid, 102059) == 1 then doPlayerSendTextMessage(cid, 27, "Seu status é non-pvp.") return FALSE elseif getPlayerStorageValue(target, 102059) == 1 then doPlayerSendTextMessage(cid, 27, "O status de seu oponente é non-pvp.") return FALSE end end return TRUE end Agora em creaturescripts.xml coloque a tag: <event type="combat" name="PvpMode" event="script" value="pvpmode.lua"/> Depois vai no arquivo creaturescripts/scripts/login.lua e antes do último "return true" cole essa tag: registerCreatureEvent(cid, "PvpMode") ----------------------------------------------------------------------------------------------------------------------------------- Creaturescripts ta pronto, agora vamos para o talkaction de ativação. Vai em data/talkactions/scripts, duplica um arquivo e nomeia para "pvp_change" sem as aspas e nele cole: function onSay(cid, words, param, channel) local exausted = 1 -- dias de exausted if(exhaustion.check(cid, 34538) == TRUE) then if (exhaustion.get(cid, 34538) >= 60) then doPlayerSendCancel(cid, "Voçê só pode mudar modo após [" .. math.floor(exhaustion.get(cid, 34538) / 60 + 1) .."] minutos.") end if (exhaustion.get(cid, 34538) <= 60) then doPlayerSendCancel(cid, "Voçê só pode mudar modo após [" .. exhaustion.get(cid, 34538).."] segundos.") end return TRUE end if getPlayerStorageValue(cid, 102059) == 1 then setPlayerStorageValue(cid, 102059, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ativado Modo: PVP.") doSendMagicEffect(getCreaturePosition(cid), 30) -- mudar effect se desejar exhaustion.set(cid, 34538, exausted * 60 * 60 * 24) else setPlayerStorageValue(cid, 102059, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ativado Modo: NON-PVP.") doSendMagicEffect(getCreaturePosition(cid), 30) -- mudar effect se desejar exhaustion.set(cid, 34538, exausted * 60 * 60 * 24) end return true end E por último, em talkactions.xml cole a tag: <talkaction words="!mudarpvp" event="script" value="pvp_change.lua"/> -------------------------------------------------------------------------------------------------- Obs: nem testei, qualquer erro me fala.
  13. function onStepIn(cid, item, pos) if isPlayer(cid) == 1 then if getPlayerStorageValue(cid,20010) <= 0 then doSkillBag(cid) doPlayerAddItem(cid,2148,1) doPlayerAddItem(cid,2148,1) doPlayerAddItem(cid,2148,1) local vocs = {1,15,16,17,18,19,20,86,201,202,203,204,205,206,207,363,364} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2313,1) doPlayerAddItem(cid,2307,1) doPlayerAddItem(cid,2300,1) doPlayerAddItem(cid,2304,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2286,1) doPlayerAddItem(cid,2305,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {2,21,22,23,24,25,26,88,214,215,216,217,218,219,220,37,365} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2297,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {3,41,42,43,44,237,238,239,240,241,378} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2271,1) doPlayerAddItem(cid,2288,1) doPlayerAddItem(cid,2276,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2290,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {5,68,69,70,71,258,259,260,261,262,376} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2296,1) doPlayerAddItem(cid,2288,1) doPlayerAddItem(cid,2291,1) doPlayerAddItem(cid,2270,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {6,27,28,29,30,90,208,209,210,211,212,213,366} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2277,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {7,31,32,33,34,35,36,221,222,223,224,225,226,367} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2272,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {8,51,52,53,274,275,276,277,278,278,374} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2299,1) doPlayerAddItem(cid,2301,1) doPlayerAddItem(cid,2291,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2286,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {9,45,46,47,48,49,50,253,254,255,256,257,373} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2293,1) doPlayerAddItem(cid,2285,1) doPlayerAddItem(cid,2303,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {10,54,55,56,57,58,247,248,249,250,251,375} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2282,1) doPlayerAddItem(cid,2289,1) doPlayerAddItem(cid,2281,1) doPlayerAddItem(cid,2306,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2298,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {11,59,60,61,96,242,243,244,245,246,379} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2261,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {12,62,63,64,65,268,269,270,271,272,273} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2261,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {13,72,73,74,75,263,264,265,266,267} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2296,1) doPlayerAddItem(cid,2316,1) doPlayerAddItem(cid,2274,1) doPlayerAddItem(cid,2302,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {14} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2297,1) doPlayerAddItem(cid,2292,1) doPlayerAddItem(cid,2291,1) doPlayerAddItem(cid,2302,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {76,77,80,81,82,227,228,229,230,231} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2277,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {78,79,83,84,85,232,233,234,235,236} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2272,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {91,92,280,93,94,95,281,282,283,284,285} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2293,1) doPlayerAddItem(cid,2285,1) doPlayerAddItem(cid,2303,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {100,101,102,103,104,113,286,287,288,289,290,291} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2313,1) doPlayerAddItem(cid,2307,1) doPlayerAddItem(cid,2300,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2290,1) doPlayerAddItem(cid,2305,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {105,106,107,108,292,293,294,295,296,297} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2288,1) doPlayerAddItem(cid,2289,1) doPlayerAddItem(cid,2281,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2298,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {109,110,111,112,298,299,300,301,302,303,302} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2283,1) doPlayerAddItem(cid,2285,1) doPlayerAddItem(cid,2276,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2273,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2280,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {303,304,305,306,307,308,309,310,311,312,313} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2297,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {314,315,316,317,318,319,320,321,322,323} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2293,1) doPlayerAddItem(cid,2285,1) doPlayerAddItem(cid,2274,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {324,325,325,326,327,328,329,330,331,332} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2283,1) doPlayerAddItem(cid,2285,1) doPlayerAddItem(cid,2276,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2290,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {333,334,335,336,337,338,339,340,341,342} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2296,1) doPlayerAddItem(cid,2316,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {343,344,345,346,347,348,349,350,351,352} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2279,1) doPlayerAddItem(cid,2288,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2294,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2290,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {353,354,355,356,357,358,359,360,361,362} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2296,1) doPlayerAddItem(cid,2272,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {398,399,400,401,402,403,404,405,406,407,408} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2313,1) doPlayerAddItem(cid,2307,1) doPlayerAddItem(cid,2300,1) doPlayerAddItem(cid,2304,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2286,1) doPlayerAddItem(cid,2305,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {409,410,411,412,413,414,415,416,417,418,419} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2272,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {420,421,422,423,424,425,426,427,428,429,430,431} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2313,1) doPlayerAddItem(cid,2307,1) doPlayerAddItem(cid,2300,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2290,1) doPlayerAddItem(cid,2305,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {432,433,434,435,436,437,438,439,440,441,442} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2296,1) doPlayerAddItem(cid,2288,1) doPlayerAddItem(cid,2291,1) doPlayerAddItem(cid,2270,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {443,444,445,446,447,448,449,450,451,452,453} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2297,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {454,455,456,457,458,459,460,461,462,463,464} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2261,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2278,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end vocs = {465,466,467,468,469,470,471,472,473,474,475} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2297,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2266,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2314,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) end vocs = {476,477,478,479,480,481,482,483,484,485,486} if isInArray(vocs, getPlayerVocation(cid)) then doPlayerAddItem(cid,2311,1) doPlayerAddItem(cid,2297,1) doPlayerAddItem(cid,2310,1) doPlayerAddItem(cid,2268,1) doPlayerAddItem(cid,2308,1) doPlayerAddItem(cid,2267,1) doPlayerAddItem(cid,2295,1) doPlayerAddItem(cid,2309,1) doPlayerAddItem(cid,2269,1) doPlayerAddItem(cid,2312,1) doPlayerAddItem(cid,2287,1) doPlayerAddItem(cid,2315,1) setPlayerStorageValue(cid,20010,3) return 1 end end end return 1 end
  14. jhon992

    Troca De Pvp E Non-Pvp

    Reportado, por nome irregular de tópico. Da próxima vês seja mais especifico com o nome do tópico para organização do fórum.
  15. Fiz pra funcionar soh pra weapons dos slots de hand, se tu tivese explicado melhor tinha feito de arrow. Agora to sem tempo, quando tiver tempo eu faço se ninguem tiver feito antes.
  16. coloca tudo, o primeiro scritp que te passei e esse tbm.
  17. Acabei de testar, esta funcionando perfeitamente. Só colocar os itens que tu quer que funcione e a chance.
  18. Ta testado agora, mais pra funcionar tens que colocar os numeros de frags em 10 em 10, ali no login_transform, como jah ta ali. E configura as partes que são configuraveis no script. local LOGIN_TRANSFORM = { [20] = 100, -- [numero de mortes] = looktype, os numeros de mortes tem que seguir de 10 em 10 para funcionar perfeitamente. [30] = 120, [40] = 120, [50] = 130, [60] = 130, [70] = 130, [80] = 140, [90] = 140, [100] = 140 } function onLogin(cid) local storage = getPlayerStorageValue(cid, 102089) local cont = 10 addEvent(arredonda, 1, storage, cont, cid) return TRUE end function arredonda(storage, cont, cid) aux = 10 if storage < 20 then -- aqui vc coloca primeira quantidade de frag que o player deve ter, como exemplo na lista. return true end if storage >= 100 then -- aqui e na linha debaixo vc poem a ultima quantidade de frags que o player deve ter, como exemplo na lista.. outfit = {lookType = LOGIN_TRANSFORM[100]} doSetCreatureOutfit(cid, outfit, -1) return true end if storage > cont and storage < cont+aux then outfit = {lookType = LOGIN_TRANSFORM[cont]} doSetCreatureOutfit(cid, outfit, -1) else cont = cont+aux doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,cont) addEvent(arredonda, 1, storage, cont, cid) end end
  19. Reportado para moverem, para Pedidos Atendidos!
  20. Funciona com os 2. Quando acerta o sugar aparece uma msg no player de quanto sugou.
  21. Faiz assim: Abra a pasta "data/creaturescripts/scripts" duplique um arquivo qualquer e renomeie para "weaponsugar" sem as aspas e nele cole: -- <Script by jhon992> -- local weaponpar = {2377, 2378, 2379, 2380} -- id dos items que sugarão life local chancepar = 5 -- chance de sugar (10 = 10%, 20 = 20%, 30 = 30%, 1 = 1%, 5 = 5%) e assim por diante function onAttack(cid, target) if ((getCreaturePosition(target).x == getCreaturePosition(cid).x or getCreaturePosition(target).x == getCreaturePosition(cid).x+1 or getCreaturePosition(target).x == getCreaturePosition(cid).x-1) and (getCreaturePosition(target).y == getCreaturePosition(cid).y or getCreaturePosition(target).y == getCreaturePosition(cid).y+1 or getCreaturePosition(target).y == getCreaturePosition(cid).y-1)) then for i=0, #weaponpar do if (getPlayerSlotItem(cid, 5).itemid == weaponpar[i] or getPlayerSlotItem(cid, 6).itemid == weaponpar[i]) then if (math.random(1,100) > (100 - chancepar)) then life = (getCreatureHealth(target)*0.1) doPlayerSendTextMessage(cid, 23, "Você sugou "..life.." de hp do "..getCreatureName(target)..".") doSendMagicEffect(getCreaturePosition(target), 98) doCreatureAddHealth(target, -life) doCreatureAddHealth(cid, life) return true else return true end end end end return true end Agora no arquivo, "data/creaturescripts/creaturescripts.xml" cole a tag: <event type="attack" name="WeaponSugar" event="script" value="weaponsugar.lua"/> E por último, abra o arquivo login.lua que esta localizado em "data/creaturescripts/scripts" e cole a tag: registerCreatureEvent(cid, "WeaponSugar") Créditos pro cara desse tópico: http://www.xtibia.com/forum/topic/175370-creaturescript-weapons-paralyze/
  22. virar monstro? esse script não tranforma o player em nada n...
  23. Vai em creaturescripts/scripts, duplica outro arquivo e nomeia para "out_login", e cole: local LOGIN_TRANSFORM = { [20] = 100, -- [numero de mortes] = looktype [50] = 120, [100] = 130, [200] = 150, [400] = 190, [600] = 210 } function onLogin(cid) local storage = getPlayerStorageValue(cid, 102089) local cont = 10 addEvent(arredonda, 1, storage, cont, cid) return TRUE end function arredonda(storage, cont, cid) if storage > cont and storage < cont+cont then local outfit = {lookType = LOGIN_TRANSFORM[cont]} doSetCreatureOutfit(cid, outfit, -1) else cont = cont+cont arredonda(storage, cont, cid) end end Em creaturescripts.xml cole a tag: <event type="login" name="Out_Login" event="script" value="out_login.lua"/> Deu, só configura a parte do login_transform igual o do script de antes.
  24. Ta aew =) local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BOLT) local attackmin, attackmax = 100, 300 -- attack minimo, attack maximo function onCastSpell(cid, var) if doPlayerRemoveItem(cid, 2160, 1) then -- 2160, troque pelo id da bolt target = getCreatureTarget(cid) if (target <= 0) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Selecione um target.") return false end hit = (math.random(attackmin,attackmax) + getPlayerSkillLevel(cid, SKILL_DISTANCE) / 3) doCreatureAddHealth(target, -hit) doSendAnimatedText(getCreaturePosition(target), math.floor(hit), 144) return doCombat(cid, combat, var) end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui bolt's.") return false end
  • Quem Está Navegando   0 membros estão online

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