GTATurk.com Reklam Hizmetleri

Haberler:

Gönderen Konu: C++ ile nasil pawno icin plugin yapabilirim?  (Okunma sayısı 12599 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı RyDeR`

  • PAWN Coder
  • Bölüm Yetkilisi
  • ****
  • İleti: 5444
    • Ödüller
C++ ile nasil pawno icin plugin yapabilirim?
« : 07 Ocak 2010 ; 18:37:41 »
Bu nedir?
Bu anlatacagimin sayesinde artik basit plugin(.dll formatinda) yapabilirsiniz. Mesela Streamer gibi seyler.

Lazim olan seyler nedir?
  • Microsoft Visual 2008 C++ Express edition
  • Bos pawno scripti
  • Pawno bilgi
  • Az cok C++ bilgi
  • SDK include

Nasil yapicam ben bunu?
  • Microsoft Visual 2008 C++ Express edition'u ac
  • Yukarda 'File >> New >> Project'e basiniz
  • Ekrana ciktigi an Win32 Console Application seciniz
  • OK'e basin
  • Win32 Application Wizard ekrani cikicak karsiniza. Next'e tiklayiniz
  • Oradan DLL seciniz ve onun altina Additional Options'da Emty Project sonra Finish'e basiniz
  • Simdi Solution Explorer cikmasi lazim karsiniza(Cikmadiysa: View >> Solution Explorer e tiklayiniz)
  • Solution explorer ekraninda en baste sizin Projeniz var. Maus'da sag tusa basiniz
  • Oradan Configuration Properties >> Linker >> Input'a basiniz
  • Modula definition yazili olan yere main.def yaziniz
  • Tekrar solution explorer ekranina geciniz ve tekrar en bastakine sag maus tusu yapiniz
  • Oradan Add >> New Item seciniz
  • Yeni ekran karsiniza geldigi an Module Definition seciniz ve isim olarak main veriniz (Bu yazdigim orada yoksa C++ sec ve isim olarak main.def ver-
  • Simdi Source yazisinin altinda main.def yazisi gelmesi lazim.
  • main.def'in uzerine iki kere tiklayiniz ve karsiniza bos bir sayfa gelmesi lazim. Oraya sunu kopyalayiniz
Kod: [Seç]
EXPORTS
Supports
Load
Unload
AmxLoad
AmxUnload
  • Simdi Solution explorer ekranina tekrar en bastakini secip  Add >> New Item seciniz
  • Yeni ekran karsiniza geldigi an C++ sec ve isim olarak main.cpp ver-
  • Simdi main.def altina main.cpp gelmesi lazim. Uzerine iki kere tiklayiniz ve karsiniza bos sayfa gelir
  • Acilan kagidin uzerine bunu kopyalayiniz
Kod: [Seç]
#include "./SDK/plugin.h"

typedef void (*logprintf_t)(char* format, ...);

logprintf_t logprintf;
void **ppPluginData;
extern void *pAMXFunctions;

PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports()
{
return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES;
}

PLUGIN_EXPORT bool PLUGIN_CALL Load( void **ppData )
{
pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS];
logprintf = (logprintf_t)ppData[PLUGIN_DATA_LOGPRINTF];

logprintf( "Pluginim Hazirlandi." );
return true;
}

PLUGIN_EXPORT void PLUGIN_CALL Unload( )
{
logprintf( "Pluginim Durduruldu" );
}

AMX_NATIVE_INFO MyProjectNatives[ ] =
{
{ 0, 0 }
};

PLUGIN_EXPORT int PLUGIN_CALL AmxLoad( AMX *amx )
{
return amx_Register( amx, MyProjectNatives, -1 );
}

PLUGIN_EXPORT int PLUGIN_CALL AmxUnload( AMX *amx )
{
return AMX_ERR_NONE;
}
  • SDK dosyasini simdi Belgelerim >> Visual Studio 2008 >> Projects >> Project%d >> ProjectIsimi >> ProjectIsimi >> Ve bunun icine kopyalayiniz
  • Simdi terkrar solution explorer ekranina gecip en bastakine sag tus ile tikliyoruz ve Add >> New Filter seciyoruz ve isim olarak SDK veriyoruz
  • Simdi gelen dosyanin uzerine sag maus tusu ve Add >> Existing Item seciyoruz
  • Simdi SDK'i attiginiz yere gidip amxplugin.cpp seciyoruz
  • Ve son olarak F5 tusuna basarak basari ile hatasiz compile ediyoruz.
  • DLL dosyasi burada bulunuyor: Belgelerim >> Visual Studio 2008 >> Projects >> Project%d >> ProjectIsimi >> Debug

Nerden orgendin?
SA:MP'de bir arkadasim anlatti. Yani anlatim ona ait.

Onemli:
SDK sayesinde DLL'de bulunan nativeleri pawnoda native olarak kullanabiliyoruz.
C++'de new; int olarak yaziliyor;
Float: float olarak;
Karakter  [] formatinda.

Nasil callback yaparim?
Kod: [Seç]
static cell AMX_NATIVE_CALL sdk_Callbackisimi( AMX* amx, cell* params )
{  
       //int playerid = params[1]; // mesela
       //float x = params[2]]; // istersen bunu ekliyebilirsin. Pawnoda ozaman native Isim(playerid, Float:x); olucak ve boyle devam..
return 1;
}
Bu kod sayesinde pawnoda bu yaptiginizi cagirabilirsiniz timer olarak veya komut icinde native olarak.

Pawnoda nasil olucak lan bu?
Dur simdi panik yapma, önce main.cpp'i ac ve 'AMX_NATIVE_INFO MyProjectNatives[ ] =' arat; bulduktan sonra oraya {0, 0}, 'in yukarsina bunu ekle
Kod: [Seç]
{"PawnodaOlucakIsim", sdk_Callbackisimi},
Simdi pawnoda bos scripti ac ve modun basina
Kod: [Seç]
native PawnodaOlucakIsimi(playerid, bilmemne, kac params olduguna bagli, ekle);
Son soz:
SDK plugini bana ait degildir, daha fazla bilgi icin plugin hakkinda(Plugini buradan indirebilirsiniz icinde invoke'de varn o include sayesinde pawno functionlari kullanabilirsiniz 'GetPlayerPos' gibi daha fazla seyler) : http://forum.sa-mp.com/index.php?topic=112260
Sorulariniz olursa elimden gelesiye kadar yardim edicem, bende daha yeni baslayan biriyim. Yakinda ogrenip güzel pluginler sunmaya dusunuyorum. Iyi bilmemneler :D(aksamlar, gunler..)
« Son Düzenleme: 10 Şubat 2010 ; 18:04:58 Gönderen: [AoA]RyDeR »
"The secret to creativity is knowing how to hide your sources" ─ Albert Einstein


Reklamlar

Tüm oyun fırsatları için tıklayın !

  Reklamlar


Çevrimdışı EvoturK

  • Russians
  • ****
  • İleti: 3702
  • The Passion, Evolution.
    • EvoturK Genel Site
  • Eski Rumuz: VirtualDiva
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #1 : 07 Ocak 2010 ; 23:22:22 »
Anlatım için teşekkürler şuan programını indiriyorum anlarsam iyi bir senin dediklerini yapayım :)

Çevrimdışı DéLighT

  • McReary Mob
  • ***
  • İleti: 2964
  • Eski Nick: GriNDeR
    • GTATurk
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #2 : 09 Ocak 2010 ; 18:37:08 »
C++ değilde C ile olmazmı?

Çevrimdışı Escapé

  • The Lost Brotherhood
  • **
  • İleti: 1703
    • Call Of Duty - Türkiye
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #3 : 09 Ocak 2010 ; 18:43:07 »
++ olanı versiyon sanıyordum.  Öyle değilmi? :D

Çevrimdışı MetehanAkbaba

  • North Holland Hustlers
  • *
  • İleti: 1745
  • Depresif Kişilik..
    • Metehan Akbaba
  • Eski Rumuz: » ¢σ∂єя «
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #4 : 10 Ocak 2010 ; 20:55:59 »
Denenmiştir TARAFIMCA ONAYLANDI.
« Son Düzenleme: 10 Ocak 2010 ; 20:56:09 Gönderen: [PWN]CôdéR »
Beni aktif değilim site vps'de açık. Reload Every ile dönüyor :/

Çevrimdışı RyDeR`

  • PAWN Coder
  • Bölüm Yetkilisi
  • ****
  • İleti: 5444
    • Ödüller
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #5 : 11 Ocak 2010 ; 18:37:12 »
C++ değilde C ile olmazmı?
C++ olmasi lazim  :-X
"The secret to creativity is knowing how to hide your sources" ─ Albert Einstein

Çevrimdışı WickWoody

  • North Holland Hustlers
  • *
  • İleti: 334
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #6 : 18 Ocak 2010 ; 20:16:28 »
Aslına bakarsan new yerine int gelmiyor, veri türüne göre değişir.

Çevrimdışı RyDeR`

  • PAWN Coder
  • Bölüm Yetkilisi
  • ****
  • İleti: 5444
    • Ödüller
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #7 : 18 Ocak 2010 ; 21:58:56 »
Aslına bakarsan new yerine int gelmiyor.
Genelde geliyor.
« Son Düzenleme: 18 Ocak 2010 ; 21:59:15 Gönderen: [AoA]RyDeR »
"The secret to creativity is knowing how to hide your sources" ─ Albert Einstein

Çevrimdışı Skyline.

  • McReary Mob
  • ***
  • İleti: 1787
  • Eski Rumuz: Cooker-X
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #8 : 01 Şubat 2010 ; 19:05:15 »
bende Microsoft Visual 2008 C++ Express edition yok dev c++ programı ile yapılabilrmi

Çevrimdışı EvoturK

  • Russians
  • ****
  • İleti: 3702
  • The Passion, Evolution.
    • EvoturK Genel Site
  • Eski Rumuz: VirtualDiva
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #9 : 02 Şubat 2010 ; 16:11:59 »
Ryder bunu nerden bulabiliriz ben indirdim ama yükleyemedim sende sağlamı varsa verebilir misin?
« Son Düzenleme: 02 Şubat 2010 ; 16:12:08 Gönderen: Evoturk »

Çevrimdışı -Fatih-

  • Ancelotti Family
  • *****
  • İleti: 2029
    • mouseroleplay
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #10 : 02 Şubat 2010 ; 18:36:59 »
Denenmiştir TARAFIMCA ONAYLANDI.
PWN Coder onayladıysa(!) sorun yok demektir. :P



Çevrimdışı RyDeR`

  • PAWN Coder
  • Bölüm Yetkilisi
  • ****
  • İleti: 5444
    • Ödüller
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #11 : 02 Şubat 2010 ; 20:06:18 »
bende Microsoft Visual 2008 C++ Express edition yok dev c++ programı ile yapılabilrmi
Problem degil, ama az zorluk cekebilirsin. (Evo cekebilirsin yazdim, umarim buyutmessin :D)

Ryder bunu nerden bulabiliriz ben indirdim ama yükleyemedim sende sağlamı varsa verebilir misin?
Buradan >> www.microsoft.com/express/download
"The secret to creativity is knowing how to hide your sources" ─ Albert Einstein

Çevrimdışı Skyline.

  • McReary Mob
  • ***
  • İleti: 1787
  • Eski Rumuz: Cooker-X
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #12 : 03 Şubat 2010 ; 09:37:55 »
ryder abi bunla pawn fonksiyonlarını kullanabilirmiyiz

Çevrimdışı RyDeR`

  • PAWN Coder
  • Bölüm Yetkilisi
  • ****
  • İleti: 5444
    • Ödüller
Ynt: [TUT] C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #13 : 10 Şubat 2010 ; 18:04:46 »
ryder abi bunla pawn fonksiyonlarını kullanabilirmiyiz
Evet. Nerdeyse istedigin herseyi yapabilirsin. invoke include ile oluyor ama kendim daha cözemedim o include'i. Arastirip konuyu yeniliyecegim resimli felan.
"The secret to creativity is knowing how to hide your sources" ─ Albert Einstein

Çevrimdışı Skyline.

  • McReary Mob
  • ***
  • İleti: 1787
  • Eski Rumuz: Cooker-X
Ynt: C++ ile nasil pawno icin plugin yapabilirim?
« Yanıtla #14 : 21 Şubat 2010 ; 13:52:44 »
sende varsa invoke plugin bana atar mısın??