DuFF 85 Odesláno: 24. Srpen, 2017 Share Odesláno: 24. Srpen, 2017 (upraveno) Popis problému: Zdravím, pri pawnení podnikov som narazil na problém s enumom. Vzhľadom na to, že enumom a tagom príliš nerozumiem, píšem radšej sem.Problém je s výrazom "up_safe + listitem" (tag mismatch), aj keď po skompilovaní všetko funguje tak, ako má, rád by som sa zbavil warningu. Chyby/varování kompilátoru a při běhu: warning 213: tag mismatch Kód: [code=auto:0] #define MAX_PROPERTIES 50 #define MAX_UPGRADE_VIP 5 enum propInfo { ... up_safe, up_personal, up_security, ... } enum playerInfo { owner, current } enum enumDialogs { DIALOG_OWNER = 0, DIALOG_UPGRADE, ... } new properties[MAX_PROPERTIES][propInfo]; new players[MAX_PLAYERS][playerInfo]; public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch (dialogid) { ... case DIALOG_UPGRADE: { if (!response) return DialogOwner(playerid); if (properties[players[playerid][current]][up_safe + listitem] >= MAX_UPGRADE_VIP) return DialogUpgrade(playerid); ... return 1; } ... } return 0; } [/code] Dodatečné poznámky:EDIT: Problém vyriešený spôsobom: up_safe + propInfo:listitem, dúfam, že to nebude mať nežiadúce následky. Edited 24. Srpen, 2017 by DuFF Link to comment Share on other sites More sharing options...
0 Invouk 91 Odesláno: 24. Srpen, 2017 Share Odesláno: 24. Srpen, 2017 case DIALOG_UPGRADE: { if (!response) return DialogOwner(playerid); if (properties[players[playerid][current]][up_safe + listitem] >= MAX_UPGRADE_VIP) return DialogUpgrade(playerid); ... return 1; } Som trochu nepobral, ak stlačí na tlačítko "Cancel" - druhé tak vyskočí majitel properties ? properties[players[playerid][current]][up_safe + listitem] nechápem čo chceš spraviť, ale prečo na konkr. properties nepripíšeš meno či chceš aby tu properties mohli kupovať viac ludí ? DIALOG_OWNER = 0, tam nemusíš dávať 0, enum si sám defaultne zoraduje "ídečka" od nuly... Link to comment Share on other sites More sharing options...
0 xhunterx 55 Odesláno: 24. Srpen, 2017 Share Odesláno: 24. Srpen, 2017 (upraveno) Problem je, ze listitem je typu _ a up_safe je typu propInfo. Tieto dva typy sa nedaju scitat. Staci pretypovat listitem. if (properties[players[playerid][current]][up_safe + propInfo:listitem] >= MAX_UPGRADE_VIP) Vdaka tomu sa daju scitat. Druha moznost je pretypovat up_safe na _. if (properties[players[playerid][current]][_:up_safe + listitem] >= MAX_UPGRADE_VIP) Tak ci tak musia byt rovnakeho typu. Edited 24. Srpen, 2017 by xhunterx 1 Link to comment Share on other sites More sharing options...
0 DuFF 85 Odesláno: 24. Srpen, 2017 Author Share Odesláno: 24. Srpen, 2017 case DIALOG_UPGRADE: { if (!response) return DialogOwner(playerid); if (properties[players[playerid][current]][up_safe + listitem] >= MAX_UPGRADE_VIP) return DialogUpgrade(playerid); ... return 1; } Som trochu nepobral, ak stlačí na tlačítko "Cancel" - druhé tak vyskočí majitel properties ? properties[players[playerid][current]][up_safe + listitem] nechápem čo chceš spraviť, ale prečo na konkr. properties nepripíšeš meno či chceš aby tu properties mohli kupovať viac ludí ? DIALOG_OWNER = 0, tam nemusíš dávať 0, enum si sám defaultne zoraduje "ídečka" od nuly... Ak majiteľ otvorí menu podnikov, jednou z možností je "Upgrade", ktorá otvorí nový dialog, preto keď majiteľ DIALOG_UPGRADE zavrie, zobrazujem mu ten, z ktorého sa tam dostal. Čo chcem spraviť: DIALOG_UPGRADE má 3 listitemy (vylepšiť trezor, personál a ochranku). Kliknutím na jeden z listitemov sa príslušná vlastnosť podniku vylepší o 1 a chcem zakázať, aby bolo možné vylepšovať cez limit (MAX_UPGRADE_VIP). Každopádne mojím problémom bolo sčítať prvok z enumu s listitemom, zvyšok sú nepodstatné informácie. Problem je, ze listitem je typu _ a up_safe je typu propInfo. Tieto dva typy sa nedaju scitat. Staci pretypovat listitem. if (properties[players[playerid][current]][up_safe + propInfo:listitem] >= MAX_UPGRADE_VIP) Vdaka tomu sa daju scitat. Druha moznost je pretypovat up_safe na _. if (properties[players[playerid][current]][_:up_safe + listitem] >= MAX_UPGRADE_VIP) Tak ci tak musia byt rovnakeho typu. Vďaka, na možnosť pretypovania listitemu som prišiel tesne po postnutí príspevku (funguje), tvoju druhú možnosť som skúšal ešte pred postnutím, ale warningu som sa ňou nezbavil. rep+ Môžete LOCK, problém bol vyriešený. Link to comment Share on other sites More sharing options...
Dotaz
DuFF 85
Popis problému:
Zdravím, pri pawnení podnikov som narazil na problém s enumom. Vzhľadom na to, že enumom a tagom príliš nerozumiem, píšem radšej sem.
Problém je s výrazom "up_safe + listitem" (tag mismatch), aj keď po skompilovaní všetko funguje tak, ako má, rád by som sa zbavil warningu.
Chyby/varování kompilátoru a při běhu:
warning 213: tag mismatch
Kód:
Edited by DuFFDodatečné poznámky:
EDIT: Problém vyriešený spôsobom: up_safe + propInfo:listitem, dúfam, že to nebude mať nežiadúce následky.
Link to comment
Share on other sites
3 odpovědí na tuto otázku
Recommended Posts