Advanced Reset (Kararlıyım)
PHP- Kodu:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define PLUGIN "Advanced Reset"
#define VERSION "1.0"
#define AUTHOR "Pikachu"
new gDeath
public plugin_init() {
register_plugin("Advanced Reset", "1.0", "Pikachu")
gDeath = register_cvar("enazolum_sayisi","1")
register_clcmd("say /areset","adreset")
}
public adreset(id) {
if(cs_get_user_deaths < get_pcvar_num(gDeath))
client_print(id,print_center,"Olum Sayin Zaten 0")
return PLUGIN_HANDLED
}
else
client_print(id,print_center,"Olum Sayiniz Sifirlandi")
cs_set_user_deaths(0)
return PLUGIN_HANDLED
}
PHP- Kodu:
adreset.sma(24) : error 076: syntax error in the expression, or invalid function call
adreset.sma(28) : error 010: invalid function or declaration
adreset.sma(31) : error 010: invalid function or declaration
Bu arada amacım sadece ölüm sayısını sıfırlamak, biraz farklılık olsun istedim :$
NOT: %95 elle yazdım. -zaten bellidir-
Cevap: Advanced Reset (Kararlıyım)
if şartlandırıcısının yanına süslü parantez açmayı unutmuşsun
ve
cs_set_user_deaths( index, newdeaths )
cs_get_user_deaths( index )
index nerede ? :) Compiler sana hatanı söylemiş zaten.
Syntax error - Sözdizimi hatası
Cevap: Advanced Reset (Kararlıyım)
Tam olarak anlamadım desem :) hep yaptığın gibi doğrusunu paylaşsan ben eksikleri öyle görsem :)
Cevap: Advanced Reset (Kararlıyım)
PHP- Kodu:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define PLUGIN "Advanced Reset"
#define VERSION "1.0"
#define AUTHOR "Pikachu"
new gDeath
public plugin_init() {
register_plugin("Advanced Reset", "1.0", "Pikachu")
gDeath = register_cvar("enazolum_sayisi","1")
register_clcmd("say /areset","adreset")
}
public adreset(id) {
if(cs_get_user_deaths(id) < get_pcvar_num(gDeath)) {
client_print(id,print_center,"Olum Sayin Zaten 0")
return PLUGIN_HANDLED
}
client_print(id,print_center,"Olum Sayiniz Sifirlandi")
cs_set_user_deaths(id,0)
return PLUGIN_HANDLED
}
Cevap: Advanced Reset (Kararlıyım)
Index'in id'ye karşılık geldiğini bilmiyodum, öğrenmiş oldum :)
Bu arada ufak bi sorum daha olucak, indentation hatası yapmamayı nasıl öğrenebilirim? yani daha doğrusu soruyu şöyle sormalıyım nasıl bir dizilimle kusursuz bi indentation sağlayabilirim? bi kaç ufak kural söylerseniz sevinirim.
Cevap: Advanced Reset (Kararlıyım)
Aslında oldukça basit bir şey. Bilmen gereken şey şu;
1. if, else, for, while, do gibi yapılar kullanırken veya bir fonksiyon tanımlarken, her zaman { } süslü parantez kullanırız. Kolaylık olsun diye kullanmadığımız yerler de var ama her zaman kullanmak daha iyidir.
2. Bir süslü parantez açılmışsa mutlaka bir alt satıra geçilip bir TAB ilerden yazıma başlanır. Süslü parantez kapatıldığında ise mutlaka bir TAB geriden kapatılır. Yine süslü parantez açıp alt satıra geçmediğimiz yerler var ama çok da önemli değil. Katar dizilerini tanımlarken yapılabilir. Bilmesen de olur şimdilik :)
PHP- Kodu:
if( condition ) {
1 TAB içerden
dasfas
if( condition ) {
Yine 1 TAB içerden
asdas
if( condition ) {
1 TAB içerden
asfgasf
}
else {
1 TAB içerden
}
}
else if(condition) {
1 TAB içerden
dasdasd
}
else {
1 TAB içerden
}
}
else {
1 TAB içerden
asfasd
}
while( condition ) {
1 TAB içerden
asdasd
asdasd
}
for( condition ) {
1 TAB içerden
adasd
asdasd
}
do {
1 TAB içerden
asdasd
asdasd
}while( condition )
public xxx() {
1 TAB içerden
asdasd
asdasd
}
yyy() {
1 TAB içerden
fads
asdas
}
stock() {
1 TAB içerden
adsad
sadsad
}
// gibi...
// Örnekler
public plugin_init() {
register_plugin(PLUGIN,VERSION,AUTHOR)
register_clcmd("say /basla","cmdBasla")
}
// YANLIŞ:
public cmdBasla(id) {
if(get_user_team(id) == 2)
client_print(id,print_chat,"Sadece teroristler")
return PLUGIN_HANDLED
}
// DOĞRU:
public cmdBasla(id) {
if(get_user_team(id) == 2) {
client_print(id,print_chat,"Sadece teroristler")
return PLUGIN_HANDLED
}
}
//-----
// YANLIŞ:
public cmdBasla(id) {
if(get_user_team(id) == 2) {
client_print(id,print_chat,"Sadece terorisler")
return PLUGIN_HANDLED
}
else
give_item(id,"weapon_mp5navy")
}
// DOĞRU:
public cmdBasla(id) {
if(get_user_team(id) == 2) {
client_print(id,print_chat,"Sadece terorisler")
return PLUGIN_HANDLED
}
else {
give_item(id,"weapon_mp5navy")
}
}
Bu kurallara uymazsak - aslında pek kural sayılmazlar, zaten bakıldığında her zaman indentationu doğru olan eklentiler daha düzenli görünür - compiler bize loose indentation diyebilir, sen de amaaaan warning bu bişe olmaz dersin. Bir denemeye kalkarsın, bakarsın 100 tane bug :)
Indentationu doğrumu yapmışım diye denemek istersen CTRL+I kombinasyonunu kullan, eğer bozulursa bozuk yapmışsındır :) Bozmaz da düzeltirse, yine bozuk yapmışsındır :D
Bir de bu yazdığım kodları amxx studioya atıp CTRL+I yap, oyle daha iyi anlarsın. Burda çok yakın görünüyo TAB lar.
Cevap: Advanced Reset (Kararlıyım)
Şimdi her şey açıklığa kavuştu, bundan sonra elimden geldiğince dikkat edicem, zaten sanıyorum ki zamanla el alışkanlığına dönüşecek bir şey :) Bilgilendirme için teşekkürler :)
Sorun Çözülmüştür!
Cevap: Advanced Reset (Kararlıyım)
Evet el alışıyor, göz alışıyor... Hata yapmıyorsun.
Çözülmüş İsteklere taşındı.