JO
talkaction

[ Talkaction ]Remover Red E Black Skull Por Talkaction

Por Joca96, 30 de jan. de 2010 em Actions e Talkactions

otserv
tibia
script
18
13.2k
Joca96J
30 de janeiro de 2010 às 20:30

Olá XTibianos, andei procurando muito esse Script por todos os lugares e infelizmente não encontrei. Então decidi dar uma olhada em uns tutoriais de Lua para OTservers e aprendi a fazer um 100% funcional.

 

Autor: Joca
Versão: 8.54
Testado: TFS 0.3.6
Tipo: TalkAction

 

Crie um arquivo na pasta \data\talkactions\scripts e coloque o nome removered.lua agora coloque isso nele:

 

local COST = 3000000 ----- Preço par Remover o Red Skull em Gold Pieces

function onSay(cid, words, chanel, param)
   if getCreatureSkullType(cid) == SKULL_RED then
       if doPlayerRemoveMoney(cid, COST) then
	    doCreatureSetSkullType(cid, SKULL_NONE)
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Red Skull removed for: " .. COST)
           doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)
       else
           doPlayerSendCancel(cid, "You don't have enough money.")
           doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
       end
   else
       doPlayerSendCancel(cid, "You are not with Red Skull.")
       doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
   end
end

 

Agora vá em talkactions.xml e adicione isso:

<talkaction words="!red" script="removered.lua"/>

 

E está pronto seu comando para remover red skull por 3kk!!

 

Agora o para Black skull seguindo o mesmo raciocínio. Crie um arquivo em \data\talkactions\scripts e coloque o nome de removeblack.lua e coloque isso dentro:

 

local COST = 6000000 ------- Preço para Tirar Black Skull em Gold Pieces

function onSay(cid, words, chanel, param)
   if getCreatureSkullType(cid) == SKULL_BLACK then
       if doPlayerRemoveMoney(cid, COST) then
	    doCreatureSetSkullType(cid, SKULL_NONE)
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Black Skull removed for: " .. COST)
           doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)
       else
           doPlayerSendCancel(cid, "You don't have enough money.")
           doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
       end
   else
       doPlayerSendCancel(cid, "You are not with Black Skull.")
       doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
   end
end

 

Agora vá em talkactions.xml e adicione isso:

<talkaction words="!black" script="removeblack.lua"/>

 

E pronto, a Black Skull vai ser removida por 6kk!!

 

Créditos:

90% by me

10% para o criador do script !buypremium que vem na maioria dos ot's que eu peguei uma pequena parte dele.

 

Comentem plx!!!

Editado Janeiro 30 por Joca96

satan666S
31 de janeiro de 2010 às 09:48

com ou sem dinheiro o player remove a skull.

e não precisava ser dois script em um só daria pra fazer os dois.

lucasssttL
31 de janeiro de 2010 às 10:50

ae eu arrumei seu script:

black skull:

 

function onSay(cid, words, chanel, param)

if getCreatureSkullType(cid) == SKULL_BLACK then

if doPlayerRemoveMoney(cid, COST) then

doCreatureSetSkullType(cid, SKULL_NONE)

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Black Skull removed for: " .. COST)

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)

else

doPlayerSendCancel(cid, "You don't have enough money.")

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

end

else

doPlayerSendCancel(cid, "You are not with Black Skull.")

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

end

end

Legenda:

Rosa:no lugar de cost coloque:6000000

 

Red skull:

function onSay(cid, words, chanel, param)

if getCreatureSkullType(cid) == SKULL_RED then

if doPlayerRemoveMoney(cid, COST) then

doCreatureSetSkullType(cid, SKULL_NONE)

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Red Skull removed for: " .. COST)

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)

else

doPlayerSendCancel(cid, "You don't have enough money.")

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

end

else

doPlayerSendCancel(cid, "You are not with Red Skull.")

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

end

end

Legenda:

rosa:no lugar de cost coloque 3000000

 

boa ideia "remover black e red skull" se quiser fazer parceria nos scripts comigo estou a disposiçao!

Editado Janeiro 31 por CoOcAiNaA

Joca96J
31 de janeiro de 2010 às 14:30

Mas aí é que está coloquei o COST para ajudar na edição para quem não entende!

satan666S
31 de janeiro de 2010 às 15:22

ae eu arrumei seu script:

black skull:

 

 

Legenda:

Rosa:no lugar de cost coloque:6000000

 

Red skull:

 

Legenda:

rosa:no lugar de cost coloque 3000000

 

boa ideia "remover black e red skull" se quiser fazer parceria nos scripts comigo estou a disposiçao!

 

faz um favor fica quieto que tu não entende nada de variaveis pelo visto.

 

e mesmo assim no seu script com ou sem dinheiro o player vai remover a skull.

Joca96J
31 de janeiro de 2010 às 16:04
e mesmo assim no seu script com ou sem dinheiro o player vai remover a skull.

 

Pois aqui ta não funciona sem dinheiro olha:

 

redpbl.jpg

 

Ta funcionando 100% o script! Obrigado por se preocupar!

lucasssttL
31 de janeiro de 2010 às 17:03

e vei no meu sem dinheiro nao remove so se tiver dinheiro...e esse escript que eu arrumei eu coloquei um 0 a mais so apaga 1

Editado Janeiro 31 por CoOcAiNaA

PedroMutterP
07 de fevereiro de 2010 às 16:19

cara num ta danu certo, eu coloco td isso aew q vc pedio, ai na ora q eu ligo o ot aparece error in talkaction, ai eu tiro esses negocios e da td certo.

vlw flw

lucasjockeyL
08 de fevereiro de 2010 às 11:53

A lógica do script está correta, não vi nenhum erro.

 

cara num ta danu certo, eu coloco td isso aew q vc pedio, ai na ora q eu ligo o ot aparece error in talkaction, ai eu tiro esses negocios e da td certo.

vlw flw

 

Poste uma SS do erro, talvez o script possa até ser melhorado.

tibiaa4eT
13 de fevereiro de 2010 às 14:21

local COST = 3000000 ----- Preço par Remover o Skull em Gold Pieces

function onSay(cid, words, chanel, param)
   if getCreatureSkullType(cid) == SKULL_RED or getCreatureSkullType(cid) == SKULL_BLACK then
       if doPlayerRemoveMoney(cid, COST) == TRUE then
           doCreatureSetSkullType(cid, SKULL_NONE)
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your Skull was removed for: " .. COST)
           doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)
       else
           doPlayerSendCancel(cid, "You don't have enough money.")
           doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
       end
  else
      doPlayerSendCancel(cid, "You are not with Black or Red Skull.")
      doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
  end
end

 

Eu acredito que ela não remove os frags, então se você matar um ela vai voltar...

Se isso acontecer me avise que eu passo uma linha de codigo para tirar

2 meses depois...
21 de abril de 2010 às 23:10

o script é bom, mais tem um problema... quando o player remove o red ou o black skull, apenas desapareçe a cavera dele, mais os frags continuam, ou seja se ele matar que seja uma pessoa, ele volta a ser um red skull...

o talkaction deveria remover os frags, e não a caverinha...

Editado Abril 21 por GoodHattiattyd

guedes100G
21 de abril de 2010 às 23:21

cara esse script ja existe no Xtibia

se é só remover as skull,o kakilo fez um sistema pela talkaction tbm que remove todas as skull,incluindo a white skull,e tudo somente em 1 script,nao necessitando de 2 ou mais para executar a mesma açao...

 

http://www.xtibia.com/forum/topic/124671-talkaction-removedor-de-skulls/

 

eu ainda não consegui,e nem achei um script que removesse as frags...

Henrique MouraH
22 de abril de 2010 às 00:27

Simplesmente não tem como fazer um script que remova as frags.

Ter tem, mas não valeria a pena.

Porque?

Não existe a string frags dentro de players, e é setado como player_deaths. Para fazer um script que removesse frags deveria procurar em "player_deaths" todos que foram mortos pelo nome do jogador, e remover. Isso iria consumir muita memória e travar o servidor, pelo menos no meu ponto de vista, e do ponto de vista do Diogo.

 

Abraços.

AntharazA
22 de abril de 2010 às 01:16

@Henrique Moura

 

Na verdade a tabela players_death armazena os ids e a data, logo o server teria qeu epgar os ids dos kills, comparar com os ids da tabela players_killers e deposi excluir se houvesse alguma relação... mas isto não gasta tanta memória como você e alguns afirmam...

 

 

 

@topic

 

poderia ser feito em um script apenas... =x

2 meses depois...
cmcproC
07 de junho de 2010 às 02:38

tava precisando de um comando desse. mais eu queria que só adm tivesse acesso a esse comando. pra poder tirar dos players. se alguem tiver, agradeço