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
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
#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?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
{"PawnodaOlucakIsim", sdk_Callbackisimi},Simdi pawnoda bos scripti ac ve modun basina
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=112260Sorulariniz olursa elimden gelesiye kadar yardim edicem, bende daha yeni baslayan biriyim. Yakinda ogrenip güzel pluginler sunmaya dusunuyorum. Iyi bilmemneler

(aksamlar, gunler..)