![]() |
|
C++ ile pawno plugin - Printable Version +- CSPLague (https://www.csplague.com) +-- Forum: CS 1.6 Plugin (Eklenti) Bölümü (https://www.csplague.com/forumdisplay.php?fid=6) +--- Forum: [KOD] Pawn Script (https://www.csplague.com/forumdisplay.php?fid=82) +--- Thread: C++ ile pawno plugin (/showthread.php?tid=12645) |
C++ ile pawno plugin - wampirus - 04-10-15 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: 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: #include "./SDK/plugin.h"typedef **** (*logprintf_t)(char* format, ...);logprintf_t logprintf;**** **ppPluginData;extern **** *pAMXFunctions;PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports() { return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES;}PLUGIN_EXPORT bool PLUGIN_CALL Load( **** **ppData ) { pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS]; logprintf = (logprintf_t)ppData[PLUGIN_DATA_LOGPRINTF]; logprintf( "Pluginim Hazirlandi." ); return true;}PLUGIN_EXPORT **** 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? Bir Sitede Öğrendim. 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: 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: {"PawnodaOlucakIsim", sdk_Callbackisimi}, Simdi pawnoda bos scripti ac ve modun basina Kod: 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) : SA-MP Forums - Powered by vBulletin Sorulariniz olursa elimden gelesiye kadar yardim edicem, bende daha yeni baslayan biriyim. Yakinda ogrenip güzel pluginler sunmaya dusunuyorum. Hoşcakalın |