Postado Novembro 20, 2016 8 anos Coloquei um castle 24h em meu ot serv e ele roda 99% perfeito, o unico defeito que ele tem é que quando uma guild toma o castelo da outra as duas permanecem dentro do castelo...o certo seria que todos os player da guild que acabou de perder o castelo ser mandado para fora do castelo. Ja joguei um ot onde o script rodava 100% quando uma guild tomava o castelo da outra, os player permaneciam la dentro porem qualquer passo que eles dessem na protectzone eles era expulsos e aparecia a msg "Sua Guild Não é Mais Dona Do castelo". é possivel fazer uma uniqid para colocar em todos os sqms dentro do castelo com essa mesma função?? Obg e rep++ pra quem ajudar
Postado Novembro 21, 2016 8 anos usa um script de onLogin ou no seu proprio sistema, que quando acabar o evento, os antigos dono do castelo sejam kikados [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Novembro 21, 2016 8 anos Autor eu não manjo de programação, é muito complicado fazer esse script? você poderia me ajudar com isso pfv?
Postado Novembro 21, 2016 8 anos Posta seu script de castle, pra gente vê se tem alguma storage que possa ser reutilizada em um evento onLogin. @This life is filled with hurt When happiness doesn't work Trust me and take my hand When the lights go out you will understand
Postado Novembro 21, 2016 8 anos Autor ok ai vai o script todo: Data/actions/scripts/ castledoor1.lua --------------- -----BY PC98------- --------------- function onUse(cid, item, frompos, item2, topos) -------------------------Config----------------------------------------------------------------- door_opened = 1230 -- ID da porta aberta storage_guild = getGlobalStorageValue(123123) -- A 3ª storage configurada em Castle.lua guarda_ativ = 1 -- Caso um invasor tente abrir a porta, sumonar o Monstro "Guarda"?? | (0) = SIM (1) = NAO guarda_cont = 2 -- Caso ativo: a quantidade de guardas a sumonar guarda_pos = {x=900,y=1194,y=7} -- Posiçao a ser sumonada os guardas! -------------------------Fim de Config----------------------------------------------------------- if getPlayerGuildId(cid) == storage_guild then doTeleportThing(cid,getThingPos(item.uid)) doTransformItem(item.uid, door_opened) doPlayerSendTextMessage(cid, 22, "Seja bem vindo a vosso castelo!") return TRUE else if guarda_ativ == 1 then doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") for i=1, guarda_cont do end return FALSE else doPlayerSendTextMessage(cid, 22, "Este castelo nao pertence a sua guild") return FALSE end end end --------------------------------------------------------------------------------------------------------------- DATA/ACTIOS/SCRIPTS/ castlelever.lua function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.actionid == 4850) then doTeleportThing(getTopCreature({x=329,y=118,z=5}).uid, {x=329,y=118,z=3}) elseif (item.actionid == 4851) then doTeleportThing(getTopCreature({x=329,y=118,z=3}).uid, {x=329,y=118,z=5}) end return true end ------------------------------------------------------------------------------------------------------------------- Data/actios/scripts/ castlewar1.lua function onUse(cid, item, frompos, item2, topos) local castle_one_name = "Castle24h" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 15 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 7488 -- ID do Premio local premio_cont = 5 -- Quantidade do Premio local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("O(a) "..getCreatureName(cid).." acabou de conquistar o castelo "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez(s).", 22) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end AGORA AS 3 ACTIOSN QUE VAI NO: DATA/ACTIONS/ACTION.XML <!-- Castle 24Hrs --> <action value="castlewar1.lua" event="script" actionid="9999"/> <action value="castledoor1.lua" event="script" actionid="4538"/> <movevent value="guild.lua" event="script" actionid="9997" type="StepIn"/> -------------------------------------------------------------------------------------------- DATA/CREATURESCRIPTS/SCRIPTS castleexp.lua function onLogin(cid) local rate = 1.1 -- 20% local config = { welvip = "sua guild domina o CASTLE 24H você tem "..((rate - 1)*100).."% de exp a mais agora!", not_vip = "a guild que domina o CASTLE 24H ganha "..((rate - 1)*100).."% a mais de experiencia!", s = 4538, -- storage vip } if getPlayerStorageValue(cid, config.s) - os.time() >= 1 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 DATA/CREATURESCRIPTS/CREATURESCRIPTS.XML <event name="castleexp" type="login" script="castleexp.lua"/> ------------------------------------------------------------------------------------------------ DATA/MOVEMENTS/SCRIPTS castlewar2.LUA function onStepIn(cid, item, position, fromPosition) local castle_one_name = "Castle24H" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then doBroadcastMessage("O Jogador ["..getCreatureName(cid).."] Está tentando invadir o ["..castle_one_name.."] Da guild [\""..guildname.."] Aviso donos atuais", MESSAGE_STATUS_WARNING) else doPlayerSendCancel(cid,"Avance") end else doPlayerSendCancel(cid,"Avance") end else doPlayerSendCancel(cid,"Avance") end return true end function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end data/movements/movements.xml <movevent actionid="9998" type="StepIn" value="castlewar2.lua" event="script"/> ---------------------------------------------------------------------------------------------------- acredito que não esteja faltando nada
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.