[Ajuda] Streamer
#1

Bom, venho pedir а vocкs alguma streamer que suporte vбrios objetos em um mesmo local, estou tendo problemas com a streamer do Incognito, dei uma pesquisada e achei uma chamada xStreamer, mais nгo consegui usб-la. Gostaria de saber se alguйm sabe ou conhece alguma que seja boa. Ou alguйm que saiba resolver o problema que estou tendo com a streamer do Incognito.

Atualmente tenho 7040 objetos, adicionei todos em um FS separado do GM..


Exemplo do problema que estб ocorrendo com os objetos. Eles estгo ficando transparente a uma certa distancia.




Agora o um pouco mais perto com os objetos aparecendo.



Todos os radiusdistance (Acho que й isso) estб 1000 e mesmo assim ele some :S

Exemplo:
pawn Код:
CreateDynamicObject(3458, 1493.69, -1724.61, 13.90,   0.00, 0.00, 0.00, -1, -1, -1, 1000.0);
Alguem sabe como resolver o meu problema?!

Obrigado
Reply
#2

Certa vez fiz um streamer, mas nгo sei se ainda deve funcionar.

Aconselho o streamer de Icognito, em plugin.

Abraзos
Reply
#3

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Certa vez fiz um streamer, mas nгo sei se ainda deve funcionar.

Aconselho o streamer de Icognito, em plugin.

Abraзos
Poderia me passar? Pois quero fazer alguns testes e se caso der certo de resolver os meus problemas eu comeзo a usб-la


Bom, tenho a streamer do Incognito tambйm, O que eu tenho й desse link: https://sampforum.blast.hk/showthread.php?tid=102865 ... Creio que seja o certo, mas mesmo esse problema acontece :/
Reply
#4

https://sampforum.blast.hk/showthread.php?tid=287831


Se vocк fez o os objetos longes provavelmente deve funcionar, ele deleta os objetos distantes para criar os mais prуximos, й um mйtodo de classificaзгo. Uma ideia maluca que tive na йpoca e que pareceu funcionar bem


http://solidfiles.com/d/55182/download/

Abraзos!
Reply
#5

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
https://sampforum.blast.hk/showthread.php?tid=287831


Se vocк fez o os objetos longes provavelmente deve funcionar, ele deleta os objetos distantes para criar os mais prуximos, й um mйtodo de classificaзгo. Uma ideia maluca que tive na йpoca e que pareceu funcionar bem


Abraзos!
Obrigado Bruno, mas estou com problema na include "ips_ini"
Nгo estou conseguindo achar :S

@EDIT
agr vi o download

Vlw
Reply
#6

Carrega

include IPS/ipstream

no gamemode

e no server.cfg o filterscript da pasta
Reply
#7

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Carrega

include IPS/ipstream

no gamemode

e no server.cfg o filterscript da pasta
PERFEITO Bruno!!!

Resolveu o meu problema, sу tem um porйm.
Nгo estou conseguindo utilizar a funзгo RemoveBuildingForPlayer, tive que adicionar o GM e com a include streamer do incognito.


Mais o problema de desaparecer os objetos foi resolvido, muito obrigado mesmo


Dica: Vocк deveria atualizar essa streamer sua, creio que muitas pessoas iriam gostar e usar


@EDIT
Bom, percebi outro problema, qual o limite de objetos da sua streamer ?
Pois muitos objetos desapareceram :S
Reply
#8

Tem que definir ali e compilar

PHP код:
#define MAX_STREAM          10000 
A include estб bem desatualizada, se eu tiver tempo atualizo ela. Abs!
Reply
#9

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Tem que definir ali e compilar

PHP код:
#define MAX_STREAM          10000 
A include estб bem desatualizada, se eu tiver tempo atualizo ela. Abs!
Eu tinha feito isso, mas continou a mesma coisa :/

Bom, ok entгo bruno.

Obrigado por ajudar, se atualizar ficarei grato haha
Reply
#10

Provavelmente й problema no foreach, lembro que teve algum problema assim .. Vou dar uma olhada aqui


EDIT:

Em streamer.pwn deixe da seguinte maneira:

pawn Код:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//    [iPs]TeaM Object Streamer 0.3d (V2)
//          Author: Bruno da Silva
//       http://www.ips-team.blogspot.com
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include <a_samp>


#define MAX_STREAM          05000
#define MIN_INTERVAL        00500

#define function%0(%1)      %0(%1); public %0(%1)

static i ;

#define foreach() \
            for( i = MaxPlayers; i > -1; i--) if(IsPlayerConnected(i))
           
// ===================== [ Declarar Variaveis ] ================================

stock static
    MaxPlayers,
    bool:objetoDeletado[MAX_PLAYERS][MAX_STREAM],
    objetoCriado[MAX_STREAM],
    Float:objetoDistancia[MAX_PLAYERS],
    structObject[MAX_STREAM char],
    objetoIdd[MAX_STREAM],
    Float:dataObject[MAX_STREAM][7],
    objetoConfigs[MAX_STREAM][2],
    objetosCriados[MAX_PLAYERS],
    objetoNumero[MAX_PLAYERS],
    objectModel[MAX_STREAM],
    objdetoIdd[MAX_STREAM],
    objCriados = 0;

// ========================== [ Funзхes ] ======================================

public OnFilterScriptInit()
{
    MaxPlayers = GetMaxPlayers();

    return SetTimer("ObjectUpdate", MIN_INTERVAL, true);
}


function createObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance, interior, worldids)
{
    if(MAX_STREAM - 1 == objCriados) {
        print("[ERRO] Informaзгo acessada invбlida (objeto numero " #MAX_STREAM - 1 " )");

        return false;
    }

    ++objCriados;

    objectModel[objCriados] = modelid;

    dataObject[objCriados][0] = X;
    dataObject[objCriados][1] = Y;
    dataObject[objCriados][2] = Z;

    dataObject[objCriados][3] = rX;
    dataObject[objCriados][4] = rY;
    dataObject[objCriados][5] = rZ;

    objetoConfigs[objCriados][0] = worldids;
    objetoConfigs[objCriados][1] = interior;
   
    dataObject[objCriados][6] = DrawDistance;

    structObject{objCriados} = 1;

    return objCriados;
}


function deleteObject(objectid)
{
    foreach()
    {
        DestroyPlayerObject(i, objectid);

        dataObject[objectid][0] = 0;
        dataObject[objectid][1] = 0;
        dataObject[objectid][2] = 0;

        dataObject[objectid][3] = 0;
        dataObject[objectid][4] = 0;
        dataObject[objectid][5] = 0;

        dataObject[objectid][6] = 0;

        objetoIdd[objectid] = 0;

        objectModel[objectid] = 0;
       
        objetoConfigs[objectid][0] = 0;
        objetoConfigs[objectid][1] = 0;
       
        structObject{objectid} = 0;

    }
    return true;
}


function moveObject(objectid, Float:pX, Float:pY, Float:pZ, Float:Speed, Float:rotX, Float:rotY, Float:rotZ)
{
    foreach() {
        dataObject[objectid][0] = pX;
        dataObject[objectid][1] = pY;
        dataObject[objectid][2] = pZ;

        #if defined PlayAudioStreamForPlayer
        {
            MovePlayerObject(i, objectid, pX, pY, pZ, Speed, rotX, rotY, rotZ);
        }
        #else
        {
            MovePlayerObject(i, objectid, pX, pY, pZ, Speed);
        }
        #endif
    }
    return 1;
}



function ObjectUpdate()
{
    static objetoPerto;

    foreach()
    {
        for(new o ; o != MAX_STREAM; o++)
        {
            if(structObject{o})
            {
                objetoPerto = IsPlayerInRangeOfPoint(i, dataObject[o][6], dataObject[o][0], dataObject[o][1], dataObject[o][2]);

                if(objetoPerto && !objetoCriado[o] && GetPlayerVirtualWorld(i) == objetoConfigs[o][0] && GetPlayerInterior(i) == objetoConfigs[o][1]) {
                    static
                        Float: px,
                        Float: py,

                        Float: pz,
                        Float: pd;

                    GetPlayerPos(i, px, py, pz);

                    px -= dataObject[o][0];
                    py -= dataObject[o][1];
                    pz -= dataObject[o][2];

                    pd = floatsqroot((px * px) + (py * py) + (pz * pz));

                    if(pd > objetoDistancia[i]) {
                        objetoDistancia[i] = pd;
                        objetoNumero[i] = o;
                    }

        // criar ojeto
                    ++objetoCriado[o];
                    ++objetosCriados[i];

                    objetoIdd[o] = CreatePlayerObject(i, objectModel[o], dataObject[o][0], dataObject[o][1], dataObject[o][2], dataObject[o][3], dataObject[o][4], dataObject[o][5], dataObject[o][6]);

        // tirar objeto caso limite for ultrapssado
                    if(objetosCriados[i] > (MAX_OBJECTS - 50)) {         // PREVENT CRASH
                        DestroyPlayerObject(i, objetoIdd[objetoNumero[i]]);
                        objetoDistancia[i] = 0.0;

                        --objetosCriados[i];
                        --objetoCriado[o];
                    }

                    continue;
                }
                if(objetoPerto && !objetoCriado[o]) {
                    DestroyPlayerObject(i, objetoIdd[o]);

                    --objetoCriado[o];
                    --objetosCriados[i];
                }
            }
        }
    }
    return true;
}


// streamer.pwn

Aqui funcionou corretamente sem deletar objetos. Era o foreach mesmo, vou atualizar para deixar isto rбpido.

Abraзos

carregou uma cidade inteira aqui.


EDIT 2:
Coloquei um sistema de loops simples e rбpido, sу testar agora rapaz!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)