12-10-12, 21:25
(This post was last modified: 12-10-12, 21:34 by akcaliberkk.)
Öncelikle; çok gereksiz komutlar yaratmışsın. Bunlara gerek yok. Sadece 1 kere admin_speed komutu ve say /speedal komutu yaratmak yeterli
Public isimlerini Devam devamet gibi saçma şekilde ayarlama. Bunların sana hiçbir faydası yok aksine zararı var. Publicleri birbirine karıştırabilirsin. Hepsine özelliğini anlatan kısa kelimeler bulman gerek. Böylece daha rahat kodlayabilirsin.
Plugininde gereksiz yere include kullanma. "hamsandwich", "nvault", "engine", "fakemeta" modüllerine böyle bir pluginde ihtiyaç yok. Ayrıca zaten "stock" kodu ile chat_color kodunu yaratmışsın. Bunu yaparsan "colorchat" kütüphanesine de gerek kalmaz. Eğer halihazırda bir colorchat kütüphanen varsa ve plugini kendin için yapıyorsan, stock yerıne include "colorchat" kullanman faydalı olacaktır.
Ve sakın ! RoundStart, RoundEnd, DeathMsg, Damage ... gibi eventlere PLUGIN_HANDLED koyma. Ne demiştim Handled return'ü çağrıyı tamamen durdurur. Yani örnek veriyorum bir başka plugininde round başladığında A ayarı kapatılmaya ayarlanmıştır. Eğer sen bu pluginin RoundStart eventinde olay çağrısını durdurursan bundan sonraki tüm pluginlerin de ayarlarını bozmuş olursun !. Ayrıca sakın for döngüsüne return KOYMA. "for" döngüsünde sadece fonksiyon kullan. Adı üstünde handled çağrıyı durduruyor. Hem foru durduruyorsun hem zincirleme bir hataya sebep oluyorsun.
Bu plugini sana en baştan hazırladım. Kontrol et ve pluginlerini bu şekildeki gibi düzenli yap.
admin_speed nick,@T,@CT,@ALL 1/0 // Cvarla ayarlanmış olan speedi açar = 1; 0= kapatır.
say /speedal - > Speed Alir.
Cvar: amx_speed_value 500.0 // Hiz Ayari
Cvar: amx_speed_cost 16000 // Hiz Fiyati
Pluginde öğrenmek istediğin her kodu sorabilirsin, elimden geldiğince açıklarım. Burdaki her fonksiyonu sana açıklarsam sayfalarca yazı olur
O yuzden sen bılmedıklerını sorarsın.
Ve plugin yapma çabanı da takdir ediyorum. Eliniz boş gelip plugın istemektense bir şeyler yapmaya çalışıp hatalarınızı sorarsanız çok daha iyi olur. Plugin çalışmalarında başarılar dilerim.
Public isimlerini Devam devamet gibi saçma şekilde ayarlama. Bunların sana hiçbir faydası yok aksine zararı var. Publicleri birbirine karıştırabilirsin. Hepsine özelliğini anlatan kısa kelimeler bulman gerek. Böylece daha rahat kodlayabilirsin.
Plugininde gereksiz yere include kullanma. "hamsandwich", "nvault", "engine", "fakemeta" modüllerine böyle bir pluginde ihtiyaç yok. Ayrıca zaten "stock" kodu ile chat_color kodunu yaratmışsın. Bunu yaparsan "colorchat" kütüphanesine de gerek kalmaz. Eğer halihazırda bir colorchat kütüphanen varsa ve plugini kendin için yapıyorsan, stock yerıne include "colorchat" kullanman faydalı olacaktır.
Ve sakın ! RoundStart, RoundEnd, DeathMsg, Damage ... gibi eventlere PLUGIN_HANDLED koyma. Ne demiştim Handled return'ü çağrıyı tamamen durdurur. Yani örnek veriyorum bir başka plugininde round başladığında A ayarı kapatılmaya ayarlanmıştır. Eğer sen bu pluginin RoundStart eventinde olay çağrısını durdurursan bundan sonraki tüm pluginlerin de ayarlarını bozmuş olursun !. Ayrıca sakın for döngüsüne return KOYMA. "for" döngüsünde sadece fonksiyon kullan. Adı üstünde handled çağrıyı durduruyor. Hem foru durduruyorsun hem zincirleme bir hataya sebep oluyorsun.
Bu plugini sana en baştan hazırladım. Kontrol et ve pluginlerini bu şekildeki gibi düzenli yap.
admin_speed nick,@T,@CT,@ALL 1/0 // Cvarla ayarlanmış olan speedi açar = 1; 0= kapatır.
say /speedal - > Speed Alir.
Cvar: amx_speed_value 500.0 // Hiz Ayari
Cvar: amx_speed_cost 16000 // Hiz Fiyati
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <colorchat>
#include <cstrike>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new gSpeed,gFiyat;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
gSpeed = register_cvar("amx_speed_value","500.0")
gFiyat = register_cvar("amx_speed_cost","16000")
register_concmd("admin_speed","cmdSpeed",ADMIN_LEVEL_A,"<nick - @CT/T/All> <1/0>")
register_clcmd("say /speedal","saySpeed")
register_logevent("RoundStart",2,"1=Round_Start")
}
public RoundStart() {
for(new i = 1; i <= get_maxplayers(); i++) {
set_user_maxspeed(i,250.0)
}
}
public cmdSpeed(id,level,cid) {
if(!cmd_access(id,level,cid,2)) {
return PLUGIN_HANDLED
}
new Arg1[32],Arg2[32];
read_argv(1,Arg1,31)
read_argv(2,Arg2,31)
new Float:Speed;
new Ayar = str_to_num(Arg2)
if(Ayar >= 1) Speed = get_pcvar_float(gSpeed);
else Speed = 250.0;
new players[32],inum,name[65];
get_user_name(id,name,64)
if(Arg1[0] == '@') {
if(equali(Arg1[1],"T")) {
copy(Arg1[1],31,"TERRORIST")
}
if(equali(Arg1[1],"ALL")) {
get_players(players,inum)
}
else {
get_players(players,inum,"e",Arg1[1])
}
if(inum == 0) {
console_print(id,"Belirtilen Takimda Oyuncu Bulunamadi !")
return PLUGIN_HANDLED
}
for(new i = 0;i < inum;i++) {
set_user_maxspeed(players[i],Speed)
}
switch(Ayar) {
case 0: ColorChat(0,GREEN,"[gR] ^1ADMIN ^3%s: ^1Set Speed 0 on ^3%s ^1Players !",name,Arg1[1])
default: ColorChat(0,GREEN,"[gR] ^1ADMIN ^3%s: ^1Set Speed 1 on ^3%s ^1Players !",name,Arg1[1])
}
}
else {
new Uid;
Uid = cmd_target(id,Arg1,6)
if(!Uid) {
return PLUGIN_HANDLED
}
new uname[65];
get_user_name(Uid,uname,64)
set_user_maxspeed(Uid,Speed)
switch(Ayar) {
case 0: ColorChat(0,GREEN,"[gR] ^1ADMIN ^3%s: ^1Set Speed 0 on player ^3%s",name,uname)
default: ColorChat(0,GREEN,"[gR] ^1ADMIN ^3%s: ^1Set Speed 1 on player ^3%s",name,uname)
}
}
return PLUGIN_HANDLED
}
public saySpeed(id) {
if(!is_user_alive(id)) {
client_print(id,print_chat,"Olu Oyuncular Speed Alamaz !")
return PLUGIN_HANDLED
}
if(cs_get_user_money(id) < get_pcvar_num(gFiyat)) {
client_print(id,print_chat,"Speed Almak Icin Yeterli Paraniz Bulunmamaktadir ! Gereken: %d",get_pcvar_num(gFiyat))
return PLUGIN_HANDLED
}
cs_set_user_money(id,cs_get_user_money(id) - get_pcvar_num(gFiyat))
set_user_maxspeed(id,get_pcvar_float(gSpeed))
ColorChat(id,GREEN,"[gR] ^3Basariyla Speed Aldiniz !")
return PLUGIN_HANDLED
}
Pluginde öğrenmek istediğin her kodu sorabilirsin, elimden geldiğince açıklarım. Burdaki her fonksiyonu sana açıklarsam sayfalarca yazı olur
O yuzden sen bılmedıklerını sorarsın.Ve plugin yapma çabanı da takdir ediyorum. Eliniz boş gelip plugın istemektense bir şeyler yapmaya çalışıp hatalarınızı sorarsanız çok daha iyi olur. Plugin çalışmalarında başarılar dilerim.
CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz: destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/


![[Image: amxxlarge.jpg]](https://www.amxmodx.org/images/amxxlarge.jpg)