PDA

Просмотр полной версии : [Вопрос] Ошибки при компилировании.



kala4iks
10.02.2017, 14:16
Добрый день столкнулся с такой проблемой как переделал систему заправки появились ошибки и мод не компилируется.


C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6886) : error 003: declaration of a local variable must appear in a compound block
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6886) : warning 221: label name "Float" shadows tag name
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6886) : error 017: undefined symbol "benz"
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6887) : error 017: undefined symbol "benz"
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6889) : error 029: invalid expression, assumed zero
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6889) : warning 215: expression has no effect
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6889) : error 001: expected token: ";", but found ")"
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6889) : error 029: invalid expression, assumed zero
C:\Users\Âëàäåëåö\Desktop\Samp Stories\gamemodes\SampStories.pwn(6889) : fatal error 107: too many error messages on one line

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


7 Errors.




new string[124];
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return send(playerid,COLOR_RED,""vError"Вы не в авто!");
if(IsAtGasStation(playerid) && GetPlayerState(playerid) == 2)
new Float:benz = 100.00 - Gas[GetPlayerVehicleID(playerid)];
new senabenz = 100*floatround(benz);
if(GetPVarInt(playerid,"pMoney") < senabenz)return f(string,"* Не хватает денег для заправки (необходимо: $%d).",senabenz),send(playerid,COLOR_LIGHTBLUE,string);
GivePlayerKapusta(playerid,-= senabenz);
BiznesInfo[74][bTill] += senabenz;
send(playerid, COLOR_GREEN, "Заправка началась, пожалуйста подождите!");
TogglePlayerControllable(playerid,0);
SetPVarInt(playerid, #pFillingStarting,1);
DisablePlayerCheckpoint(playerid);
TextDrawHideForPlayer(playerid, Zapravka);
TextDrawHideForPlayer(playerid, Box3);
return 1;

Nexius_Tailer
10.02.2017, 14:34
Что за странное условие?

//...
if(IsAtGasStation(playerid) && GetPlayerState(playerid) == 2) // ?
new Float:benz = 100.00 - Gas[GetPlayerVehicleID(playerid)];
//...
Ни скобок тебе никаких, ни чего-то ещё, что обозначало бы, какой код в теле этого условия должен быть.
Собственно поэтому скорее всего у тебя и ошибки, ибо раз не объявил границы блока кода в условии - по умолчанию при его совпадении выполняется лишь выделение памяти под переменную

kala4iks
10.02.2017, 21:39
Что за странное условие?

//...
if(IsAtGasStation(playerid) && GetPlayerState(playerid) == 2) // ?
new Float:benz = 100.00 - Gas[GetPlayerVehicleID(playerid)];
//...
Ни скобок тебе никаких, ни чего-то ещё, что обозначало бы, какой код в теле этого условия должен быть.
Собственно поэтому скорее всего у тебя и ошибки, ибо раз не объявил границы блока кода в условии - по умолчанию при его совпадении выполняется лишь выделение памяти под переменную

Чет и в правду затупил малех. Спасибо большое.

kala4iks
10.02.2017, 22:45
Еще столкнулся с такой проблемой почему-то иногда не пишет что не достаточно денег для заправки, и помимо этого если у меня 0 денег то 1 раз напишет что я заправился на 0$ и даст бензина что в панели бензина будет полная чушь, а второй рас если заправится то напишет что заправился на 16516156$ и даст бензина уйму. +денег еще накинет.

http://rgho.st/6syqNlmbC/thumb.png (http://rgho.st/6syqNlmbC.view)

Alpano
10.02.2017, 22:55
Еще столкнулся с такой проблемой почему-то иногда не пишет что не достаточно денег для заправки, и помимо этого если у меня 0 денег то 1 раз напишет что я заправился на 0$ и даст бензина что в панели бензина будет полная чушь, а второй рас если заправится то напишет что заправился на 16516156$ и даст бензина уйму. +денег еще накинет.

http://rgho.st/6syqNlmbC/thumb.png (http://rgho.st/6syqNlmbC.view)

показывай код заправки

kala4iks
10.02.2017, 22:58
показывай код заправки


new string[124];
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return send(playerid,COLOR_RED,""vError"Вы не в авто!");
if(IsAtGasStation(playerid) && GetPlayerState(playerid) == 2)
{
new Float:FillUp = 100.00 - Gas[GetPlayerVehicleID(playerid)];
new cenabanz = benzincost*floatround(FillUp);
if(GetPVarInt(playerid, "pMoney") < cenabanz)return f(string,"[ОШИБКА] {FFFFFF}Не хватает денег для заправки (необходимо: $%d).",cenabanz),send(playerid,0xFF0000AA,string);
Gas[GetPlayerVehicleID(playerid)] += cenabanz;
f(string,"* Транспорт был заправлен на: %d$.",cenabanz);
send(playerid,COLOR_LIGHTBLUE,string);
GivePlayerKapusta(playerid, - cenabanz);
}
DisablePlayerCheckpoint(playerid);
TextDrawHideForPlayer(playerid, Zapravka);
TextDrawHideForPlayer(playerid, Box3);
}

Alpano
11.02.2017, 16:59
Думаю проблема в том что у тебя деньги хранятся в PVARE!
Кто додумался до того чтобы засунуть одну из наиболее часто используемых переменных в PVAR?...

1) Переведи с PVAR на классическую переменную. (Скорее всего она у тебя есть, но именно тут она каким то хером преобразовалась в PVAR.
2) Сделай проверку, если у машины бензина меньше 100% то тогда заправляем, иначе просто пиши что авто и так полностью заправлено.

kala4iks
11.02.2017, 17:03
Думаю проблема в том что у тебя деньги хранятся в PVARE!
Кто додумался до того чтобы засунуть одну из наиболее часто используемых переменных в PVAR?...

1) Переведи с PVAR на классическую переменную. (Скорее всего она у тебя есть, но именно тут она каким то хером преобразовалась в PVAR.
2) Сделай проверку, если у машины бензина меньше 100% то тогда заправляем, иначе просто пиши что авто и так полностью заправлено.

Сейчас переведу. попробую.

Alpano
11.02.2017, 17:09
Сейчас переведу. попробую.


new string[124];
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return send(playerid,COLOR_RED,""vError"Вы не в авто!");
if(Gas[GetPlayerVehicleID(playerid)] > 99) return send(playerid,COLOR_RED,""vError"Авто уже заправлено!");
if(!IsAtGasStation(playerid)) return send(playerid,COLOR_RED,""vError"Вы не на заправке!");
new Float:FillUp = 100.00 - Gas[GetPlayerVehicleID(playerid)],
cenabanz = benzincost*floatround(FillUp);
if(PlayerInfo[playerid][pMoney] < cenabanz)return f(string,"[ОШИБКА] {FFFFFF}Не хватает денег для заправки (необходимо: $%d).",cenabanz),send(playerid,0xFF0000AA,string);
Gas[GetPlayerVehicleID(playerid)] += cenabanz;
f(string,"* Транспорт был заправлен на: %d$.",cenabanz);
send(playerid,COLOR_LIGHTBLUE,string);
GivePlayerKapusta(playerid, - cenabanz);
DisablePlayerCheckpoint(playerid);
TextDrawHideForPlayer(playerid, Zapravka);
TextDrawHideForPlayer(playerid, Box3);


что-то вроде такого должно быть

kala4iks
11.02.2017, 18:11
new string[124];
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return send(playerid,COLOR_RED,""vError"Вы не в авто!");
if(Gas[GetPlayerVehicleID(playerid)] > 99) return send(playerid,COLOR_RED,""vError"Авто уже заправлено!");
if(!IsAtGasStation(playerid)) return send(playerid,COLOR_RED,""vError"Вы не на заправке!");
new Float:FillUp = 100.00 - Gas[GetPlayerVehicleID(playerid)],
cenabanz = benzincost*floatround(FillUp);
if(PlayerInfo[playerid][pMoney] < cenabanz)return f(string,"[ОШИБКА] {FFFFFF}Не хватает денег для заправки (необходимо: $%d).",cenabanz),send(playerid,0xFF0000AA,string);
Gas[GetPlayerVehicleID(playerid)] += cenabanz;
f(string,"* Транспорт был заправлен на: %d$.",cenabanz);
send(playerid,COLOR_LIGHTBLUE,string);
GivePlayerKapusta(playerid, - cenabanz);
DisablePlayerCheckpoint(playerid);
TextDrawHideForPlayer(playerid, Zapravka);
TextDrawHideForPlayer(playerid, Box3);


что-то вроде такого должно быть

Заправляет все равно на 919191981 бензина.

Alpano
11.02.2017, 18:46
printf("Money - %d, Fuel - %0.2f, Price - %d",/*Пемеременная денег*/, Gas[GetPlayerVehicleID(playerid)],benzincost);
Вставь в начало команды, и воспользуйся ей.
Покажи что в логе, думаю дело в переменных.

kala4iks
11.02.2017, 19:03
printf("Money - %d, Fuel - %0.2f, Price - %d",/*Пемеременная денег*/, Gas[GetPlayerVehicleID(playerid)],benzincost);
Вставь в начало команды, и воспользуйся ей.
Покажи что в логе, думаю дело в переменных.

Вот это я еще пробовал если не хватает денег а последняя это я уже заправился.




----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team

[17:58:51] weburl = "www.sa-mp.com" (string)
[17:58:51] messageholelimit = 3000 (int)
[17:58:51] lagcompmode = 1 (int)
[17:58:51]
[17:58:51] Server Plugins
[17:58:51] --------------
[17:58:51] Loading plugin: mysql.dll
[17:58:51] >> plugin.mysql: R39 successfully loaded.
[17:58:51] Loaded.
[17:58:51] Loading plugin: streamer.dll
[17:58:51]

*** Streamer Plugin v2.6.1 by Incognito loaded ***

[17:58:51] Loaded.
[17:58:51] Loading plugin: sscanf.dll
[17:58:51]

[17:58:51] ===============================

[17:58:51] sscanf plugin loaded.

[17:58:51] Version: 2.8.1

[17:58:51] (c) 2012 Alex "Y_Less" Cole

[17:58:51] ===============================

[17:58:51] Loaded.
[17:58:51] Loading plugin: dc_cmd.dll
[17:58:51] Daniel's CMD plugin v2.8
[17:58:51] (c) 2014 Daniel_Cortez
[17:58:51] www.pro-pawn.ru
[17:58:51] Loaded.
[17:58:51] Loaded 4 plugins.

[17:58:51]
[17:58:51] Ban list
[17:58:51] --------
[17:58:51] Loaded: samp.ban
[17:58:51]
[17:58:51]
[17:58:51] Filterscripts
[17:58:51] ---------------
[17:58:51] Loading filterscript 'Connect.amx'...
[17:58:51] Unable to load filterscript 'Connect.amx'.
[17:58:51] Loaded 0 filterscripts.

[17:58:51] Подключение к базе успешно
[17:58:51] |Пикапы: Загружены - потрачено 0 (ms)
[17:58:51] |Объекты созданы - потрачено 1 (ms)
[17:58:51] Текстдравы созданы- потрачено 37 (ms)
[17:58:51] |Мод полностью загружен - потрачено 76 (ms)
[17:58:51] Number of vehicle models: 0
[17:58:51] Success: ID личных авто были перезаписаны: Потрачено - 0 мс
[17:58:51] |Личные авто 0 ед: были загружены. Потрачено - 0 мс
[17:58:51] |Фракционные авто 283 ед. загружены - потрачено 2 (ms)
[17:58:51] |Загрузка объектов с БД прошла за: 1 мс
[17:58:51] |Дома: 0 - потрачено 0 (ms)
[17:58:51] |Банкоматы: 19 - потрачено 1 (ms)
[17:58:51] |Бизнес: 73 - потрачено 4 (ms)
[17:58:51] |Инструменты загружены.
[17:58:51] |Зарплата загружена.
[17:58:51] Фракции 19 загружены, удачной игры.
[17:58:51] |Загрузка БанИнформации прошла за: 0 мс
[17:58:51] |Уличные авто загружены: 18 едза: 2 мс
[17:58:51] |Все авто сервера загружены. Общее количество 301 едениц.
[17:58:51] Игровой мод готов к работе.
[17:59:15] [connection] 192.168.1.110:59589 requests connection cookie.
[17:59:16] [connection] incoming connection: 192.168.1.110:59589 id: 0
[17:59:16] [join] kala4ik has joined the server (0:192.168.1.110)
[18:00:06] SELECT * FROM `accounts` WHERE `Nickname` = 'kala4ik' AND `Apass` = '0000'
[18:01:05] Money - 19, Fuel - 98.50, Price - 20
[18:01:14] Money - 20, Fuel - 98.36, Price - 20
[18:01:30] Money - 40, Fuel - 98.29, Price - 20

Alpano
11.02.2017, 19:27
Во первых, ошибка в строчке

Gas[GetPlayerVehicleID(playerid)] = 100.0

Нужное выделил.
CrachDetect подключи

kala4iks
11.02.2017, 19:37
Во первых, ошибка в строчке

Gas[GetPlayerVehicleID(playerid)] = 100.0

Нужное выделил.
CrachDetect подключи

Готово. И что за ошибка в строчке не пойму? Я хотел чтоб сколько денег отняло сток и залило бензин допустим 5$ за литр если есть 5 доларов то заправит на 1 литр.

Alpano
11.02.2017, 22:42
Готово. И что за ошибка в строчке не пойму? Я хотел чтоб сколько денег отняло сток и залило бензин допустим 5$ за литр если есть 5 доларов то заправит на 1 литр.

ну тогда
Gas[GetPlayerVehicleID(playerid)] += FillUp;

но, твоя команда не предусматривает пока что то, то что можно заправитьм меньше чем полный бак