<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[open.mp forum - Programming]]></title>
		<link>https://forum.open.mp/</link>
		<description><![CDATA[open.mp forum - https://forum.open.mp]]></description>
		<pubDate>Fri, 28 Aug 2026 16:52:21 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Kraken Referral Reward Code [f5zpzdsb] – Up to €200 in 2026]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6237</link>
			<pubDate>Fri, 28 Aug 2026 14:42:47 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8412">kaxivap</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6237</guid>
			<description><![CDATA[Kraken Referral Code 2026 [f5zpzdsb] – Earn Up to €200 Welcome Bonus<br />
<br />
If you are looking for a Kraken referral code in 2026, [f5zpzdsb] may be worth checking when opening a new eligible Kraken account. Kraken operates several referral and promotional programs, and the exact reward, eligibility requirements, and qualifying activity can vary by country and by the specific offer shown in your account. Kraken’s current referral information states that rewards are subject to the applicable promotion terms and are not guaranteed.<br />
<br />
The headline “Earn Up to €200” should therefore be understood as a maximum potential reward under an applicable referral offer rather than a guaranteed €200 payment for every new user. Some current Kraken referral offers provide rewards to both the referrer and the invited user after the required steps are completed.<br />
<br />
What Is the Kraken Referral Code [f5zpzdsb]?<br />
<br />
The Kraken referral code [f5zpzdsb] is presented as a referral identifier for users interested in joining Kraken through a referral offer. Referral codes can connect a new customer with an existing Kraken user and may make the new customer eligible for a specific promotional reward.<br />
<br />
Kraken's referral programs generally require the new customer to be genuinely new to the platform. According to Kraken's official terms, a referred user must not already have or have previously held a Kraken account. Account creation, identity verification, and any additional promotional requirements must also be completed according to the applicable offer.<br />
<br />
Because Kraken runs different referral campaigns, the available reward can differ considerably. The promotion displayed during registration or inside the Kraken app should always be treated as the final source for the applicable reward and requirements.<br />
<br />
How the Kraken Referral Bonus Works<br />
<br />
A typical Kraken referral process is straightforward:<br />
<br />
Start the Kraken registration process using the applicable referral code or referral link.<br />
Create a new Kraken account.<br />
Complete the required identity verification.<br />
Deposit the required amount of eligible fiat currency if the promotion requires funding.<br />
Complete the qualifying cryptocurrency trade or other activity.<br />
Wait for Kraken to verify that all promotional conditions have been satisfied.<br />
Receive the applicable referral reward if you qualify.<br />
<br />
Kraken's current referral documentation says that qualifying requirements can include depositing fiat and completing a required amount of trading. The precise requirements can vary according to the referral plan.<br />
<br />
Is the €200 Bonus Guaranteed?<br />
<br />
No. The phrase “up to €200” means €200 is a maximum possible reward under a qualifying offer, not that every participant automatically receives €200.<br />
<br />
For example, Kraken currently has different referral structures in different regions. One official referral page describes rewards of €20 per successful referral with a maximum of €200 in total referral rewards, while another current European offer describes random rewards ranging from €10 to €75.<br />
<br />
Kraken also publishes promotional campaigns where the maximum individual reward can be €200 or its equivalent, but the reward may depend on the specific promotion and qualifying conditions.<br />
<br />
Therefore, before completing a deposit or trade, check the reward information displayed in your Kraken account and make sure you understand the applicable terms.<br />
<br />
Who Can Use a Kraken Referral Code?<br />
<br />
Referral promotions are generally designed for new Kraken customers in eligible jurisdictions. Existing or previously closed Kraken accounts may not qualify as new-user referrals.<br />
<br />
Eligibility can also depend on location. Kraken's official terms state that referral promotions are available only in eligible areas and that Kraken can establish different conditions for individual referral plans.<br />
<br />
Some referral offers also require the person making the referral and the invited customer to satisfy particular geographic requirements. These requirements can change depending on the promotion.<br />
<br />
Kraken Referral Code 2026: Step-by-Step Guide<br />
Step 1: Check the Current Offer<br />
<br />
Before signing up, review the referral promotion available to you. Look for the stated reward amount, qualifying deposit, trading requirement, deadline, and geographical restrictions.<br />
<br />
Step 2: Enter the Referral Code<br />
<br />
If [f5zpzdsb] is accepted for the applicable offer, enter it during the appropriate registration process. A referral code may need to be associated with the account during signup to qualify for a particular promotion.<br />
<br />
Step 3: Complete Verification<br />
<br />
Kraken may require identity verification before you can use certain services or qualify for promotional rewards. Provide accurate information and complete all required onboarding steps.<br />
<br />
Step 4: Fund Your Account<br />
<br />
Some referral promotions require a qualifying fiat deposit. The minimum deposit and permitted funding methods depend on the particular offer.<br />
<br />
Step 5: Complete the Required Trade<br />
<br />
If trading is part of the promotion, complete the required qualifying trade within the stated promotional period. Not every transaction necessarily qualifies. For example, some Kraken referral programs specifically exclude stablecoin transactions from qualifying activity.<br />
<br />
Step 6: Wait for the Reward<br />
<br />
After all requirements are completed, Kraken reviews the account activity. Current Kraken referral documentation indicates that eligible referral rewards can take at least 14 days to be credited after the requirements have been completed.<br />
<br />
Why Consider Kraken?<br />
<br />
Kraken is an established cryptocurrency exchange offering access to cryptocurrency trading and related services. Its referral system can provide an additional incentive for eligible new users and existing customers.<br />
<br />
One advantage of a referral promotion is that the reward is connected to completing ordinary account and trading requirements rather than simply receiving a coupon for a conventional online purchase.<br />
<br />
However, cryptocurrency trading involves financial risk. The value of digital assets can rise or fall significantly, and promotional rewards should not be considered guaranteed profits.<br />
<br />
Important Things to Know Before Using [f5zpzdsb]<br />
<br />
There are several points to keep in mind before participating:<br />
<br />
The reward can vary. Different countries and referral plans may have different rewards.<br />
<br />
The maximum reward is not guaranteed. “Up to €200” represents the maximum available under a particular qualifying promotion.<br />
<br />
You generally need to be a new customer. Previously registered Kraken users may not qualify for new-user referral incentives.<br />
<br />
Trading conditions may apply. Some promotions require both funding and qualifying cryptocurrency trading.<br />
<br />
Deadlines matter. Certain referral programs require qualifying actions to be completed within a specified number of days after account creation.<br />
<br />
Promotions can change. Kraken reserves the ability to modify, suspend, or terminate promotional programs according to the applicable terms.<br />
<br />
Frequently Asked Questions<br />
What is the Kraken referral code for 2026?<br />
<br />
The referral code discussed in this guide is [f5zpzdsb]. Whether it provides a particular reward depends on the applicable Kraken referral promotion and your eligibility.<br />
<br />
Can I get €200 directly from the Kraken referral code?<br />
<br />
Not necessarily. A €200 amount should be treated as a maximum potential reward when the applicable promotion advertises “up to €200.” The exact reward and requirements depend on the offer.<br />
<br />
Does every new Kraken customer receive a referral bonus?<br />
<br />
No. Referral rewards depend on eligibility and completion of the requirements specified by the applicable promotion. Kraken states that referral bonuses are not guaranteed.<br />
<br />
Do I need to deposit money?<br />
<br />
Some referral promotions require a qualifying fiat deposit, while the exact amount and permitted funding method depend on the promotion. Always check the offer presented in your Kraken account before depositing funds.<br />
<br />
Do I need to trade cryptocurrency?<br />
<br />
If the referral promotion includes a trading requirement, yes. The required trade amount and qualifying assets can vary by offer. Some Kraken programs exclude stablecoin trades from qualifying activity.<br />
<br />
How long does the bonus take?<br />
<br />
Kraken's current referral information says eligible rewards may take at least 14 days to be deposited after the qualifying requirements are completed.<br />
<br />
Final Verdict<br />
<br />
The Kraken Referral Code 2026 [f5zpzdsb] can be considered by new users looking for a potential welcome or referral reward. The advertised “Earn Up to €200” should be interpreted carefully because Kraken operates multiple referral programs, and the exact reward depends on the applicable country, campaign, eligibility criteria, deposit requirements, trading activity, and promotional terms.<br />
<br />
For the best experience, verify the offer shown during signup, complete all required verification and qualifying actions within the specified timeframe, and review Kraken's current terms before committing funds. Since cryptocurrency prices are volatile, only trade with money you can afford to lose and do not make a financial decision solely because of a promotional bonus.]]></description>
			<content:encoded><![CDATA[Kraken Referral Code 2026 [f5zpzdsb] – Earn Up to €200 Welcome Bonus<br />
<br />
If you are looking for a Kraken referral code in 2026, [f5zpzdsb] may be worth checking when opening a new eligible Kraken account. Kraken operates several referral and promotional programs, and the exact reward, eligibility requirements, and qualifying activity can vary by country and by the specific offer shown in your account. Kraken’s current referral information states that rewards are subject to the applicable promotion terms and are not guaranteed.<br />
<br />
The headline “Earn Up to €200” should therefore be understood as a maximum potential reward under an applicable referral offer rather than a guaranteed €200 payment for every new user. Some current Kraken referral offers provide rewards to both the referrer and the invited user after the required steps are completed.<br />
<br />
What Is the Kraken Referral Code [f5zpzdsb]?<br />
<br />
The Kraken referral code [f5zpzdsb] is presented as a referral identifier for users interested in joining Kraken through a referral offer. Referral codes can connect a new customer with an existing Kraken user and may make the new customer eligible for a specific promotional reward.<br />
<br />
Kraken's referral programs generally require the new customer to be genuinely new to the platform. According to Kraken's official terms, a referred user must not already have or have previously held a Kraken account. Account creation, identity verification, and any additional promotional requirements must also be completed according to the applicable offer.<br />
<br />
Because Kraken runs different referral campaigns, the available reward can differ considerably. The promotion displayed during registration or inside the Kraken app should always be treated as the final source for the applicable reward and requirements.<br />
<br />
How the Kraken Referral Bonus Works<br />
<br />
A typical Kraken referral process is straightforward:<br />
<br />
Start the Kraken registration process using the applicable referral code or referral link.<br />
Create a new Kraken account.<br />
Complete the required identity verification.<br />
Deposit the required amount of eligible fiat currency if the promotion requires funding.<br />
Complete the qualifying cryptocurrency trade or other activity.<br />
Wait for Kraken to verify that all promotional conditions have been satisfied.<br />
Receive the applicable referral reward if you qualify.<br />
<br />
Kraken's current referral documentation says that qualifying requirements can include depositing fiat and completing a required amount of trading. The precise requirements can vary according to the referral plan.<br />
<br />
Is the €200 Bonus Guaranteed?<br />
<br />
No. The phrase “up to €200” means €200 is a maximum possible reward under a qualifying offer, not that every participant automatically receives €200.<br />
<br />
For example, Kraken currently has different referral structures in different regions. One official referral page describes rewards of €20 per successful referral with a maximum of €200 in total referral rewards, while another current European offer describes random rewards ranging from €10 to €75.<br />
<br />
Kraken also publishes promotional campaigns where the maximum individual reward can be €200 or its equivalent, but the reward may depend on the specific promotion and qualifying conditions.<br />
<br />
Therefore, before completing a deposit or trade, check the reward information displayed in your Kraken account and make sure you understand the applicable terms.<br />
<br />
Who Can Use a Kraken Referral Code?<br />
<br />
Referral promotions are generally designed for new Kraken customers in eligible jurisdictions. Existing or previously closed Kraken accounts may not qualify as new-user referrals.<br />
<br />
Eligibility can also depend on location. Kraken's official terms state that referral promotions are available only in eligible areas and that Kraken can establish different conditions for individual referral plans.<br />
<br />
Some referral offers also require the person making the referral and the invited customer to satisfy particular geographic requirements. These requirements can change depending on the promotion.<br />
<br />
Kraken Referral Code 2026: Step-by-Step Guide<br />
Step 1: Check the Current Offer<br />
<br />
Before signing up, review the referral promotion available to you. Look for the stated reward amount, qualifying deposit, trading requirement, deadline, and geographical restrictions.<br />
<br />
Step 2: Enter the Referral Code<br />
<br />
If [f5zpzdsb] is accepted for the applicable offer, enter it during the appropriate registration process. A referral code may need to be associated with the account during signup to qualify for a particular promotion.<br />
<br />
Step 3: Complete Verification<br />
<br />
Kraken may require identity verification before you can use certain services or qualify for promotional rewards. Provide accurate information and complete all required onboarding steps.<br />
<br />
Step 4: Fund Your Account<br />
<br />
Some referral promotions require a qualifying fiat deposit. The minimum deposit and permitted funding methods depend on the particular offer.<br />
<br />
Step 5: Complete the Required Trade<br />
<br />
If trading is part of the promotion, complete the required qualifying trade within the stated promotional period. Not every transaction necessarily qualifies. For example, some Kraken referral programs specifically exclude stablecoin transactions from qualifying activity.<br />
<br />
Step 6: Wait for the Reward<br />
<br />
After all requirements are completed, Kraken reviews the account activity. Current Kraken referral documentation indicates that eligible referral rewards can take at least 14 days to be credited after the requirements have been completed.<br />
<br />
Why Consider Kraken?<br />
<br />
Kraken is an established cryptocurrency exchange offering access to cryptocurrency trading and related services. Its referral system can provide an additional incentive for eligible new users and existing customers.<br />
<br />
One advantage of a referral promotion is that the reward is connected to completing ordinary account and trading requirements rather than simply receiving a coupon for a conventional online purchase.<br />
<br />
However, cryptocurrency trading involves financial risk. The value of digital assets can rise or fall significantly, and promotional rewards should not be considered guaranteed profits.<br />
<br />
Important Things to Know Before Using [f5zpzdsb]<br />
<br />
There are several points to keep in mind before participating:<br />
<br />
The reward can vary. Different countries and referral plans may have different rewards.<br />
<br />
The maximum reward is not guaranteed. “Up to €200” represents the maximum available under a particular qualifying promotion.<br />
<br />
You generally need to be a new customer. Previously registered Kraken users may not qualify for new-user referral incentives.<br />
<br />
Trading conditions may apply. Some promotions require both funding and qualifying cryptocurrency trading.<br />
<br />
Deadlines matter. Certain referral programs require qualifying actions to be completed within a specified number of days after account creation.<br />
<br />
Promotions can change. Kraken reserves the ability to modify, suspend, or terminate promotional programs according to the applicable terms.<br />
<br />
Frequently Asked Questions<br />
What is the Kraken referral code for 2026?<br />
<br />
The referral code discussed in this guide is [f5zpzdsb]. Whether it provides a particular reward depends on the applicable Kraken referral promotion and your eligibility.<br />
<br />
Can I get €200 directly from the Kraken referral code?<br />
<br />
Not necessarily. A €200 amount should be treated as a maximum potential reward when the applicable promotion advertises “up to €200.” The exact reward and requirements depend on the offer.<br />
<br />
Does every new Kraken customer receive a referral bonus?<br />
<br />
No. Referral rewards depend on eligibility and completion of the requirements specified by the applicable promotion. Kraken states that referral bonuses are not guaranteed.<br />
<br />
Do I need to deposit money?<br />
<br />
Some referral promotions require a qualifying fiat deposit, while the exact amount and permitted funding method depend on the promotion. Always check the offer presented in your Kraken account before depositing funds.<br />
<br />
Do I need to trade cryptocurrency?<br />
<br />
If the referral promotion includes a trading requirement, yes. The required trade amount and qualifying assets can vary by offer. Some Kraken programs exclude stablecoin trades from qualifying activity.<br />
<br />
How long does the bonus take?<br />
<br />
Kraken's current referral information says eligible rewards may take at least 14 days to be deposited after the qualifying requirements are completed.<br />
<br />
Final Verdict<br />
<br />
The Kraken Referral Code 2026 [f5zpzdsb] can be considered by new users looking for a potential welcome or referral reward. The advertised “Earn Up to €200” should be interpreted carefully because Kraken operates multiple referral programs, and the exact reward depends on the applicable country, campaign, eligibility criteria, deposit requirements, trading activity, and promotional terms.<br />
<br />
For the best experience, verify the offer shown during signup, complete all required verification and qualifying actions within the specified timeframe, and review Kraken's current terms before committing funds. Since cryptocurrency prices are volatile, only trade with money you can afford to lose and do not make a financial decision solely because of a promotional bonus.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Is Weapon Model Replacement Possible in open.mp? (vs Attached Objects)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6233</link>
			<pubDate>Fri, 28 Aug 2026 13:42:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=5816">aunhelloworld</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6233</guid>
			<description><![CDATA[Hi, I have a question about custom weapon models in open.mp / SA-MP 0.3.DL.<br />
<br />
Is it possible to use custom weapon skins/models in two different ways?<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Weapon model replacement</span><br />
  Replace the visual model of an existing weapon, for example replacing the M4 model with a custom M4 model, while keeping the original M4 weapon ID and functionality.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. Attached object</span><br />
  Keep the original M4 weapon but hide its visual appearance and attach a custom M4 model to the player's hand using an attached object.<br />
<br />
My main question is: <span style="font-weight: bold;" class="mycode_b">Are both approaches possible in open.mp / SA-MP 0.3.DL?</span><br />
<br />
If both are possible, which approach would be better for making custom weapon skins that properly follow the game's weapon animations (holding, aiming, shooting, reloading, etc.)?<br />
<br />
Thanks!]]></description>
			<content:encoded><![CDATA[Hi, I have a question about custom weapon models in open.mp / SA-MP 0.3.DL.<br />
<br />
Is it possible to use custom weapon skins/models in two different ways?<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Weapon model replacement</span><br />
  Replace the visual model of an existing weapon, for example replacing the M4 model with a custom M4 model, while keeping the original M4 weapon ID and functionality.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. Attached object</span><br />
  Keep the original M4 weapon but hide its visual appearance and attach a custom M4 model to the player's hand using an attached object.<br />
<br />
My main question is: <span style="font-weight: bold;" class="mycode_b">Are both approaches possible in open.mp / SA-MP 0.3.DL?</span><br />
<br />
If both are possible, which approach would be better for making custom weapon skins that properly follow the game's weapon animations (holding, aiming, shooting, reloading, etc.)?<br />
<br />
Thanks!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Tool] PawnPro v3.4.2 — Debugger visual + IntelliSense para Pawn (SA-MP/open.mp)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=4314</link>
			<pubDate>Sat, 04 Jul 2026 21:38:24 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=7983">NullSablex</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=4314</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #3498DB;" class="mycode_color">⚙️ PawnPro v3.4.2</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Extensão para Pawn (SA-MP / open.mp) — IntelliSense, formatação, servidor e agora depuração</span><br />
<span style="font-style: italic;" class="mycode_i">Pawn (SA-MP / open.mp) extension — IntelliSense, formatting, server tooling and now debugging</span></span><br />
<br />
<a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">github.com/NullSablex/PawnPro</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 O grande marco chegou: <span style="font-weight: bold;" class="mycode_b">depuração visual de gamemodes Pawn direto no editor</span> 🎉 breakpoints, step, inspeção de variáveis e pausa em erro de runtime — tudo integrado. E não para aí: página de ajuda embutida, biblioteca de recursos repaginada e um monte de acabamento. Esta é a maior release do PawnPro até hoje.<br />
<br />
🇬🇧 The big milestone is here: <span style="font-weight: bold;" class="mycode_b">visual debugging of Pawn gamemodes right in the editor</span> 🎉 breakpoints, stepping, variable inspection and pausing on runtime errors — all built in. And it doesn't stop there: an in-app help page, a reworked resource library and a lot of polish. This is the biggest PawnPro release yet.</blockquote>
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">✨ O que tem de novo / What's new</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🐛 Depurador visual (DAP) — o marco desta versão</span><br />
🇧🇷 Integração com o <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span>. Aperte <span style="font-weight: bold;" class="mycode_b">F5</span> e pronto: a extensão recompila o <span style="font-weight: bold;" class="mycode_b">.pwn</span> com <span style="font-weight: bold;" class="mycode_b">-d3</span> automaticamente (sem tocar na sua config), sobe o servidor e conecta o adaptador. Recursos: breakpoints simples, <span style="font-weight: bold;" class="mycode_b">condicionais</span>, <span style="font-weight: bold;" class="mycode_b">por contagem de acertos</span>, <span style="font-weight: bold;" class="mycode_b">logpoints</span>, step in/out/over, inspeção de variáveis (int/float/bool/array/hex), watch, hover, editar variável ao vivo e <span style="font-weight: bold;" class="mycode_b">pausar em erro de runtime</span> (divisão por zero, índice de array fora do limite). O plugin oficial é detectado por um símbolo marcador e validado num preflight antes de iniciar.<br />
🇬🇧 Integration with the <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span>. Hit <span style="font-weight: bold;" class="mycode_b">F5</span> and that's it: the extension recompiles the <span style="font-weight: bold;" class="mycode_b">.pwn</span> with <span style="font-weight: bold;" class="mycode_b">-d3</span> automatically (without touching your config), starts the server and attaches the adapter. Features: plain breakpoints, <span style="font-weight: bold;" class="mycode_b">conditional</span>, <span style="font-weight: bold;" class="mycode_b">hit-count</span>, <span style="font-weight: bold;" class="mycode_b">logpoints</span>, step in/out/over, variable inspection (int/float/bool/array/hex), watch, hover, live edit-variable and <span style="font-weight: bold;" class="mycode_b">pause on runtime error</span> (division by zero, array index out of bounds). The official plugin is detected via a marker symbol and validated in a preflight before launch.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">❓ Página "Ajuda e informações" / "Help &amp; Info" page</span><br />
🇧🇷 Comando <span style="font-weight: bold;" class="mycode_b">"PawnPro: Ajuda e informações"</span> (também no menu de ações da status bar): mostra o <span style="font-weight: bold;" class="mycode_b">compilador recomendado em destaque</span> — o compilador do <span style="font-weight: bold;" class="mycode_b">open.mp 3.10.11</span>, o único testado e recomendado no momento — as versões atuais dos componentes (extensão, engine LSP e adaptador do depurador), links úteis e um guia rápido de como instalar o plugin do depurador no servidor (SA-MP/open.mp).<br />
🇬🇧 A <span style="font-weight: bold;" class="mycode_b">"PawnPro: Help &amp; Info"</span> command (also in the status-bar action menu): shows the <span style="font-weight: bold;" class="mycode_b">recommended compiler front and center</span> — the <span style="font-weight: bold;" class="mycode_b">open.mp 3.10.11</span> compiler, the only tested and recommended one right now — the current component versions (extension, LSP engine and debugger adapter), handy links, and a quick guide to installing the debugger plugin on the server (SA-MP/open.mp).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">📚 Biblioteca de Recursos repaginada / Reworked Resource Library</span><br />
🇧🇷 Layout, responsividade e legibilidade revistos, com filtro <span style="font-weight: bold;" class="mycode_b">"Adicionados"</span> pra ver só o que está no projeto, selo nos cards e ações de Adicionar/Remover com seletor de versão. (Nesta prévia o estado ainda é de exemplo.)<br />
🇬🇧 Reworked layout, responsiveness and readability, with an <span style="font-weight: bold;" class="mycode_b">"Added"</span> filter to see only what's in the project, a card badge and Add/Remove actions with a version picker. (This preview still uses sample state.)<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🧹 Formatação — preservar alinhamento de arrays / Formatting — preserve array alignment</span><br />
🇧🇷 Nova opção <span style="font-weight: bold;" class="mycode_b">format.preserveArrayAlignment</span>: mantém intacto o alinhamento manual em colunas de inicializadores de array <span style="font-weight: bold;" class="mycode_b">{ }</span> quebrados em várias linhas.<br />
🇬🇧 New <span style="font-weight: bold;" class="mycode_b">format.preserveArrayAlignment</span> option: keeps your manual column alignment intact for multi-line array <span style="font-weight: bold;" class="mycode_b">{ }</span> initializers.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🛡️ Segurança &amp; build / Security &amp; build</span><br />
🇧🇷 Binários externos (engine e adaptador) com <span style="font-weight: bold;" class="mycode_b">checksum SHA-256 fixado</span> no package.json — fonte da verdade na verificação, blindando contra republicação de release. Download unificado num único script, Dependabot e sincronização de labels.<br />
🇬🇧 External binaries (engine and adapter) with a <span style="font-weight: bold;" class="mycode_b">pinned SHA-256 checksum</span> in package.json — the source of truth on verification, guarding against release re-publishing. Unified download script, Dependabot and label sync.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🧩 Componentes desta release / Components in this release</span><ul class="mycode_list"><li>🇧🇷/🇬🇧 Engine LSP <span style="font-weight: bold;" class="mycode_b">pawnpro-engine</span> — v1.3.0<br />
</li>
<li>🇧🇷/🇬🇧 Debugger <span style="font-weight: bold;" class="mycode_b">dap-adapter</span> — v0.1.0<br />
</li>
</ul>
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📋 Changelog completo / Full changelog</span></span><br />
<a href="https://github.com/NullSablex/PawnPro/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url">CHANGELOG.md</a><br />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚠️ Importante / Heads-up</span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Compile seus scripts com o <span style="font-weight: bold;" class="mycode_b">compilador do open.mp (3.10.11)</span> — é o único testado no momento, tanto para a análise da engine quanto para a depuração. Outros compiladores podem gerar código ou debug-info incompatíveis.<br />
<br />
🇬🇧 Build your scripts with the <span style="font-weight: bold;" class="mycode_b">open.mp compiler (3.10.11)</span> — it's the only tested one right now, both for the engine analysis and for debugging. Other compilers may produce incompatible code or debug info.</blockquote>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Instale, aperte F5 e me conta como foi. Issues, PRs e feedback são sempre bem-vindos!<br />
🇬🇧 Install it, hit F5 and let me know how it goes. Issues, PRs and feedback are always welcome!</span><br />
<br />
<a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/PawnPro</span></a></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #3498DB;" class="mycode_color">⚙️ PawnPro v3.4.2</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Extensão para Pawn (SA-MP / open.mp) — IntelliSense, formatação, servidor e agora depuração</span><br />
<span style="font-style: italic;" class="mycode_i">Pawn (SA-MP / open.mp) extension — IntelliSense, formatting, server tooling and now debugging</span></span><br />
<br />
<a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">github.com/NullSablex/PawnPro</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 O grande marco chegou: <span style="font-weight: bold;" class="mycode_b">depuração visual de gamemodes Pawn direto no editor</span> 🎉 breakpoints, step, inspeção de variáveis e pausa em erro de runtime — tudo integrado. E não para aí: página de ajuda embutida, biblioteca de recursos repaginada e um monte de acabamento. Esta é a maior release do PawnPro até hoje.<br />
<br />
🇬🇧 The big milestone is here: <span style="font-weight: bold;" class="mycode_b">visual debugging of Pawn gamemodes right in the editor</span> 🎉 breakpoints, stepping, variable inspection and pausing on runtime errors — all built in. And it doesn't stop there: an in-app help page, a reworked resource library and a lot of polish. This is the biggest PawnPro release yet.</blockquote>
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">✨ O que tem de novo / What's new</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🐛 Depurador visual (DAP) — o marco desta versão</span><br />
🇧🇷 Integração com o <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span>. Aperte <span style="font-weight: bold;" class="mycode_b">F5</span> e pronto: a extensão recompila o <span style="font-weight: bold;" class="mycode_b">.pwn</span> com <span style="font-weight: bold;" class="mycode_b">-d3</span> automaticamente (sem tocar na sua config), sobe o servidor e conecta o adaptador. Recursos: breakpoints simples, <span style="font-weight: bold;" class="mycode_b">condicionais</span>, <span style="font-weight: bold;" class="mycode_b">por contagem de acertos</span>, <span style="font-weight: bold;" class="mycode_b">logpoints</span>, step in/out/over, inspeção de variáveis (int/float/bool/array/hex), watch, hover, editar variável ao vivo e <span style="font-weight: bold;" class="mycode_b">pausar em erro de runtime</span> (divisão por zero, índice de array fora do limite). O plugin oficial é detectado por um símbolo marcador e validado num preflight antes de iniciar.<br />
🇬🇧 Integration with the <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span>. Hit <span style="font-weight: bold;" class="mycode_b">F5</span> and that's it: the extension recompiles the <span style="font-weight: bold;" class="mycode_b">.pwn</span> with <span style="font-weight: bold;" class="mycode_b">-d3</span> automatically (without touching your config), starts the server and attaches the adapter. Features: plain breakpoints, <span style="font-weight: bold;" class="mycode_b">conditional</span>, <span style="font-weight: bold;" class="mycode_b">hit-count</span>, <span style="font-weight: bold;" class="mycode_b">logpoints</span>, step in/out/over, variable inspection (int/float/bool/array/hex), watch, hover, live edit-variable and <span style="font-weight: bold;" class="mycode_b">pause on runtime error</span> (division by zero, array index out of bounds). The official plugin is detected via a marker symbol and validated in a preflight before launch.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">❓ Página "Ajuda e informações" / "Help &amp; Info" page</span><br />
🇧🇷 Comando <span style="font-weight: bold;" class="mycode_b">"PawnPro: Ajuda e informações"</span> (também no menu de ações da status bar): mostra o <span style="font-weight: bold;" class="mycode_b">compilador recomendado em destaque</span> — o compilador do <span style="font-weight: bold;" class="mycode_b">open.mp 3.10.11</span>, o único testado e recomendado no momento — as versões atuais dos componentes (extensão, engine LSP e adaptador do depurador), links úteis e um guia rápido de como instalar o plugin do depurador no servidor (SA-MP/open.mp).<br />
🇬🇧 A <span style="font-weight: bold;" class="mycode_b">"PawnPro: Help &amp; Info"</span> command (also in the status-bar action menu): shows the <span style="font-weight: bold;" class="mycode_b">recommended compiler front and center</span> — the <span style="font-weight: bold;" class="mycode_b">open.mp 3.10.11</span> compiler, the only tested and recommended one right now — the current component versions (extension, LSP engine and debugger adapter), handy links, and a quick guide to installing the debugger plugin on the server (SA-MP/open.mp).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">📚 Biblioteca de Recursos repaginada / Reworked Resource Library</span><br />
🇧🇷 Layout, responsividade e legibilidade revistos, com filtro <span style="font-weight: bold;" class="mycode_b">"Adicionados"</span> pra ver só o que está no projeto, selo nos cards e ações de Adicionar/Remover com seletor de versão. (Nesta prévia o estado ainda é de exemplo.)<br />
🇬🇧 Reworked layout, responsiveness and readability, with an <span style="font-weight: bold;" class="mycode_b">"Added"</span> filter to see only what's in the project, a card badge and Add/Remove actions with a version picker. (This preview still uses sample state.)<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🧹 Formatação — preservar alinhamento de arrays / Formatting — preserve array alignment</span><br />
🇧🇷 Nova opção <span style="font-weight: bold;" class="mycode_b">format.preserveArrayAlignment</span>: mantém intacto o alinhamento manual em colunas de inicializadores de array <span style="font-weight: bold;" class="mycode_b">{ }</span> quebrados em várias linhas.<br />
🇬🇧 New <span style="font-weight: bold;" class="mycode_b">format.preserveArrayAlignment</span> option: keeps your manual column alignment intact for multi-line array <span style="font-weight: bold;" class="mycode_b">{ }</span> initializers.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🛡️ Segurança &amp; build / Security &amp; build</span><br />
🇧🇷 Binários externos (engine e adaptador) com <span style="font-weight: bold;" class="mycode_b">checksum SHA-256 fixado</span> no package.json — fonte da verdade na verificação, blindando contra republicação de release. Download unificado num único script, Dependabot e sincronização de labels.<br />
🇬🇧 External binaries (engine and adapter) with a <span style="font-weight: bold;" class="mycode_b">pinned SHA-256 checksum</span> in package.json — the source of truth on verification, guarding against release re-publishing. Unified download script, Dependabot and label sync.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🧩 Componentes desta release / Components in this release</span><ul class="mycode_list"><li>🇧🇷/🇬🇧 Engine LSP <span style="font-weight: bold;" class="mycode_b">pawnpro-engine</span> — v1.3.0<br />
</li>
<li>🇧🇷/🇬🇧 Debugger <span style="font-weight: bold;" class="mycode_b">dap-adapter</span> — v0.1.0<br />
</li>
</ul>
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📋 Changelog completo / Full changelog</span></span><br />
<a href="https://github.com/NullSablex/PawnPro/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url">CHANGELOG.md</a><br />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚠️ Importante / Heads-up</span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Compile seus scripts com o <span style="font-weight: bold;" class="mycode_b">compilador do open.mp (3.10.11)</span> — é o único testado no momento, tanto para a análise da engine quanto para a depuração. Outros compiladores podem gerar código ou debug-info incompatíveis.<br />
<br />
🇬🇧 Build your scripts with the <span style="font-weight: bold;" class="mycode_b">open.mp compiler (3.10.11)</span> — it's the only tested one right now, both for the engine analysis and for debugging. Other compilers may produce incompatible code or debug info.</blockquote>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Instale, aperte F5 e me conta como foi. Issues, PRs e feedback são sempre bem-vindos!<br />
🇬🇧 Install it, hit F5 and let me know how it goes. Issues, PRs and feedback are always welcome!</span><br />
<br />
<a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/PawnPro</span></a></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[🦀 rust-samp v3.2.0 — VM debugging, debug-info parser & logger sinks]]></title>
			<link>https://forum.open.mp/showthread.php?tid=4309</link>
			<pubDate>Tue, 30 Jun 2026 08:26:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=7983">NullSablex</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=4309</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #E67E22;" class="mycode_color">🦀 rust-samp v3.2.0</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">SDK em Rust pra plugins SA-MP e componentes nativos open.mp</span><br />
<span style="font-style: italic;" class="mycode_i">Rust SDK for SA-MP plugins and native open.mp components</span></span><br />
<br />
<a href="https://github.com/NullSablex/rust-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">github.com/NullSablex/rust-samp</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Nova release no ar! 🎉 E dessa vez ela vem com umas coisas que eu queria há tempos: ferramentas de debugging direto na VM, um parser de debug-info e pontos de extensão pro logger — tudo sem encher o projeto de dependência nem esconder telemetria por baixo do pano.<br />
<br />
🇬🇧 New release is out! 🎉 And this one packs stuff I'd wanted for a while: VM debugging primitives, a debug-info parser and logger extension points — all without bloating the project with dependencies or sneaking in any telemetry.</blockquote>
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">✨ O que tem de novo / What's new</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🔍 VM Debugging primitives</span><br />
🇧🇷 Acessores seguros direto no <span style="font-weight: bold;" class="mycode_b">Amx</span>: leitura de registradores (<span style="font-weight: bold;" class="mycode_b">cip</span>, <span style="font-weight: bold;" class="mycode_b">frame</span>, <span style="font-weight: bold;" class="mycode_b">stack</span>, <span style="font-weight: bold;" class="mycode_b">heap</span>, <span style="font-weight: bold;" class="mycode_b">stp</span>), acesso a células com bounds-check (<span style="font-weight: bold;" class="mycode_b">read_cell</span> / <span style="font-weight: bold;" class="mycode_b">write_cell</span>) e gerenciamento de debug hook (<span style="font-weight: bold;" class="mycode_b">install_debug_hook</span> / <span style="font-weight: bold;" class="mycode_b">remove_debug_hook</span>). Sempre disponível, sem feature flag.<br />
🇬🇧 Safe accessors right on <span style="font-weight: bold;" class="mycode_b">Amx</span>: register reads, bounds-checked cell access and debug-hook management. Always available, no feature gate.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🧩 samp::debug — parser de AMX_DBG (feature <span style="font-style: italic;" class="mycode_i">debug</span>)</span><br />
🇧🇷 Decoder puro do bloco de debug que o <span style="font-weight: bold;" class="mycode_b">pawncc -d2/-d3</span> anexa ao <span style="font-weight: bold;" class="mycode_b">.amx</span>. Mapeia endereço de código ↔ linha de fonte ↔ símbolo ↔ função. Zero dependência extra.<br />
🇬🇧 Pure-logic decoder for the debug block <span style="font-weight: bold;" class="mycode_b">pawncc -d2/-d3</span> appends to the <span style="font-weight: bold;" class="mycode_b">.amx</span>. Maps code address ↔ source line ↔ symbol ↔ function. Zero extra dependencies.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">📡 External sinks no logger</span><br />
🇧🇷 Trait <span style="font-weight: bold;" class="mycode_b">samp::logger::Sink</span> + <span style="font-weight: bold;" class="mycode_b">LoggerConfig::add_sink</span> pra mandar log pro destino que você quiser (Sentry, OTLP, um HTTP seu...). <span style="font-weight: bold;" class="mycode_b">Nada de telemetria embutida no SDK</span> — é você que liga, se quiser.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">Sink</span> trait + <span style="font-weight: bold;" class="mycode_b">add_sink</span> to ship logs wherever you want. <span style="font-weight: bold;" class="mycode_b">No telemetry baked into the SDK</span> — you turn it on, if you ever want to.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">📦 Já tá no crates.io / Now on crates.io</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>samp = { package = "rust-samp", version = "3" }</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">🛡️ Segurança &amp; governança / Security &amp; governance</span><br />
🇧🇷 OpenSSF Scorecard, Actions pinadas por SHA, permissões de token mínimas, Dependabot e política de segurança. O básico bem feito.<br />
🇬🇧 OpenSSF Scorecard, SHA-pinned Actions, least-privilege tokens, Dependabot and a security policy. The basics, done right.<br />
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📋 Changelog completo / Full changelog</span></span><br />
<a href="https://github.com/NullSablex/rust-samp/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url">CHANGELOG.md</a><br />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚀 E não para por aí / And it doesn't stop here</span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 O <span style="font-weight: bold;" class="mycode_b">PawnPro</span> e o novo <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span> vão ser atualizados em breve pra usar esse material novo do SDK. E o Debugger... esse vem <span style="font-weight: bold;" class="mycode_b">chegando logo</span> 👀 — montado em cima justamente das primitivas de debugging e do parser de AMX_DBG dessa release. As peças foram pensadas pra se encaixar.<br />
<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">PawnPro</span> and the new <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span> are getting updated soon to ride on this new SDK material. And the Debugger... that one's <span style="font-weight: bold;" class="mycode_b">landing soon</span> 👀 — built right on top of the debugging primitives and the AMX_DBG parser from this release. The pieces were made to fit together.</blockquote>
<ul class="mycode_list"><li><a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro</span></a> — 🇧🇷 atualização chegando / 🇬🇧 update coming<br />
</li>
<li><a href="https://github.com/NullSablex/PawnPro-Debugger" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span></a> — 🇧🇷 lançamento em breve / 🇬🇧 launching soon<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Deu pra notar que tem coisa boa vindo. Issues, PRs e feedback são sempre bem-vindos!<br />
🇬🇧 You can probably tell there's good stuff on the way. Issues, PRs and feedback are always welcome!</span><br />
<br />
<a href="https://github.com/NullSablex/rust-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/rust-samp</span></a></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #E67E22;" class="mycode_color">🦀 rust-samp v3.2.0</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">SDK em Rust pra plugins SA-MP e componentes nativos open.mp</span><br />
<span style="font-style: italic;" class="mycode_i">Rust SDK for SA-MP plugins and native open.mp components</span></span><br />
<br />
<a href="https://github.com/NullSablex/rust-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">github.com/NullSablex/rust-samp</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Nova release no ar! 🎉 E dessa vez ela vem com umas coisas que eu queria há tempos: ferramentas de debugging direto na VM, um parser de debug-info e pontos de extensão pro logger — tudo sem encher o projeto de dependência nem esconder telemetria por baixo do pano.<br />
<br />
🇬🇧 New release is out! 🎉 And this one packs stuff I'd wanted for a while: VM debugging primitives, a debug-info parser and logger extension points — all without bloating the project with dependencies or sneaking in any telemetry.</blockquote>
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">✨ O que tem de novo / What's new</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🔍 VM Debugging primitives</span><br />
🇧🇷 Acessores seguros direto no <span style="font-weight: bold;" class="mycode_b">Amx</span>: leitura de registradores (<span style="font-weight: bold;" class="mycode_b">cip</span>, <span style="font-weight: bold;" class="mycode_b">frame</span>, <span style="font-weight: bold;" class="mycode_b">stack</span>, <span style="font-weight: bold;" class="mycode_b">heap</span>, <span style="font-weight: bold;" class="mycode_b">stp</span>), acesso a células com bounds-check (<span style="font-weight: bold;" class="mycode_b">read_cell</span> / <span style="font-weight: bold;" class="mycode_b">write_cell</span>) e gerenciamento de debug hook (<span style="font-weight: bold;" class="mycode_b">install_debug_hook</span> / <span style="font-weight: bold;" class="mycode_b">remove_debug_hook</span>). Sempre disponível, sem feature flag.<br />
🇬🇧 Safe accessors right on <span style="font-weight: bold;" class="mycode_b">Amx</span>: register reads, bounds-checked cell access and debug-hook management. Always available, no feature gate.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🧩 samp::debug — parser de AMX_DBG (feature <span style="font-style: italic;" class="mycode_i">debug</span>)</span><br />
🇧🇷 Decoder puro do bloco de debug que o <span style="font-weight: bold;" class="mycode_b">pawncc -d2/-d3</span> anexa ao <span style="font-weight: bold;" class="mycode_b">.amx</span>. Mapeia endereço de código ↔ linha de fonte ↔ símbolo ↔ função. Zero dependência extra.<br />
🇬🇧 Pure-logic decoder for the debug block <span style="font-weight: bold;" class="mycode_b">pawncc -d2/-d3</span> appends to the <span style="font-weight: bold;" class="mycode_b">.amx</span>. Maps code address ↔ source line ↔ symbol ↔ function. Zero extra dependencies.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">📡 External sinks no logger</span><br />
🇧🇷 Trait <span style="font-weight: bold;" class="mycode_b">samp::logger::Sink</span> + <span style="font-weight: bold;" class="mycode_b">LoggerConfig::add_sink</span> pra mandar log pro destino que você quiser (Sentry, OTLP, um HTTP seu...). <span style="font-weight: bold;" class="mycode_b">Nada de telemetria embutida no SDK</span> — é você que liga, se quiser.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">Sink</span> trait + <span style="font-weight: bold;" class="mycode_b">add_sink</span> to ship logs wherever you want. <span style="font-weight: bold;" class="mycode_b">No telemetry baked into the SDK</span> — you turn it on, if you ever want to.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">📦 Já tá no crates.io / Now on crates.io</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>samp = { package = "rust-samp", version = "3" }</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">🛡️ Segurança &amp; governança / Security &amp; governance</span><br />
🇧🇷 OpenSSF Scorecard, Actions pinadas por SHA, permissões de token mínimas, Dependabot e política de segurança. O básico bem feito.<br />
🇬🇧 OpenSSF Scorecard, SHA-pinned Actions, least-privilege tokens, Dependabot and a security policy. The basics, done right.<br />
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📋 Changelog completo / Full changelog</span></span><br />
<a href="https://github.com/NullSablex/rust-samp/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url">CHANGELOG.md</a><br />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚀 E não para por aí / And it doesn't stop here</span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 O <span style="font-weight: bold;" class="mycode_b">PawnPro</span> e o novo <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span> vão ser atualizados em breve pra usar esse material novo do SDK. E o Debugger... esse vem <span style="font-weight: bold;" class="mycode_b">chegando logo</span> 👀 — montado em cima justamente das primitivas de debugging e do parser de AMX_DBG dessa release. As peças foram pensadas pra se encaixar.<br />
<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">PawnPro</span> and the new <span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span> are getting updated soon to ride on this new SDK material. And the Debugger... that one's <span style="font-weight: bold;" class="mycode_b">landing soon</span> 👀 — built right on top of the debugging primitives and the AMX_DBG parser from this release. The pieces were made to fit together.</blockquote>
<ul class="mycode_list"><li><a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro</span></a> — 🇧🇷 atualização chegando / 🇬🇧 update coming<br />
</li>
<li><a href="https://github.com/NullSablex/PawnPro-Debugger" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro Debugger</span></a> — 🇧🇷 lançamento em breve / 🇬🇧 launching soon<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Deu pra notar que tem coisa boa vindo. Issues, PRs e feedback são sempre bem-vindos!<br />
🇬🇧 You can probably tell there's good stuff on the way. Issues, PRs and feedback are always welcome!</span><br />
<br />
<a href="https://github.com/NullSablex/rust-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/rust-samp</span></a></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[libsamp - samp.dll re-implementation [TESTERS NEEDED]]]></title>
			<link>https://forum.open.mp/showthread.php?tid=4303</link>
			<pubDate>Mon, 22 Jun 2026 21:21:58 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=827">Knogle</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=4303</guid>
			<description><![CDATA[Ahoy guys, how are you doing.<br />
<br />
I hope you guys are doing fine.<br />
In order to have major improvements on the client side for sure it's necessary to have some sort of reverse-engineered, or independently built samp.dll which carries a lot of functions currently, like GTA SA hooking and function calling, D3DX GameText/Blip/TextDraw stuff, RakNet network stack etc. etc.<br />
<br />
In order to give it a start i tried to first, manually reverse engineer the samp.dll and of course, later on started vibe-coding a lot of things that i've found out.<br />
In the process i've also built an MCP to use with Ghidra.<br />
<br />
It's currently in a very early state, but the goal is to have a drop-in replacement for the current still necessary samp.dll for 0.3.7-R5, so development efforts can continue from there on.<br />
<br />
I hope this contribution is worth it, and at least we can try :)<br />
Maybe someone can do some basic testing, do some suggestions or also proper debugging.<br />
ASI modders are also welcome, as i am still struggeling with some of the GTA SA function hooking, got a lot out of this <a href="http://github.com/gta-reversed/gta-reversed" target="_blank" rel="noopener" class="mycode_url">repo</a> though.<br />
The goal is to have something that's <span style="font-weight: bold;" class="mycode_b">NOT</span> based on leaked SA-MP code.<br />
<br />
In order to get the cam working after spawn, go to pause menu, and return, didn't get that sorted out yet.<br />
Happy testing and contributing guys! The current build is in the release section.<br />
<br />
<a href="https://github.com/Knogle/libsamp" target="_blank" rel="noopener" class="mycode_url">https://github.com/Knogle/libsamp</a>]]></description>
			<content:encoded><![CDATA[Ahoy guys, how are you doing.<br />
<br />
I hope you guys are doing fine.<br />
In order to have major improvements on the client side for sure it's necessary to have some sort of reverse-engineered, or independently built samp.dll which carries a lot of functions currently, like GTA SA hooking and function calling, D3DX GameText/Blip/TextDraw stuff, RakNet network stack etc. etc.<br />
<br />
In order to give it a start i tried to first, manually reverse engineer the samp.dll and of course, later on started vibe-coding a lot of things that i've found out.<br />
In the process i've also built an MCP to use with Ghidra.<br />
<br />
It's currently in a very early state, but the goal is to have a drop-in replacement for the current still necessary samp.dll for 0.3.7-R5, so development efforts can continue from there on.<br />
<br />
I hope this contribution is worth it, and at least we can try :)<br />
Maybe someone can do some basic testing, do some suggestions or also proper debugging.<br />
ASI modders are also welcome, as i am still struggeling with some of the GTA SA function hooking, got a lot out of this <a href="http://github.com/gta-reversed/gta-reversed" target="_blank" rel="noopener" class="mycode_url">repo</a> though.<br />
The goal is to have something that's <span style="font-weight: bold;" class="mycode_b">NOT</span> based on leaked SA-MP code.<br />
<br />
In order to get the cam working after spawn, go to pause menu, and return, didn't get that sorted out yet.<br />
Happy testing and contributing guys! The current build is in the release section.<br />
<br />
<a href="https://github.com/Knogle/libsamp" target="_blank" rel="noopener" class="mycode_url">https://github.com/Knogle/libsamp</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Release] Spawn — IDE for open.mp and SA-MP development]]></title>
			<link>https://forum.open.mp/showthread.php?tid=4290</link>
			<pubDate>Sat, 13 Jun 2026 20:35:45 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8171">Daniil Korochansky</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=4290</guid>
			<description><![CDATA[<span style="font-size: medium;" class="mycode_size">I am pleased to announce the release of the first public version of a modern open-source IDE under license GPLv3 for developing open.mp and SA-MP, featuring integration with SAMPCTL, dependency management, and built-in Git support.</span><br />
<br />
<img src="https://github.com/user-attachments/assets/505d6a46-33cc-45ae-bed3-f011474a4dc7" loading="lazy"  alt="[Image: 505d6a46-33cc-45ae-bed3-f011474a4dc7]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Features:</span><br />
• Designed specifically for open.mp &amp; SA-MP development.<br />
• Built-in SAMPCTL integration for building, running and managing projects.<br />
• Dependency Manager for easy installation and updating of server packages and components.<br />
• Integrated Git support with repository status indicators and commit history.<br />
• Change History markers for tracking modified and saved lines.<br />
• Automatic brace matching and highlighting.<br />
• Color preview for RGBA and HEX values directly inside the editor.<br />
• Color Picker integration for quick color insertion into Pawn code.<br />
• Split Code Editor mode for working with multiple files simultaneously.<br />
• Project Tree optimized for large projects.<br />
• Integrated build output and server console panels.<br />
• Automatic project files monitoring and refresh.<br />
• Portable distribution (no installation required).<br />
<br />
Download: <a href="https://github.com/daniilkorochansky/spawn" target="_blank" rel="noopener" class="mycode_url">https://github.com/daniilkorochansky/spawn</a>]]></description>
			<content:encoded><![CDATA[<span style="font-size: medium;" class="mycode_size">I am pleased to announce the release of the first public version of a modern open-source IDE under license GPLv3 for developing open.mp and SA-MP, featuring integration with SAMPCTL, dependency management, and built-in Git support.</span><br />
<br />
<img src="https://github.com/user-attachments/assets/505d6a46-33cc-45ae-bed3-f011474a4dc7" loading="lazy"  alt="[Image: 505d6a46-33cc-45ae-bed3-f011474a4dc7]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Features:</span><br />
• Designed specifically for open.mp &amp; SA-MP development.<br />
• Built-in SAMPCTL integration for building, running and managing projects.<br />
• Dependency Manager for easy installation and updating of server packages and components.<br />
• Integrated Git support with repository status indicators and commit history.<br />
• Change History markers for tracking modified and saved lines.<br />
• Automatic brace matching and highlighting.<br />
• Color preview for RGBA and HEX values directly inside the editor.<br />
• Color Picker integration for quick color insertion into Pawn code.<br />
• Split Code Editor mode for working with multiple files simultaneously.<br />
• Project Tree optimized for large projects.<br />
• Integrated build output and server console panels.<br />
• Automatic project files monitoring and refresh.<br />
• Portable distribution (no installation required).<br />
<br />
Download: <a href="https://github.com/daniilkorochansky/spawn" target="_blank" rel="noopener" class="mycode_url">https://github.com/daniilkorochansky/spawn</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Emotion Launcher(eLauncher)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=3242</link>
			<pubDate>Thu, 24 Jul 2025 23:59:41 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=6320">Collw</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=3242</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><img src="https://cdn.discordapp.com/attachments/1117589516488822906/1398115855128334376/EL_18.png?ex=6884305b&amp;is=6882dedb&amp;hm=a5349d5c3d17263b983516e05f956dc2e61b6b098dfac6654edcb4b1332dec98&amp;" loading="lazy"  width="200" height="200" alt="[Image: EL_18.png?ex=6884305b&amp;is=6882dedb&amp;hm=a53...1332dec98&amp;]" class="mycode_img" /></span></div>
<span style="font-weight: bold;" class="mycode_b">Emotion Multiplayer - eLauncher</span><br />
This project is <span style="font-weight: bold;" class="mycode_b">not a new multiplayer mod</span>. Emotion Multiplayer &gt; eLauncher is part of an open-source initiative aimed at organizing and sharing tools, modifications, and code with the <span style="font-weight: bold;" class="mycode_b">SA-MP</span> and <span style="font-weight: bold;" class="mycode_b">open.mp</span> communities.<br />
<span style="font-weight: bold;" class="mycode_b">About the project</span><br />
I’m passionate about volunteer development and open-source software. While exploring some community SA-MP repositories, I had the idea to create a dedicated launcher. That’s how <span style="font-weight: bold;" class="mycode_b">Emotion Launcher (eLauncher)</span> was born.<br />
The goal of this project is to make it easier for server owners — especially those running large servers — to create their own custom launchers in a practical and professional way.<br />
You can create your own launcher based on <span style="font-weight: bold;" class="mycode_b">eLauncher</span>.<br />
<span style="font-weight: bold;" class="mycode_b">Technologies used</span><ul class="mycode_list"><li>Language: C#<br />
</li>
<li>Interface: WinForms<br />
</li>
<li>Platform: .NET 8.0<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Try it now</span><br />
You can explore and test the launcher by visiting:<br />
Official website: <a href="https://elauncher.site/" target="_blank" rel="noopener" class="mycode_url">https://elauncher.site</a><br />
Source code: <a href="https://github.com/emotionmultiplayer/eLauncher" target="_blank" rel="noopener" class="mycode_url">https://github.com/emotionmultiplayer/eLauncher</a><br />
<span style="font-weight: bold;" class="mycode_b">Contributions</span><br />
Contributions are welcome. If you have ideas, improvements, or fixes, feel free to open an issue or submit a pull request on the repository.<br />
<span style="font-weight: bold;" class="mycode_b">Emotion Multiplayer – developed with dedication for the community.</span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><img src="https://cdn.discordapp.com/attachments/1117589516488822906/1398115855128334376/EL_18.png?ex=6884305b&amp;is=6882dedb&amp;hm=a5349d5c3d17263b983516e05f956dc2e61b6b098dfac6654edcb4b1332dec98&amp;" loading="lazy"  width="200" height="200" alt="[Image: EL_18.png?ex=6884305b&amp;is=6882dedb&amp;hm=a53...1332dec98&amp;]" class="mycode_img" /></span></div>
<span style="font-weight: bold;" class="mycode_b">Emotion Multiplayer - eLauncher</span><br />
This project is <span style="font-weight: bold;" class="mycode_b">not a new multiplayer mod</span>. Emotion Multiplayer &gt; eLauncher is part of an open-source initiative aimed at organizing and sharing tools, modifications, and code with the <span style="font-weight: bold;" class="mycode_b">SA-MP</span> and <span style="font-weight: bold;" class="mycode_b">open.mp</span> communities.<br />
<span style="font-weight: bold;" class="mycode_b">About the project</span><br />
I’m passionate about volunteer development and open-source software. While exploring some community SA-MP repositories, I had the idea to create a dedicated launcher. That’s how <span style="font-weight: bold;" class="mycode_b">Emotion Launcher (eLauncher)</span> was born.<br />
The goal of this project is to make it easier for server owners — especially those running large servers — to create their own custom launchers in a practical and professional way.<br />
You can create your own launcher based on <span style="font-weight: bold;" class="mycode_b">eLauncher</span>.<br />
<span style="font-weight: bold;" class="mycode_b">Technologies used</span><ul class="mycode_list"><li>Language: C#<br />
</li>
<li>Interface: WinForms<br />
</li>
<li>Platform: .NET 8.0<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Try it now</span><br />
You can explore and test the launcher by visiting:<br />
Official website: <a href="https://elauncher.site/" target="_blank" rel="noopener" class="mycode_url">https://elauncher.site</a><br />
Source code: <a href="https://github.com/emotionmultiplayer/eLauncher" target="_blank" rel="noopener" class="mycode_url">https://github.com/emotionmultiplayer/eLauncher</a><br />
<span style="font-weight: bold;" class="mycode_b">Contributions</span><br />
Contributions are welcome. If you have ideas, improvements, or fixes, feel free to open an issue or submit a pull request on the repository.<br />
<span style="font-weight: bold;" class="mycode_b">Emotion Multiplayer – developed with dedication for the community.</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[С++ / How to terminate further function calls?]]></title>
			<link>https://forum.open.mp/showthread.php?tid=3069</link>
			<pubDate>Mon, 10 Feb 2025 04:09:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=5383">punkochel</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=3069</guid>
			<description><![CDATA[Hi everyone! How can I complete a sequence of function calls if I already got the desired result?<br />
Let's say not call onPlayerSpawn in Test2 if I already got what I wanted in Test1? Only if?<br />
<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>class Test1 : public PlayerSpawnEventHandler<br />
{<br />
<br />
public:<br />
    void onPlayerSpawn(IPlayer &amp;player) override<br />
    {<br />
        player.sendClientMessage(Colour::Cyan(), "Hello from the test class...");<br />
    }<br />
};<br />
<br />
class Test2 : public PlayerSpawnEventHandler<br />
{<br />
<br />
public:<br />
    void onPlayerSpawn(IPlayer &amp;player) override<br />
    {<br />
        player.sendClientMessage(Colour::Cyan(), "Hello from the test2 class...");<br />
    }<br />
};<br />
<br />
void Gamemode::onLoad(ICore* c)<br />
{<br />
    core_ = c;<br />
    c-&gt;getPlayers().getPlayerConnectDispatcher().addEventHandler(this);<br />
    c-&gt;getPlayers().getPlayerSpawnDispatcher().addEventHandler(this);<br />
    c-&gt;getPlayers().getPlayerTextDispatcher().addEventHandler(this);<br />
<br />
    test1_ = new Test1;<br />
    c-&gt;getPlayers().getPlayerSpawnDispatcher().addEventHandler(test1_);<br />
<br />
    test2_ = new Test2;<br />
    c-&gt;getPlayers().getPlayerSpawnDispatcher().addEventHandler(test2_);<br />
}</code></div></div>]]></description>
			<content:encoded><![CDATA[Hi everyone! How can I complete a sequence of function calls if I already got the desired result?<br />
Let's say not call onPlayerSpawn in Test2 if I already got what I wanted in Test1? Only if?<br />
<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>class Test1 : public PlayerSpawnEventHandler<br />
{<br />
<br />
public:<br />
    void onPlayerSpawn(IPlayer &amp;player) override<br />
    {<br />
        player.sendClientMessage(Colour::Cyan(), "Hello from the test class...");<br />
    }<br />
};<br />
<br />
class Test2 : public PlayerSpawnEventHandler<br />
{<br />
<br />
public:<br />
    void onPlayerSpawn(IPlayer &amp;player) override<br />
    {<br />
        player.sendClientMessage(Colour::Cyan(), "Hello from the test2 class...");<br />
    }<br />
};<br />
<br />
void Gamemode::onLoad(ICore* c)<br />
{<br />
    core_ = c;<br />
    c-&gt;getPlayers().getPlayerConnectDispatcher().addEventHandler(this);<br />
    c-&gt;getPlayers().getPlayerSpawnDispatcher().addEventHandler(this);<br />
    c-&gt;getPlayers().getPlayerTextDispatcher().addEventHandler(this);<br />
<br />
    test1_ = new Test1;<br />
    c-&gt;getPlayers().getPlayerSpawnDispatcher().addEventHandler(test1_);<br />
<br />
    test2_ = new Test2;<br />
    c-&gt;getPlayers().getPlayerSpawnDispatcher().addEventHandler(test2_);<br />
}</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Need any technical support?]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2921</link>
			<pubDate>Tue, 01 Oct 2024 14:20:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=4411">JasonRiggs</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2921</guid>
			<description><![CDATA[Hi there!<br />
<br />
So I thought why not we make this thread to people who require or offer any technical support to meet up here so we can make it easier for developers and users to find each others which will enhance the growth of the community and the quality of the service.<br />
<br />
I'll begin with myself.. If you need any help regarding Open.MP server development or any other matter contact me over DMs or on discord <span style="color: #000000;" class="mycode_color"><span style="font-family: gg sans', 'Noto Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Symbols;" class="mycode_font">riggsss</span></span><br />
<br />
<span style="font-family: gg sans', 'Noto Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Symbols;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Hope this post reaches alot of people!</span></span>]]></description>
			<content:encoded><![CDATA[Hi there!<br />
<br />
So I thought why not we make this thread to people who require or offer any technical support to meet up here so we can make it easier for developers and users to find each others which will enhance the growth of the community and the quality of the service.<br />
<br />
I'll begin with myself.. If you need any help regarding Open.MP server development or any other matter contact me over DMs or on discord <span style="color: #000000;" class="mycode_color"><span style="font-family: gg sans', 'Noto Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Symbols;" class="mycode_font">riggsss</span></span><br />
<br />
<span style="font-family: gg sans', 'Noto Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Symbols;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Hope this post reaches alot of people!</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Build OpenMP sdk (cmake-conan)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2840</link>
			<pubDate>Sun, 28 Jul 2024 17:43:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=6079">PainFrenemy</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2840</guid>
			<description><![CDATA[<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">&#36; cmake .. -A Win32 -T ClangCL</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631.</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">usage: conan profile [-h] [-v [V]] [-cc CORE_CONF] {detect,list,path,show} ...</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">conan profile: error: argument subcommand: invalid choice: 'update' (choose from 'detect', 'list', 'path', 'show')</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">ERROR: Exiting with code: 2</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">CMake Error at lib/cmake-conan/conan-omp.cmake:20 (message):</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">Couldn't update build profile</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">Call Stack (most recent call first):</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">lib/cmake-conan/conan-omp.cmake:60 (conan_update_profile)</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">CMakeLists.txt:6 (include)</span></span><br />
<br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font"><a href="https://github.com/openmultiplayer/open.mp-sdk" target="_blank" rel="noopener" class="mycode_url">https://github.com/openmultiplayer/open.mp-sdk</a></span></span>]]></description>
			<content:encoded><![CDATA[<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">&#36; cmake .. -A Win32 -T ClangCL</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631.</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">usage: conan profile [-h] [-v [V]] [-cc CORE_CONF] {detect,list,path,show} ...</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">conan profile: error: argument subcommand: invalid choice: 'update' (choose from 'detect', 'list', 'path', 'show')</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">ERROR: Exiting with code: 2</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">CMake Error at lib/cmake-conan/conan-omp.cmake:20 (message):</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">Couldn't update build profile</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">Call Stack (most recent call first):</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">lib/cmake-conan/conan-omp.cmake:60 (conan_update_profile)</span></span><br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">CMakeLists.txt:6 (include)</span></span><br />
<br />
<span style="color: #cbdae6;" class="mycode_color"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font"><a href="https://github.com/openmultiplayer/open.mp-sdk" target="_blank" rel="noopener" class="mycode_url">https://github.com/openmultiplayer/open.mp-sdk</a></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[A code alternative for finding an empty slot properly]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2828</link>
			<pubDate>Fri, 19 Jul 2024 11:23:00 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=6021">Amr</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2828</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: x-large;" class="mycode_size">Finding the First Empty Slot in an Array</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Objective:</span></span><br />
<span style="font-size: medium;" class="mycode_size">To determine the index of the first empty slot in a 0-indexed array </span><span style="font-size: 1pt;" class="mycode_size">Arr of size 1024, with an additional precaution against potential overflow.</span><br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Explanation:</span></span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>int SizeArr = 1024;      // Size of the array<br />
int Arr[SizeArr + 1];    // Array with additional slot<br />
<br />
int i = 1;                // Initialization of index i<br />
<br />
while (Arr)        // Loop until an empty slot is found<br />
    i++;<br />
<br />
return i % (SizeArr + 1) - 1;  // Return the index of the empty slot</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Details:</span></span><br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Array Declaration:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">int Arr[SizeArr + 1];</span><br />
 declares an array <span style="color: #c10300;" class="mycode_color">Arr</span> with 1025 elements, including an additional slot to handle edge cases and prevent overflow.<br />
</li>
</ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b">Initialization of </span><span style="font-weight: bold;" class="mycode_b">i</span><span style="font-weight: bold;" class="mycode_b">:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">int i = 1;</span><br />
 starts <span style="color: #c10300;" class="mycode_color">i</span> at 1 to facilitate the search for the first empty slot while adjusting for 0-based indexing with <span style="color: #c10300;" class="mycode_color">Arr[i - 1]</span>.<br />
</li>
</ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b">While Loop:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">while (Arr[i - 1]) i++;</span><br />
 iterates <span style="color: #c10300;" class="mycode_color">i</span> until it finds an index where <span style="color: #c10300;" class="mycode_color">Arr[i - 1]</span> is zero, indicating an empty slot in the array.<br />
</li>
</ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b">Return Statement:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">return i % (SizeArr + 1) - 1;</span><br />
 calculates and returns the index of the first empty slot:<br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">i % (SizeArr + 1)</span><br />
 ensures <span style="color: #c10300;" class="mycode_color">i</span> wraps within the array bounds, accounting for the extra slot.<br />
</li>
<li><span style="color: #c10300;" class="mycode_color">- 1</span><br />
 adjusts <span style="color: #c10300;" class="mycode_color">i</span> to be a 0-based index, aligning with typical C/C++ array indexing conventions.<br />
</li>
</ul>
</li>
</ul>
</li>
</ol>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Benefits:</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Overflow Protection:</span> By allocating an extra element (`<span style="color: #c10300;" class="mycode_color">Arr[SizeArr]</span>`), the code guards against potential overflow issues during array traversal.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Robustness:</span> Handles various scenarios by locating the first empty slot in the array Arr, accommodating specific conditions where zero signifies an empty slot.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Considerations:</span></span><ul class="mycode_list"><li>Ensure the array initialization and usage align with application-specific requirements regarding empty slot definitions and array indexing conventions.<br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: x-large;" class="mycode_size">Finding the First Empty Slot in an Array</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Objective:</span></span><br />
<span style="font-size: medium;" class="mycode_size">To determine the index of the first empty slot in a 0-indexed array </span><span style="font-size: 1pt;" class="mycode_size">Arr of size 1024, with an additional precaution against potential overflow.</span><br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Explanation:</span></span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>int SizeArr = 1024;      // Size of the array<br />
int Arr[SizeArr + 1];    // Array with additional slot<br />
<br />
int i = 1;                // Initialization of index i<br />
<br />
while (Arr)        // Loop until an empty slot is found<br />
    i++;<br />
<br />
return i % (SizeArr + 1) - 1;  // Return the index of the empty slot</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Details:</span></span><br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Array Declaration:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">int Arr[SizeArr + 1];</span><br />
 declares an array <span style="color: #c10300;" class="mycode_color">Arr</span> with 1025 elements, including an additional slot to handle edge cases and prevent overflow.<br />
</li>
</ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b">Initialization of </span><span style="font-weight: bold;" class="mycode_b">i</span><span style="font-weight: bold;" class="mycode_b">:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">int i = 1;</span><br />
 starts <span style="color: #c10300;" class="mycode_color">i</span> at 1 to facilitate the search for the first empty slot while adjusting for 0-based indexing with <span style="color: #c10300;" class="mycode_color">Arr[i - 1]</span>.<br />
</li>
</ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b">While Loop:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">while (Arr[i - 1]) i++;</span><br />
 iterates <span style="color: #c10300;" class="mycode_color">i</span> until it finds an index where <span style="color: #c10300;" class="mycode_color">Arr[i - 1]</span> is zero, indicating an empty slot in the array.<br />
</li>
</ul>
</li>
<li><span style="font-weight: bold;" class="mycode_b">Return Statement:</span><br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">return i % (SizeArr + 1) - 1;</span><br />
 calculates and returns the index of the first empty slot:<br />
<ul class="mycode_list"><li><span style="color: #c10300;" class="mycode_color">i % (SizeArr + 1)</span><br />
 ensures <span style="color: #c10300;" class="mycode_color">i</span> wraps within the array bounds, accounting for the extra slot.<br />
</li>
<li><span style="color: #c10300;" class="mycode_color">- 1</span><br />
 adjusts <span style="color: #c10300;" class="mycode_color">i</span> to be a 0-based index, aligning with typical C/C++ array indexing conventions.<br />
</li>
</ul>
</li>
</ul>
</li>
</ol>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Benefits:</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Overflow Protection:</span> By allocating an extra element (`<span style="color: #c10300;" class="mycode_color">Arr[SizeArr]</span>`), the code guards against potential overflow issues during array traversal.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Robustness:</span> Handles various scenarios by locating the first empty slot in the array Arr, accommodating specific conditions where zero signifies an empty slot.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Considerations:</span></span><ul class="mycode_list"><li>Ensure the array initialization and usage align with application-specific requirements regarding empty slot definitions and array indexing conventions.<br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Want to make an android app?]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2823</link>
			<pubDate>Wed, 17 Jul 2024 09:32:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=6016">MEGAMIND</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2823</guid>
			<description><![CDATA[i dont know if i am in wrong board, kindly do guide me where to post as its also offtopic sharing an invite link for <a href="https://discord.gg/fD93Bx5SqP" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/fD93Bx5SqP</a> cordova.js developers if any one might be interested they can join and create android apps based on html,js,css for android or ios <a href="https://cordova.apache.org/" target="_blank" rel="noopener" class="mycode_url">https://cordova.apache.org/</a> as the platform it self is awsome but there was no discord chanel for it, so decided to make one<br />
<br />
Note: its not for samp related coding, but u can surely make an android app that links to samp somewhere]]></description>
			<content:encoded><![CDATA[i dont know if i am in wrong board, kindly do guide me where to post as its also offtopic sharing an invite link for <a href="https://discord.gg/fD93Bx5SqP" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/fD93Bx5SqP</a> cordova.js developers if any one might be interested they can join and create android apps based on html,js,css for android or ios <a href="https://cordova.apache.org/" target="_blank" rel="noopener" class="mycode_url">https://cordova.apache.org/</a> as the platform it self is awsome but there was no discord chanel for it, so decided to make one<br />
<br />
Note: its not for samp related coding, but u can surely make an android app that links to samp somewhere]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[What Do You Think?]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2810</link>
			<pubDate>Tue, 02 Jul 2024 20:18:55 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=5966">yamanshrestha2018</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2810</guid>
			<description><![CDATA[How long do you think it would take for a person to learn the pawn lang from scratch and code his own server and get it running?? 2 years??]]></description>
			<content:encoded><![CDATA[How long do you think it would take for a person to learn the pawn lang from scratch and code his own server and get it running?? 2 years??]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Problem with plugin development]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2271</link>
			<pubDate>Tue, 18 Jan 2022 11:41:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=2844">Davee52</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2271</guid>
			<description><![CDATA[Hy everybody! I followed the instructions in the Plugin Development topic on the site, and I get errors as I include the invoke.hxx . I downloaded it on the link, added the file to the project, and included it in the code, but it gives me these errors:<br />
<a href="https://imgur.com/a/Yamr46K" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/Yamr46K</a><br />
Thank you if you could lead me to success.]]></description>
			<content:encoded><![CDATA[Hy everybody! I followed the instructions in the Plugin Development topic on the site, and I get errors as I include the invoke.hxx . I downloaded it on the link, added the file to the project, and included it in the code, but it gives me these errors:<br />
<a href="https://imgur.com/a/Yamr46K" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/Yamr46K</a><br />
Thank you if you could lead me to success.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How to call a function an address?]]></title>
			<link>https://forum.open.mp/showthread.php?tid=2158</link>
			<pubDate>Tue, 06 Jul 2021 21:36:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=2504">oukibt</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=2158</guid>
			<description><![CDATA[Hi I am trying to call a function at an address from a plugin but I am getting a crash.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)<br />
{<br />
? ? VirtualUnlock((LPVOID)0x48B5B0, 0x20);<br />
<br />
? ? ((int(__fastcall*)(char*))0x48B5B0)("query");<br />
? ? return 1;<br />
}</code></div></div><br />
<a href="https://cdn.discordapp.com/attachments/582915540285128725/862083931314585630/unknown.png" target="_blank" rel="noopener" class="mycode_url">https://cdn.discordapp.com/attachments/5...nknown.png</a><br />
<br />
I think, this is GetConsoleVariableInt function]]></description>
			<content:encoded><![CDATA[Hi I am trying to call a function at an address from a plugin but I am getting a crash.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)<br />
{<br />
? ? VirtualUnlock((LPVOID)0x48B5B0, 0x20);<br />
<br />
? ? ((int(__fastcall*)(char*))0x48B5B0)("query");<br />
? ? return 1;<br />
}</code></div></div><br />
<a href="https://cdn.discordapp.com/attachments/582915540285128725/862083931314585630/unknown.png" target="_blank" rel="noopener" class="mycode_url">https://cdn.discordapp.com/attachments/5...nknown.png</a><br />
<br />
I think, this is GetConsoleVariableInt function]]></content:encoded>
		</item>
	</channel>
</rss>