Portal SAMP
[Ajuda] criar objeto somente em um world - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] criar objeto somente em um world (/showthread.php?tid=2405)



criar objeto somente em um world - spongebob - 20/05/2022

sei que o "CreateDynamicObject" tem varios parametros mais no meu codigo é assim:
Código PHP:
CreateDynamicObject(970, -900.00000, -1320.00000118.00000,   0.000005.2460083.49600);
CreateDynamicObject(5794, -876.29999, -1333.59998121.40000,   5.242000.00000314.74200);
CreateDynamicObject(970, -899.70001, -1317.30005117.80000,   0.000005.2500083.50000); 
então se eu mudo de virtualworld os objetos estão em todos , quero que fique só no world  escolhido tipo "worldid = 1" como faço isso sem precisar adicionar o id do world em todas as linhas pois sao muitas? 


RE: criar objeto somente em um world - k2bi_YT - 20/05/2022

Código PHP:
stock CreateDynamicObject_World(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rzworldid = -1interiorid = -1playerid = -1Float:streamdistance STREAMER_OBJECT_SDFloat:drawdistance STREAMER_OBJECT_DDSTREAMER_TAG_AREA:areaid STREAMER_TAG_AREA:-1priority 0)
    return CreateDynamicObject(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz1interiorid = -1playerid = -1Float:streamdistance STREAMER_OBJECT_SDFloat:drawdistance STREAMER_OBJECT_DDSTREAMER_TAG_AREA:areaid STREAMER_TAG_AREA:-1priority 0);

#define CreateDynamicObject CreateDynamicObject_World 

Adicione esse code no topo da GM, pode ser após as adição das includes

Você pode usar a função normalmente porém, independente qual world você colocar na worldid, sempre será criado no world 1

OBS: Todos os objetos do servidor serão criado apenas no world  '1', caso seja isso seu objetivo.


RE: criar objeto somente em um world - xbruno1000x - 20/05/2022

Infelizmente, até onde sei, é necessário alterar em todas as linhas. Uma dica que eu dou é remover o código do mapa para uma aba separada e lá alterar(só dar um CRTL + H) ');' por ', 1);'.

Edit: no caso do código do K2bi estará alterando em todos os mapas, o meu exemplo é para um mapa isolado.


RE: criar objeto somente em um world - spongebob - 20/05/2022

(20/05/2022 17:15)k2bi_YT Escreveu:
Código PHP:
stock CreateDynamicObject_World(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rzworldid = -1interiorid = -1playerid = -1Float:streamdistance STREAMER_OBJECT_SDFloat:drawdistance STREAMER_OBJECT_DDSTREAMER_TAG_AREA:areaid STREAMER_TAG_AREA:-1priority 0)
    return CreateDynamicObject(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz1interiorid = -1playerid = -1Float:streamdistance STREAMER_OBJECT_SDFloat:drawdistance STREAMER_OBJECT_DDSTREAMER_TAG_AREA:areaid STREAMER_TAG_AREA:-1priority 0);

#define CreateDynamicObject CreateDynamicObject_World 

Adicione esse code no topo da GM, pode ser após as adição das includes

Você pode usar a função normalmente porém, independente qual world você colocar na worldid, sempre será criado no world 1

OBS: Todos os objetos do servidor serão criado apenas no world  '1', caso seja isso seu objetivo.

sim é exatamente isso que eu quero só criar objetos no world'1' colei o codigo no topo da gm compila sem erros porem ao trocar de world os objetos ainda estão la , aqui o codigo de para troca
Código PHP:
if(!strcmp(cmdtext"/world"true))
    {
    new 
string[32];
    
format(stringsizeof(string), "Your virtual world: %i"GetPlayerVirtualWorld(playerid));
    
SendClientMessage(playerid0xFFFFFFFFstring);
    return 
1;
    }

    if (
strcmp(cmdtext"/world1"true) == 0)
{
    SetPlayerVirtualWorld(playerid1);
    return 1;
}

    if (
strcmp(cmdtext"/world2"true) == 0)
{
    SetPlayerVirtualWorld(playerid2);
    return 1;


(20/05/2022 17:19)xbruno1000x Escreveu: Infelizmente, até onde sei, é necessário alterar em todas as linhas. Uma dica que eu dou é remover o código do mapa para uma aba separada e lá alterar(só dar um CRTL + H) ');' por ', 1);'.

Edit: no caso do código do K2bi estará alterando em todos os mapas, o meu exemplo é para um mapa isolado.

o problema são a ordem dos parametros se 'world' estivesse em todas as linhas eu faria isso mesmo mais acho que se por 'world = -1' usando CTRL+H  No primeiro parametro em todas as linhas o codigo não funcionaria pois primeiro vem o id do objeto.


RE: criar objeto somente em um world - caliiu_ - 20/05/2022

Boa noite, a forma que eu utilizo é essa, com base na include streamer:


Código:
// Mapa
new object_world = 1, object_int = -1;
CreateDynamicObject(970, -900.00000, -1320.00000, 118.00000,  0.00000, 5.24600, 83.49600, object_world, object_int, -1, 300.00, 300.00);
CreateDynamicObject(5794, -876.29999, -1333.59998, 121.40000,  5.24200, 0.00000, 314.74200, object_world, object_int, -1, 300.00, 300.00);
CreateDynamicObject(970, -899.70001, -1317.30005, 117.80000,  0.00000, 5.25000, 83.50000, object_world, object_int, -1, 300.00, 300.00);



RE: criar objeto somente em um world - k2bi_YT - 20/05/2022

Vê se existe objetos em filterscript, caso tenha deve fazer o mesmo procedimento. E também objetos criados com CreateDynamicObjectEx, que nesse caso criados com essa função 'Ex', não será criado para um mundo fixo e sim para "todos"


RE: criar objeto somente em um world - spongebob - 20/05/2022

(20/05/2022 19:41)caliiu_ Escreveu: Boa noite, a forma que eu utilizo é essa, com base na include streamer:


Código:
// Mapa
new object_world = 1, object_int = -1;
CreateDynamicObject(970, -900.00000, -1320.00000, 118.00000,  0.00000, 5.24600, 83.49600, object_world, object_int, -1, 300.00, 300.00);
CreateDynamicObject(5794, -876.29999, -1333.59998, 121.40000,  5.24200, 0.00000, 314.74200, object_world, object_int, -1, 300.00, 300.00);
CreateDynamicObject(970, -899.70001, -1317.30005, 117.80000,  0.00000, 5.25000, 83.50000, object_world, object_int, -1, 300.00, 300.00);

todas as respostas foram otimas mais no meu caso sua dica me atendeu melhor junto com a do xbruno dei um CTRL+H meu codigo ficou assim não ta perfeito mais funciona bem obrigado a todos , fechou.
Código PHP:
CreateDynamicObject(970, -900.00000, -1320.00000118.00000,   0.000005.2460083.49600object_worldobject_int);
CreateDynamicObject(5794, -876.29999, -1333.59998121.40000,   5.242000.00000314.74200object_worldobject_int);