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.
https://wiki.sa-mp.com/wiki/GetPlayerAmmo
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?
GetPlayerWeapon fonksiyonu oyuncunun hangi silahı kullandığını çeker (silah id'si).
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ü?
Kod alıntıdır. Düzenlenmiştir. Bu kod sizdeki silahları ve mermilerini gösterir.
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;
}
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?
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;
}
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?
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.
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 ?
Dediğim gibi;
undefined symbol "weaponid"
pAmmo kısmını tamamen silip sadece mysql kayıt eden kısmı bırakıyım mı?
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
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 ?
3 kez weaponid bulunamadı hatası geldi.
Alıntı yapılan: Muteo - 18 Ocak 2019, 22:00:44
3 kez weaponid bulunamadı hatası geldi.
new ammo, weaponid;Bunu üste ekleyin.
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;
}
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