GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Dinamik Asansör Sistemi [Y_INI]

Başlatan squarepants, 03 Ocak 2021, 16:20:46

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

squarepants

GİRİŞ

Herkese iyi forumlar, önceden yapmış olduğum bir araştırmaya göre, çeşitli platformlar altında bu konu ile ilgili herhangi bir paylaşım görememiştim ve daha sonra bu projeyi oluşturma kararı almıştım. Uzun bir zaman sonra sizlerin de bu projeye ihtiyaç duyabileceğinizi düşündüm ve paylaşma kararı aldım. Umarım yardımcı olur.

NEDEN Y_INI ?

Aslında herhangi bir nedeni yok, sadece o an için bende bulunan YSI kütüphanesini kullanmayı tercih ettim. İlerleyen zamanlarda MySQL için tekrar yayımlanabilir.

SISTEM HAKKINDA

Sistem temelde, iki nokta arasında belirtilen koordinat ve rotasyonlar doğrultusunda git-gel hareketi yapan bir nesneden oluşmaktadır. Yani buna başka bir deyişle hareketli nesne de denilebilir. Bu projeyi tasarlarken FreeRoam sunucularını benimseyerek oluşturmuştum ancak yine de RolePlay sunucuları için de kullanılabilir olduğunu düşünüyorum. Proje geliştirilmeye açık olup, çeşitli varyasyonları üretilebilir.

KOMUTLAR

-> /ayardim
- Sistem ve komutlara  ait oluşturulan komut listesini görüntüler.

-> /aolustur [metin]
- Belirilen metin doğrultusunda boşta kalan nesne kimliğine ait asansör oluşturur.

-> /abitis [objectid]
- Oluşturulan asansör kimliğine ait bitiş koordinatlarını almanızı sağlar.

-> /akdeg [objectid]
- Oluşturulan asansör kimliğine ait koordinat ve rotasyon düzenlemenizi sağlar.

-> /ahareket
- Yakınında olduğunuz herhangi bir asansör için hareket etme eylemini gerçekleştirir.

-> /abilgi [objectid]
- Oluşturulan asansör kimliğine ait genel bilgileri görüntüler.

-> /akaldir[objectid]
- Belirtilen asansör kimliğine ait nesne silme işlemini gerçekleştirir.

SABİTLER

#define DIALOG_ASANSOR  (856) // Asansör Dialog Kimliği
#define MAX_ASANSOR_HIZ (3.0) // Asansör Hareket Hızı (Birim Başına Saniye)
#define MAX_ASANSOR_ID (200) // Maximum Asansör Kimliği
#define MAX_ASANSOR_MESAFE  (3.0) // Asansör için Yakınlık Mesafesi
#define OBJE_YOLU        "/Asansorler/%d.ini" // Kayıt için Alınan Dizin

KURULUM

-> Asansor.pwn adlı dosyayı filterscripts dizininin içerisine atın.
-> server.cfg adlı metin belgesini açın ve filterscripts adlı satıra Asansor adlı metni ekleyin.
-> YSI, ZCMD, foreach kütüphanesi ile sscanf2, MapAndreas, streamer eklentisini indirin ve kurun.
-> Scriptfiles adlı dizinin içerisine Asansorler adlı bir dosya klasörü oluşturun.

İNDİRME BAĞLANTILARI :
YSI - https://github.com/Y-Less/YSI/archive/master.zip
sscanf2 - https://github.com/maddinat0r/sscanf/releases/tag/v2.8.3
MapAndreas - https://github.com/philip1337/samp-plugin-mapandreas/releases
streamer - https://github.com/samp-incognito/samp-streamer-plugin/releases
foreach - https://github.com/karimcambridge/samp-foreach
zcmd - https://github.com/Southclaws/zcmd
Asansor.pwn - https://s7.dosya.tc/server19/5drmk7/Asansor_ThePosition.rar.html
VirusTotal - https://www.virustotal.com/gui/file/0e8a8c3caf2b0dad6a4da3da1a109ae23cbafc25a423b4864c2be345fd7eb029/detection

DipNot1 : CreateObject() fonksiyonu için minimum 1 obje kimliği kaldığına emin olmalısınız. Aksi halde konum ve rotasyon düzenleme işlemi gerçekleştirilmez. Ayrıca nesne kimliklerinin çakışmasını önlemek için Asansor adlı metni server.cfg içerisindeki filterscripts adlı satırın ilk başına ekleyin.

DipNot2 : Eğer nesneyi havada boş bir alanda oluşturmak istiyorsanız, jetpack kullanarak /aolustur komutunu kullanmanzı veya nesneyi oluşturduktan sonra /akdeg [objectid] komutu ile koordinat ve lokasyonları yeniden düzenlemenizi öneriyorum.

Buraya kadardı, umarım yardımcı olabilmişimdir. Herhangi bir sorunuz veya öneriniz olursa özelden veya konu içerisinden bildirebilirsiniz. Herkese iyi forumlar.

Eğitici Bir Video Paylaşımı :

Son düzenlenme: 03 Ocak 2021, 20:09:26 ThePosition

Zeynel

Avrupa HP Hırsız Polis

Lloyd

Emeğin için teşekkürler,yararlı bir paylaşım. :helal:
Son düzenlenme: 03 Ocak 2021, 17:44:32 Lloyd


squarepants

Yorumlarınız için teşekkürler ^^.


Backup

Emeğine sağlık güzele benziyor.  Object şu tarz editable olursa daha kullanışlı olur zira ince detaylar için müdahale gerekecektir.

https://hizliresim.com/TRNWZF
https://hizliresim.com/Uej5FQ


DracDonix

İmzanız forum kurallarına uymamaktadır. (daha küçük boyutta bir imza seçiniz.)

squarepants

Alıntı yapılan: Backup - 03 Ocak 2021, 18:43:40
Emeğine sağlık güzele benziyor.  Object şu tarz editable olursa daha kullanışlı olur zira ince detaylar için müdahale gerekecektir.

https://hizliresim.com/TRNWZF
https://hizliresim.com/Uej5FQ
Yorumun için teşekkürler, tam olarak ne demek istediğini anlayamadım, biraz daha ayrıntılı bilgi verebilir misin?
Alıntı yapılan: DracDonix - 03 Ocak 2021, 19:00:31
eline sağlık
Yorumun için teşekkürler.


NexoR

Alıntı yapılan: ThePosition - 03 Ocak 2021, 19:12:37
Alıntı yapılan: Backup - 03 Ocak 2021, 18:43:40
Emeğine sağlık güzele benziyor.  Object şu tarz editable olursa daha kullanışlı olur zira ince detaylar için müdahale gerekecektir.

https://hizliresim.com/TRNWZF
https://hizliresim.com/Uej5FQ
Yorumun için teşekkürler, tam olarak ne demek istediğini anlayamadım, biraz daha ayrıntılı bilgi verebilir misin?

Objeyi EditObject olarak düzenlemeni tavsiye ediyor.


squarepants

@NexoR yorumun için teşekkürler, zaten bu fonksiyon bulunuyor :
Asansor[Asansor[objectid][asID]][Isinla] = true;
SetDynamicObjectPos(Asansor[objectid][asID], 0, 0, -10);
kukObj = CreateObject(18755, Asansor[objectid][asFPoints][0], Asansor[objectid][asFPoints][1], Asansor[objectid][asFPoints][2], Asansor[objectid][Rotasyon][0], Asansor[objectid][Rotasyon][1], Asansor[objectid][Rotasyon][2], 300.0);
As_Obj_ID[kukObj] = kukObj;
EditObject(playerid, As_Obj_ID[kukObj]);


Backup


Alıntı yapılan: ThePosition - 03 Ocak 2021, 19:12:37
Alıntı yapılan: Backup - 03 Ocak 2021, 18:43:40
Emeğine sağlık güzele benziyor.  Object şu tarz editable olursa daha kullanışlı olur zira ince detaylar için müdahale gerekecektir.

https://hizliresim.com/TRNWZF
https://hizliresim.com/Uej5FQ
Yorumun için teşekkürler, tam olarak ne demek istediğini anlayamadım, biraz daha ayrıntılı bilgi verebilir misin?
Alıntı yapılan: DracDonix - 03 Ocak 2021, 19:00:31
eline sağlık
Yorumun için teşekkürler.


Alıntı yapılan: ThePosition - 03 Ocak 2021, 20:04:02
@NexoR yorumun için teşekkürler, zaten bu fonksiyon bulunuyor :
Asansor[Asansor[objectid][asID]][Isinla] = true;
SetDynamicObjectPos(Asansor[objectid][asID], 0, 0, -10);
kukObj = CreateObject(18755, Asansor[objectid][asFPoints][0], Asansor[objectid][asFPoints][1], Asansor[objectid][asFPoints][2], Asansor[objectid][Rotasyon][0], Asansor[objectid][Rotasyon][1], Asansor[objectid][Rotasyon][2], 300.0);
As_Obj_ID[kukObj] = kukObj;
EditObject(playerid, As_Obj_ID[kukObj]);

Başta komut ile objeyi taşıyınca olmadığını zannetmiştim. O zaman sistem süper eline sağlık.



Holmes

Ya Valla ThePosition Kral  gibi Kral beee Sistem Yararli Valla :kalp:  :kalp:  :helal:

GTA-TR.net | #2026

squarepants


Radless

silindi
Son düzenlenme: 26 Ocak 2021, 23:30:08 Radless
"Life's too short to hold grudges."

squarepants

Alıntı yapılan: Radless - 04 Ocak 2021, 21:57:37
indent konusunda daha fazla özen gösterebilirsin, bu şekilde yaptığında uzun sistemlerin kodlarını incelemek isteyen kişilere karmaşık gelebilir
Önerini göz önünde bulunduracağım, yorum için teşekkürler.