Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hudmessage Değişken Tanımlama
#11
plugin_init : Pluginlerin yüklendiği forward.
plugin_precache : Mapin yüklendiği forward.
plugin_cfg : Tüm pluginler yüklendikten sonra çalıştırılan forward.

----

new const SOUND[] = "ding.wav"; [global]

precache_sound(SOUND) [plugin_precache]

emit_sound( id, CHAN_STREAM, SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) [sesi çalar]


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/

Reply
#12
PHP Code:
#include <amxmodx>
#include <amxmisc>


#define PLUGIN "Geri Sayim Sayaci"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"


new ses
new is_plugin_request[33];
new 
bool:is_counting;
new const 
SOUND[] = "ding.wav";


public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
ses register_cvar("kronometre_ses","5")
    
register_clcmd("say /kronometre","GetStartTime")
    
register_clcmd("Saniye","ReceiveStartTime")
}


public 
GetStartTime(id) {
    
    
is_plugin_request[id] = true;
    
client_cmd(id,"messagemode Saniye")
}


public 
ReceiveStartTime(id) {
    
    if(!
is_plugin_request[id]) {
        
console_print(id,"Gecersiz Istek")
        return 
PLUGIN_HANDLED
    
}
    new 
szSaniye[6];
    
read_args(szSaniyecharsmax(szSaniye))
    
remove_quotes(szSaniye)
    if(!
szSaniye[0]) {
        
client_print(idprint_chat"Bos Birakamazsiniz !")
        
client_cmd(id,"messagemode Saniye")
        return 
PLUGIN_HANDLED
    
}
    new 
iSaniye str_to_num(szSaniye);
    if(
iSaniye 1) {
        
client_print(idprint_chat"Pozitif Bir Tamsayi Girmelisiniz.")
        
client_cmd(id,"messagemode Saniye")
        return 
PLUGIN_HANDLED
    
}
    
is_plugin_request[id] = false;
    if(
is_counting) {
        
client_print(idprint_chat"Suanda Zaten Bir Geri Sayim Aktif.")
        return 
PLUGIN_HANDLED
    
}
    
is_counting true;
    
StartCountDown(iSaniye)
    return 
PLUGIN_HANDLED
}


public 
StartCountDown(sure) {
    
    
set_hudmessage(2551700, -1.0, -1.001.01.0)
    if(!
sure) {
        
show_hudmessage(0,"Geri Sayim Doldu !")
        
is_counting false;
        return 
PLUGIN_HANDLED
    
}
    
    if(
sure <= get_pcvar_num(ses)) {
        
precache_sound(SOUND)
        
emit_sound(idCHAN_STREAMSOUNDVOL_NORMATTN_NORM0PITCH_NORM)
    }
    
    
show_hudmessage(0,"Geri Sayim: %d Saniye",sure)
    
sure--
    
set_task(1.0,"StartCountDown",sure)
    return 
PLUGIN_CONTINUE


Code:
kronometre.sma(68) : error 017: undefined symbol "id"kronometre.sma(68) : warning 215: expression has no effect
kronometre.sma(68) : error 001: expected token: ";", but found ")"
kronometre.sma(68) : error 029: invalid expression, assumed zero
kronometre.sma(68) : fatal error 107: too many error messages on one line

Valla bi göz gezdirdim de soruna bi çözüm bulamadım.

Birde;
new
new const
bool
static
ve daha bilmediklerimin ne işe yaradıklarını söylerseniz çok sevinirim. Bi tek new i çözebildim Big Grin
uhcakiP
Özel Plugin Kodlanır!

Steam_ID = STEAM_0:0:54912140
Steam_Nick = Ragnar Lothbrok
https://steamcommunity.com/id/lothbrok
Reply
#13
emit_sound da id yazmışsın. Bir bak bakalım o fonksiyonda "id" diye bir şey belirtilmiş mi Smile

id yoksa 0 yazıcaksın ki herkese çalsın. Yalnız her fonksiyonda 0 yazamazsın. 0 yapamadığın durumlarda da for döngüsüyle oyundaki herkes için fonksiyonu çalıştırıcaksın.

Ayrıca precache_sound fonksiyonunu

plugin_precache forwardında kullanıcaksın.

PHP Code:
#include <amxmodx>
#include <amxmisc>


#define PLUGIN "Geri Sayim Sayaci"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"


new ses
new is_plugin_request[33];
new 
bool:is_counting;
new const 
SOUND[] = "ding.wav";


public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
ses register_cvar("kronometre_ses","5")
    
register_clcmd("say /kronometre","GetStartTime")
    
register_clcmd("Saniye","ReceiveStartTime")
}
public 
plugin_precache() {
    
precache_sound(SOUND)
}

public 
GetStartTime(id) {
    
    
is_plugin_request[id] = true;
    
client_cmd(id,"messagemode Saniye")
}


public 
ReceiveStartTime(id) {
    
    if(!
is_plugin_request[id]) {
        
console_print(id,"Gecersiz Istek")
        return 
PLUGIN_HANDLED
    
}
    new 
szSaniye[6];
    
read_args(szSaniyecharsmax(szSaniye))
    
remove_quotes(szSaniye)
    if(!
szSaniye[0]) {
        
client_print(idprint_chat"Bos Birakamazsiniz !")
        
client_cmd(id,"messagemode Saniye")
        return 
PLUGIN_HANDLED
    
}
    new 
iSaniye str_to_num(szSaniye);
    if(
iSaniye 1) {
        
client_print(idprint_chat"Pozitif Bir Tamsayi Girmelisiniz.")
        
client_cmd(id,"messagemode Saniye")
        return 
PLUGIN_HANDLED
    
}
    
is_plugin_request[id] = false;
    if(
is_counting) {
        
client_print(idprint_chat"Suanda Zaten Bir Geri Sayim Aktif.")
        return 
PLUGIN_HANDLED
    
}
    
is_counting true;
    
StartCountDown(iSaniye)
    return 
PLUGIN_HANDLED
}


public 
StartCountDown(sure) {
    
    
set_hudmessage(2551700, -1.0, -1.001.01.0)
    if(!
sure) {
        
show_hudmessage(0,"Geri Sayim Doldu !")
        
is_counting false;
        return 
PLUGIN_HANDLED
    
}
    
    if(
sure <= get_pcvar_num(ses)) {
        
emit_sound(0CHAN_STREAMSOUNDVOL_NORMATTN_NORM0PITCH_NORM)
    }
    
    
show_hudmessage(0,"Geri Sayim: %d Saniye",sure)
    
sure--
    
set_task(1.0,"StartCountDown",sure)
    return 
PLUGIN_CONTINUE


Son sorunu yeni farkettim yazıyorum...


new ile static arasındaki fark;

Her ikiside değişken yaratır. Ancak aralarında ufak bir fark var. Öncelikle new ile yaratılan değişkenin nasıl çalıştığını anlatayım.

New ile yaratılan değişken, her değer değişikliğine uğradığında hafızada tekrar yaratılır.

Örneğin;

new degisken = 3;
degisken = 5;

Bu olay engine'de şu şekilde gerçekleşir;

1.Degisken yarat
2.Degiskene 3 ata
3.Degiskeni sil
4.Degisken yarat
5.Degiskene 5 ata

Static ile yaratılan değişkenler, engine'de tekrar tekrar yaratılmaz sadece değeri değiştirilir.

static degisken;
degisken = 3;
degisken = 5;

1.Degisken yarat
2.Degiskene 3 ata
3.Degiskene 5 ata


Boolean yani bool değişkenleri sadece iki farklı değer alabilir. 1 veya 0 (true veya false)

new bool:degisken = true;

Floatlar, ondalık sayı depolarlar.

new Float:degisken = 5.25;

Constantlar yani const değişkenleri aslında değişken değildir Big Grin Sadece bir defa değer atanabilir. Atanan değer değiştirilemez. Bir nevi #define gibi.
Tek farkı constantları motor okurken, defineler makro olduğundan compile edilirken çevrilir.


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/

Reply
#14
Ufak bi mantık yürütülürse basit pluginlerde değilde karışık pluginlerde new yerine static kullanılması pluginin kullanacağı CPU değerini düşürecektir diye düşündüm. Doğru mudur? Normal olarakta new yerine static kullansakta bi sorun olmaz sanırım aralarında tek fark değişkenin değiştirilmesi 2side aynı işlemi yapıyor sonuçta?

Sorun çözülmüştür.
uhcakiP
Özel Plugin Kodlanır!

Steam_ID = STEAM_0:0:54912140
Steam_Nick = Ragnar Lothbrok
https://steamcommunity.com/id/lothbrok
Reply
#15
aynen öyle

taşındı.


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/

Reply
#16
Teşekkürler Smile
uhcakiP
Özel Plugin Kodlanır!

Steam_ID = STEAM_0:0:54912140
Steam_Nick = Ragnar Lothbrok
https://steamcommunity.com/id/lothbrok
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Geri Sayım | HUDmessage RapieR 9 4,002 04-11-13, 20:03
Last Post: JDM
  değişken filtreleme akinpc 4 2,147 05-05-13, 00:33
Last Post: akcaliberkk

Foruma Atla:


Users browsing this thread: 1 Guest(s)