Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hudmessage Değişken Tanımlama
#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


Messages In This Thread
Cevap: Hudmessage Değişken Tanımlama - by akcaliberkk - 01-07-13, 19:42

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

Foruma Atla:


Users browsing this thread: 1 Guest(s)