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.
actorID nasıl tanımlı?
Alıntı yapılan: Necip - 24 Aralık 2021, 01:41:58actorID 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);
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]);
Yine göremiyorum aktörü.
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]);
SetDynamicActorPos ile hala aktörü göremiyorum, koordinatlarda ve aktör oluşturmada bir sıkıntı yok. Problem ne olabilir?
Sorun tahminimce bu:
OnPlayerUpdate çok hızlı döndüğü için aktör geç yükleniyor.
Bunu nasıl düzeltebilirim?
Alıntı yapılan: xentrow - 24 Aralık 2021, 18:20:33Sorun 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
Angle değeri değiştiğinde npcnin haraket etmesi gerekiyor yoksa görünmüyor diye biliyorum
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;
}
Discord yolla bakalim gece
K&A