Notificações em TextDraw - GuiLopeS - 25/10/2023
Olá eu encontrei uma include chamada notify.inc, se trata de uma include que gera notificações em textdraw que se movem e são criados/destruidos, porém eu editei ela e obtivi os resultados que desejava, mas ela emite os seguintes warnings:
Código: \pawno\include\notify.inc(75) : warning 219: local variable "x" shadows a variable at a preceding level
\pawno\include\notify.inc(90) : warning 219: local variable "x" shadows a variable at a preceding level
\pawno\include\notify.inc(109) : warning 219: local variable "x" shadows a variable at a preceding level
Pawn compiler 3.10.10 Copyright (c) 1997-2006, ITB CompuPhase
3 Warnings.
Queria saber se tem como resolver isso.
E outra duvida é a seguinte, eu precisava adicionar mais textos no TextDraw, tentei quebrar a linha de várias formas, mas não obtive sucesso. Então decidi duplicar a const message, e funcionou com alguns ajustes, mas queria saber se dessa forma não ocorrerá nenhum problema, e se existe outra forma de fazer isso que seja melhor do que eu fiz.
Abaixo vou deixar a include original e a que eu editei:
notify.inc original
notify.inc editada
Att: GuiLopeS.
RE: Notificações em TextDraw - pushline - 25/10/2023
pelo q eu vi no editado, nao era pra estar dando erro na linha 75 e 90 por ser justamente dois "for", logo o "new x = -1" n era pra estar sendo declarado globalmente ou no mesmo escopo.
e na linha 109 tbm vc deu um outro new float:x = ..., acho q tem alguma coisa sendo incluida ANTES da notify.inc q usa um new x; global e tá quebrando sua include
RE: Notificações em TextDraw - zBreno - 25/10/2023
https://github.com/pawn-lang/compiler/blob/master/doc/pawn-lang.pdf
Uma variável local tem o mesmo nome que uma variável global, uma função, um argumento de função ou uma variável local em um nível de precedência mais baixo. Isso é chamado de "sombreamento", pois a nova variável local torna a função definida anteriormente ou a variável inacessível.
Nota: Se também houver mensagens de erro no script sobre as variáveis ausentes (com esses mesmos nomes) ou problemas no nível da cinta, pode ser que os avisos de sombreamento sejam devidos a esses erros sintáticos e semânticos. Corrija os erros antes de olhar para os avisos de sombreamento.
RE: Notificações em TextDraw - pushline - 25/10/2023
Rapaz, o cara repetiu oq eu disse
RE: Notificações em TextDraw - GuiLopeS - 25/10/2023
(25/10/2023 08:11)pushline Escreveu: pelo q eu vi no editado, nao era pra estar dando erro na linha 75 e 90 por ser justamente dois "for", logo o "new x = -1" n era pra estar sendo declarado globalmente ou no mesmo escopo.
e na linha 109 tbm vc deu um outro new float:x = ..., acho q tem alguma coisa sendo incluida ANTES da notify.inc q usa um new x; global e tá quebrando sua include Muito obrigado mano era isso mesmo eu tinha uma variavel declarada com o mesmo nome no gamemode. REP +
(25/10/2023 11:24)pushline Escreveu: Rapaz, o cara repetiu oq eu disse KKKKKKKKKKK
Sem querer incomodar mais, mas eu tenho outro problema eu queria mudar essa include de PlayerTextDraw pra TextDrawForAll, consegui mudar e tirar os warnings e erros, porém quando eu abro o server e digito o comando, aparece a textdraw e o servidor fecha sem mostrar nada, o que posso fazer pra resolver isso?
Aqui a include que mudei.
Note que comparando com a include original eu eliminei 'string' das consts nas linhas: 33, 52 e 73. Pois estavam dando warnings, não entendi o que significa essas 'string' ali, mas agora estou tendo esse problema, como posso resolver?
RE: Notificações em TextDraw - pushline - 25/10/2023
Mano, só usando crashdetect com -d3 pra pegar um erro mais explicado no console.
Mas pelo que eu vi aqui, vc tá dando uns 5 TextDrawShowForAll na func "createNotifyTD", retire todas elas e deixe a função com o propósito só de criar mesmo, e na função "InternalNotification_Show" coloque abaixo do "createNotifyTD(x, x * 7, static_x);" o seguinte "TextDrawShowForAll(notifyPTD[x]);", talvez resolva.
E sobre o string:, não tenho ideia do que seja tbm, talvez uma tag qualquer, mas geralmente pra string é "const string[]" caso essa string n for alterada dentro do escopo da função dela.
RE: Notificações em TextDraw - GuiLopeS - 25/10/2023
(25/10/2023 14:02)pushline Escreveu: Mano, só usando crashdetect com -d3 pra pegar um erro mais explicado no console.
Mas pelo que eu vi aqui, vc tá dando uns 5 TextDrawShowForAll na func "createNotifyTD", retire todas elas e deixe a função com o propósito só de criar mesmo, e na função "InternalNotification_Show" coloque abaixo do "createNotifyTD(x, x * 7, static_x);" o seguinte "TextDrawShowForAll(notifyPTD[x]);", talvez resolva.
E sobre o string:, não tenho ideia do que seja tbm, talvez uma tag qualquer, mas geralmente pra string é "const string[]" caso essa string n for alterada dentro do escopo da função dela. É mano fiz o que tu disse, mas não adiantou continua fechando o server, compilei em -d3 no pawno e no Visual Studio Code e usei o crashdetect, mas também não mostra nada no log do server apenas algumas coisas, como por exemplo mostra que o comando foi feito e chamou as callbacks:
Código PHP: [22:55:13] Number of vehicle models: 0 [22:55:15] [connection] 127.0.0.1:52163 requests connection cookie. [22:55:16] [connection] incoming connection: 127.0.0.1:52163 id: 0 [22:55:16] [join] GuiLopeS. has joined the server (0:127.0.0.1) [22:55:30] [debug] Server crashed while executing gpssbc.amx [22:55:30] [debug] AMX backtrace: [22:55:30] [debug] #0 native SetTimerEx () in samp-server.exe [22:55:30] [debug] #1 00001178 in InternalNotification_Show (title[]=@00006d34 "mannnns", message[]=@00006d54 "sla feioud", message2[]=@00006d80 "borraaaas", icon[]=@00006da8 "ld_bum:blkdot") at C:\Coisas do GTA\Coisas do samp\Server Drift by GuiLopeS ™\pawno\include\notifyg.inc:96 [22:55:30] [debug] #2 00003d4c in public cmd_gsdsaads (playerid=0, 28168) at C:\Coisas do GTA\Coisas do samp\Server Drift by GuiLopeS ™\filterscripts\gpssbc.pwn:89 [22:55:30] [debug] #3 native CallLocalFunction () in samp-server.exe [22:55:30] [debug] #4 000004d8 in public OnPlayerCommandText (playerid=0, cmdtext[]=@00006de0 "/gsdsaads") at C:\Coisas do GTA\Coisas do samp\Server Drift by GuiLopeS ™\pawno\include\zcmd.inc:104 [22:55:31] [debug] Native backtrace: [22:55:31] [debug] #0 004828d2 in ?? () in samp-server.exe [22:55:31] [debug] #1 00473919 in ?? () in samp-server.exe [22:55:31] [debug] #2 004010b6 in ?? () in samp-server.exe [22:55:31] [debug] #3 6cf1d5bd in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #4 6cf210b2 in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #5 6cf18b91 in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #6 6cf1d696 in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #7 004746be in ?? () in samp-server.exe [22:55:31] [debug] #8 004010b6 in ?? () in samp-server.exe [22:55:31] [debug] #9 6cf1d5bd in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #10 6cf210b2 in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #11 6cf18b91 in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #12 6cf1d696 in ?? () in plugins\crashdetect.DLL [22:55:31] [debug] #13 0046b168 in ?? () in samp-server.exe [22:55:31] [debug] Registers: [22:55:31] [debug] EAX: 45152ff2 EBX: 0019eb7c ECX: 00000000 EDX: 42266666 [22:55:31] [debug] ESI: 02ef7688 EDI: 02d60f80 EBP: 0019efa4 ESP: 0019eb64 [22:55:31] [debug] EIP: 004828d2 EFLAGS: 00010212 [22:55:31] [debug] Stack: [22:55:31] [debug] ESP+00000000: 02d60f80 42266666 00480069 02ef7674 [22:55:31] [debug] ESP+00000020: 00498d5b 0019ec64 00000055 022ae940 [22:55:31] [debug] ESP+00000040: 0049d208 004ba148 ffffffff 00498d5b [22:55:31] [debug] ESP+00000060: 00000001 004522e3 00452346 0019ec64 [22:55:31] [debug] ESP+00000080: 0019ec75 000002a3 00000001 00000009 [22:55:31] [debug] ESP+000000a0: 00000000 00000280 022ad798 0100007f [22:55:31] [debug] ESP+000000c0: 00000002 0100007f 0000cbc3 00000000 [22:55:31] [debug] ESP+000000e0: 00000002 0100007f 0000cbc3 004555fd [22:55:31] [debug] ESP+00000100: 000002a3 00000800 00000000 0019ec75 [22:55:31] [debug] ESP+00000120: 170000e0 e8e08cc2 e8425575 06000040 [22:55:31] [debug] ESP+00000140: 00000060 00000000 00000000 00000000 [22:55:31] [debug] ESP+00000160: 8d6c8d4d 000080ee 8a897e6b 022a0000 [22:55:31] [debug] ESP+00000180: 00000000 76f58c7b 01a4ef90 022a0000 [22:55:31] [debug] ESP+000001a0: 02000002 02df2278 81000081 0a000000 [22:55:31] [debug] ESP+000001c0: 02000002 0000009d 02000002 00030007 [22:55:31] [debug] ESP+000001e0: 0019ed68 76f4feb7 0019edac 76f156a8 [22:55:31] [debug] ESP+00000200: 000000b9 0000013a fffffcbc 02f47208 [22:55:31] [debug] ESP+00000220: 00fffcbe 0019efd0 004aa54b ffffffff [22:55:31] [debug] ESP+00000240: 00000280 00000001 00000009 00000002 [22:55:31] [debug] ESP+00000260: ffffffff ffffffff 00000000 00451ab8 [22:55:31] [debug] ESP+00000280: 00000009 00000002 0100007f 0000cbc3 [22:55:31] [debug] ESP+000002a0: 00000000 0019eebc 022a9db0 0100007f [22:55:31] [debug] ESP+000002c0: 00000009 00000002 0100007f 0000cbc3 [22:55:31] [debug] ESP+000002e0: 00000000 0048e248 004b5320 0019eebc [22:55:31] [debug] ESP+00000300: 0048cbc3 00000000 00000000 03965020 [22:55:31] [debug] ESP+00000320: 00000001 00000000 007f5020 cbc30100 [22:55:31] [debug] ESP+00000340: 00467039 006d3efc 02d60f80 00000008 [22:55:31] [debug] ESP+00000360: 00000000 0019eecd 13000401 00000000 [22:55:31] [debug] ESP+00000380: 32000000 00000100 0004ff00 44014fdc [22:55:31] [debug] ESP+000003a0: 00000000 ffff3f80 000dffff 625f646c [22:55:31] [debug] ESP+000003c0: 76f55dde 03965020 76f55dde 00000008 [22:55:31] [debug] ESP+000003e0: 0049b744 022a0000 00000008 0049b776 [22:55:31] [debug] Loaded modules: [22:55:31] [debug] 00400000 - 00519000 samp-server.exe [22:55:31] [debug] 76f10000 - 770b3000 ntdll.dll [22:55:31] [debug] 761d0000 - 762c0000 KERNEL32.DLL [22:55:31] [debug] 74ff0000 - 75205000 KERNELBASE.dll [22:55:31] [debug] 75740000 - 75cf3000 SHELL32.dll [22:55:31] [debug] 754d0000 - 7554b000 msvcp_win.dll [22:55:31] [debug] 76d60000 - 76e80000 ucrtbase.dll [22:55:31] [debug] 75e00000 - 75fa0000 USER32.dll [22:55:31] [debug] 74dd0000 - 74de8000 win32u.dll [22:55:31] [debug] 75d00000 - 75d24000 GDI32.dll [22:55:31] [debug] 75210000 - 752ec000 gdi32full.dll [22:55:31] [debug] 738c0000 - 738c8000 WSOCK32.dll [22:55:31] [debug] 76a00000 - 76abf000 msvcrt.dll [22:55:31] [debug] 756d0000 - 75733000 WS2_32.dll [22:55:31] [debug] 75d30000 - 75def000 RPCRT4.dll [22:55:31] [debug] 743b0000 - 743d8000 WINMM.dll [22:55:31] [debug] 76050000 - 76075000 IMM32.DLL [22:55:31] [debug] 73ff0000 - 7401e000 d3dgearload.dll [22:55:31] [debug] 76e80000 - 76efa000 ADVAPI32.dll [22:55:31] [debug] 74e50000 - 74ec5000 sechost.dll [22:55:31] [debug] 10000000 - 1000d000 sscanf.DLL [22:55:31] [debug] 73800000 - 738bf000 MSVCR100.dll [22:55:31] [debug] 02290000 - 0229d000 sscanf1.DLL [22:55:31] [debug] 737c0000 - 737fe000 streamer.DLL [22:55:31] [debug] 73750000 - 737b9000 MSVCP100.dll [22:55:31] [debug] 73710000 - 7374e000 streamer1.DLL [22:55:31] [debug] 02450000 - 0245f000 mysql.DLL [22:55:31] [debug] 73460000 - 73503000 MSVCR90.dll [22:55:31] [debug] 733d0000 - 7345e000 MSVCP90.dll [22:55:31] [debug] 027d0000 - 02a0e000 LIBMYSQL.dll [22:55:31] [debug] 736f0000 - 73701000 napinsp.dll [22:55:31] [debug] 736d0000 - 736e6000 pnrpnsp.dll [22:55:31] [debug] 736c0000 - 736d0000 wshbth.dll [22:55:31] [debug] 733b0000 - 733c6000 NLAapi.dll [22:55:31] [debug] 732d0000 - 73302000 IPHLPAPI.DLL [22:55:31] [debug] 713a0000 - 713f2000 mswsock.dll [22:55:31] [debug] 73160000 - 731f1000 DNSAPI.dll [22:55:31] [debug] 76ac0000 - 76ac7000 NSI.dll [22:55:31] [debug] 736b0000 - 736be000 winrnr.dll [22:55:31] [debug] 733a0000 - 733a8000 rasadhlp.dll [22:55:31] [debug] 6cf10000 - 6cf6c000 crashdetect.DLL [22:55:31] [debug] 6c280000 - 6c2ed000 MSVCP140.dll [22:55:31] [debug] 71190000 - 711a5000 VCRUNTIME140.dll [22:55:31] [debug] 75340000 - 75423000 ole32.dll [22:55:31] [debug] 76ad0000 - 76d51000 combase.dll [22:55:31] [debug] 73320000 - 73378000 fwpuclnt.dll [22:55:31] [debug] 74fd0000 - 74fe9000 bcrypt.dll [22:55:31] [debug] 76090000 - 760ef000 bcryptPrimitives.dll
Mas infelizmente não sei onde pode estar o erro pois so aparecem debugs, sabe me dizer o que posso fazer?
Dei uma analizada e o problema parece se encontrar nessa stock, provavelmente em algum desses loops:
Código PHP: stock InternalNotification_Show(const title[], const message[], const message2[], const icon[] = "hud:radar_triads") { for(new x=-1;++x<notifyIndex;) { for(new i=-1;++i<7;) TextDrawDestroy(notifyPTD[(x*7) + i]); notifyInfo[notifyIndex-x] = notifyInfo[(notifyIndex-x)-1]; }
strmid(notifyInfo[0][ntTitle], title, 0, MAX_NT_TITLE); strmid(notifyInfo[0][ntMessage], message, 0, MAX_NT_STRING); strmid(notifyInfo[0][ntMessage2], message2, 0, MAX_NT_STRING2); strmid(notifyInfo[0][ntIcon], icon, 0, 20); notifyInfo[0][ntLines] = getSizeMessage(message); notifyInfo[0][ntLines] = getSizeMessage2(message2);
++notifyIndex;
new Float:static_x=0.0; for(new x-1;++x<notifyIndex;) { createNotifyTD(x, x * 7, static_x); TextDrawShowForAll(notifyPTD[x]); static_x+=(notifyInfo[x][ntLines] * 7.5) + 34.1; }
SetTimerEx(#destroy_notify, SECONDS_NT * 1000, false, #i); return 1; }
RE: Notificações em TextDraw - White_Blue - 25/10/2023
Já tentou retirar a include de notificações que está usando para ver se a causa do crash é realmente ela?
De todo modo, recomendo usar essa include de notificações desenvolvida pelo usuário MarcosBrazz: https://portalsamp.com/showthread.php?tid=2747 e você pode modificá-la para atender a seus requisitos (Desde que mantenha os créditos do ator original, claro).
RE: Notificações em TextDraw - GuiLopeS - 26/10/2023
(25/10/2023 23:17)White_Blue Escreveu: Já tentou retirar a include de notificações que está usando para ver se a causa do crash é realmente ela?
De todo modo, recomendo usar essa include de notificações desenvolvida pelo usuário MarcosBrazz: https://portalsamp.com/showthread.php?tid=2747 e você pode modificá-la para atender a seus requisitos (Desde que mantenha os créditos do ator original, claro). Sim to testando agora em um server default do samp, e mesmo assim fecha quando digito o comando, o problema realmente está na include e não faço ideia do que é.
RE: Notificações em TextDraw - pushline - 26/10/2023
\pawno\include\notifyg.inc:96
qual eh essa linha?
----
vi no pastebin, e vi isso aqui
Código PHP: SetTimerEx(#destroy_notify, SECONDS_NT * 1000, false, #i);
acho q eh isso q caga, muda pra:
Código PHP: SetTimer("destroy_notify", SECONDS_NT * 1000, false);
|