Pesquisar na Comunidade
Mostrando resultados para as tags ''sistema de bomba!''.
Encontrado 1 registro
-
Bom pessoal estou aqui para pedir uma ajuda a vocês com um script que encontrei aqui mesmo no Xtibia. Estou postando o script para pedir que alguém possa configurar ele para quando usar a bomba não precisar "armar a bomba" não precisar ficar um tempo parado do lado da bomba esperando ela ser armada e poder jogar ela de longe mas quando jogar esperar 3 segundos ate ela explodir não entendeu vou explicar melhor: O script da bomba necessita que o player que usou a bomba fiquei parado do lado dela durante um tempo, e se não ficar aparece uma mensagem dizendo que não pode armar a bomba sendo assim queria que tirasse isto, a bomba só pode ser usada perto do player, queria que tirasse isto também sendo assim a bomba poderia ser jogada de longe mas quando jogada ela ficaria no chão durante 3 segundos. SCRIPT: data/action/scripts: crie um arquivo .lua com nome de bombs -- -- local mainStorage = 1500 -- Valor de armazenamento principal local maxBombCount = 2 -- Quantos segundos você pode plantar uma bomba. Cada bomba de armazenamento precisa de 4 local podlozenoTime = 2 -- Quantos segundos a carregar bombas local naCzas = 'yes' -- É uma bomba-relógio (yes) para sim ou detona quando você usa item (no) para nao local tekst = 'yes' -- Mostrar uma mensagem quando a bomba explode? local uciekac = 'yes' -- apresentar a inscrição de fugir quando a bomba explode? local wybuchTime = 2 -- Depois de quantos segundos depois plantar uma bomba ... local area = { -- 3 é a posição de bomba, 1 é a area que irá explodir {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1} } local min = 800 -- Min. hp que ira hitar local max = 1500 -- Max. hp que ira hitar local kolorTekstow = (TALKTYPE_MONSTER ~= nil and TALKTYPE_MONSTER or TALKTYPE_ORANGE_1) -- Color Messages local condition = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition, key, value) setConditionParam(condition, CONDITION_PARAM_TICKS,(podlozenoTime+wybuchTime+1)*1000) area = createCombatArea(area) naCzas = naCzas == 'yes' and true or false tekst = tekst == 'yes' and true or false uciekac = uciekac == 'yes' and true or false function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 8300 then if naCzas then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You may not detonate a bomb.") return true end -- Bomb Detonation local aktualnyStorage = mainStorage+1 local ileBomb = 0 -- How many bombs exploded in while getCreatureStorage(cid,aktualnyStorage) > 0 do local pos = {x=getCreatureStorage(cid,aktualnyStorage), y=getCreatureStorage(cid,aktualnyStorage+1), z=getCreatureStorage(cid,aktualnyStorage+2), stackpos=getCreatureStorage(cid,aktualnyStorage+3)} ileBomb = ileBomb+1 detonujBombe(cid, pos, aktualnyStorage) aktualnyStorage = aktualnyStorage+4 end if ileBomb == 0 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'Nao foi colocada a Bomba.') else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,ileBomb ..' bomb'.. (ileBomb == 1 and 'a' or '') ..' Explotada'.. (ileBomb == 1 and '' or 'o') ..'.') end return true end -- Bomb local playerPos = getCreaturePosition(cid) if getTileInfo(playerPos).protection or getTileInfo(playerPos).house then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'Você nao pode ativar a Bomba em Zona de Proteção.') return true end local aktualneBomby = getCreatureStorage(cid,mainStorage) if aktualneBomby+maxBombCount > os.time() then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'Tem que esperar para colocar Outra Bomba.') return true end local ileMaBomb = 0 local aktualnyStorage = mainStorage+1 while(getCreatureStorage(cid,aktualnyStorage) > 0) do ileMaBomb = ileMaBomb+1 aktualnyStorage = aktualnyStorage+4 end if(item.type > 1) then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end doCreatureSay(cid,'...',kolorTekstow) addEvent(podlozBombe,podlozenoTime*1000,cid,playerPos,aktualnyStorage) doCreatureSetStorage(cid,mainStorage,os.time()) end function podlozBombe(cid, pozycjaGracza, storage) if not isPlayer(cid) then return false end local playerPos = getCreaturePosition(cid) if(playerPos.x ~= pozycjaGracza.x or playerPos.y ~= pozycjaGracza.y or playerPos.z ~= pozycjaGracza.z) then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'Você se moveu.. nao foi Possivel Armar a Bomba.') return true end local bomba = doCreateItem(9893,1,pozycjaGracza) local bombaPos = getThingPos(bomba) doCreatureSetStorage(cid,storage,pozycjaGracza.x) doCreatureSetStorage(cid,storage+1,pozycjaGracza.y) doCreatureSetStorage(cid,storage+2,pozycjaGracza.z) doCreatureSetStorage(cid,storage+3,bombaPos.stackpos) if(not naCzas) then doCreatureSay(cid,'Bomba armada',kolorTekstow) doAddCondition(cid,condition) else if(uciekac) then doCreatureSay(cid,'Corre! a bomba foi armada!',kolorTekstow) end addEvent(detonujBombe,wybuchTime*1000,cid,bombaPos,storage) doAddCondition(cid,condition) end return true end function detonujBombe(cid, pos, storage) local playerPos = getCreaturePosition(cid) if(playerPos.x ~= pos.x or playerPos.y ~= pos.y or playerPos.z ~= pos.z) then pos.stackpos = pos.stackpos-1 end local bomba = getThingfromPos(pos) if(bomba.itemid == 9893) then doAreaCombatHealth(0, COMBAT_HOLYDAMAGE, pos, area, -min, -max, CONST_ME_HOLYAREA) doCreatureSetStorage(cid,storage,0) if(tekst) then doSendAnimatedText(pos,'BOOOooooOOOMMM!!!',TEXTCOLOR_YELLOW) end doRemoveItem(bomba.uid,1) return true end return false end em data/action.xml: adicione esta tag <action itemid="2305" event="script" value="bombs.lua"/> Bom no meu servidor a bomba está infinita não sei porque mas está não sei se é no script ou no próprio servidor mas se alguém souber o motivo comenta ai.
- 5 respostas
-
- sistema de bomba!
- otserv
-
(e 2 mais)
Tags: