GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: xentrow - 24 Aralık 2021, 01:09:44

Başlık: SetDynamicActorPos
Gönderen: xentrow - 24 Aralık 2021, 01:09:44
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
Data[id][Pos][0] = x + 1;
Data[id][Pos][1] = y + 1;
Data[id][Pos][2] = z;
SetDynamicActorPos(Data[id][Actor], Data[id][Pos][0], Data[id][Pos][1], Data[id][Pos][2]);
kodunu OnPlayerUpdate kısmına ekliyorum fakat aktörü belirttiğim koordinatlarda göremiyorum.
Başlık: Ynt: SetDynamicActorPos
Gönderen: Necip - 24 Aralık 2021, 01:41:58
actorID nasıl tanımlı?
Başlık: Ynt: SetDynamicActorPos
Gönderen: xentrow - 24 Aralık 2021, 09:15:21
Alıntı yapılan: Necip - 24 Aralık 2021, 01:41:58
actorID nasıl tanımlı?

Data[id][Actor] = CreateDynamicActor(Data[id][Skin], Data[id][Pos][0], Data[id][Pos][1], Data[id][Pos][2], Data[id][Pos][3], 1, 100.0, Data[id][ExteriorVW], Data[id][Interior], -1, 100.00, -1, 0);
Başlık: Ynt: SetDynamicActorPos
Gönderen: squarepants - 24 Aralık 2021, 12:37:57
Aşağıdaki şekilde dener misin :
new Float:x, Float:y, Float:z, acWorld = GetPlayerVirtualWorld(playerid);
GetPlayerPos(playerid, x, y, z);
Data[id][Pos][0] = x + 1;
Data[id][Pos][1] = y + 1;
Data[id][Pos][2] = z;
Data[id][ExteriorVW] = acWorld;
SetDynamicActorVirtualWorld(Data[id][Actor], acWorld);
SetDynamicActorPos(Data[id][Actor], Data[id][Pos][0], Data[id][Pos][1], Data[id][Pos][2]);
Başlık: Ynt: SetDynamicActorPos
Gönderen: xentrow - 24 Aralık 2021, 12:54:26
Yine göremiyorum aktörü.
Başlık: Ynt: SetDynamicActorPos
Gönderen: squarepants - 24 Aralık 2021, 15:59:52
CreateDynamicActor fonksionunu aşağıdaki şekilde düzenleyip tekrar dener misin :
Data[id][Actor] = CreateDynamicActor(Data[id][Skin], Data[id][Pos][0], Data[id][Pos][1], Data[id][Pos][2], Data[id][Pos][3], 1, 100.0, Data[id][ExteriorVW], Data[id][Interior]);
new Float:x, Float:y, Float:z, acWorld = GetPlayerVirtualWorld(playerid);
GetPlayerPos(playerid, x, y, z);
Data[id][Pos][0] = x + 1;
Data[id][Pos][1] = y + 1;
Data[id][Pos][2] = z;
Data[id][ExteriorVW] = acWorld;
SetDynamicActorVirtualWorld(Data[id][Actor], acWorld);
SetDynamicActorPos(Data[id][Actor], Data[id][Pos][0], Data[id][Pos][1], Data[id][Pos][2]);
Başlık: Ynt: SetDynamicActorPos
Gönderen: xentrow - 24 Aralık 2021, 17:38:27
SetDynamicActorPos ile hala aktörü göremiyorum, koordinatlarda ve aktör oluşturmada bir sıkıntı yok. Problem ne olabilir?
Başlık: Ynt: SetDynamicActorPos
Gönderen: xentrow - 24 Aralık 2021, 18:20:33
Sorun tahminimce bu:
OnPlayerUpdate çok hızlı döndüğü için aktör geç yükleniyor.
Bunu nasıl düzeltebilirim?
Başlık: Ynt: SetDynamicActorPos
Gönderen: Spicaike - 24 Aralık 2021, 19:35:50
Alıntı yapılan: xentrow - 24 Aralık 2021, 18:20:33
Sorun tahminimce bu:
OnPlayerUpdate çok hızlı döndüğü için aktör geç yükleniyor.
Bunu nasıl düzeltebilirim?

https://team.sa-mp.com/wiki/SetTimer.html
https://team.sa-mp.com/wiki/SetTimerEx.html
Başlık: Ynt: SetDynamicActorPos
Gönderen: Murat Budak - 24 Aralık 2021, 20:29:26
Angle değeri değiştiğinde npcnin haraket etmesi gerekiyor yoksa görünmüyor diye biliyorum
Başlık: Ynt: SetDynamicActorPos
Gönderen: squarepants - 24 Aralık 2021, 22:19:49
Stream Distance (Akış Mesafesi) alanı dışına çıkıldığında aktör kimse tarafından görüntülenemiyor. İkinci bir durum ise wirtualworld = -1 parametresi pickuplarda olduğu gibi tüm sanal dünyalar arası görüntülenmeye olanak sağlamıyor. Aktörler sadece tek bir sanal dünyada oluşturulabiliyor. Bu durumda aktörü direkt olarak görmek için parametreleri doğru gir, pozisyonlarını değiştirmek için ise SetDynamicActorPos fonksiyonu yerine tekrar oluşturmayı dene. Örnek :

public OnGameModeInit()
{
        //Data[id][ExteriorVW] = 0 olarak varsayıldı. Data[id][Interior] = -1 olarak varsayıldı.
Data[id][Actor] = CreateDynamicActor(Data[id][Skin], Data[id][Pos][0], Data[id][Pos][1], Data[id][Pos][2], Data[id][Pos][3], _, _, Data[id][ExteriorVW], Data[id][Interior]);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/aktorisinla", cmdtext, true, 10) == 0)
{
            if (IsValidDynamicActor(Data[id][Actor]))
            {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
DestroyDynamicActor(Data[id][Actor]);
Data[id][Actor] = CreateDynamicActor(0, x + 1, y + 1, z, 0, _, _, 0);
        SetDynamicActorPos(Data[id][Actor], x + 1, y + 1, z);
    }
    else { SendClientMessage(playerid, -1, "Akor Cevrimici Degil (!)"); }
    return 1;
}
        return 0;
}
Başlık: Ynt: SetDynamicActorPos
Gönderen: Zellda - 26 Aralık 2021, 19:42:06
Discord yolla bakalim gece
Başlık: Ynt: SetDynamicActorPos
Gönderen: xentrow - 27 Aralık 2021, 21:38:16
K&A