When I run the code it tells me there’s an error which is ')' expected near '='
:
function restartLvl()
for i = 1, #balloonTexts do
display.remove(balloonTexts[i])
print ("restart level")
end
score.text = '0'
ballRemain.text = '3'
balloonText = {}
createBalloons(1, 3)
if (askUser.isVisible = true) then --this is the line where the error occured
askUser.isVisible = false
end
if (yesBtn.isVisible = true) then
yesBtn.isVisible = false
end
if (noBtn.isVisible = true) then
noBtn.isVisible = false
end
end
I don’t know how it is still missing a ‘)
‘, because I closed all the brackets.
asked Mar 11, 2014 at 8:10
=
is the assignment operator, ==
is the operator to test equality. Change it to:
if (askUser.isVisible == true) then
askUser.isVisible = false
end
And all the others as well. The brackets ()
can be ommited for simplicity:
if askUser.isVisible == true then
askUser.isVisible = false
end
If the value is a boolean, you can also do this because all values that are not nil
or false
are treated as true.
if askUser.isVisible then
askUser.isVisible = false
end
answered Mar 11, 2014 at 8:13
Yu HaoYu Hao
119k44 gold badges230 silver badges289 bronze badges
4
This is not related to your answer but
I recommend you to use lua glider IDE because this type error can be detect well by using this IDE.
answered Mar 14, 2014 at 8:06
Делаю проэкт галерею на javascript, потерял скобку.
Ошибка расположена в функции arrows. Пишет, Uncaught SyntaxError: Illegal return statement.
function showImage(event){
//ПРОВЕРКА И УДАЛЕНИЕ
//##############
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
if (document.querySelector(".OtherMiniMain")){
document.querySelector(".OtherMiniMain").classList.remove(".OtherMiniMain");}
let pictures=document.querySelector(".pictures");
if (document.querySelector(".selected")){
document.querySelector(".selected").classList.remove("selected");
}
if (document.querySelector(".open")){
document.querySelector(".open").remove()
}
let OtherMains=document.querySelectorAll(".otherMain");
for (item of OtherMains){
item.remove()
}
let eventImage;
if (document.querySelector(".miniUpdate")){
eventImage=document.querySelector(".miniUpdate");
}
else {
eventImage=event.target;
}
//ИНИЦИАЛИЗАЦИЯ
//#############
let heart=document.querySelector(".heart");
if (!eventImage.classList.contains("chosenImg")){
heart.classList.remove("beforeChose")
}
else{
heart.classList.add("beforeChose")
}
let main=document.querySelector("main");
let block=document.querySelector(".show");
let imageDiv=document.querySelector(".ImgAndArrow");
eventImage.classList.add("selected")
block.hidden=false;
let other=document.querySelector(".other")
document.body.style.overflow="hidden";
let image=document.createElement("img");
image.src=eventImage.src;
image.classList.add("open");
imageDiv.append(image);
let OtherMainImage=image.cloneNode();
OtherMainImage.classList.add("otherMain");
OtherMainImage.classList.remove("open");
OtherMainImage.classList.add("OtherMiniMain")
createSublings()
function createSublings(){
createMini(2,"-");
createMini(1,"-");
pictures.append(OtherMainImage)
if (document.querySelector(".chosen").textContent=="Home"){
let items=document.querySelectorAll(".chosenImg");
if (getChosenIndex()==items.length-2){
createMini(1,"+")
}
if (getChosenIndex()<item.length-2){
createMini(1,"+");
createMini(2,"+");
}
function getChosenIndex(){
let col=0;
for (item of items){
if (item.classList.contains("selected")){
return col
}
col++
}
}}
else{
if (getIndex()==main.children.length-2){
createMini(1,"+");
}
if (getIndex()<main.children.length-2){
createMini(1,"+");
createMini(2,"+");
}
}
function checkNoneDiv(){
let col=0;
for (item of document.querySelectorAll(".noneImageDiv")){
col++
}
return col
}
// alert(checkNoneDiv())
function createMini(num,znak){
let coords=OtherMainImage.getBoundingClientRect();
let image=OtherMainImage.cloneNode();
let Children;
if (document.querySelector(".chosen").textContent=="Home"){
// alert("sdf")
Children=main.querySelectorAll(".chosenImg")
}
else{
Children=main.children
}
image.classList.remove("OtherMiniMain");
if (znak=="-"){
if (!Children[getIndex()-num]){
if (checkNoneDiv()>=2){
return
}
appendNoneDiv()
return
}
image.src=Children[getIndex()-num].src;
image.dataset.number=`r${getIndex()-num}`;
OtherMainImage.dataset.number=`r${Number(image.getAttribute("data-number").split("").slice(1).join(""))+num}`
pictures.append(image);
}
if (znak=="+"){
if (!Children[getIndex()+num]){
if (checkNoneDiv()>=2){
return
}
appendNoneDiv()
return
}
image.src=Children[getIndex()+num].src;
image.dataset.number=`r${getIndex()+num}`;
OtherMainImage.dataset.number=`r${Number(image.getAttribute("data-number").split("").slice(1).join(""))-num}`
pictures.append(image);
}
function appendNoneDiv(){
let noneDiv=document.createElement("div");
noneDiv.classList.add("noneImageDiv")
pictures.append(noneDiv)
}
}
// alert(document.querySelector("main").children[0].src);
// image.src=main.children[getIndex()-1].src
// other.append(image);
// let predImage=OtherMainImage.cloneNode();
// predImage.style.left=`${coords.left-coords.width*2-45}px`
}
function getIndex(){
let col=0;
for (item of main.children){
if (item.classList.contains("selected")){
return col;
}
col++
}
}
let miniClicks=document.querySelectorAll(".otherMain");
for (item of miniClicks){
item.addEventListener("click",miniClick)
}
}
function hideShow(event){
document.querySelector(".deleteWindow").hidden=true;
for (item of document.querySelectorAll(".noneImageDiv")){
item.remove()
}
let block=document.querySelector(".show");
block.hidden=true;
document.body.style.overflow="auto";
if (document.querySelector(".miniUpdate")){
document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
}
function miniClick(event){
document.querySelector(".deleteWindow").hidden=true;
if (document.querySelector(".noneImageDiv")){
for (item of document.querySelectorAll(".noneImageDiv")){
item.remove()
}
}
if (document.querySelector(".miniUpdate")){
document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
let main=document.querySelector("main");
if (event.target.getAttribute("data-number")==null){
return
}
let classIndex=Number(event.target.getAttribute("data-number").split("").slice(1).join(""));
main.children[classIndex].classList.add("miniUpdate");
showImage()
}
function arrows(event){
let canDelete;
let num=1;
let MainMini=document.querySelector(".OtherMiniMain");
if (!MainMini){
return
}
if (!MainMini.getAttribute("data-number")){
hideShow()
return
}
let classIndex=Number(MainMini.getAttribute("data-number").split("").slice(1).join(""));
if (document.querySelector(".canDelete")){
if (classIndex<=0){
document.querySelector(".canDelete").classList.remove("canDelete")
canDelete=document.querySelector(".arrowRight");
num=0
}
else{
canDelete=document.querySelector(".arrowLeft");
}
}
else{
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
canDelete=event.target;
}
if (document.querySelector(".miniUpdate")){
document.querySelector(".miniUpdate").classList.remove("miniUpdate")
}
if (event){
if (event.key=="ArrowRight"){
document.querySelector(".deleteWindow").hidden=true;
let newIndex=classIndex+1;
if (newIndex>=main.children.length){
return
}
if (document.querySelector(".chosen").textContent=="Home"){
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}}
if (newIndex==1){
document.querySelector(".noneImageDiv").remove();
document.querySelector(".noneImageDiv").remove()
}
if (newIndex==2){
document.querySelector(".noneImageDiv").remove()
}
// if (main.children[newIndex])
main.children[newIndex].classList.add("miniUpdate");
// if (main.children[newIndex].classList.contains(""))
showImage()}
if (event.key=="ArrowLeft"){
document.querySelector(".deleteWindow").hidden=true;
let newIndex=classIndex-1;
if (newIndex<=-1){
return
}
if (document.querySelector(".chosen").textContent=="Home"){
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}}
main.children[newIndex].classList.add("miniUpdate");
showImage()
}
}
if (canDelete.className=="arrowRight"){
let newIndex=classIndex+num;
if (newIndex>=main.children.length){
return
}
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}
if (newIndex==1){
document.querySelector(".noneImageDiv").remove();
document.querySelector(".noneImageDiv").remove()
}
if (newIndex==2){
document.querySelector(".noneImageDiv").remove()
}
}
main.children[newIndex].classList.add("miniUpdate");
showImage()}
//LEFT
if (canDelete.className=="arrowLeft"){
let newIndex=classIndex-1;
// if (newIndex<=-1){
// return
// }
if (document.querySelector(".chosen").textContent=="Home"){
if (!main.children[newIndex].classList.contains("chosenImg")){
return
}}
main.children[newIndex].classList.add("miniUpdate");
showImage()
}
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
function deleteImage(event){
if (!document.querySelector(".selected")){
return
}
if (document.querySelector(".selected").classList.contains("chosenImg")){
document.querySelector(".heart").classList.remove("beforeChose");
}
if (document.querySelector(".canDelete")){
document.querySelector(".canDelete").classList.remove("canDelete")
}
let pictures=document.querySelector(".pictures");
let selected=document.querySelector(".selected");
let deleteWindow=document.querySelector(".deleteWindow");
if (!selected){
hideShow()
return
}
ok=document.querySelector(".deleteOk");
cancel=document.querySelector(".deleteCancel");
if (event.key=="Delete"|| event.target.classList.contains("trash")){
deleteWindow.hidden=false;
ok.addEventListener("click",deleteWindowButttons);
cancel.addEventListener("click",deleteWindowButttons);
document.addEventListener("keydown",deleteWindowButttons)
}
}
function deleteWindowButttons(event){
let pictures=document.querySelector(".pictures");
let selected=document.querySelector(".selected");
let deleteWindow=document.querySelector(".deleteWindow");
if (event.target.classList.contains("deleteOk") || event.key=="Enter"){
selected.remove();
deleteWindow.hidden=true;
pictures.classList.add("canDelete");
arrows()
}
if (event.target.classList.contains("deleteCancel") || event.key=="Escape"){
deleteWindow.hidden=true;
}
}
function showWindowfromImage(event){
if (document.querySelector(".selectedForRight")){
document.querySelector(".selectedForRight").classList.remove("selectedForRight")
}
event.target.classList.add("selectedForRight")
let whiteWindow=document.querySelector(".window");
let deleteW=document.querySelector(".windowDeleteImg");
if (!event.target.parentNode.tagName){
return
}
if (event.target.parentNode.tagName!="MAIN" || event.target.tagName!="IMG"){
whiteWindow.hidden=true;
return
}
// alert(event.target.parentNode.tagName)
whiteWindow.hidden=false;
whiteWindow.style.left=event.pageX+"px";
whiteWindow.style.top=event.pageY+"px";
deleteW.addEventListener("click",deleteOrChosen)
event.preventDefault();
}
function deleteOrChosen(event){
document.querySelector(".selectedForRight").remove()
}
function ShowChosenBlock(event){
let show=document.querySelector(".show")
let main=document.querySelector("main");
let images=main.querySelectorAll("img");
document.querySelector(".deleteWindow").hidden=true;
show.hidden=true;
if (event.target.textContent=="Chosen"){
for (item of images){
if (!item.classList.contains("chosenImg")){
item.hidden=true;
}
}
document.body.style.background="rgba(255, 197, 249, 1)";
event.target.textContent="Home";
return
}
if (event.target.textContent=="Home"){
for (item of images){
item.hidden=false;
}
document.body.style.background="rgba(136, 134, 134, 1)";
event.target.textContent="Chosen";
return
}}
function addToChosen(event){
let selected=document.querySelector(".selected");
if (selected.classList.contains("chosenImg")){
selected.classList.remove("chosenImg")
document.querySelector(".heart").classList.remove("beforeChose");
return
}
selected.classList.add("chosenImg");
document.querySelector(".heart").classList.add("beforeChose");
}
//РАБОТА ПРОГРАММЫ
let heart=document.querySelector(".heart");
heart.addEventListener("click", addToChosen)
let chosen=document.querySelector(".chosen");
chosen.addEventListener("click",ShowChosenBlock);
let bin=document.querySelector(".trash");
bin.addEventListener("click",deleteImage);
document.addEventListener("keydown",deleteImage);
let arrowLeft=document.querySelector(".arrowLeft");
let arrowRight=document.querySelector(".arrowRight");
arrowLeft.addEventListener("click",arrows);
arrowRight.addEventListener("click",arrows);
document.addEventListener("keydown",arrows)
let left=document.querySelector(".left");
left.addEventListener("click",hideShow)
let main=document.querySelector("main");
let images=main.querySelectorAll("img");
document.addEventListener("contextmenu",event=>event.preventDefault())
for (item of images){
item.addEventListener("click",showImage);
// item.addEventListener("contextmenu",showWindowfromImage);
}
let whiteWindow=document.querySelector(".window");
document.addEventListener("contextmenu",showWindowfromImage);
document.addEventListener("click",event=>whiteWindow.hidden=true);
document.addEventListener("scroll",event=>whiteWindow.hidden=true);
window.addEventListener("resize",event=>whiteWindow.hidden=true);
Здравствуйте уважаемые пользователи форума pawno-crmp.
Этот минуал подойдет тем, у кого в моде есть незакрытая скобка, и если стандартные способы не помогают найти ее. Если стандартными способами найти незакрытую скобку не получается, то Вы попали по адресу.
Итак, начнем.
Сегодня я столкнулся с такой проблемой, как незакрытая скобка. Как известно, если в коде имеется незакрытая скобка, то при компилировании компилятор вылетает не показав ошибку. Я перепробовал стандартные способы как найти незакрытую скобку, но они не подходят, так как у меня в коде (ну наверно не только у меня) есть за комментированные скрипты типа таких:
/*
public test()
{
new blablalbla;
*/
Дело в том, что программы подсчитывающие количество открытых и закрытых скобок считают за комментированные скобки, поэтому программа выдаст совсем не ту строку которую нужно.
Перейдем к делу.
Чтобы найти незакрытую скобку, я использовал это: (не знаю как назвать)
#error abc
Если в коде ввести «это», компилятор выдаст ошибку. Опишу поподробнее.
Например незакрытая скобка находится на строке номер 5612. Если ввести #error abc дальше строки 5612, например 6719, то компилятор так же вылетит не выдав никаких ошибок, а если ввести #error abc до строки 5612 например 3118, то компилятор выдаст ошибку «(3118) : fatal error 111: user error: abc». Думаю теперь вы поняли принцип поиска незакрытой скобки.
Я делал так. С начало ввел #error abc в середину мода, компилятор выдал ошибку «(3118) : fatal error 111: user error: abc». Далее ниже, и еще ниже. Я делал это до тех пор, пока компилятор не вылетел. И наконец-то я нашел незакрытую скобку.
Удачи Вам в поиске незакрытой скобки!
Автор минуала я, DimanJeans!
#1
Отправлено 26 января 2013 — 01:07
-
- Профессионал
-
В этом туториале я покажу вам,как искать пропущенную скобку.
Для этого нам потребуется:
- ActivePerl ссылка
- Скрипт Brackets ссылка
Устанавливаем ActivePerl, затем открываем архив со скриптом Brackets и содержимое папки perl в архиве,переносим в папу Perl,которая создалась при установке ActivePerl.
Теперь как проверить мод:
Берём мод(Именно исходник[.pwn]) и кидаем его в папку Perl.После этого открываем GUI в папке Perl.В левом верхнем углу мы наблюдаем кнопку «Open File» и указываем путь до нашего исходника,после того как вы указали путь,он просканирует ваш мод и покажет вам:
- Кол-во закрытых скобок
- Кол-во открытых скобок
- Если где-то недостаёт какой-либо скобки,он покажет в каком месте.
На этом всё. Туториал подготовил: Darw1
Сообщение отредактировал iRusel: 18 августа 2014 — 20:36
Причина редактирования: Обновлена ссылка на скрипт
8
#2
Отправлено 26 января 2013 — 01:11
-
- Профессионал
-
2
#3
Отправлено 09 марта 2013 — 21:14
-
- Новичок
-
Открывю GUI — ничего не происходит…
0
#4
Отправлено 09 марта 2013 — 21:17
-
- Профессионал
-
Korsar240 (09 марта 2013 — 21:14) писал:
Открывю GUI — ничего не происходит…
Perl установил?
скрипт закинул куда? В корень?
2
#5
Отправлено 09 марта 2013 — 21:27
-
- Новичок
-
Перл установил естественно, скрипт закинул по пути:
D:ПапкаlibPerl
Добавь в скайп coag.dragon, есть вопрос…
0
#6
Отправлено 09 марта 2013 — 21:31
-
- Профессионал
-
Скопируй скрипт в корень перла к примеру у меня перл установлен D:Program FilesPerl так и копируй скрипт
1
#7
Отправлено 09 марта 2013 — 21:49
-
- Новичок
-
Всё получилось, спасибо iRusel!)
0
#8
Отправлено 12 марта 2013 — 14:49
-
- Новичок
-
Нормальный?? За что репутацию снизил??? За то что просто не понял???
Сообщение отредактировал Korsar240: 12 марта 2013 — 14:50
1
#9
Отправлено 03 июля 2013 — 19:58
-
- Banned
-
#10
Отправлено 20 января 2014 — 17:32
-
- Местный
-
Привет ребята, а он лишние скобки показывает?
0
- ← Предыдущая тема
- Уроки
- Следующая тема →
- Вы не можете создать новую тему
- Вы не можете ответить в тему
1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей
Если вы пропустили где-то скобку (не закрыли), то pawn выдаст 26 ошибок на функции, которые в моде объявлены.
Если вы поставили лишнюю скобку, pawn вылетит.
Благодаря этому уроку вы сможете найти пропущенную скобку.
1) Скачиваем эту программу. И открываем ее:
Спойлер
2) Кликаем «Browse» и указываем путь до .pwn файла.
3) Нажимаем «Start».
4) После, программа вам выдаст кол-во открытых и закрытых скобок. Эти числа должны совпадать. Если же нет, вы где-то не закрыли, или не открыли скобку. Также, программа выдаст строку, в которой скобка не закрыта / не открыта.
Спойлер
Автор: Evqeniy
Работоспособность данного метода не проверена. В случае обнаружения неисправности, пишите в теме.
На этом все!