Просмотр полной версии : [Вопрос] GetPlayerWeaponData
vovandolg
29.01.2016, 10:09
Как мне правильно без лишней пыли посчитать все Ammo во всех слотах GetPlayerWeaponData(playerid,0,Gun,Ammo); через цикл for
Слотов всего 13(0-12)..
Desulaid
29.01.2016, 12:08
Попробуйте так.
new
Gun, Ammo, CountAmmo;
for (new i; i <= 12; i++)
{
GetPlayerWeaponData(playerid, i, Gun, Ammo);
CountAmmo += Ammo;
}
Попробуйте так.
new
Gun, Ammo, CountAmmo;
for (new i; i <= 12; i++)
{
GetPlayerWeaponData(playerid, i, Gun, Ammo);
CountAmmo += Ammo;
}
а ведь можно пропустить параметр weapon, за ненадобностью:?
Desulaid
29.01.2016, 13:58
а ведь можно пропустить параметр weapon, за ненадобностью:?
Неа, этот параметр есть ссылка и проигнорировать его нельзя.
а ведь можно пропустить параметр weapon, за ненадобностью:?
new summaAmmo = 0;
for(new sl = 0, ammo = 0; sl < 13; sl++)
{
GetPlayerWeaponData(playerid, sl, ammo, ammo);
summaAmmo += ammo;
}
printf("Summa ammo: %d.", summaAmmo);
vovandolg
30.01.2016, 03:29
for(new sl = 0, ammo = 0; sl < 13; sl++)
А вот тут часом не произойдёт так что при каждом выполнении цикла патроны будут обнуляться,
то есть к примеру ammo первого слота равно 4 а потом начинает второй считать и обнуляет и так с каждым слотом, или как оно поведёт себя?
______
GetPlayerWeaponData(playerid, sl, ammo, ammo);
А так разве можно? одной переменной в двух значениях юзать?
for(new sl = 0, ammo = 0; sl < 13; sl++)
А вот тут часом не произойдёт так что при каждом выполнении цикла патроны будут обнуляться,
то есть к примеру ammo первого слота равно 4 а потом начинает второй считать и обнуляет и так с каждым слотом, или как оно поведёт себя?
ну sl ведь не обнуляется...
GetPlayerWeaponData(playerid, sl, ammo, ammo);
А так разве можно? одной переменной в двух значениях юзать?
да, сначала ammo используется для получения weapon, а после значение перезаписывается на значение ammo, в конце концов у нас ammo будет равняться кол-ву патронов.
for(new sl = 0, ammo = 0; sl < 13; sl++)
А вот тут часом не произойдёт так что при каждом выполнении цикла патроны будут обнуляться,
то есть к примеру ammo первого слота равно 4 а потом начинает второй считать и обнуляет и так с каждым слотом, или как оно поведёт себя?
Ну а теперь давайте окунёмся в то, что каждый должен изучит ещё на стадии ознакомления с понятием "Что такое Pawn?":
for(Оператор_инициализация; Условие; Поститерационная_команда)
Оператор_инициализация - это тот код, который выполнится при старте цикла. Здесь записывают объявление переменных или же задают этим переменным стартовые значения, если переменные были объявлены ранее.
Условие - это условия выполнения цикла. То бишь пока условие не выполнится, цикл будет продолжать выполнять код в своём теле (ели оставить пустым, то цикл будет бесконечным).
Поститерационная_команда - это тот код, который будет выполняться после выполнения тела цикла (в конце каждой итерации). Здесь записывают действия с переменными, значения которых сравниваются в условии.
И работа цикла будет выглядеть, примерно, так:
Оператор_инициализация
Итерация №1:
Условие
{Тело_Цикла}
Поститерационная_команда
Итерация №2:
Условие
{Тело_Цикла}
Поститерационная_команда
Итерация №3:
Условие
{Тело_Цикла}
Поститерационная_команда
Итерация №4:
Условие
{Тело_Цикла}
Поститерационная_команда
Итерация №5:
Условие
{Тело_Цикла}
Поститерационная_команда
...//Пока условие не будет выполнено
Итерация №over900:
Условие//Условие выполнено
break;//Остановка цикла
Из этого всего должно стать понятно, что переменная ammo обнуляется только при старте цикла и больше её мы не обнуляем
vovandolg
31.01.2016, 20:12
Тему можно закрывать, оба варианта гуд) Спасибо.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot