Float:AC_Position[3],
pLastPosTick[MAX_PLAYERS],
BitArray:AC_SafeTP<MAX_PLAYERS>
;
Public'in altına ekleyiniz.
public OnPlayerUpdate
if(gettime() - pLastPosTick[playerid] > 2) //updates the player location every 2 seconds.
{
//on-foot
if( !IsPlayerInRangeOfPoint(playerid, 70.0, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]) && !Bit_Get(AC_SafeTP, playerid) && !IsPlayerNPC(playerid)[/li]
[/list]
&& GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
CallLocalFunction("Teleport", "if", playerid, GetPlayerDistanceFromPoint(playerid, AC_Position[ 0 ], AC_Position[ 1 ], AC_Position[ 2 ]));
}
// on-vehicle
else if( !IsPlayerInRangeOfPoint(playerid, 900.0, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]) && !Bit_Get(AC_SafeTP, playerid) && !IsPlayerNPC(playerid)[/li]
[/list]
&& GetVehicleSpeed( GetPlayerVehicleID(playerid) ) <= 9999 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
new vehicleid;
Bit_Set(AC_SafeTP, vehicleid, true);
CallLocalFunction("Teleport", "if", playerid, GetPlayerDistanceFromPoint(playerid, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]));[/li]
[/list]
}
GetPlayerPos(playerid, AC_Position[ 0 ], AC_Position[ 1 ], AC_Position[ 2 ]);
Bit_Set(AC_SafeTP, playerid, false);
pLastPosTick[ playerid ] = gettime( ) + 2;
}
Teleportu fixleyecegiz.
public OnPlayerInRangeOfPoint
stock pds_SetPlayerPos(playerid, Float:PosX, Float:PosY, Float:PosZ)
{
GetPlayerPos(playerid, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]);[/li]
[/list]
Bit_Set(AC_SafeTP, playerid, true);
return SetPlayerPos(playerid, PosX, PosY, PosZ);
}
stock pds_SetPlayerPosFindZ(playerid, Float:PosX, Float:PosY, Float:PosZ)
{
GetPlayerPos(playerid, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]);[/li]
[/list]
Bit_Set(AC_SafeTP, playerid, true);
return SetPlayerPosFindZ(playerid, PosX, PosY, PosZ);
}
stock pds_PutPlayerInVehicle(playerid, vehicleid, seatid)
{
GetPlayerPos(playerid, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]);[/li]
[/list]
Bit_Set(AC_SafeTP, playerid, true);
return PutPlayerInVehicle(playerid, vehicleid, seatid);
}
Modun boş bir yerine
forward ac_OnPlayerExitVehicle(playerid, vehicleid);
public ac_OnPlayerExitVehicle(playerid, vehicleid)
{
Bit_Set(AC_SafeTP, playerid, true);
return ac_OnPlayerExitVehicle(playerid, vehicleid);
}
stock pds_SetPlayerInterior(playerid, interiorid)
{
GetPlayerPos(playerid, AC_Position
[list]
[li], AC_Position[1], AC_Position[2]);[/li]
[/list]
Bit_Set(AC_SafeTP, playerid, true);
return SetPlayerInterior(playerid, interiorid);
}
static stock GetVehicleSpeed( vehicleid ) //records in KMH.
{
new Float:VehiclePos[3],
VehicleVelocity;
Bit_Set(AC_SafeTP, vehicleid, true);
GetVehicleVelocity( vehicleid, VehiclePos
[list]
[li], VehiclePos[1], VehiclePos[2] );[/li]
[/list]
VehicleVelocity = floatround( floatsqroot( VehiclePos
[list]
[li]*VehiclePos[/li]
[li]+ VehiclePos[1]*VehiclePos[1] + VehiclePos[2]*VehiclePos[2] ) * 1 );[/li]
[/list]
return VehicleVelocity;
}ANLATIM : Gerekli Public ve Stock larımıza ekledik. Şimdi ise
forward Teleport(playerid);
public Teleport(playerid)
{
Kick(playerid);
return 1;
}ANLATIM : Kick için gerekli fonksionlarımızıda ekledik. Laakin herşey sorunsuz compile oldu teste geçtiniz Spawn olunca atılıcaksınız.
Bunu engellemek için 'OnPlayerSpawn' ve 'OnPlayerConnect' Publicine şart eklemeliyiz.
Publicinin altına ekleyin.
PAWN Kodu: Seç
public OnPlayerSpawn
Bit_Set(AC_SafeTP, playerid, true);
Publicinin altına ekleyin.
PAWN Kodu: Seç
public OnPlayerConnect
Bit_Set(AC_SafeTP, playerid, true);----------------------------------------
ANLATIM : Bu Şekilde sunucuya girdiğimizde Teleport'dan Kick yemeyiz. Sisteme belirttik giriş yapıyorum teleport değilim beni Kickleme demiş gibi olduk :)
BILGI NOT: Eklediğimiz şartlardan örnek vererek anlatıyım bir komut kullandınız örnek veriyim /evegit eve gitti veya evin kapısının yanına sizi teleporttan atar
eve gittiğiniz komutun altına OnPlayerConnect'e eklediğimiz şartı ekleyiniz. Bu Sadece eve git deil Bir yere ışınlanan komutların altınada ekleyiniz. örneğin
cmd:dm(playerid,params[])
{
SetPlayerPos(playerid, x,y,z);
Bit_Set(AC_SafeTP, playerid, true);
return 1;
} NOT DEVAM : Biryere giden ışınlanan komutların altına ekleyiniz '/git' '/cek' gibi.
Umarım Yardımcı Olmuşumdur, Anlattığım şeyden faydalanarak örnek alarak mantık
yaratabilirsiniz.
Bir Hilenin Fixi Sadece Fixlediğiniz Hilenin Fixi Deildir.
Anlatım : PiloT
gtamulti uzun süredir böyle bir kalite görmedi pilot abi.
Bir Hilenin Fixi Sadece Fixlediğiniz Hilenin Fixi Deildir.
..Pilot aka sUpErCoDer
bu sözü duvarıma yazdırıyorum pilot abi adamsın.
allah sabır versin
Alıntı yapılan: Amper - 30 Eylül 2019, 20:18:45Bir Hilenin Fixi Sadece Fixlediğiniz Hilenin Fixi Deildir.
..Pilot aka sUpErCoDer
press f
Alıntı yapılan: Amper - 30 Eylül 2019, 20:18:45gtamulti uzun süredir böyle bir kalite görmedi pilot abi.
Bir Hilenin Fixi Sadece Fixlediğiniz Hilenin Fixi Deildir.
..Pilot aka sUpErCoDer
bu sözü duvarıma yazdırıyorum pilot abi adamsın.
allah sabır versin
Şair burada ne demek istiyor Gürkan bey?
henüz ben de anlamış değilim ama duvar yazıma her gün bakıp anlamayı deniyorum bu şifreyi çözebileceğime eminim.
tek bildiğim şey Pilot abimizin süper olduğu
Evet, güncel bilgilerim var. Sözün altında yatan anlamı sonunda buldum sanırım. Bir hile fixlemenin basit bir iş olmadığını, bir hile fixlemenin aslında son derece ehemmiyeti olduğunu ve düşünülenden daha fazla yararı olacağını demek istemiş.
Alıntı yapılan: Amper - 30 Eylül 2019, 20:29:30Evet, güncel bilgilerim var. Sözün altında yatan anlamı sonunda buldum sanırım. Bir hile fixlemenin basit bir iş olmadığını, bir hile fixlemenin aslında son derece ehemmiyeti olduğunu ve düşünülenden daha fazla yararı olacağını demek istemiş.
elbette bu sizin kendi görüşünüzdür, bende hemen hemen aynı düşüncelere sahibim ancak bu sözün bu kadar basit ve net yorumlanabilmesini pek mümkün olduğunu düşünmüyorum. yarın Cumhuriyet dönemi Türk edebiyatının gelişmesinde önemli rol oynamış hocama bunu sormak isterim.
Alıntı yapılan: Amper - 30 Eylül 2019, 20:29:30Evet, güncel bilgilerim var. Sözün altında yatan anlamı sonunda buldum sanırım. Bir hile fixlemenin basit bir iş olmadığını, bir hile fixlemenin aslında son derece ehemmiyeti olduğunu ve düşünülenden daha fazla yararı olacağını demek istemiş.
amper the edebiyatshaker
Amper bilmiyorsun konuşma kardeşim.
Bu bir ADD-ON yada anlatım değil, kilit.