Jump to content
Sign in to follow this  
Gpwjhlkdcf

Teste seu nível em scripting!

Recommended Posts

Ramza    11
Ramza
vich arrumei um geito mto mais foda:

function onUse(cid)

return doPlayerSetSex(cid,math.max(-(getPlayerSex(cid)-1),0))

end

 

 

 

Você quis dizer de um jeito muito mais POG né? haha

Um code foda não é um code com funções complexas, e sim um code EFICIENTE, bem formatado e compreensivel.

Share this post


Link to post
Share on other sites
Pokemoon    0
Pokemoon

[spoiler=Script]function onUse(cid, item, fromPosition, itemEx, toPosition)

doPlayerSendTextMessage(cid,22 ,"Você mudou de sexo com exito!")

doPlayerSendTextMessage(cid,22 ,"Por Favor Relogue para que Seu Sexo Seja Atualizado , Ou Apenas Clique Para mudar de Outifit!")

return doPlayerSetSex(cid, (getPlayerSex(cid) == 0)) and true

end

 

 

 

acho que isso é avançado ! Botei a mensagem para ficar Mais Bonito e mais explicado!

è importante lembrar que começei ler os tutoriais de scripts hoje!

Share this post


Link to post
Share on other sites
iuniX    4
iuniX
[spoiler=Script]function onUse(cid, item, fromPosition, itemEx, toPosition)

doPlayerSendTextMessage(cid,22 ,"Você mudou de sexo com exito!")

doPlayerSendTextMessage(cid,22 ,"Por Favor Relogue para que Seu Sexo Seja Atualizado , Ou Apenas Clique Para mudar de Outifit!")

return doPlayerSetSex(cid, (getPlayerSex(cid) == 0)) and true

end

 

 

 

acho que isso é avançado ! Botei a mensagem para ficar Mais Bonito e mais explicado!

è importante lembrar que começei ler os tutoriais de scripts hoje!

 

 

 

Isso dai está errado, não vai funcionar.

Share this post


Link to post
Share on other sites
Pokemoon    0
Pokemoon
Isso dai está errado, não vai funcionar.

 

 

não?eu testei antes de posta aqui ta funcionando perfect ... testa ai pra ti ver ;D nao fala antes de testa vlw

fuck

Edited by Pokemoon

Share this post


Link to post
Share on other sites
vyctor17    35
vyctor17

[spoiler=teste]

function onUse(cid, item, fromPosition, itemEx, toPosition)

if getPlayerSex(cid) ~= 0 then

doPlayerSetSex(cid, 0)

else

doPlayerSetSex(cid, 1)

end

end

 

olha o meu ae nem sei em que lugar eu fico :/

Share this post


Link to post
Share on other sites
Kuma Bear    33
Kuma Bear

 function onUse(cid, item)
    if getPlayerSex(cid) == 0 then
       doPlayerSetSex(cid, 0)
   else
       doPlayerSetSex(cid, 1)
   end
return true
end

 

It's Mine ;D

 

Acho que intermediário .-.

Share this post


Link to post
Share on other sites
Karyus    2
Karyus
 function onUse(cid, item)
    if getPlayerSex(cid) == 0 then
       doPlayerSetSex(cid, 0)
   else
       doPlayerSetSex(cid, 1)
   end
return true
end

It's Mine ;D

 

Acho que intermediário .-.

 

vc se confundiu, e não vai mudar o sexo :trollface: ,

if getPlayerSex(cid) == 0 then

aqui vc ta verificando se o sexo for 0 se for ele vai mudar o sexo para 0 novamente >>

doPlayerSetSex(cid, 0)

, vc teria q ter feito assim so mudar o 0 e 1 de lugar

function onUse(cid, item)
     if getPlayerSex(cid) == 0 then
        doPlayerSetSex(cid, [b]1[/b])
    else
        doPlayerSetSex(cid, [b]0[/b])
    end
return true
end

Share this post


Link to post
Share on other sites
Jovial    2
Jovial

Um código menor não é sinônimo de código melhor. Seus exemplos, até os que você classifica como perito ou avançado, podem ser melhorados. O exemplo de perito está horrivel, o array é declarado toda vez que a action é executada.

Em particular eu faria assim:

function onUse( cid )
 return doPlayerSetSex( cid, ( getPlayerSex( cid ) + 1 ) % 2 )
end

Share this post


Link to post
Share on other sites
morgado4ever    0
morgado4ever

pwned by Jovial

 

Tem gente que acha que é o f#dão em scripting.. sem ao menos ter uma base real sobre programação.. Triste isso!

Share this post


Link to post
Share on other sites
Guiminhah    0
Guiminhah

Jovial, não entendi, se o sexo for 0, + 1 % 2 vai dar sexo 1/2? '-' é shemale?

Share this post


Link to post
Share on other sites
Jovial    2
Jovial

% é o operador de módulo, ele retorna o resto da divisão de A por B.

 

(0 + 1) % 2 irá resultar em 1 e (1 + 1) % 2 irá resultar em 0

Share this post


Link to post
Share on other sites
Guiminhah    0
Guiminhah

foda jovial! que pensamento em? divisão euclidiana hahaha

Share this post


Link to post
Share on other sites
notle.com    2
notle.com

e esse fica qual nível?

[color=#333333]function onUse(cid, item, fromPosition, itemEx, toPosition)[/color]
return (getPlayerSex(cid) == 0 and doPlayerSetSex(cid, 1)) or doPlayerSetSex(cid, 0) 
end

Edited by notle.com

Share this post


Link to post
Share on other sites
Ramza    11
Ramza

Tem que ficar atento aos pequenos detalhes do teste, como ser uma action, não talkaction :D

 

E outra coisa, isso utilizado pelo criador do tópico é uma operação ternária, feita em LUA. O porém é, operações ternárias não são mais rápidas ou melhores que um simples if(condição) then return (retorno 1) or (retorno 2), quando compilados, ambos ficam, dependendo da linguagem, com o mesmo número de instruções, ou seja, só serve pra deixar o code "menor", porém, as vezes quando se tenta muito reduzir algo, acaba tornando confuso, e um code não pode ser de maneira alguma confuso.

 

Você tentou jogar um ternário com elseif, mas a solução usada pelo criador do tópico ainda foi melhor e menos confusa.

 

Existem vários jeitos que se pode fazer, exemplo:

 

function onUse(cid)

local sex = getPlayerSex(cid)

doPlayerSetSex(cid, sex +1 -sex*2)

end

 

 

Eu ainda acho que o melhor code que ele utilizou, baseado NESSE teste, foi o Intermediário.

Condicionais são levissimos, e o code ainda fica entendível, e como é pequeno, não há a necessidade de se fazer com table. PORÉM, caso houvessem mais opções (se fosse um code pra mudar vocação por exemplo, em um servidor com 10 vocações), aí sim a melhor sem dúvidas seria a do nível Períto.

 

Mesmo assim, parabéns pela sacada, conheço pouca gente que sabe usar ternário com elseif em lua, isso é sinal de que você já estudou bastante sobre isso e não é novato xD

 

Mas a MINHA opinião PESSOAL é essa que falei, prefiro codes mais 'limpos' e fáceis de entender xD

 

Minha nota pra você então seria:

 

Pelo TESTE: Intermediário.

Pelo CONHECIMENTO: Avançado.

Edited by Ramza

Share this post


Link to post
Share on other sites
notle.com    2
notle.com

kkk foi mesmo pq tava testando em talkaction aqui e esqueci de editar na hora mais editei ai só pra deixa mesmo editado :)

,sim to estudando script ainda quero melhorar mais e mais :D

 

no

Passo 2

respostas do

Intermediário

esta errada

ta assim,

function onUse(cid)

if getPlayerSex(cid) == 0 then

doPlayerSetSex(cid, 1)

return true

end

doPlayerSetSex(cid, 1)

return true

end

se for 0 vai mudar pra 1 mais se for 1 vai continuar no 1

o certo seria

function onUse(cid)

if getPlayerSex(cid) == 0 then

doPlayerSetSex(cid, 1)

return true

end

doPlayerSetSex(cid, 0) -- mudar aqui

return true

end

edita ai tópico :D

 

Edited by notle.com

Share this post


Link to post
Share on other sites
Ramza    11
Ramza

Isso ai cara! xDD

E esse erro ai, bem achado também! Pequenos detalhes que fazem TODA a diferença! D: AHEUEHUEa

Share this post


Link to post
Share on other sites
Baxnie    8
Baxnie

function onUse(cid, item, fromPosition, itemEx, toPosition)
       local sex = getPlayerSex(cid, true)
       if sex == PLAYERSEX_FEMALE then
               doPlayerSetSex(cid, PLAYERSEX_MALE)
       elseif sex == PLAYERSEX_MALE then
               doPlayerSetSex(cid, PLAYERSEX_FEMALE)
       else
               doPlayerSendCancel(cid, "You can't change your sex.")
       end
       return true
end

 

As constantes estão ai para serem usadas.

Existe o PLAYERSEX_GAMEMASTER. Em quase todos os scripts que vi aqui, esse dado será perdido.

Edited by Baxnie

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×