Ramza 11 #61 Posted September 2, 2011 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 #62 Posted September 3, 2011 [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 #63 Posted September 3, 2011 [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 #64 Posted September 3, 2011 (edited) 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 September 4, 2011 by Pokemoon Share this post Link to post Share on other sites
vyctor17 35 #65 Posted September 6, 2011 [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 #66 Posted September 29, 2011 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 #67 Posted September 29, 2011 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 #68 Posted October 2, 2011 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 #69 Posted October 3, 2011 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 #70 Posted October 7, 2011 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 #71 Posted October 7, 2011 % é 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 #72 Posted October 9, 2011 foda jovial! que pensamento em? divisão euclidiana hahaha Share this post Link to post Share on other sites
notle.com 2 #73 Posted October 13, 2012 (edited) 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 October 14, 2012 by notle.com Share this post Link to post Share on other sites
Ramza 11 #74 Posted October 13, 2012 (edited) Tem que ficar atento aos pequenos detalhes do teste, como ser uma action, não talkaction 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 October 13, 2012 by Ramza Share this post Link to post Share on other sites
notle.com 2 #75 Posted October 14, 2012 (edited) 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 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 Edited October 14, 2012 by notle.com Share this post Link to post Share on other sites
Ramza 11 #76 Posted October 14, 2012 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 #77 Posted October 30, 2012 (edited) 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 October 30, 2012 by Baxnie Share this post Link to post Share on other sites