WO

Me Ajudem Porfavor, O Que Tem De Errado Nesse Script?

Por WolfyP, 07 de jan. de 2012 em Archived

script
8
1.2k
WolfyPW
07 de janeiro de 2012 às 06:17

comecei a estudar scripting há 2 dias, tentei fazer esse aqui por conta própria mas não deu certo.

 

local sexo = GetPlayerSex (cid)
function onUse(cid, item, frompos, item2, topos)
if item.itemid == 2160 then
if sexo == 0 then
doSetPlayerSex(cid,1)
doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaa")
end
elseif sexo == 1 then
doSetPlayerSex(cid,2)
doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaaaa")
end
end

 

poderiam, por gentileza, reformular esse script para minha compreensão?

 

grato!

lucasquevedobrL
07 de janeiro de 2012 às 11:37

axo que não existe sexo 2 ^^

0 = female

1 = male

WolfyPW
07 de janeiro de 2012 às 14:11

axo que não existe sexo 2 ^^

0 = female

1 = male

 

Mas man, eu já troquei e agora ta assim

local sexo = getPlayerSex (cid)

function onUse(cid, item, frompos, item2, topos)
if item.itemid == 2160 then
if sexo == 0 then
doSetPlayerSex(cid,1)
doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaa")
end

elseif sexo == 1 then
doSetPlayerSex(cid,0)
doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaaaa")
end
end

 

Continua com esse erro no distro

[07/01/2012 13:53:20] [Error - Action Interface]
[07/01/2012 13:53:20] data/actions/scripts/firstscript.lua
[07/01/2012 13:53:20] Description:
[07/01/2012 13:53:20] (luaGetPlayerSex) Player not found

 

O que que é?

 

Agora eu deixei assim

 

function onUse(cid, item, frompos, item2, topos)
local sexo = getPlayerSex (cid)
function onUse(cid, item, frompos, item2, topos)
if item.itemid == 2160 then
if sexo == 0 then
doSetPlayerSex(cid,1)
doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaa")
end
elseif sexo == 1 then
doSetPlayerSex(cid,0)
doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaaaa")
end
end

 

não da mais erro, mas tambem nao acontece nada quando eu dou use no item (scarab coin)

warcraftzzW
07 de janeiro de 2012 às 17:28

você não definiu o player que ele vai pegar usar o "doSetPlayerSex(cid,0)"

WolfyPW
07 de janeiro de 2012 às 19:36

você não definiu o player que ele vai pegar usar o "doSetPlayerSex(cid,0)"

 

0 é feminino, 1 masculino. LOL

lucasquevedobrL
08 de janeiro de 2012 às 03:17

se isso for uma action pode ter problema de transform pois o crystal quando clica vira platinum e nao troca de sexo

 

=s

jhon992J
08 de janeiro de 2012 às 10:23

usa assim:

 

function onUse(cid, item, frompos, item2, topos)

local sexo = getPlayerSex(cid)
if item.itemid == 2160 then
   if sexo == 0 then
       doSetPlayerSex(cid, 1)
       doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaa")
   end
elseif sexo == 1 then
   doSetPlayerSex(cid, 0)
   doPlayersendTextMessage(cid, MESSAGE_INFO_DESCR, "aaaaa")
end

return TRUE
end

 

A função getPlayerSex(cid) tinha que ser dentro da function onUse, pq ela precisa do cid = "creature id" do personagem. E tu coloco um onUse dentro de outro e faltou algum end e talz. Assim acho que funcionara corretamente.

warcraftzzW
08 de janeiro de 2012 às 14:08

você não definiu o player que ele vai pegar usar o "doSetPlayerSex(cid,0)"

 

0 é feminino, 1 masculino. LOL

 

não foi isso q eu quiz dizer! É que vc tem que definir o player q o script vai trocar de sexo!