GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: Muteo - 18 Ocak 2019, 20:53:28

Başlık: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 20:53:28
Oyuncunun silah mermi sayısını nasıl çekerim vivala modunda oyuncu mesela 10 kez ateş ediyor yaralanınca ya da relog atınca mermileri geri geliyor o'nu çözmek için.
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Zoxy - 18 Ocak 2019, 20:57:20
https://wiki.sa-mp.com/wiki/GetPlayerAmmo
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 20:58:12
Alıntı yapılan: Zoxy - 18 Ocak 2019, 20:57:20

https://wiki.sa-mp.com/wiki/GetPlayerAmmo

   pGuns[13],
   pAmmo[13],
13 tane slot  var oyuncunun hangi silahı kullandığını nasıl anlayım ben?
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Zoxy - 18 Ocak 2019, 21:01:21
GetPlayerWeapon fonksiyonu oyuncunun hangi silahı kullandığını çeker (silah id'si).
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 21:07:11
Alıntı yapılan: Zoxy - 18 Ocak 2019, 21:01:21

GetPlayerWeapon fonksiyonu oyuncunun hangi silahı kullandığını çeker (silah id'si).

O'nu demiyorum oyuncu silahları pGuns olarak mermisi pAmmo olarak kayıt ediliyor ben pGuns[?] kaçı kullandığını nasıl anlayacağım?
Şöyle mi yapıyım?
GetPlayerWeapon(playerid) == 23 if(PlayerData[pGuns][1] == 23 else if 24.25.26 diye götürüyüm mü?
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Bliss - 18 Ocak 2019, 21:22:10
Kod alıntıdır. Düzenlenmiştir. Bu kod sizdeki silahları ve mermilerini gösterir.

PAWN Kodu: Seç
CMD:checkweapons(playerid, params[])
{
new count = 0;
        new ammo, weaponid, weapon[24], string[128];
for (new c = 0; c < 13; c++)
                {
                    GetPlayerWeaponData(playerid, c, weaponid, ammo);
                    if (weaponid != 0 && ammo != 0)
                    {
                        count++;
                    }
                }
                SCM(playerid, COLOR_ORANGE, "||=============WEAPONS AND AMMO===========||");
                if(count > 0)
                {
                    for (new c = 0; c < 13; c++)
                    {
                        GetPlayerWeaponData(playerid, c, weaponid, ammo);
                        if (weaponid != 0 && ammo != 0)
                        {
                            GetWeaponName(weaponid, weapon, 24);
                            format(string, sizeof(string), "Silah: %s  Mermi: %d", weapon, ammo);
                            SendClientMessage(playerid, COLOR_GREEN, string);
                        }
                    }
                }
                else
                {
                    SCM(playerid, COLOR_GREY, "Silahın Yok");
                }
                return 1;
}
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 21:25:15
GiveWeaponToPlayer komutunu kopyalayarak yapmaya çalıştım ama weaponid yerine ne koyacağım?

GiveWeaponToPlayer(playerid, weaponid, ammo)
{
if (weaponid < 0 || weaponid > 46)
    return 0;

PlayerData[playerid][pGuns][GetWeaponSlot(weaponid)] = weaponid;
PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)] = ammo;
//SendServerMessage(playerid, "Silah Slot: %d, Silah ID: %d, Silah Mermi: %d.", GetWeaponSlot(weaponid), weaponid, PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)]);
return GivePlayerWeapon(playerid, weaponid, ammo);
}

Bu kısımda kaydetmesini istiyorum ama weaponid yerine ne koyacağım?
PAWN Kodu: Seç

WeaponSave(playerid)
{
if (!PlayerData[playerid][pLogged] && !PlayerData[playerid][pCharacter])
return 0;

new
    query[2048];
   

new ammo = GetPlayerAmmo(playerid);
PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)] = ammo;

for (new i = 0; i < 13; i ++) {
format(query, sizeof(query), "%s, `Gun%d` =  %d , `Ammo%d` =  %d ", query, i + 1, PlayerData[playerid][pGuns][i], i + 1, PlayerData[playerid][pAmmo][i]);
}
return 1;
}
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Bliss - 18 Ocak 2019, 21:27:01
Alıntı yapılan: Muteo - 18 Ocak 2019, 21:25:15

GiveWeaponToPlayer komutunu kopyalayarak yapmaya çalıştım ama weaponid yerine ne koyacağım?

GiveWeaponToPlayer(playerid, weaponid, ammo)
{
if (weaponid < 0 || weaponid > 46)
    return 0;

PlayerData[playerid][pGuns][GetWeaponSlot(weaponid)] = weaponid;
PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)] = ammo;
//SendServerMessage(playerid, "Silah Slot: %d, Silah ID: %d, Silah Mermi: %d.", GetWeaponSlot(weaponid), weaponid, PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)]);
return GivePlayerWeapon(playerid, weaponid, ammo);
}

Bu kısımda kaydetmesini istiyorum ama weaponid yerine ne koyacağım?
PAWN Kodu: Seç

WeaponSave(playerid)
{
if (!PlayerData[playerid][pLogged] && !PlayerData[playerid][pCharacter])
return 0;

new
    query[2048];
   

new ammo = GetPlayerAmmo(playerid);
PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)] = ammo;

for (new i = 0; i < 13; i ++) {
format(query, sizeof(query), "%s, `Gun%d` =  %d , `Ammo%d` =  %d ", query, i + 1, PlayerData[playerid][pGuns][i], i + 1, PlayerData[playerid][pAmmo][i]);
}
return 1;
}



Kodlarda sıkıntı yok gibi gözüküyor. Kendinize silah verin bir kaç el ateş edin mermisi gitmiyorsa MySQL'e yazmıyordur. Yoksa kodlarda sıkıntı yok gibi duruyor.
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Bliss - 18 Ocak 2019, 21:30:47
PAWN Kodu: Seç
WeaponSave(playerid)
{
if (!PlayerData[playerid][pLogged] && !PlayerData[playerid][pCharacter])
return 0;

new
    query[2048];
   

new ammo = GetPlayerAmmo(playerid);
PlayerData[playerid][pAmmo][GetWeaponSlot(weaponid)] = ammo;

for (new i = 0; i < 13; i ++) {
format(query, sizeof(query), "%s, `Gun%d` =  %d , `Ammo%d` =  %d ", query, i + 1, PlayerData[playerid][pGuns][i], i + 1, PlayerData[playerid][pAmmo][i]);
}
                mysql_tquery(g_iHandle, query);
return 1;
}


Bunun ile değiştirip dener misiniz ?
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 21:37:26
Dediğim gibi;
undefined symbol "weaponid"
pAmmo kısmını tamamen silip sadece mysql kayıt eden kısmı bırakıyım mı?
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 21:42:58
Bu arada mysql'e yazıyor çünkü Sql_SaveCharacter'de aynı komut var ama modda hiç bir yerde [pAmmo] kesen bir kısım yok
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Bliss - 18 Ocak 2019, 21:43:46
PAWN Kodu: Seç
WeaponSave(playerid)
{
if (!PlayerData[playerid][pLogged] && !PlayerData[playerid][pCharacter])
return 0;

new
    query[2048];

    for (new c = 0; c < 13; c++)
                    {
                        GetPlayerWeaponData(playerid, c, weaponid, ammo);
                        if (weaponid != 0 && ammo != 0)
                        {
                            format(query, sizeof(query), "%s, `Gun%d` =  %d , `Ammo%d` =  %d ", query, c + 1, weaponid, c + 1, ammo);
                        }
                    }
                mysql_tquery(g_iHandle, query);
return 1;
}


Dener misiniz ?
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 22:00:44
3 kez weaponid bulunamadı hatası geldi.
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Bliss - 18 Ocak 2019, 22:03:03
Alıntı yapılan: Muteo - 18 Ocak 2019, 22:00:44

3 kez weaponid bulunamadı hatası geldi.


PAWN Kodu: Seç
new ammo, weaponid;

Bunu üste ekleyin.
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 23:14:50
Attığın kod hata vermeye başladı konsolda Ammo1 bulunamadı gibi bende şöyle değiştirdim hala kayıt etmiyor?

WeaponSave(playerid)
{
if (!PlayerData[playerid][pLogged] && !PlayerData[playerid][pCharacter])
return 0;

new
    query[2048],
    ammo,
    weaponid;

    for (new c = 0; c < 13; c++)
    {
        GetPlayerWeaponData(playerid, c, weaponid, ammo);
        if (weaponid != 0 && ammo != 0)
        {
format(query, sizeof(query), "%s, `Gun%d` =  %d, `Ammo%d` = %d ", query, c + 1, weaponid, c + 1, ammo);
  mysql_tquery(g_iHandle, query);
}
}
return 1;
}
Başlık: Ynt: Mermi sayısını çekme?
Gönderen: Muteo - 18 Ocak 2019, 23:41:13
Acil yardım konsol böyle doluyor?

[23:40:11] ** [MySQL]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' `Gun3` =  24, `Ammo3` = 67 , `Gun4` =  25, `Ammo4` = 49 , `Gun5` =  29, `Ammo5`' at line 1