Просмотр полной версии : [Вопрос] gettime
Немного погуглив ничего путного не нашел, надеюсь вы объясните, функцию использую очень редко и по этому не понимаю в чем причина.
new h, m, s;
gettime(h, m, s);
if(m == 0 && s == 0)
{
код
}
Ошибка:
New\gamemodes\new.pwn(542) : error 001: expected token: ";", but found "if"
При этом использую функцию в паблике рестарта и никаких ошибок нету, нет слов :D
- - - Добавлено - - -
Строка с ошибкой
if(m == 0 && s == 0)
Daniel_Cortez
19.07.2015, 01:52
Кроме багов компилятора (коих в pawncc дофига) больше ничего в голову не приходит.
Проверяли ошибку на версии компилятора с багфиксами от Zeex?
https://github.com/Zeex/pawn
P.S.: Последний релиз можно скачать здесь:
https://github.com/Zeex/pawn/releases
P.S.S.: Ещё есть русифицированная версия компилятора, которая базируется на версии от Zeex. Лучше не пользуйтесь ей - скорее всего, это будет пустая трата времени, т.к. та версия компилятора давно не обновлялась.
Кроме багов компилятора (коих в pawncc дофига) больше ничего в голову не приходит.
Проверяли ошибку на версии компилятора с багфиксами от Zeex?
https://github.com/Zeex/pawn
Не помогло, ошибка осталась.
- - - Добавлено - - -
От русской версии компилятора ошибка осталась, от пред. версии релиза тоже, а вот от самой последней проблема решилась, но теперь чувствую будет реагировать на все инклуды
E:\New\pawno\include\sscanf2.inc(30) : fatal error 111: user error: Please include <a_npc> or <a_samp> first.
- - - Добавлено - - -
Прошу заметить, что все инклуды подключены правильно, а именно в таком порядке.
#include <a_samp>
#include <a_mysql>
#include <dc_cmd>
#include <zl_dlg>
#include <sscanf2>
#include <streamer>
#include <jit>
#include <mxdate>
#include <dc_spp>
#include <foreach>
#include <forveh>
#include <objects>
- - - Добавлено - - -
Решение: убрать из инклуда sscanf строку
#error Please include <a_npc> or <a_samp> first.
А потом скомпилировал мод, и что же у нас тут?
E:\New\gamemodes\new.pwn(542) : error 001: expected token: ";", but found "if"
Pawn compiler 3.10.20150531 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Если кто-то встречался с таким то прошу помочь.
$continue$
19.07.2015, 02:46
Покажите полностью код. И не надо в условий писать "Остальной код".
Если боитесь его показать - то, тогда зачем просить помощь?
Покажите полностью код. И не надо в условий писать "Остальной код".
Если боитесь его показать - то, тогда зачем просить помощь?
Да пожалуйста, ничего такого в коде нету, чтобы его скрывать, просто хотел как можно короче.
publics PlayerUpdate(playerid)
{
new h, m, s;
gettime(h, m, s);
SetPlayerMoney(playerid, Player[playerid][Cash])
if(m == 0 && s == 0)
{
SetWorldTime(h);
PayDay();
}
if(Player[playerid][Mute] != 0) Player[playerid][Mute] -= 1;
if(Player[playerid][Mute] == 1) SCM(playerid, COLOR_WHITE, "Áàí ÷àòà ñíÿò! Ïîæàëóéñòà, áîëüøå íå íàðóøàéòå ïðàâèëà ñåðâåðà!");
return true;
}
Daniel_Cortez
19.07.2015, 03:10
Покажите объявление макроса publics (чьей вообще идеей были назвать макрос для объявления public-функций именем "паблики"? -_-)
Покажите объявление макроса publics (чьей вообще идеей были назвать макрос для объявления public-функций именем "паблики"? -_-)
Просто так удобней, называть как-то по-другому смысла - нет, а приписать одну букву вместе форвардов удобно.
#define publics%0(%1) forward%0(%1); public%0(%1)
$continue$
19.07.2015, 03:27
кек.
SetPlayerMoney(playerid, Player[playerid][Cash]) ?????
SetPlayerMoney(playerid, Player[playerid][Cash]);
кек.
SetPlayerMoney(playerid, Player[playerid][Cash]) ?????
SetPlayerMoney(playerid, Player[playerid][Cash]);
Ну и? Собственная функция для изменения кол-ва денег, что такого-то?
$continue$
19.07.2015, 03:29
Вы реально не видите что после закрытие ), пропущено ;
Вот вообщем готовый код: (-_-)
forward PlayerUpdate(playerid);
public PlayerUpdate(playerid)
{
new h, m, s;
gettime(h, m, s);
SetPlayerMoney(playerid, Player[playerid][Cash]);
if (m == 0 && s == 0)
{
SetWorldTime(h);
PayDay();
}
if (Player[playerid][Mute] != 0) Player[playerid][Mute] -= 1;
if (Player[playerid][Mute] == 1) SCM(playerid, COLOR_WHITE, "Áàí ÷àòà ñíÿò! Ïîæàëóéñòà, áîëüøå íå íàðóøàéòå ïðàâèëà ñåðâåðà!");
return true;
}
Вы реально не видите что после закрытие ), пропущено ;
Лол, за 3 часа пока перерыл весь код не заметил :D Решено!
Daniel_Cortez
19.07.2015, 20:32
называть как-то по-другому смысла - нет
Уже давно существует макрос fpub ("forwarded public"):
#define fpub%0(%1) forward%0(%1);public%0(%1)
Уже не помню, где впервые видел этот макрос, на sa-mp.com наверное. Во всяком случае, в его названии хотя бы есть смысл.
Лол, за 3 часа пока перерыл весь код не заметил :D Решено!
#pragma semicolon 0
После такого ";" в конце каждого предложения вообще не нужны будут =)
Ок, перемещу тему в архив вопросов, а заодно и переименую её, чтобы лучше отразить суть проблемы.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot