Ir para conteúdo

Pet System


Posts Recomendados

O Script me parece muito bom +REP só que seria possivel deixar igual o do mundia? no mundia nos iriamos a um npc e ele perguntaria qual classe de pets queriamos para comprar tinha dwarf, dragon, demons, humanos etc.

Link para o comentário
Compartilhar em outros sites

so tem alguns problemas

Primeiro

O monstro ataka o dono

segundo

se digitar sem parar !creat nasce bixus infinitos

terceiro ja começa com undead dragon

quarto quando o cara desloga eles continuam la

Editado por Rakshasa666
Link para o comentário
Compartilhar em outros sites

Fis em Modoo talkactions pra fica mais facil blz, +mesmo assim presissa ter o item se fala !buypet dai compra

 

function onSay(cid, words, param, itemEx)

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou um Pet")

setPlayerStorageValue(cid, 78552, 1)

if doPlayerRemoveItem(cid, 3905, 1) then

end

end

 

EM VERMELHO é o ID q sera removido

coloque assim em talkactions.XML

 

<talkaction words="!buypet" event="script" value="buypet.lua"/>

 

Em VERDE o comando q ele ira usa pra compra o pet

 

 

So naum colokei CODE pq naum iria aparecer a cor das letra ^^

 

+rep se ajudei presissa to ae

 

 

Bom script edu +rep merece

Editado por Snokiuthu
Link para o comentário
Compartilhar em outros sites

  • 4 months later...
  • 2 weeks later...

Fis em Modoo talkactions pra fica mais facil blz, +mesmo assim presissa ter o item se fala !buypet dai compra

 

function onSay(cid, words, param, itemEx)

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou um Pet")

setPlayerStorageValue(cid, 78552, 1)

if doPlayerRemoveItem(cid, 3905, 1) then

end

end

 

EM VERMELHO é o ID q sera removido

coloque assim em talkactions.XML

 

<talkaction words="!buypet" event="script" value="buypet.lua"/>

 

Em VERDE o comando q ele ira usa pra compra o pet

 

 

So naum colokei CODE pq naum iria aparecer a cor das letra ^^

 

+rep se ajudei presissa to ae

 

 

Bom script edu +rep merece

 

sua intenção foi boa mais percebi alguns erros seus....

 

seu script esta com uma leve desorganização

 

mesmo o player n tendo o dinheiro pra comprar ele ganha o pet... PORQUE ...

 

vc crio o script que começa mandando a mensagem dps adc o storage e dps de tudo isso pra verificar se vai remover o dinheiro.. o certo seria :

 

function onSay(cid, words, param, itemEx)

if doPlayerRemoveItem(cid, [color=#FF0000]3905[/color], 1) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou um Pet")
setPlayerStorageValue(cid, 78552, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o item para comprar esse pet.")
end
end

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Cara muito bom, no meu OT funcionou, mas eu to com 1 probleminha.. Quando eu falo !remove o pet de outro char some e nao o meu, e as vezes nenhum pet some..Como arrumo isso?

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 3 weeks later...

Sua versão 9+~~ não vai funcionar


[color=#282828][font=helvetica, arial, sans-serif]function onSay(cid, words, param, itemEx)[/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]local summons = getCreatureSummons(cid)[/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]if isCreature(cid) then[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if words == "!remove" then[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doRemoveCreature(x)[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]return True[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end[/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]local pet = {[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]["Rat"] = {1,5},[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]["Dragon"] = {6,60}[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]}[/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]for k,v in pairs(pet) do -- 1[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if getPlayerLevel(cid) >= v[1] and getPlayerLevel(cid) <= v[2] then -- 2[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if getPlayerStorageValue(cid, 78552) == 1 then -- 3[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if (table.maxn(summons) < 1)then -- 4[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]if getTilePzInfo(getCreaturePosition(cid)) == false then[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]x = doSummonCreature(k, getCreaturePosition(cid))[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doConvinceCreature(cid, x)[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doCreatureSay(cid, k ..", go!", 1)[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 2)[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]else[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doPlayerSendCancel(cid,"You can summon in Pz.")[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]return true[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end -- 5[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]else[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doPlayerSendCancel(cid,"You can summon only 1 Pet.")[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]return true[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end -- 4[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]else[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doPlayerSendCancel(cid,"You no have Pet.")[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You no have Pet.")[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end -- 3[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]else[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]doPlayerSendCancel(cid,"You no have level for use Pet.")[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end -- 2[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end -- 1[/font][/color]

[color=#282828][font=helvetica, arial, sans-serif]return true[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]end[/font][/color]

 

1º -

[color=#282828][font=helvetica, arial, sans-serif]doRemoveCreature(x)[/font][/color]

Não ví essa variável ser declarada, ao menos que seja um POG dos infernos e teja usando variáveis globais,

 

2º -

[color=#282828][font=helvetica, arial, sans-serif]return True[/font][/color]

 

True não é um booleano, é uma variável.

Link para o comentário
Compartilhar em outros sites

Script atualizado V4

 

Reformulei o !remove para tentar arrumar o erro citado pelo usuario xxxmiguel

e tb adc world = "!creat" para evitar quais quer erro no script

 

MaXwEllDeN

a versão 9.~ quando era V3 funcionava perfeitamente ( Tirando o bug que eu n consigo resovler que é na hora de criar o pet apareçer a mensaguem "You no have level for use Pet.")

os possiveis erros citados por vc não mudam nada

Link para o comentário
Compartilhar em outros sites

@ForeverTobi

Colega, não deduzi nada, eu sei que True não é um booleano de LUA, True no máximo poderia ser uma variável, e eu também sei que a função doRemoveCreature, exige como primeiro parâmetro o UID de uma criatura. Então se tiver alguém deduzindo as coisas aqui é você!

 

No máximo, True pode ser uma variável com o valor do booleano true, que é um POG dos inferno como o TRUE do TFS. Faça o seguinte:

Entre em um interpretador LUA, e ponha:

local True = "~~~"
print(type(True))

se aparecer boolean te dou um doce, Booleanos não podem ter o valor modificado, é a mesma coisa de do, end, if, then, for, while, until. Que também não podem ter o valor modificado

 

@eduardoben

Se funciona, então True é uma variavel que recebeu o valor do booleano true, e como eu disse x deve ser uma variavel global com o valor de uma criatura,POG :/

Vou olhar aqui seu código e reformulá-lo para ajeitar esse bug que você citou.

 

#EDIT, sobre o que eu disse do doRemoveCreature, peço desculpas, não ví direito que tinha o for que declara a variável.

Seria bom se você desse umas lidas sobre indentação ai na net, ajudaria bastante, inclusive eu tenho um.

 

Em vez de usar table.maxn, usa # que dá na mesma coisa, exemplo:

 

local maxwell = {1, 2, 3, 4}

table.maxn(maxwell) = 4

#maxwell = 4

 

e também funciona com strings, para pegar o tamanho da string, exemplo:

 

string.len("MAXWELL") = 7

#"MAXWELL" = 7

 

-----------------------------EDIT

 

!remove e !creat

 

function onSay(cid, words, param, itemEx)
    local summons = getCreatureSummons(cid)
    if (words == "!remove") then
		    for _, k in ipairs(summons) do
				    doRemoveCreature(k)
		    end
    end

    local pet = {
		    ["rat"] = {1,5},
		    ["dragon"] = {6,60}
    }

    local pet = pet[getPlayerStorageValue(cid, 78552)]

    if (words == "!creat") then
		    if not (pet) then
				    doPlayerSendCancel(cid,"You no have Pet.")
				    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You no have Pet.")
		    end

		    if not(getPlayerLevel(cid) >= pet[1] and getPlayerLevel(cid) <= pet[2]) then
				    return doPlayerSendCancel("You no have level for use this Pet!")
		    end

		    if (#summons > 0)then
				    return doPlayerSendCancel(cid, "You can summon only 1 Pet.")
		    end

		    if (getTilePzInfo(getCreaturePosition(cid))) then
				    return doPlayerSendCancel(cid, "You can't summon in Pz.")
		    end

		    local x = doSummonCreature(k, getCreaturePosition(cid))
								    doConvinceCreature(cid, x)
								    doCreatureSay(cid, k ..", go!")
								    doSendMagicEffect(getThingPos(cid), 2)
    end

    return true
end

 

!buypet rat

 


function onSay(cid, words, param)
    local pet = {
		    ["rat"] = {1,5},
		    ["dragon"] = {6,60}
    }

    local param = param:lower()

    if not (pet[param]) then
		    local msg = "Pets disponíveis:z\n\n"

		    for i, v in pairs(pet) do
				    msg = msg .. v:lower(1, 1) .. msg:lower(2, #v) .."\n" .. i .." - do level ".. v[1] .. " até o level ".. v[2]
		    end

		    doShowTextDialog(cid, 3905, msg)
    end


    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou um ".. param)
    setPlayerStorageValue(cid, 78552, param)
    return true
end

 

Nem cheguei a testar.

Editado por MaXwEllDeN
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...