NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Karak Dalík
Člen
Avatar
Karak Dalík:17.12.2017 11:13

Nazdar, zas já
Snažil jsem se předělat čtyři if a dopadlo to taklhe ()

switch (true)
    {
    case point_in_rectangle(mys.mouse_gui_x,mys.mouse_gui_y,772,769,835,882)://ukazuji na přdmět
        instance_create(0,0,vlastnost[inv[item_selected,co],effect]);//pouzit předmět
        break;

    case point_in_rectangle(mys.mouse_gui_x,mys.mouse_gui_y,542,776,657,882)://ukazuji na zbraň
        if weapon_use < 2{weapon_use+=1} else {weapon_use=0};//přepinani zbraně 0->1->2->1...
        break;

    case point_in_rectangle(mys.mouse_gui_x,mys.mouse_gui_y,661,831,715,882)://ukazuji na ikonku munice
        if amo_use = 1 {amo_use=2} else {amo_use=1};//přepnout munici
        weapon_slot[weapon_use,kolik]=0;//vyprazdnit zasobnik
        break;

    case point_in_rectangle(mys.mouse_gui_x,mys.mouse_gui_y,662,766,715,817)://tlačtiko přebujeni
        if  weapon_slot[weapon_use,kolik] < max_munice[weapon_slot[weapon_use,co]]//neni pln zasobnik
            {
            weapon_slot[weapon_use,kolik]=min(max_munice[weapon_slot[weapon_use,co]],inv_count(pouziva_munici[weapon_slot[weapon_use,co],amo_use]));//nasypat munici di zasobniku
            energy-=reloding[weapon_slot[weapon_use,co]]*combat;//stalo to energie
            }
        break;
    }

A GMS hlasi:

In Object mys, in Event StepNormalEvent action number 1 at line 31 : Case argument should be a constant
In Object mys, in Event StepNormalEvent action number 1 at line 35 : Case argument should be a constant
In Object mys, in Event StepNormalEvent action number 1 at line 39 : Case argument should be a constant
In Object mys, in Event StepNormalEvent action number 1 at line 44 : Case argument should be a constant
Compile Failed - Please check the Compile window for any additional information

Přikládám kompletní kod jako obrazek

 
Odpovědět
17.12.2017 11:13
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Karak Dalík
TomBen:17.12.2017 13:41

Za case se smí psát jen konstanty. Asi bych v klidu nechal ify, ale pro přehlednost bych je nacpal do skriptu. Nějak takto:
SKRIPT:

///mouse_area()
if point_in_rectangle(mys.mouse_gui_x,mys.mouse_gui_y,772,769,835,882) return('predmet')
if point_in_rectangle(mys.mouse_gui_x,mys.mouse_gui_y,542,776,657,882) return('zbran')
return('nic')

NORMÁLNÍ KÓD:

switch(mouse_area())
{
case 'predmet': /*kod pouziti predmetu*/ break;
case 'zbran': /*kod pouziti zbrane*/ break;
...
}
Editováno 17.12.2017 13:42
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
17.12.2017 13:41
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.