[DUV] Settimer Apenas no id 0 =/
#1

Meu problema e o seguinte, eu usei alguns Settimer por que de ves enquando acontecia um bug e o
VirtualWorld nao era setado e no fim acabava ficando em 0
com esse settimer ele era setado automaticamente par ao virtualword correto apos 3 segundos
fui testar sozinho e funcionou.... ate ai tudo bem o problema foi juntamos mais de 1 e testamos
Acontece que o Virtualword so funcionava com o primeiro player a entrar
outro detalhe e que se o primeiro player fosse setado para virtualword 3 ou qualquer outro
todos era setados , agora se estivesem no meio da rua voltava todos voltavam pra 0, menos o primeiro player
pawn Код:
// topo GM
new Mundo3;
new Mundo4;
//OnPlayerPickUpPickup
if(pickupid == Mundo3)
    {
        SetPlayerVirtualWorld(playerid,3);
                SendClientMessage(playerid, BRANCO,  "Teleportado para Konoha");
            SetTimer("MundoVirtual3",3000,0);
        SetPlayerPos(playerid, 629.1714,-571.4444,16.8616);
        SetPlayerFacingAngle(playerid,270.3426);
        return 1;
    }
if(pickupid == Mundo4)
    {
        SetPlayerVirtualWorld(playerid,4);
                SendClientMessage(playerid, BRANCO,  "Teleportado para Kakurezato");
            SetTimer("MundoVirtual4",3000,0);
        SetPlayerPos(playerid, -2119.48,-180.13,35.32);
        SetPlayerFacingAngle(playerid,354.1216);
        return 1;
    }

/ ongamemodeinit
Mundo3 = CreatePickup(1318, 23,246.6994,62.3249,1003.6406,0);
Mundo4 = CreatePickup(1318, 23,-2119.48,-179.13,35.32);
O code de Settimer que fiz
pawn Код:
// topo do gm
forward MundoVirtual0(playerid);
forward MundoVirtual1(playerid);
forward MundoVirtual2(playerid);
forward MundoVirtual3(playerid);

public MundoVirtual0(playerid)
{
    SetPlayerVirtualWorld(playerid,0);
    return 1;
}

public MundoVirtual1(playerid)
{
    SetPlayerVirtualWorld(playerid,1);
    return 1;
}
public MundoVirtual2(playerid)
{
    SetPlayerVirtualWorld(playerid,2);
    return 1;
}
Nao postei o code por completo por que senao alguem pode ver e roubar minhas aldeias

Eu agradeзo a quem pudem me ajudar
Reply
#2

pawn Код:
public MundoVirtual0(playerid) {
for(new i=0; i<MAX_PLAYERS; i++) { SetPlayerVirtualWorld(i, 0); return 1; }
O MAX_PLAYERS vai chegar os players do id 0 ao 500(que e o total do samp) e vai setar todos eles pra virtual world 0
Reply
#3

SetTimer deve ser usado apenas para chamar publics sem parвmetros, como por exemplo esta:

Код:
forward LOL();  //Sem Parametros
public LOL()//Sem /Parametros
{
	print("lol");
	return 1;
}
Para chamar publics com parвmetros (como as que vocк estб tentando chamar), deve-se usar SetTimerEx.

Exemplo de public com parвmetros, sendo o parвmetro, playerid:

Код:
forward Oi(playerid);  //Parametros
public Oi(playerid)//Parametros
{
	print("lol");
	return 1;
}
Espero ter ajudado
Reply
#4

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
pawn Код:
public MundoVirtual0(playerid) {
for(new i=0; i<MAX_PLAYERS; i++) { SetPlayerVirtualWorld(i, 0); return 1; }
O MAX_PLAYERS vai chegar os players do id 0 ao 500(que e o total do samp) e vai setar todos eles pra virtual world 0
Mais se alguem passar no pickup ele vai setar o VW de todos ou so de quem passou por ele
Reply
#5

Bem a Primeira Dica Nao surtiu Efeito eu ate coloquei uma mensagem para testar se a funзao da public estava sendo setada
Ja a segunda funcionou Perfeitamente

pawn Код:
if(pickupid == Mundo3)
    {
        SetPlayerVirtualWorld(playerid,3);
                SendClientMessage(playerid, BRANCO,  "Teleportado para Konoha");
            SetTimerEx("MundoVirtual3",3000,0, "d", playerid);
        SetPlayerPos(playerid, 629.1714,-571.4444,16.8616);
        SetPlayerFacingAngle(playerid,270.3426);
        return 1;
    }
if(pickupid == Mundo4)
    {
        SetPlayerVirtualWorld(playerid,4);
                SendClientMessage(playerid, BRANCO,  "Teleportado para Kakurezato");
          SetTimerEx("MundoVirtual4",3000,0, "d", playerid);
        SetPlayerPos(playerid, -2119.48,-180.13,35.32);
        SetPlayerFacingAngle(playerid,354.1216);
        return 1;
    }

public MundoVirtual0(playerid)
{
    SetPlayerVirtualWorld(playerid,0);
    SendClientMessage(playerid, BRANCO,  "Virtual Word Setado para 0 Obrigado ao 2 Funcionou =]
"
);
    return 1;
}
Josma Obrigado pela iniciativa
Rjjj Obrigado pela soluзao eu agradeзo ao s2
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)