GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: Lonnely - 24 Haziran 2017, 02:02:44

Başlık: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Lonnely - 24 Haziran 2017, 02:02:44
Arkadaşlar ben biraz ugraşıp kd sıfırlama sistemi yazdım kd sıfırlamıyor ve  oyuna girince chata yazı yazamıyoruz
CMD:kdsifirla(playerid,params[])
{
if(oBilgi[playerid][admin] <=8)
{
SCM(playerid,COLOR_ERROR,"Yetkiniz bu komuta erişememektedir!");
return 1;
}
    new ID;
    new query[256];
    new targetID;
new string[128];
    if(sscanf(params,"ui",targetID))
{
    SendClientMessage(playerid,COLOR_ERROR,"Kullanım: /kdsifirla (id) ");
    return 1;
}
if(IsSpawned[targetID] != 1)
{
    format(string,sizeof(string),"%s(%d) Spawn Olmamış",PlayerName(ID),targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Spawn Olmadan Komut Kullanamazsınız");
        return 1;
}
if(!IsPlayerConnected(targetID))
{
    format(string,sizeof(string),"ID (%d) Servera Giriş Yapmamış.",targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
mysql_free_result();
    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][kills],Pname(playerid));
    mysql_query(query);
    {
    mysql_free_result();
    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][deaths],Pname(playerid));
    mysql_query(query);
    }
format(string,sizeof(string),"<!>Yönetici %s(%d) senin KD Oranını sıfırladı!",PlayerName(playerid),playerid);
SendClientMessage(targetID,COLOR_ADMIN,string);
printf("%s(%d) Adli yonetici %s(%d)'nin KD oranını sıfırladı",PlayerName(playerid),playerid,PlayerName(targetID),targetID);
format(string,sizeof(string),"%s(%d) Adlı kullanıcının KD oranını sıfırladın ! ",PlayerName(targetID),targetID);
SendClientMessage(playerid,COLOR_ADMIN,string);
    return 1;
}

Bir bakarmısınız MySql ismi betas
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 08:54:13
Çöp
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Kraus - 15 Eylül 2017, 17:57:21
    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][kills],Pname(playerid));
    mysql_query(query);
    {
    mysql_free_result();
    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][deaths],Pname(playerid));
    mysql_query(query);
    }


Buradaki süslü parantezler ne alaka? Bu süslü parantezleri sil.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 17:59:25
Abi nasıl yapıcam sen yapıp atsan
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Kraus - 15 Eylül 2017, 18:10:49
Alıntı yapılan: ebuaga - 15 Eylül 2017, 17:59:25

Abi nasıl yapıcam sen yapıp atsan

Bunu da yapamıyor musun?
Süslü parantezler bunlar;

{

}


Bunları sileceksin.




Silinmiş şekli bu şekilde. Yanlış yapma diye bi seferlik yapıyorum. Bu kadar hazırcı olmayın.

CMD:kdsifirla(playerid,params[])
{
if(oBilgi[playerid][admin] <=8)
{
SCM(playerid,COLOR_ERROR,"Yetkiniz bu komuta erişememektedir!");
return 1;
}
    new ID;
    new query[256];
    new targetID;
new string[128];
    if(sscanf(params,"ui",targetID))
{
    SendClientMessage(playerid,COLOR_ERROR,"Kullanım: /kdsifirla (id) ");
    return 1;
}
if(IsSpawned[targetID] != 1)
{
    format(string,sizeof(string),"%s(%d) Spawn Olmamış",PlayerName(ID),targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Spawn Olmadan Komut Kullanamazsınız");
        return 1;
}
if(!IsPlayerConnected(targetID))
{
    format(string,sizeof(string),"ID (%d) Servera Giriş Yapmamış.",targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
mysql_free_result();
    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][kills],Pname(playerid));
    mysql_query(query);
    mysql_free_result();
    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][deaths],Pname(playerid));
    mysql_query(query);
format(string,sizeof(string),"<!>Yönetici %s(%d) senin KD Oranını sıfırladı!",PlayerName(playerid),playerid);
SendClientMessage(targetID,COLOR_ADMIN,string);
printf("%s(%d) Adli yonetici %s(%d)'nin KD oranını sıfırladı",PlayerName(playerid),playerid,PlayerName(targetID),targetID);
format(string,sizeof(string),"%s(%d) Adlı kullanıcının KD oranını sıfırladın ! ",PlayerName(targetID),targetID);
SendClientMessage(playerid,COLOR_ADMIN,string);
    return 1;
}

Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 18:18:14
Pwn kodlamayı iyi bilmedipim için sordum abi  :D
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Kraus - 15 Eylül 2017, 18:19:17
Alıntı yapılan: ebuaga - 15 Eylül 2017, 18:18:14

Pwn kodlamayı iyi bilmedipim için sordum abi  :D

Bilmesen de sana "sil dediğim yeri silememen" pawn ile alakalı bir durum değil.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Jawié - 15 Eylül 2017, 19:12:16
Bul:

format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][deaths],Pname(playerid));

Değiştir:

format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '%d' WHERE `karakterler`.`isim` = '%s'",oBilgi[targetID][deaths],Pname(targetID));

Bul:

format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '0' WHERE `karakterler`.`isim` = '0'",oBilgi[playerid][kills],Pname(playerid));

Değiştir:

format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '%d' WHERE `karakterler`.`isim` = '%s'",oBilgi[targetID][kills],Pname(targetID));

Ek olarak muhtemelen çıkışta da kaydediyordur. Değişkeni sıfırlamadığın için o değişkenden yine devam ediyordur. Return üzerine aşağıdaki kodları ekle.

oBilgi[targetID][kills] = 0, oBilgi[targetID][deaths]=0;

Yazı yazamama ile ilgili bir alakası yok. Muhtemelen OnPlayerText içerisinde yaptığın bir değişiklik ile alakalıdır. Kolay gelsin.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 19:13:51
Alıntı yapılan: Kraus - 15 Eylül 2017, 18:19:17

Alıntı yapılan: ebuaga - 15 Eylül 2017, 18:18:14

Pwn kodlamayı iyi bilmedipim için sordum abi  :D

Bilmesen de sana "sil dediğim yeri silememen" pawn ile alakalı bir durum değil.


:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : error 017: undefined symbol "IsSpawned"
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : warning 215: expression has no effect
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : error 001: expected token: ";", but found "]"
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : error 029: invalid expression, assumed zero
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Jawié - 15 Eylül 2017, 19:19:11
Alıntı yapılan: Kraus - 15 Eylül 2017, 18:10:49
Bunu da yapamıyor musun?
Süslü parantezler bunlar;


Sen niye süslü parantezlere taktın ki? Onunla ilgisi yok. Hazırcı olmayın falan demişsin o kadar.  :D Onlar olsa da olmasa da bir şey değişmez. Kişinin sorunu hala çözülmüş değil. Benim attığım ileti ile çözülmüş oldu.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 19:20:08
Alıntı yapılan: Jawié - 15 Eylül 2017, 19:19:11

Alıntı yapılan: Kraus - 15 Eylül 2017, 18:10:49
Bunu da yapamıyor musun?
Süslü parantezler bunlar;


Sen niye süslü parantezlere taktın ki? Onunla ilgisi yok. Hazırcı olmayın falan demişsin o kadar.  :D Onlar olsa da olmasa da bir şey değişmez. Kişinin sorunu hala çözülmüş değil. Benim attığım ileti ile çözülmüş oldu.

abi seninkiylede olmadı

:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : error 017: undefined symbol "IsSpawned"
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : warning 215: expression has no effect
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : error 001: expected token: ";", but found "]"
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : error 029: invalid expression, assumed zero
C:\Users\ebubekir\Desktop\Efsane HP Server\gamemodes\EfsaneHP.pwn(7290) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Jawié - 15 Eylül 2017, 19:22:25
Alıntı yapılan: ebuaga - 15 Eylül 2017, 19:20:08
abi seninkiylede olmadı


IsSpawned değişkeni tanıtılmamış. Benim düzeltmem ile bir alakası yok. Ben playerid değerini targetid olarak değiştirip değişkeni sıfırladım.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Backup - 15 Eylül 2017, 19:22:48
CMD:kdsifirla(playerid,params[])
{
if(oBilgi[playerid][admin] <=8)
{
SCM(playerid,COLOR_ERROR,"Yetkiniz bu komuta erişememektedir!");
return 1;
}
    new query[256];
    new targetID;
new string[128];
    if(sscanf(params,"i",targetID))
{
    SendClientMessage(playerid,COLOR_ERROR,"Kullanım: /kdsifirla (id) ");
    return 1;
}
if(IsSpawned[targetID] != 1)
{
    format(string,sizeof(string),"%s(%d) Spawn Olmamış",PlayerName(ID),targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Spawn Olmadan Komut Kullanamazsınız");
        return 1;
}
if(!IsPlayerConnected(targetID))
{
    format(string,sizeof(string),"ID (%d) Servera Giriş Yapmamış.",targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
oBilgi[targetID][deaths] = 0;
oBilgi[targetID][kills] = 0;

    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '0' WHERE `karakterler`.`isim` = '%s'",Pname(targetID));
    mysql_query(query);

    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '0' WHERE `karakterler`.`isim` = '%s'",Pname(targetID));
    mysql_query(query);

format(string,sizeof(string),"<!>Yönetici %s(%d) senin KD Oranını sıfırladı!",PlayerName(playerid),playerid);
SendClientMessage(targetID,COLOR_ADMIN,string);

printf("%s(%d) Adli yonetici %s(%d)'nin KD oranını sıfırladı",PlayerName(playerid),playerid,PlayerName(targetID),targetID);

format(string,sizeof(string),"%s(%d) Adlı kullanıcının KD oranını sıfırladın ! ",PlayerName(targetID),targetID);
SendClientMessage(playerid,COLOR_ADMIN,string);

    return 1;
}


Sorgularda ve kullanıcı ID'lerinde hata vardı. Ek olaraktan değişkene atanılan değer sıfırlanmamıştı. Düzelttim , buyrun..
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 19:27:29
Alıntı yapılan: _Backup - 15 Eylül 2017, 19:22:48

CMD:kdsifirla(playerid,params[])
{
if(oBilgi[playerid][admin] <=8)
{
SCM(playerid,COLOR_ERROR,"Yetkiniz bu komuta erişememektedir!");
return 1;
}
    new ID;
    new query[256];
    new targetID;
new string[128];
    if(sscanf(params,"ui",targetID))
{
    SendClientMessage(playerid,COLOR_ERROR,"Kullanım: /kdsifirla (id) ");
    return 1;
}
if(IsSpawned[targetID] != 1)
{
    format(string,sizeof(string),"%s(%d) Spawn Olmamış",PlayerName(ID),targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Spawn Olmadan Komut Kullanamazsınız");
        return 1;
}
if(!IsPlayerConnected(targetID))
{
    format(string,sizeof(string),"ID (%d) Servera Giriş Yapmamış.",targetID);
    SendClientMessage(playerid,COLOR_ERROR,string);
    return 1;
}
oBilgi[targetID][deaths] = 0;
oBilgi[targetID][kills] = 0;

    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `kills` = '0' WHERE `karakterler`.`isim` = '%s'",Pname(targetID));
    mysql_query(query);

    format(query, sizeof(query),"UPDATE `betas`.`karakterler` SET `deaths` = '0' WHERE `karakterler`.`isim` = '%s'",Pname(targetID));
    mysql_query(query);

format(string,sizeof(string),"<!>Yönetici %s(%d) senin KD Oranını sıfırladı!",PlayerName(playerid),playerid);
SendClientMessage(targetID,COLOR_ADMIN,string);

printf("%s(%d) Adli yonetici %s(%d)'nin KD oranını sıfırladı",PlayerName(playerid),playerid,PlayerName(targetID),targetID);

format(string,sizeof(string),"%s(%d) Adlı kullanıcının KD oranını sıfırladın ! ",PlayerName(targetID),targetID);
SendClientMessage(playerid,COLOR_ADMIN,string);

    return 1;
}


Sorgularda ve kullanıcı ID'lerinde hata vardı. Ek olaraktan değişkene atanılan değer sıfırlanmamıştı. Düzelttim , buyrun..

hala hata veiyor
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Backup - 15 Eylül 2017, 19:36:36
Hataları gönder
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: Jawié - 15 Eylül 2017, 19:53:53
Alıntı yapılan: _Backup - 15 Eylül 2017, 19:36:36

Hataları gönder


Konuyu açan arkadaş yncnr kullanıyor, yorumu atan arkadaş başka bir mod. Değişkenler falan tanıtılmadığından hata vermesi normal.
Başlık: Ynt: yncnr modu kd sıfırlama sistemi hatası.
Gönderen: ebuaga - 15 Eylül 2017, 21:04:55
Backup sağolsun yaptı + paralı yncnr modunu kullanıyorum