admin (şimdiye kadar 8 posta) | | "/savepos" ve "/loadpos" serbest dolaşımlı (freeroam) oyun modu kullanan sunucu sahiplerinin açısından son derece faydalı iki komuttur. Oyuncular, bu komutları kullanarak mevcut koordinatları kaydedebilir ve belirledikleri koordinatlara ışınlanabilir.
İlk olarak oyun modunuzun başına aşağıda verdiğimiz kodları yapıştırın.
Alıntı: | new Float:kPosX[MAX_PLAYERS];
new Float:kPosY[MAX_PLAYERS];
new Float:kPosZ[MAX_PLAYERS];
new Float:kPosA[MAX_PLAYERS];
new kInt[MAX_PLAYERS];
new kvWorld[MAX_PLAYERS];
new kSaved[MAX_PLAYERS]; |
OnPlayerConnect bölümüne aşağıda verdiğimiz kodları yapıştırın.
Alıntı: | kSaved[playerid] = 0; |
Oyun modunuzun sonuna ise aşağıda verdiğimiz kodları yapıştırın.
Alıntı: | CMD:loadpos(playerid, params[])
{
if(kSaved[playerid] == 0) return SendClientMessage(playerid, -1, "Kayıtlı bir koordinat bulunamadı." );
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Araçta olduğunuz için bu komutu kullanamazsınız." );
// Aşağıdaki /* ile */ işaretlerini komutun can değeri 100'ün altında olmayan kullanıcılar tarafından kullanılmasını engellemek istiyorsanız kaldırın ama can değeri 100'ü altında olan kullanıcıların da kullanmasını istiyorsanız işaretleri kaldırmayın.
/*
new Float:soyCan[MAX_PLAYERS];
GetPlayerHealth(playerid, soyCan);
if(soyCan < 100) return SendClientMessage(playerid, -1, "Canınız 100'ün altında olduğu için bu komutu kullanamıyorsunuz." );
*/
SetPlayerPos(playerid, kPosX[playerid], kPosY[playerid], kPosZ[playerid]);
SetPlayerFacingAngle(playerid, kPosA[playerid]);
SetPlayerInterior(playerid, kInt[playerid]);
SetPlayerVirtualWorld(playerid, kvWorld[playerid]);
return 1;
}
CMD:savepos(playerid, params[])
{
// if(kSaved[playerid] == 1) return SendClientMessage(playerid, -1, "Oyuna girdiğinizde sadece bir kere koordinat kaydetme hakkınız olur ve siz bunu kullandınız." );
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Araçta olduğunuz için bu komutu kullanamazsınız." );
SetPlayerPos(playerid, kPosX[playerid], kPosY[playerid], kPosZ[playerid]);
SetPlayerFacingAngle(playerid, kPosA[playerid]);
SetPlayerInterior(playerid, kInt[playerid]);
SetPlayerVirtualWorld(playerid, kvWorld[playerid]);
kSaved[playerid] = 1;
new Float:sosposx, Float:sosposy, Float:sosposz, Float:sosposa;
GetPlayerPos(playerid, sosposx, sosposy, sosposz);
GetPlayerFacingAngle(playerid, sosposa);
kPosX[playerid] = sosposx;
kPosY[playerid] = sosposy;
kPosZ[playerid] = sosposz;
kPosA[playerid] = sosposa;
kInt[playerid] = GetPlayerInterior(playerid);
kvWorld[playerid] = GetPlayerVirtualWorld(playerid);
return 1;
} |
|