[Ajuda] Spawn
#1

Galera й o seguinte to com um erro que pela lуgica o cуdigo estб certo porйm nгo estб funcionando.

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
   
    for(new i; i < 11; ++i) TextDrawShowForPlayer(playerid, RegistroLogin[i]);
    SelectTextDraw(playerid, 0x909090FF);
    if(INI_Exist(ObterINI(playerid)) != 0) TextDrawShowForPlayer(playerid, RegistroLogin[12]);
    else TextDrawShowForPlayer(playerid, RegistroLogin[11]);
    TogglePlayerSpectating(playerid, true);
    return 1;
}
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    new rl[38], rl1[180];
    if(clickedid == RegistroLogin[12])
    {
        format(rl,sizeof(rl),""REGISTER_AZUL"Logar - %s",PName(playerid));
        format(rl1,sizeof(rl1),""REGISTER_BRANCO"Esse sistema usa CASE SENSITIVE!\nBem vindo ao Roleplay, %s.\nO nome que vocк estб usando й registrado, por favor, digite uma senha para fazer o login:",PName(playerid));
        ShowPlayerDialog(playerid,DialogLogin,DIALOG_STYLE_INPUT,rl,rl1,"Logar","Sair");
    }
    if(clickedid == RegistroLogin[11]){
        format(rl,sizeof(rl),""REGISTER_AZUL"Registrar - %s",PName(playerid));
        format(rl1,sizeof(rl1),""REGISTER_BRANCO"Esse sistema usa CASE SENSITIVE!\nBem vindo ao Roleplay, %s.\nVocк pode "REGISTER_VERMELHO"registrar"REGISTER_BRANCO" uma conta, digitando uma senha desejada aqui:",PName(playerid));
        ShowPlayerDialog(playerid,DialogRegister,DIALOG_STYLE_INPUT,rl,rl1,"Registrar","Sair");
    }
    if(clickedid == RegistroLogin[10]){
        SendClientMessage(playerid,-1,"| SERVER | Vocк foi kickado automaticamente!");
        Kick(playerid);
    }
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid){
        case DialogRegister:{
            if(!response) SendClientMessage(playerid,-1,"| SERVER | Vocк foi kickado automaticamente!"), Kick(playerid);
            if(response){
                if(strlen(inputtext) < 1 || strlen(inputtext) > 10){
                    new rl[38], rl1[180];
                    format(rl,sizeof(rl),""REGISTER_AZUL"Registrar - %s",PName(playerid));
                    format(rl1,sizeof(rl1),""REGISTER_BRANCO"Esse sistema usa CASE SENSITIVE!\nSua senha deve ter entre 1 e 10 caracteres!\nBem vindo ao Roleplay, %s.\nVocк pode "REGISTER_VERMELHO"registrar"REGISTER_BRANCO" uma conta, digitando uma senha desejada aqui:",PName(playerid));
                    ShowPlayerDialog(playerid,DialogRegister,DIALOG_STYLE_INPUT,rl,rl1,"Registrar","Sair");
                }
                else{
                    INI_Open(ObterINI(playerid));
                    INI_WriteString("Senha", inputtext);
                    INI_Save();
                    INI_Close();
                    for(new i; i < 14; ++i) TextDrawHideForPlayer(playerid, RegistroLogin[i]);
                    SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                    TogglePlayerSpectating(playerid, false);
                }
            }
        }
        case DialogLogin:{
            if(!response) SendClientMessage(playerid,-1,"| SERVER | Vocк foi kickado automaticamente!"), Kick(playerid);
            if(response){
                static input[11];
                INI_Open(ObterINI(playerid));
                INI_ReadString(input,"Senha");
                INI_Close();
                if(!strcmp(inputtext, input, CASE_SENSITIVE)){
                    for(new i; i < 14; ++i) TextDrawHideForPlayer(playerid, RegistroLogin[i]);
                    SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                    TogglePlayerSpectating(playerid, false);
                }
                else{
                    new rl[38], rl1[240];
                    ++TentouLogar[playerid];
                    format(rl,sizeof(rl),""REGISTER_AZUL"Logar - %s",PName(playerid));
                    format(rl1,sizeof(rl1),""REGISTER_BRANCO"Esse sistema usa CASE SENSITIVE!\nSenha invбlida, vocк tem mais %i tentativas.\nBem vindo ao Roleplay, %s.\nO nome que vocк estб usando й registrado, por favor, digite uma senha para fazer o login:",3-TentouLogar[playerid],PName(playerid));
                    ShowPlayerDialog(playerid,DialogLogin,DIALOG_STYLE_INPUT,rl,rl1,"Logar","Sair");
                    if(TentouLogar[playerid] == 3){
                        SendClientMessage(playerid,-1,"| SERVER | Vocк errou a senha muitas vezes por isso foi kickado");
                        Kick(playerid);
                    }
                }
            }
        }
    }
    return 1;
}
Estava usando TogglePlayerSpectating para burlar aquelas setinhas, sу que ao logar a camera fica congelada e nгo spawna. OBS:forum tirou indentaзгo.
Reply
#2

Nгo entendi qual seu problema...

Se й o fato do jogador nгo spawnar, seu cуdigo faz com que ele spawne tranquilamente sim.

[ame]http://www.youtube.com/watch?v=jQwhRb0jIGQ[/ame]
Reply
#3

qual o erro do codigo '-'?
Da para usar o TogglePlayerSpectating porem apos ele seta um timer de no minimo 100 ms para setar a Pos da camera, pois senao a camera nao se movimenta :0
Reply
#4

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Nгo entendi qual seu problema...

Se й o fato do jogador nгo spawnar, seu cуdigo faz com que ele spawne tranquilamente sim.

http://www.youtube.com/watch?v=jQwhRb0jIGQ
eis a questгo no meu a camera fica congelada.



Pela lуgica era pra dar certo.
Reply
#5

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    TogglePlayerSpectating(playerid, true);
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
   
    for(new i; i < 11; ++i) TextDrawShowForPlayer(playerid, RegistroLogin[i]);
    SelectTextDraw(playerid, 0x909090FF);
    if(INI_Exist(ObterINI(playerid)) != 0) TextDrawShowForPlayer(playerid, RegistroLogin[12]);
    else TextDrawShowForPlayer(playerid, RegistroLogin[11]);
    return 1;
}
A ordem altera os fatores.
Reply
#6

Quote:
Originally Posted by MatheusAlcapone
Посмотреть сообщение
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    TogglePlayerSpectating(playerid, true);
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
   
    for(new i; i < 11; ++i) TextDrawShowForPlayer(playerid, RegistroLogin[i]);
    SelectTextDraw(playerid, 0x909090FF);
    if(INI_Exist(ObterINI(playerid)) != 0) TextDrawShowForPlayer(playerid, RegistroLogin[12]);
    else TextDrawShowForPlayer(playerid, RegistroLogin[11]);
    return 1;
}
A ordem altera os fatores.
Negativo acabei de testar aqui!
Reply
#7

Nгo tem nenhum toggleplayerSpectating em outra callback nгo?. A ordem altera os fatores sim.
Reply
#8

Quote:
Originally Posted by LucasF
Посмотреть сообщение
Negativo acabei de testar aqui!
Da para usar o TogglePlayerSpectating porem apos ele seta um timer de no minimo 100 ms para setar a Pos da camera, pois senao a camera nao se movimenta :0
Como eu disse as nгo sei porque mas quando acontece se usa desta forma parece que atrasa e nгo vai, entao use um timer como eu disse
Reply
#9

Quote:
Originally Posted by MatheusAlcapone
Посмотреть сообщение
Nгo tem nenhum toggleplayerSpectating em outra callback nгo?. A ordem altera os fatores sim.
Sim tenho absoluta certeza, sу na OnPlayerRequestClass e na OnPlayerDialogResponse.
Reply
#10

Ops compreendi errado sua duvida pensei que era a camera que nгo estava indo para a posiзгo, nгo hб necessidade usar
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid){
        case DialogRegister:{
            if(!response) SendClientMessage(playerid,-1,"| SERVER | Vocк foi kickado automaticamente!"), Kick(playerid);
            if(response){
                if(strlen(inputtext) < 1 || strlen(inputtext) > 10){
                    new rl[38], rl1[180];
                    format(rl,sizeof(rl),""REGISTER_AZUL"Registrar - %s",PName(playerid));
                    format(rl1,sizeof(rl1),""REGISTER_BRANCO"Esse sistema usa CASE SENSITIVE!\nSua senha deve ter entre 1 e 10 caracteres!\nBem vindo ao Roleplay, %s.\nVocк pode "REGISTER_VERMELHO"registrar"REGISTER_BRANCO" uma conta, digitando uma senha desejada aqui:",PName(playerid));
                    ShowPlayerDialog(playerid,DialogRegister,DIALOG_STYLE_INPUT,rl,rl1,"Registrar","Sair");
                }
                else{
                    INI_Open(ObterINI(playerid));
                    INI_WriteString("Senha", inputtext);
                    INI_Save();
                    INI_Close();
                    for(new i; i < 14; ++i) TextDrawHideForPlayer(playerid, RegistroLogin[i]);
                    SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0);
                    TogglePlayerSpectating(playerid, false);
                    SpawnPlayer(playerid);
                }
            }
        }
        case DialogLogin:{
            if(!response) SendClientMessage(playerid,-1,"| SERVER | Vocк foi kickado automaticamente!"), Kick(playerid);
            if(response){
                static input[11];
                INI_Open(ObterINI(playerid));
                INI_ReadString(input,"Senha");
                INI_Close();
                if(!strcmp(inputtext, input, CASE_SENSITIVE)){
                    for(new i; i < 14; ++i) TextDrawHideForPlayer(playerid, RegistroLogin[i]);
                    SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0);
                    TogglePlayerSpectating(playerid, false);
                    SpawnPlayer(playerid);
                }
                else{
                    new rl[38], rl1[240];
                    ++TentouLogar[playerid];
                    format(rl,sizeof(rl),""REGISTER_AZUL"Logar - %s",PName(playerid));
                    format(rl1,sizeof(rl1),""REGISTER_BRANCO"Esse sistema usa CASE SENSITIVE!\nSenha invбlida, vocк tem mais %i tentativas.\nBem vindo ao Roleplay, %s.\nO nome que vocк estб usando й registrado, por favor, digite uma senha para fazer o login:",3-TentouLogar[playerid],PName(playerid));
                    ShowPlayerDialog(playerid,DialogLogin,DIALOG_STYLE_INPUT,rl,rl1,"Logar","Sair");
                    if(TentouLogar[playerid] == 3){
                        SendClientMessage(playerid,-1,"| SERVER | Vocк errou a senha muitas vezes por isso foi kickado");
                        Kick(playerid);
                    }
                }
            }
        }
    }
    return 1;
}
Jб tive o mesmo problema no meu GameMode, o normal й o toggleplayerspectating spawnar automaticamente quando ele й setado para 0, mas isso nгo esta acontecendo nгo sei o que й, deve ser algum bug do samp tente usar dessa forma ai que eu coloquei acima.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)