Roksas 846 Postado Junho 27, 2013 Share Postado Junho 27, 2013 (editado) Cast System 1.0 Como vãao galera? Há quanto tempo não? Hoje eu vim trazer para vocês um sisteminha bem simples e legal, aonde você pode assistir os outros jogadores e vice-versa. Versão testada: TFS 8.6 0.4 and TFS 0.3.6 8.6 Comandos utilizados in-game: !cast on -- Ativa o seu Cast System, e permite os outros jogadores te assistirem; !cast off -- Desativa o seu Cast System; !cast exit -- Você sai do Cast no qual está assistindo; !cast NAME -- Começa a assistir um jogador (NAME). Instalação Vá em data/talkactions/scripts crie um arquivo chamado castSys.lua e adicione o seguinte código dentro do mesmo: --[[ Perfect Cast System 1.0 by Roksas Acesse ja XTibia.com =) ]]-- function onSay(cid, words, param) local player = getPlayerByName(param) if not isInArray({"list", "exit", "off", "on"}, param) and not param or param == "" then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "Enter the name of the player, which you want to cast in parameters.") return true end if param == "on" then if getPlayerStorageValue(cid, 10359) >= 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "Your Cast System is already running ONLINE!") return true end castOn(cid) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You have activated your Cast System, now others can cast you, to disable this feature, use the parameter '!cast off'.") return true end if param == "off" then if getPlayerStorageValue(cid, 10359) < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "Your Cast System is already OFFLINE!") return true end castOff(cid) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You have disabled your Cast System, from now on no one can watch you, unless you turn on the Cast, using the parameter '!cast on'.") return true end if param == "exit" then if getPlayerStorageValue(cid, 12269) < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "You no are casting players.") return true end cancelCast(cid) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You stopped casting, use the parameter '!cast list' to see who can be casted.") return true end if param == "list" then if #whoCasted() < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "At this time, no player can be casted, try again later.") return true end doPlayerSendTextMessage(cid, 20, "Players can be casteds:\n\n") for k, v in ipairs(whoCasted()) do doPlayerSendTextMessage(cid, 20, " - "..getCreatureName(v).."") end return true end if not isPlayer(player) then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "This player is offline or does not exist. Use the parameter '!cast list' to see who can be casted.") return true end if getPlayerStorageValue(player, 10359) < 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "You can only cast one person with the Cast System is activated, use the parameter '!cast list' to see who can be assisted.") return true end if getPlayerStorageValue(cid, 10359) >= 1 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 20, "To cast a player, you must first disable your Cast System using the parameter '!cast off'.") return true end if not getTileInfo(getThingPos(cid)).protection then return doPlayerSendTextMessage(cid, 20, "You need enter in Protection Zone to use the Cast System.") and true end setPlayerStorageValue(cid, 12269, 1) castPlayer(cid, player) doSendMagicEffect(getThingPos(cid), 39) doPlayerSendTextMessage(cid, 20, "You are casting the player "..getCreatureName(player)..", to exit just use the command '!cast exit'.") doPlayerSendTextMessage(player, 20, "You are casted by "..getCreatureName(cid).." player to disable your Cast, simply use the parameter '!cast off'.") return true end function cancelCast(uid) mayNotMove(uid, false) doCreatureSetHideHealth(uid, false) setPlayerStorageValue(uid, 12269, -1) doRemoveCondition(uid, CONDITION_OUTFIT) return doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) or doTeleportThing(uid, getPlayerMasterPos(uid)) and true end function castOn(uid) return setPlayerStorageValue(uid, 10359, 1) and true end function castOff(uid) return setPlayerStorageValue(uid, 10359, -1) and true end function castPlayer(uid, player) if not isPlayer(player) then cancelCast(uid) return true end if getPlayerStorageValue(player, 10359) < 1 then cancelCast(uid) return true end if getPlayerStorageValue(uid, 12269) < 1 then cancelCast(uid) return true end mayNotMove(uid, true) doSetItemOutfit(uid, 1934, -1) doCreatureSetHideHealth(uid, true) doTeleportThing(uid, getThingPos(player)) return addEvent(castPlayer, 1 * 1000, uid, player) and true end function whoCasted() local casteds = {} for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, 10359) >= 1 then table.insert(casteds, pid) end end return #casteds > 0 and casteds or {} end Volte uma pasta (data/talkaction) abra com algum editor de texto o arquivo talkactions.xml e adicione essa tag em qualquer lugar: <talkaction words="!cast;/cast" event="script" value="castSys.lua"/> Muito bem, após isso siga para a pasta data/creaturescripts/scripts, faça o mesmo, crie um arquivo chamado castSys.lua e adicione isso dentro: function onLogout(cid) if getPlayerStorageValue(cid, 12269) > 0 then doPlayerSendCancel(cid, "To logout, you need to exit the Cast System first. Use the parameter '!cast exit'.") return false end setPlayerStorageValue(cid, 10359, -1) return true end function onStatsChange(cid, attacker, type, combat, value) if not isCreature(cid) then return true end if getPlayerStorageValue(cid, 12269) >= 1 and isMonster(attacker) or isPlayer(attacker) then return false end return true end function onAttack(cid, target) if not isPlayer(cid) or not isPlayer(target) then return true end if getPlayerStorageValue(cid, 12269) > 0 then doRemoveCondition(cid, CONDITION_INFIGHT) return false end return true end Já no arquivo creaturescripts.xml, você vai adicionar essa tag: <event type="attack" name="castAttack" event="script" value="castSys.lua"/> <event type="statschange" name="castHits" event="script" value="castSys.lua"/> <event type="logout" name="castLogout" event="script" value="castSys.lua"/> E no arquivo login.lua você vai adicionar essas 3 linhas: registerCreatureEvent(cid, "castAttack") registerCreatureEvent(cid, "castHits") registerCreatureEvent(cid, "castLogout") Para que o player que está assitindo ao outro não use magias enquanto está assistindo, coloque essas linhas abaixo dentro de cada script das magias, debaixo da linha: function onCastSpell(cid, var) Coloque: if getPlayerStorageValue(cid, 12269) >= 1 then return doPlayerSendCancel(cid, "You is casting, not is possible.") and false end Faça a mesma coisa com as quests, embaixo de: function onUse(cid, item, frompos, item2, topos) Prontinho galera, basta reiniciar o servidor e usar, é isto por hoje, espero que tenham gostado, ideias/sugestões para futuras versões, bugs ou críticas sobre o sistema, basta deixar um simples comentário aí no tópico, estarei aqui para atendê-los. Obrigado pela atenção, façam bom uso. Editado Abril 9, 2015 por CyberBot Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/ Compartilhar em outros sites More sharing options...
aguinho600 35 Postado Junho 27, 2013 Share Postado Junho 27, 2013 Muito bom...Continue postando mais sistemas assim Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1534954 Compartilhar em outros sites More sharing options...
AlphaLove 39 Postado Junho 27, 2013 Share Postado Junho 27, 2013 Parabéns Roksas, vai ajudar muita gente mesmo véi. reputado Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1534960 Compartilhar em outros sites More sharing options...
Enself 44 Postado Junho 27, 2013 Share Postado Junho 27, 2013 Muito Bom, arrumo aquele negocio do exit quando o player da cast no outro por exemplo. estou numa hunt com o cast ligado alguem da cast em min, quando da !cast exit eles teleporta no player? Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1534980 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Junho 27, 2013 Autor Share Postado Junho 27, 2013 Sim, está teleportando para o templo ^^ Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1534987 Compartilhar em outros sites More sharing options...
RodriigoRobson 110 Postado Junho 27, 2013 Share Postado Junho 27, 2013 (editado) O verdadeiro cast system e na hora de logar e aparece a lista dos jogadores e etc... isso ta parecendo mais um spectator que cast system mais esta Genial Bom demais o sistema parabens Editado Junho 27, 2013 por Nextbr Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1534993 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Junho 27, 2013 Autor Share Postado Junho 27, 2013 Creio que não EXISTA um 'verdadeiro', cada um cada um. Oo Mas tudo bem, rsrs, obrigado cara Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1534997 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Julho 11, 2013 Share Postado Julho 11, 2013 Muito bom, só que quando coloquei o script nas minhas magias de healing, elas pararam de funcionar, da para usar a magia mais ela não heala. Tens solução? Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1538423 Compartilhar em outros sites More sharing options...
pedreroxx 2 Postado Julho 14, 2013 Share Postado Julho 14, 2013 Olá.. Estou com o mesmo problema do amigo a cima!! Todas as magias de healing.. pararam de funcionar!! Gostaria de ajuda pois realmente o sistema é fantastico.. mais sem magias de healing não rola rs Obrigado!!Rep+ Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1539659 Compartilhar em outros sites More sharing options...
Spik3ex 14 Postado Julho 14, 2013 Share Postado Julho 14, 2013 Eu retirei esse sistema, totalmente inútil, com esse bug das magias, ainda vai achar mais amigo Pedreroxx, como o dono do tópico diz, é uma réplica, tá certo, ficou ótimo o sistema, mais precisa arrumar ainda várias coisas. Vou falar só uma falha, só uma, contém várias. O player que estiver no final de uma quest (aonde fica o báu), ele pode ativar o /cast on, e outro jogador ir até ele /cast NickDeQuemEstaNaFinalQuest , e o jogador "telespectador" também pode dar use no baú e pegar o prémio, não importa o level, etc, ele também pega o prémio. Fora essas 2 grandes falhas que achei neste sistema, contém outras, nem vou comentar. Minha opnião é, não vale apena usar esse sistema até quando arrumarem tudo. Grande abraços. Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1539661 Compartilhar em outros sites More sharing options...
pedreroxx 2 Postado Julho 15, 2013 Share Postado Julho 15, 2013 OMG!!! Que falha cara... Obrigado Por Avisar!! Precisar estamos a disposição Spikex! Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1539883 Compartilhar em outros sites More sharing options...
Killua 389 Postado Julho 20, 2013 Share Postado Julho 20, 2013 Bugadissimo, nao compensa utilizar Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1541824 Compartilhar em outros sites More sharing options...
Session Start 125 Postado Julho 27, 2013 Share Postado Julho 27, 2013 (editado) No treco das quests.. é só colocar pra checar a storage de estar assistindo o cast... e já era Ex: if getPlayerStorageValue(cid, 42361) ~= 1 and getPlayerStorageValue(cid, 12269) <= 0 then recebe a quest else voce está assistindo ao cast :3 end # TOPIC REP + MANO Editado Julho 27, 2013 por Cleberadm Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1544708 Compartilhar em outros sites More sharing options...
Killua 389 Postado Julho 28, 2013 Share Postado Julho 28, 2013 No treco das quests.. é só colocar pra checar a storage de estar assistindo o cast... e já era Ex: if getPlayerStorageValue(cid, 42361) ~= 1 and getPlayerStorageValue(cid, 12269) <= 0 then recebe a quest else voce está assistindo ao cast :3 end # TOPIC REP + MANO Nao fica muito pratico fazer isso em todas as quests... E tambem quem esta assistindo pode mover os itens que estao por perto e tambem ficar falando. O script eh otimo, nao posso negar, mas preciso arrumar os bugs antes de usar... Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1545048 Compartilhar em outros sites More sharing options...
cs007 13 Postado Julho 29, 2013 Share Postado Julho 29, 2013 Tenho mapa global, é complicado editar todas as magias... Mesmo assim parabéns. Link para o comentário https://xtibia.com/forum/topic/216738-cast-tv-system-10/#findComment-1545471 Compartilhar em outros sites More sharing options...
Posts Recomendados