O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Ajuda pra colocar Achievements (os reais mesmo! Da Steam!) no meu jogo

Iniciado por Mune, 22/03/2018 às 23:15

Pessoas, vai fazer quase 1 ano que lancei meu jogo (Prelude for a Dream) na Steam. E depois de muito relutar, decidi que vou atualizar o jogo com Achievements.

O problema é: estou mais perdido que barata tonta.

Começar por aqui: https://forums.rpgmakerweb.com/index.php?threads/cyanics-steam-achievements-integration.50640/

Não estou entendendo o linguajar do cara. Ele fala:

Add the script into the script editor.
In the event or wherever else you want to set an achievement, add the following code (ver o restante no link)

E? Ele só fala pra jogar não sei aonde. Colocar o código aonde? Como vou saber se eu coloco o código pro primeiro Achievement quando derroto o primeiro chefe ou então Last Boss? Onde vou saber?

Se tiver mais dúvidas vou falando. Se alguém me ajudar e eu conseguir colocar Achievement no jogo sem bugs, eu até prestigio com uma key do jogo.  :noel: Claro, tenho que conseguir.

Não é complicado, só que você vai ter de fazer alguns testes visto que é preciso acesso ao painel de parceiros da Steam. Vamos lá, o código que ele citou deve ser usado com o comando "Chamar Script", você deve conhecer:

steam = SteamUserStatsLite.instance
steam.set_achievement 'ID'
steam.update


ID é a id do achievement em questão que você encontra no painel citado (Steamworks Partners). Por exemplo, para o primeiro chefe é só colocar o comando após o evento da batalha, caso o jogador ganhe. O tópico tem uma Demo que pode te ajudar também.

Citação de: Corvo online 22/03/2018 às 23:24
Não é complicado, só que você vai ter de fazer alguns testes visto que é preciso acesso ao painel de parceiros da Steam. Vamos lá, o código que ele citou deve ser usado com o comando "Chamar Script", você deve conhecer:

steam = SteamUserStatsLite.instance
steam.set_achievement 'ID'
steam.update


ID é a id do achievement em questão que você encontra no painel citado (Steamworks Partners). Por exemplo, para o primeiro chefe é só colocar o comando após o evento da batalha, caso o jogador ganhe. O tópico tem uma Demo que pode te ajudar também.

Deixe ver se eu entendi.

O painel de parceiros da Steam eu já tenho, certo? Pois o jogo já está na loja. Ou estou errado? Além disso, é através dele que vou implantar as artworks das conquistas, ou estou errado?

Esse script eu altero apenas o ID, certo? E ele fica com ' ' ou '' '' ou com nada? No caso quero colocar 14 achievements, todos depois de derrotar os chefes. O jeito certo de colocar é sempre embaixo? Tem que ter espaços, é só colocar os textos mesmo? Parece boba a minha preocupação, mas é porque você sabe, um espaço errado e nada funciona.

Faz tempo que não mexo com o RPG Maker VX Ace. Tem um jeito seguro de saber qual chefe é qual?

Muito obrigado. Se eu conseguir colocar os achievements, certeza que te dou uma key.

Então, muita coisa eu não tenho como te dizer porque nunca vendi nada pela Steam. Sobre o painel, sim, você deve ter acesso. Como eu não tenho, o mais longe que consigo te levar é até aqui. O que você vai colocar na ID depende como são as IDs do painel, mas é quase certo de que sim, você deverá manter as aspas. Copie e cole o código exatamente como está trocando apenas o ID. Este comando você vai usar da mesma forma como um comando normal do RPG Maker. Venceu o chefe? Coloque o comando do achievement respectivo. Abriu determinado baú, coloque o comando. É só usar como se estivesse ligando um switch, por exemplo. Assim você sempre sabe o que está gerando qual achievement. E sim, provavelmente é pelo painel que você envia os gráficos, mas eles devem fornecer um template ou algo do tipo.

Citação de: Corvo online 23/03/2018 às 00:01
Então, muita coisa eu não tenho como te dizer porque nunca vendi nada pela Steam. Sobre o painel, sim, você deve ter acesso. Como eu não tenho, o mais longe que consigo te levar é até aqui. O que você vai colocar na ID depende como são as IDs do painel, mas é quase certo de que sim, você deverá manter as aspas. Copie e cole o código exatamente como está trocando apenas o ID. Este comando você vai usar da mesma forma como um comando normal do RPG Maker. Venceu o chefe? Coloque o comando do achievement respectivo. Abriu determinado baú, coloque o comando. É só usar como se estivesse ligando um switch, por exemplo. Assim você sempre sabe o que está gerando qual achievement. E sim, provavelmente é pelo painel que você envia os gráficos, mas eles devem fornecer um template ou algo do tipo.

Muito obrigado! Espero que de certo, vou prestigiar uma key pra você com muita satisfação. Mas ainda tem que funcionar, hehe. Vamos ver se vai dar certo.

Uma duvida: parece besta, mas eu colo esse script sem espaço nenhum, embaixo do ''texto do chefe''? Parece bobo, mas como eu disse, muitas vezes um Enter acaba com tudo. Muitas vezes só um espaço mesmo.

Então, este código você cola no editor acima do Main. O comando dos achievements você usa por eventos dessa forma:
Spoiler
[close]
E eu recomendo baixar a Demo porque ela contém uma dll (steam_api) que você precisa copiar para a pasta do seu jogo. Se quiser saber se o código foi instalado corretamente é só abrir o console do Ace em Game > Show Console:
Spoiler
[close]

Muito obrigado!

Se entendi, eu vou colar esses códigos ENORMES, sem alterar nada, né? No script central do jogo, em cima, ou seja, esses códigos vão ser os primeiros a aparecer no Script mestre. Certo?

O outro eu acho que entendi totalmente, e é bem mais fácil. Como no caso são chefes, e que dropam um item, eu vou abrir o script do chefe, e vou colar esses Scripts embaixo do texto que manda o comando de dropar o item. Ai eu deleto o ID genérico e coloco o do Achievement da Steam. Certo?

Sobre o dll que vou ter que colocar na pasta do jogo, vou dar uma olhada. Qualquer dúvida ou problema eu tiro a dúvida aqui. Primeiro vou realizar as outras etapas pra ver se não da outro problema.

Valeu novamente. Amanhã vou começar a mexer nisso. Torce ai, se der certo vou te dar uma key com gosto.

Por partes, para ficar mais claro. Primeiro, assim que baixar a demo copie a dll:
Spoiler
[close]
Abra a Demo. No editor de scripts (F11) você vai encontrar o código instalado acima do Main. Essa imagem não é da Demo, mas é mais ou menos onde o script vai ficar:
Spoiler
[close]
Feito isso, pronto, está instalado. Agora, quanto ao seu exemplo do chefe. Eu estou confundindo o que você quer dizer com script, não sei se fala das configurações dele no database, mas não é lá que você vai editar. Basta apenas incluir o comando do código no mesmo evento em que a batalha contra o chefe é chamada:
Spoiler
[close]
Nesse caso não há exceções, o achievement só será ganho se o jogador vencer  batalha. Caso contrário, game over. E sim, você só vai alterar a ID no comando, o resto fica como está.

Pra dar um update aqui. Já criei os ícones dos Achievements na Steam e uploadei no sistema. Por enquanto tudo certo. Vou continuar amanhã, pois já estou morto de tanto mexer em imagem, e por ai vai.   

Só pra te deixar a par do que consta no sistema, e evitar surpresas, vou te falar os itens que constam na páginas das conquistas no meu menu.

Primeiro, são 13 achivements no total. As categorias são separadas por

ID   

API Name
Progress Stat   

Display Name Description   

Set By   

Hidden?   

Achieved Icon   

Unachieved Icon

Começando pelo ID. É ele que terei que colocar no RPG Maker VX Ace, certo? No caso são 13 conquistas que vão das seguintes:

1/0

1/1

1/2

1/3

1/4

1/5

1/6

1/7

1/8

1/9

1/10

1/11

1/12

Agora o API Name
Progress Stat

O interessante é que no primeiro consta o nome NEW_ACHIEVEMENT_1_0 E assim por diante (esse final só muda o número, como na ID). E eu posso editar esse nome. Isso seria o nome que eu quero dar pro achievement. Tipo: ''You defeated the first boss''.

Tem um negócio embaixo descrito como Progress Stat, mas ele fica sempre como None e eu não posso mudar. Nele também tem o Min value: 
0
Max:
0

Que da pra alterar, mas não sei pra que serve. 

Também tem o Display Name Description

NEW_ACHIEVEMENT_NAME_1_0
NEW_ACHIEVEMENT_DESC_1_0

Ele segue a numeração e eu também posso editar, seria esse o nome que eu posso dar pro Achievement não ganho (quando a pessoa ainda não ganhou a conquista) e para o Achievement conquistado? (quando a pessoa completou o desafio).

Tem outro lugar chamado de Set By. Com as seguintes opções:

Client
GS
Official GS

Posso escolher um do três, mas não faço ideia da mudança.

Ai tem o ícone pra esconder o Achievement e a imagem do Achieved Icon (quando você já completou o desafio) e Unachieved Icon (quando tu não completou o desafio).

No caso, amanhã vou fazer o que você falou. Mas não sei se você entendeu, são 13 troféus de chefes que morrem, mas esses 13 chefes deixam 1 key item, por isso que disse que vou programar pra aparecer o Achievement depois que pegar esse key item, que quer dizer que o chefe também foi derrotado.

É isso, muito obrigado. Se tiver algo a falar sobre isso que falei eu agradeço. Vou continuar amanhã. 

Bom, não tenho muito o que dizer sobre isso aí porque nunca sequer vi os menus em questão, mas não me parecem coisas complicadas. As IDs, segundo o autor do código, são os nomes das "APIs" de cada achievement. Se o que aparece são esses números, são eles mesmo que você vai usar. Progress Stat deve ser para as conquistas que precisam de um certo número de determinado item, ou uma quantia de moedas, inimigos derrotados, etc. Deve haver alguma opção a ser selecionada para habilitar essas opções no achievement em questão. As outras opções são auto-explicativas*, nomes e descrições. Sobre esse Set by eu não tenho ideia, o jeito é testar.

Hoje acabei de dar uma lapidada em alguns aspectos do jogo, já que é claro se tratará de uma atualização, então já estou dando um acabamento final, pois espero nunca mais ter que mexer no jogo novamente.

Últimas dúvidas antes de mexer na parte dos Achievements de vez amanhã:

Questão 1) Sobre o arquivo dll, eu vou ter que colocá-lo nesse lugar, onde consta no Post 7. Mas depois que eu criptografar o jogo (pra ninguém pegar o mapa base e ficar editando ele), ele continua no arquivo final criptografado? Ou terei que colocá-lo uma segunda vez?

Questão 2) Você deve saber que o Editor de Script, tem várias partes. Eu só colo acima do Main mesmo e acabou? Eu necessariamente tenho que colocar como nome de Steam Achievements, ou pode ser o nome que eu quiser (pode parecer besta. Mas por causa de uma letra o negócio emperra).

Questão 3) Falando de Script ainda, você no post 5 deu o script completo. Só pra confirmar: copio sem alterar nada, né? Posso pegar da demo também, mas esse também já está pronto.

É isso, ia perguntar também de colocar os scripts depois de os chefes deixarem os Key Itens, ai é só colocar embaixo do Script do Drop do Key Item, ai o jogo ''vai saber'' que é pra liberar o Achievement depois desse chefe liberar o Key Item. Mas isso acho que já está como certo. 

É isso, mais um pouco e vamos ver se tudo da certo. Obrigado.  :ok:

1) Tudo o que estiver dentro da pasta do jogo vai ser incluído na encriptação. Pode colocar o arquivo uma vez só que ele vai continuar funcionando normalmente. Não que a encriptação do Ace proteja alguma coisa, mas é melhor que nada.

2) O script fica acima do Main e abaixo dos outros scripts adicionais. O nome que você dá pra ele não faz diferença.

3) Sim, sem editar nada.

Já encriptografei o jogo e sem problemas. Houve apenas um problema até agora, mas foi facilmente resolvido: Eu copiei o arquivo dll, e tinha um arquivo de texto e resolvi copiar também. Com isso o jogo não abria, mas foi só retirar esse arquivo de texto e tudo voltou a funcionar. O resto, os scripts, foram ''smoothly'' como dizem em inglês. O arquivo dll ainda permaneceu no arquivo final.

Reta final agora. A NET tá meio instável aqui hoje, vou colocar a nova versão do jogo na Steam amanhã. Do jeito que estão as coisas, suspeito que tudo dará certo.

Muito obrigado até aqui, CORVO, dando certo já faço o pedido das keys e entrego elas pra você.  :noel:

Não precisa me enviar keys, o fórum está aqui pra ajudar. Só me avise se der certo porque eu não tinha a menor ideia de como colocar achievements da Steam no RPG Maker até você aparecer com esse tópico. Aprendi ajudando e certamente será um conhecimento útil ao pessoal.  :blink:

Obrigado, mas eu faço questão de te enviar algumas. Se você quiser, pode até usar algumas em eventos para o fórum, gincanas etc. se isso ajudar.  :noel: 

Deu certo, gente! Obrigado Corvo por tudo. Que as keys sejam bem usadas. Muito obrigado!