Fakat ben bu konuyu 3pers eklentisi üzerinden göstereceğim.
Kod: Tümünü seç
#include <amxmodx>
#include <engine>
#define PLUGIN "3Rd view"
#define AUTHOR "Ferrari & Sylvanor"
#define VERSION "1.0"
#define MAX_PLAYERS 32
new g_pCamera
new g_bCamera[ MAX_PLAYERS + 1 ]
public plugin_precache()
{
precache_model( "models/rpgrocket.mdl" );
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_pCamera = register_cvar("amx_3rdview", "1")
register_clcmd("say /3pers", "cmdCamera")
register_clcmd("say_team /3pers", "cmdCamera")
}
public client_putinserver( id )
{
g_bCamera[ id ] = false
}
public cmdCamera( id )
{
if( get_pcvar_num( g_pCamera ) )
{
if( (g_bCamera[ id ] = !g_bCamera[ id ]) )
{
set_view( id, CAMERA_3RDPERSON )
}
else
{
set_view( id, CAMERA_NONE );
}
}
return PLUGIN_HANDLED
}
Kod: Tümünü seç
#include <amxmodx>
#define PLUGIN "Ornek Eklenti"
#define VERSION "Test"
#define AUTHOR "Yek'-ta"
new pluginId
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
pluginId = find_plugin_byfile("3pers.amxx")
if(pluginId >= 0){
server_print("Eklenti sunucuda kurulu. Bellekteki sırası %i", pluginId)
}
else{
server_print("Eklenti sunucuda kurulu değil.")
}
}
Peki ben bu eklentinin olup olmadığını dosya ismi yerine direkt eklenti ismi üzerinden sorgulatmak ister isem?
Kod: Tümünü seç
pluginId = is_plugin_loaded("3Rd view")
Bu eklenti içerisinden sadece cmdCamera kısmını alıp kullanmak ister isem bu sefer fonksiyonları kullanmam gereklidir. Bunlarda korkulacak bir şey yoktur. Kullanımı eklentinin içeriğini bildikten sonra kolay.
Kod: Tümünü seç
#include <amxmodx>
#define PLUGIN "Ornek Eklenti"
#define VERSION "Test2"
#define AUTHOR "Yek'-ta"
new pluginId,funcId
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
pluginId = find_plugin_byfile("3pers.amxx")
if(pluginId == INVALID_PLUGIN_ID)
set_fail_state("3pers eklentisi bulunamadi")
funcId = get_func_id("cmdCamera",pluginId) //get_func_id ile pluginIdye bağlı cmdCamera fonksiyonunu fundId değişkenine sabitledim.
register_clcmd("say test", "KamerayaYonlendir")
}
public KamerayaYonlendir(oyuncu)
{
callfunc_begin_i(funcId,pluginId) //Fonksiyonu kullanmak istediğimi belirttim.
callfunc_push_int(oyuncu) //Fonksiyona hangi değeri göndermek istediğimi belirttim.
callfunc_end() //Fonksiyonu kullanmayı bitirdiğimi belirttim.
}
Oyun içi konuşmaya test yazdığım vakit 3pers eklentisini çalıştırırım. Bütün olay budur.