Kayıt Ol'maz iseniz Linkleri ve Resimleri Göremezsiniz.Eğer Kayıtlı'İsenizGiriş Yapın
Moderatör Alımları Başlamıştır.Başvuru için TIKLA

    C++ ile nasıl pawno için plugin yapabilirim?

    Paylaş

    sqlowen
    Moderatör
    Moderatör

    >>Rep Puanı : 29
    >>Teşekkür Puanı : 0
    >>Mesaj Sayısı : 23
    >>Kayıt tarihi : 05/03/11

    Cüzdan
    Altın Altın:
    Para Para:

    default C++ ile nasıl pawno için plugin yapabilirim?

    Mesaj tarafından sqlowen Bir Ptsi Mart 07, 2011 7:47 pm

    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 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:
    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 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: [Seç]
    native PawnodaOlucakIsimi(playerid, bilmemne, kac params olduguna bagli, ekle);

      Forum Saati Cuma Kas. 16, 2018 5:00 am