-1 голос 1021 просмотр 15.08.2021 / 22:16
GOAR
Инвентарь (МР)Крч, накодил новую систему инвентаря для своей игры. Все работает , но есть одно но.. Которое сломало мне мозг. Может кто-то увидит мою ошибку ? код: type Tinv=record id,typ,sum: integer; end; var inv: array [1..7,1..7] of Tinv; a,b: integer; procedure ResourcesToInv(typ,id:integer); var toInv: boolean; begin // если можно ещё добавить в инв. toInv:=true; for a:=1 to 7 do for b:=1 to 7 do if toInv then begin if (inv[a,b].typ=t) and (inv[a,b].id=id) and (inv[a.b].sum>0) then begin inv[a,b].sum:=inv[a,b].sum+1; toInv:=false; // запрещаем добавлять end; // после того как у нас уже есть 1 или более предмет в инв. прибавляем +1 ; но у меня какого-то чуда выходит (3 или более)! почему????!!!( else if (inv[a,b].typ=0) and (inv[a,b].id=0) and (inv[a,b].sum=0) then begin inv[a,b].typ:=typ; inv[a,b].id:=id; inv[a,b].sum:=inv[a,b].sum+1; toInv:=false; // запрещаем добавлять end; // тут если в инв. нет такого придмета , добавляем и прибавляем +1, тут проблем нет. // typ=1 это инструменты; // typ=2 это еда, прочее; // id это номер вещей; но почему 3???(( end; exit; end; дай вам Бог разобраться
Изм. GOAR
от 15.08.2021 / 22:18
Ответы
1 голос
в условиях нужно было еще проверять переменную toInv а в пере циклом убрать блок if toInv, потом что ранее toInv нигде не изменяется
Изм. vlavolk
от 16.08.2021 / 18:46
1 голос
15.08.2021 / 23:16
GOAR
тип клетки. если тип клетки инвентаря равен 1 то, это инструмент ; если 2 то прочее Всего: 3
|
Реклама |
но можете помочь с этим?