[Ajuda] FS ( Quando desloga volta mesmo local )
#1

Bem esta FS funciona desta maneira: Quando um player desloga, e quando logar denovo ele volta no mesmo local, quando morre volta ao hospital, so que possui um porйm quando o player desloga em um interior ele comeзa a cair sem parar...

Se precisarem de algum codigo abaixo para uma soluзгo e so pedir
Reply
#2

https://sampforum.blast.hk/showthread.php?tid=450576
Reply
#3

POSTA O CУDIGO AMIGO.
NГO TEMOS BOLA DE CRISTAL.

PHP код:
new interior;
interior DOF2_GetInt(arquivo,"Interior");
SetPlayerInterior(playerid,interior);
//apenas uma base. 
Reply
#4

[THs]ShadoW

Quando o player loga novamente dentro de um interior utilizando o DOF2, o interior aparece normalmente?
Reply
#5

Quote:
Originally Posted by PainBR
Посмотреть сообщение
[THs]ShadoW

Quando o player loga novamente dentro de um interior utilizando o DOF2, o interior aparece normalmente?
Crie um salvamento para o Interior tambйm, siga o exemplo do meu tutorial, vou tentar fazer uma base pra vocк, jб edito aqui.

@EDIT

#Observaзгo:

Siga todos os passos do meu tutorial, e depois implemente o cуdigo abaixo !

Fiz um breve cуdigo, qualquer dъvida sу pedir:

Topo do GM:

Код:
new pInterior[MAX_PLAYERS];
OnPlayerDisconnect:

Код:
	pInterior[playerid] = GetPlayerInterior(playerid);
	DOF2_SetInt(File, "Interior", pInterior[playerid]);
OnPlayerConnect:

Код:
pInterior[playerid] = DOF2_GetInt(File, "Interior");
OnPlayerSpawn:

Код:
SetPlayerInterior(playerid, pInterior[playerid]);
Reply
#6

Quote:
Originally Posted by darkxdll
Посмотреть сообщение
POSTA O CУDIGO AMIGO.
NГO TEMOS BOLA DE CRISTAL.

PHP код:
new Float:interior;
interior DOF2_GetFloat(arquivo,"Interior");
SetPlayerInterior(playerid,interior);
//apenas uma base. 
Esse chegou perto mas infelizmente ele usou Float.
E apenas Init , fora isso o resto esta correto!
Reply
#7

pawn Код:
#include <a_samp>
#include <Dini>

#pragma tabsize 0

new Float:KenX[MAX_PLAYERS];
new Float:KenY[MAX_PLAYERS];
new Float:KenZ[MAX_PLAYERS];
new Float:KenA[MAX_PLAYERS];
new SpawnBloqueado[MAX_PLAYERS];
   
public OnFilterScriptInit()
{
    print("//:::::::::::::::::::::::::::::::::::://");
    print("    FilterScript - Voltar б Posiзгo");
    print("    Crйditos: Ken_xD ou rjjj");
    print("//:::::::::::::::::::::::::::::::::::://\n");
    return 1;
}

public OnPlayerConnect(playerid)
{
    SpawnBloqueado[playerid] = 0;
    SendClientMessage(playerid, 0x33FF00FF, "[Server] Este servidor utiliza o FS Voltar б Posiзгo por Ken_xD.");
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/fsspawn", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, 0x33FF00FF, "Crйditos do FS Voltar б posiзгo: Ken_xD ou rjjj.");
        return 1;
    }
    return 0;
}

public OnPlayerDisconnect(playerid, reason)
{
    new Jogador[MAX_PLAYER_NAME];
    new data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    GetPlayerPos(playerid,KenX[playerid],KenY[playerid],KenZ[playerid]);
    GetPlayerFacingAngle(playerid,KenA[playerid]);
    format(data, sizeof(data), "%s.spawn.ini", Jogador);
    dini_FloatSet(data,"CoordenadaX",KenX[playerid]);
    dini_FloatSet(data,"CoordenadaY",KenY[playerid]);
    dini_FloatSet(data,"CoordenadaZ",KenZ[playerid]);
    dini_FloatSet(data,"CoordenadaA",KenA[playerid]);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    new VolteiPraCa[MAX_PLAYER_NAME];
    new voltarcoordenada[256];
    GetPlayerName(playerid, VolteiPraCa, sizeof(VolteiPraCa));
    format(voltarcoordenada, sizeof(voltarcoordenada), "LocalJogador/%s.spawn.ini", VolteiPraCa);
    if(fexist(voltarcoordenada) && SpawnBloqueado[playerid] == 0)
    {
        KenX[playerid] = dini_Float(voltarcoordenada,"CoordenadaX");
        KenY[playerid] = dini_Float(voltarcoordenada,"CoordenadaY");
        KenZ[playerid] = dini_Float(voltarcoordenada,"CoordenadaZ");
        KenA[playerid] = dini_Float(voltarcoordenada,"CoordenadaA");
        SetPlayerPos(playerid, KenX[playerid],  KenY[playerid], KenZ[playerid]);
        SetPlayerFacingAngle(playerid, KenA[playerid]);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0x33FF00FF, "Vocк voltou para onde saiu pela ъltima vez ! [Crйditos: Ken_xD ou rjjj].");
        SpawnBloqueado[playerid] = 1;
    }
    if(!fexist(voltarcoordenada))
    {
        dini_Create(voltarcoordenada);
        SpawnBloqueado[playerid] = 1;
    }
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}
Bem a FS de base que utilizei foi esta
Reply
#8

Nossa , que distraзгo a minha rsrsrsrs...
Esqueci que os interiores sгo nъmeros inteiros (1,2,3,4,50,123)
Omg , #postEditado
Reply
#9

Код:
#include <a_samp>
#include <Dini>

#pragma tabsize 0

new Float:KenX[MAX_PLAYERS];
new Float:KenY[MAX_PLAYERS];
new Float:KenZ[MAX_PLAYERS];
new Float:KenA[MAX_PLAYERS];
new pInterior[MAX_PLAYERS];
new SpawnBloqueado[MAX_PLAYERS];

public OnFilterScriptInit()
{
    print("//:::::::::::::::::::::::::::::::::::://");
    print("    FilterScript - Voltar б Posiзгo");
    print("    Crйditos: Ken_xD ou rjjj");
    print("//:::::::::::::::::::::::::::::::::::://\n");
    return 1;
}

public OnPlayerConnect(playerid)
{
    SpawnBloqueado[playerid] = 0;
    SendClientMessage(playerid, 0x33FF00FF, "[Server] Este servidor utiliza o FS Voltar б Posiзгo por Ken_xD.");
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/fsspawn", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid, 0x33FF00FF, "Crйditos do FS Voltar б posiзгo: Ken_xD ou rjjj.");
        return 1;
    }
    return 0;
}

public OnPlayerDisconnect(playerid, reason)
{
    new Jogador[MAX_PLAYER_NAME];
    new data[256];
    GetPlayerName(playerid, Jogador, sizeof(Jogador));
    GetPlayerPos(playerid,KenX[playerid],KenY[playerid],KenZ[playerid]);
    GetPlayerFacingAngle(playerid,KenA[playerid]);
    pInterior[playerid] = GetPlayerInterior(playerid);
    format(data, sizeof(data), "%s.spawn.ini", Jogador);
    dini_FloatSet(data,"CoordenadaX",KenX[playerid]);
    dini_FloatSet(data,"CoordenadaY",KenY[playerid]);
    dini_FloatSet(data,"CoordenadaZ",KenZ[playerid]);
    dini_FloatSet(data,"CoordenadaA",KenA[playerid]);
    dini_Set(data, "Interior", pInterior[playerid]);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    new VolteiPraCa[MAX_PLAYER_NAME];
    new voltarcoordenada[256];
    GetPlayerName(playerid, VolteiPraCa, sizeof(VolteiPraCa));
    format(voltarcoordenada, sizeof(voltarcoordenada), "LocalJogador/%s.spawn.ini", VolteiPraCa);
    if(fexist(voltarcoordenada) && SpawnBloqueado[playerid] == 0)
    {
        KenX[playerid] = dini_Float(voltarcoordenada,"CoordenadaX");
        KenY[playerid] = dini_Float(voltarcoordenada,"CoordenadaY");
        KenZ[playerid] = dini_Float(voltarcoordenada,"CoordenadaZ");
        KenA[playerid] = dini_Float(voltarcoordenada,"CoordenadaA");
        pInterior[playerid] = dini_Get(voltarcoordenada, "Interior");
        SetPlayerInterior(playerid, pInterior[playerid]);
        SetPlayerPos(playerid, KenX[playerid],  KenY[playerid], KenZ[playerid]);
        SetPlayerFacingAngle(playerid, KenA[playerid]);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0x33FF00FF, "Vocк voltou para onde saiu pela ъltima vez ! [Crйditos: Ken_xD ou rjjj].");
        SpawnBloqueado[playerid] = 1;
    }
    if(!fexist(voltarcoordenada))
    {
        dini_Create(voltarcoordenada);
        SpawnBloqueado[playerid] = 1;
    }
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}
Tente assim, nгo conheзo as funзхes do Dini, porйm, acredito que irб funcionar.

#Observaзгo : Nгo testei pois nгo possuo a Include.
Reply
#10

pawn Код:
(69) : error 006: must be assigned to an array
Linha:

pawn Код:
pInterior[playerid] = dini_Get(voltarcoordenada, "Interior");
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)