Portal SAMP
[Ajuda] Notificações em TextDraw - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Notificações em TextDraw (/showthread.php?tid=4126)

Páginas: 1 2


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:13Number of vehicle models0
[22:55:15] [connection127.0.0.1:52163 requests connection cookie.
[
22:55:16] [connectionincoming connection127.0.0.1:52163 id0
[22:55:16] [joinGuiLopeShas joined the server (0:127.0.0.1)
[
22:55:30] [debugServer crashed while executing gpssbc.amx
[22:55:30] [debugAMX 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] [debugNative 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] [debugRegisters:
[
22:55:31] [debugEAX45152ff2 EBX0019eb7c ECX00000000 EDX42266666
[22:55:31] [debugESI02ef7688 EDI02d60f80 EBP0019efa4 ESP0019eb64
[22:55:31] [debugEIP004828d2 EFLAGS00010212
[22:55:31] [debugStack:
[
22:55:31] [debugESP+0000000002d60f80 42266666 00480069 02ef7674
[22:55:31] [debugESP+0000002000498d5b 0019ec64 00000055 022ae940
[22:55:31] [debugESP+000000400049d208 004ba148 ffffffff 00498d5b
[22:55:31] [debugESP+0000006000000001 004522e3 00452346 0019ec64
[22:55:31] [debugESP+000000800019ec75 000002a3 00000001 00000009
[22:55:31] [debugESP+000000a000000000 00000280 022ad798 0100007f
[22:55:31] [debugESP+000000c000000002 0100007f 0000cbc3 00000000
[22:55:31] [debugESP+000000e000000002 0100007f 0000cbc3 004555fd
[22:55:31] [debugESP+00000100000002a3 00000800 00000000 0019ec75
[22:55:31] [debugESP+00000120170000e0 e8e08cc2 e8425575 06000040
[22:55:31] [debugESP+0000014000000060 00000000 00000000 00000000
[22:55:31] [debugESP+000001608d6c8d4d 000080ee 8a897e6b 022a0000
[22:55:31] [debugESP+0000018000000000 76f58c7b 01a4ef90 022a0000
[22:55:31] [debugESP+000001a002000002 02df2278 81000081 0a000000
[22:55:31] [debugESP+000001c002000002 0000009d 02000002 00030007
[22:55:31] [debugESP+000001e00019ed68 76f4feb7 0019edac 76f156a8
[22:55:31] [debugESP+00000200000000b9 0000013a fffffcbc 02f47208
[22:55:31] [debugESP+0000022000fffcbe 0019efd0 004aa54b ffffffff
[22:55:31] [debugESP+0000024000000280 00000001 00000009 00000002
[22:55:31] [debugESP+00000260ffffffff ffffffff 00000000 00451ab8
[22:55:31] [debugESP+0000028000000009 00000002 0100007f 0000cbc3
[22:55:31] [debugESP+000002a000000000 0019eebc 022a9db0 0100007f
[22:55:31] [debugESP+000002c000000009 00000002 0100007f 0000cbc3
[22:55:31] [debugESP+000002e000000000 0048e248 004b5320 0019eebc
[22:55:31] [debugESP+000003000048cbc3 00000000 00000000 03965020
[22:55:31] [debugESP+0000032000000001 00000000 007f5020 cbc30100
[22:55:31] [debugESP+0000034000467039 006d3efc 02d60f80 00000008
[22:55:31] [debugESP+0000036000000000 0019eecd 13000401 00000000
[22:55:31] [debugESP+0000038032000000 00000100 0004ff00 44014fdc
[22:55:31] [debugESP+000003a000000000 ffff3f80 000dffff 625f646c
[22:55:31] [debugESP+000003c076f55dde 03965020 76f55dde 00000008
[22:55:31] [debugESP+000003e00049b744 022a0000 00000008 0049b776
[22:55:31] [debugLoaded modules:
[
22:55:31] [debug00400000 00519000 samp-server.exe
[22:55:31] [debug76f10000 770b3000 ntdll.dll
[22:55:31] [debug761d0000 762c0000 KERNEL32.DLL
[22:55:31] [debug74ff0000 75205000 KERNELBASE.dll
[22:55:31] [debug75740000 75cf3000 SHELL32.dll
[22:55:31] [debug754d0000 7554b000 msvcp_win.dll
[22:55:31] [debug76d60000 76e80000 ucrtbase.dll
[22:55:31] [debug75e00000 75fa0000 USER32.dll
[22:55:31] [debug74dd0000 74de8000 win32u.dll
[22:55:31] [debug75d00000 75d24000 GDI32.dll
[22:55:31] [debug75210000 752ec000 gdi32full.dll
[22:55:31] [debug738c0000 738c8000 WSOCK32.dll
[22:55:31] [debug76a00000 76abf000 msvcrt.dll
[22:55:31] [debug756d0000 75733000 WS2_32.dll
[22:55:31] [debug75d30000 75def000 RPCRT4.dll
[22:55:31] [debug743b0000 743d8000 WINMM.dll
[22:55:31] [debug76050000 76075000 IMM32.DLL
[22:55:31] [debug73ff0000 7401e000 d3dgearload.dll
[22:55:31] [debug76e80000 76efa000 ADVAPI32.dll
[22:55:31] [debug74e50000 74ec5000 sechost.dll
[22:55:31] [debug10000000 1000d000 sscanf.DLL
[22:55:31] [debug73800000 738bf000 MSVCR100.dll
[22:55:31] [debug02290000 0229d000 sscanf1.DLL
[22:55:31] [debug737c0000 737fe000 streamer.DLL
[22:55:31] [debug73750000 737b9000 MSVCP100.dll
[22:55:31] [debug73710000 7374e000 streamer1.DLL
[22:55:31] [debug02450000 0245f000 mysql.DLL
[22:55:31] [debug73460000 73503000 MSVCR90.dll
[22:55:31] [debug733d0000 7345e000 MSVCP90.dll
[22:55:31] [debug027d0000 02a0e000 LIBMYSQL.dll
[22:55:31] [debug736f0000 73701000 napinsp.dll
[22:55:31] [debug736d0000 736e6000 pnrpnsp.dll
[22:55:31] [debug736c0000 736d0000 wshbth.dll
[22:55:31] [debug733b0000 733c6000 NLAapi.dll
[22:55:31] [debug732d0000 73302000 IPHLPAPI.DLL
[22:55:31] [debug713a0000 713f2000 mswsock.dll
[22:55:31] [debug73160000 731f1000 DNSAPI.dll
[22:55:31] [debug76ac0000 76ac7000 NSI.dll
[22:55:31] [debug736b0000 736be000 winrnr.dll
[22:55:31] [debug733a0000 733a8000 rasadhlp.dll
[22:55:31] [debug6cf10000 6cf6c000 crashdetect.DLL
[22:55:31] [debug6c280000 6c2ed000 MSVCP140.dll
[22:55:31] [debug71190000 711a5000 VCRUNTIME140.dll
[22:55:31] [debug75340000 75423000 ole32.dll
[22:55:31] [debug76ad0000 76d51000 combase.dll
[22:55:31] [debug73320000 73378000 fwpuclnt.dll
[22:55:31] [debug74fd0000 74fe9000 bcrypt.dll
[22:55:31] [debug76090000 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], title0MAX_NT_TITLE);
    
strmid(notifyInfo[0][ntMessage], message0MAX_NT_STRING);
    
strmid(notifyInfo[0][ntMessage2], message20MAX_NT_STRING2);
    
strmid(notifyInfo[0][ntIcon], icon020);
    
notifyInfo[0][ntLines] = getSizeMessage(message);
    
notifyInfo[0][ntLines] = getSizeMessage2(message2);

    ++
notifyIndex;

    new 
Float:static_x=0.0;
    for(new 
x-1;++x<notifyIndex;) {
        
createNotifyTD(x7static_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 é.
Big Grin  Huh


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 1000false);