[Ajuda] Selecionar local em Dialog ANTES do Spawn
#1

Fala galera.

Bom, mais uma vez solicito ajuda pra quem entende mais do que eu. Pode ser uma duvida noob, mas tudo bem, sou noob mesmo

Enfim, peguei 2 GMs pra "estudar" e misturar ambos, mas tive alguns erros, por exemplo, ao misturar PPC_Truck com GrandLarc tive conflitos entre seleзгo de Spawn e o sistema de Login, mas isso nгo vem ao caso.

Entгo resolvi mudar tudo nessa mistura: ja consegui adicionar pontos de resgate novamente, ja que havia perdido essa funзгo quando exclui todas as profissхes e criei 6 classes novas, e tambem ja defini um local de Spawn fixo para o player. Entг, a mistura de PPC com GL ficou com essas caracteristicas:


-Sistema de login/salvamento de conta й do PPC
-Sistema de "classe" semelhante do PPC, mas sem "profissхes" ou "trabalho" como o GrandLarceny
-Local fixo de spawn, independente da classe.
-Lista de Resgate igual para todos, independente da classe.

Dentro disso, preciso incluir a seguinte "caracteristica", mas nгo sei por onde comeзar:

Em um outro server que participei, que tem base no PPC Truck, colocaram um sistema onde a pessoa entra no Server, faz Login, e em seguida aparece uma lista em Dialog pra selecionar o Local onde irб Spawnar.

Quero implantar esse sistema no meu GM, visto que primeiro o player spawna num lugar fixo, pra depois eu selecionar outro local atravйs do "/resgate". Preciso que me direcionem sobre como inserir a lista dos locais de resgate (em dialog) logo apуs login.

Se precisarem, posto os scripts que forem necessarios. Acredito que nгo seja muito dificil, visto que no server que participo cada classe/profissгo tem seus proprios resgates, e no meu serб a mesma lista de locais pra TODOS, porem nгo sei como proceder.

Abraзos.
Reply
#2

Olб, vocк pode mostrar a dialog para o jogador logo apуs o login dele, e entгo manusear a resposta dele com OnDialogResponse

Tem este tutorial em inglкs: https://sampwiki.blast.hk/wiki/How_to_Create_a_Dialog
E esse em portuguкs mais antigo (й sobre teleportes em dialog, mas a ideia e a mesma): https://sampforum.blast.hk/showthread.php?tid=247098

E claro, vocк vai precisar impedir que o player spawne se ele nгo escolheu nada no dialog, portando й sу vocк usar uma condiзгo em OnPlayerRequestClass e retornar 0, para que o spawn serja impedindo.

Pra isto, vai precisar ter um conhecimento sobre variбveis: https://sampforum.blast.hk/showthread.php?tid=235924

Espero que tenha lhe ajudado. Й um prazer ajudar quem quer aprender.
Reply
#3

Vlw Arakuta, vou dar uma verificada, pois ja sabndo "onde" verificar, e tendo o proprio Dialog do resgate "pronto", creio que serб mais facil inclui-lo na seleзгo do local prй-spawn

Thx
Reply
#4

Bom, to caminhando bem, eu acho.

Consegui Fazer aparecer a lista de spawn, mas o mais proximo que consegui daquilo que eu queria foi fazer o player selecionar a skin, clicar "spawn", e quando spawna aparece a lista com os pontos que eu queria.

O que me incomoda, й nгo ter encontrado uma opзгo que mude o botгo "spawn" da seleзгo de skin, ou algo qu desse pra colocar a chamada pra lista por trйs dele. :-/
Reply
#5

Caso resolvido, e a soluзгo foi mais simples do que imaginei. Bastou pegar a linha "ShowPlayerDialog" que eu ja tinha feito pro comando "/spawn", e adicionar logo apуs a seleзгo de Classe em "OnPlayerRequestSpawn" (eu estava errando era nisso, antes colocava a Dialog pra aparecer em "OnPlayerSpawn")

Quote:

ShowPlayerDialog(playerid, DialogSpawn, DIALOG_STYLE_LIST, "Choose spawn point:", "Local 1\r\nLocal 2\r\nLocal 3", "Spawn", "Cancel");

Fazendo como exemplificado abaixo, o Player faz o login, seleciona a classe, e ao clicar em Spawn abre a Dialog com a lista de locais que defini anteriormente, e ele sу spawna apуs selecionar um local. Antes, como eu estava fazendo errado, o player clicava em Spawn, ia pra rua, e sу depois aparecia a Dialog pra selcionar os locais.

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new Name[24], Msg[128];

    // Get the player's name
    GetPlayerName(playerid, Name, sizeof(Name));

    // Choose a random spawnlocation based on the player's class
    switch (APlayerData[playerid][PlayerClass])
    {
        case Class1: // Classe apenas  para exemplificar
        {
            format(Msg, 128, "{FFFF00}%s{00FF00} entrou como {FFFF00}Classe 1", Name);
            SetPlayerColor(playerid, 0x008A45FF);
        }
        case Class2: // Classe apenas  para exemplificar
               {
            format(Msg, 128, "{FFFF00}%s{00FF00} entrou como {FFFF00}Classe 2", Name);
            SetPlayerColor(playerid, 0x008A45FF);
        }
       
    }
    SendClientMessageToAll(0xFFFFFFFF, Msg);
    ShowPlayerDialog(playerid, DialogSpawn, DIALOG_STYLE_LIST, "Choose spawn point:", ""Local 1\r\nLocal 2\r\nLocal 3", "Spawn", "Cancel");

    return 0;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)