<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.soldat.pl/index.php?action=history&amp;feed=atom&amp;title=Weapon_Limiter</id>
		<title>Weapon Limiter - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.soldat.pl/index.php?action=history&amp;feed=atom&amp;title=Weapon_Limiter"/>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=Weapon_Limiter&amp;action=history"/>
		<updated>2026-05-26T02:33:15Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=Weapon_Limiter&amp;diff=39&amp;oldid=prev</id>
		<title>Freeman: Created page with &quot;Script has been outdated by the Map Specifications script.  ===Script by: Curt=== &lt;source lang=&quot;pascal&quot;&gt;type   tMaps = record     Map, Weaponsini, Soldatini: string;     S...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=Weapon_Limiter&amp;diff=39&amp;oldid=prev"/>
				<updated>2012-08-14T16:49:00Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Script has been outdated by the &lt;a href=&quot;/index.php/Map_Specifications&quot; title=&quot;Map Specifications&quot;&gt;Map Specifications&lt;/a&gt; script.  ===Script by: Curt=== &amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;type   tMaps = record     Map, Weaponsini, Soldatini: string;     S...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Script has been outdated by the [[Map Specifications]] script.&lt;br /&gt;
&lt;br /&gt;
===Script by: Curt===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;type&lt;br /&gt;
  tMaps = record&lt;br /&gt;
    Map, Weaponsini, Soldatini: string;&lt;br /&gt;
    Sets: array[0..4] of byte;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  Enabled: boolean;&lt;br /&gt;
  MapID: byte;&lt;br /&gt;
  Sets: array of array[1..14] of boolean;&lt;br /&gt;
  Maps: array of tMaps;&lt;br /&gt;
&lt;br /&gt;
function LastCharPos(const Text: string; const Character: char): integer;&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
begin&lt;br /&gt;
  for i := Length(Text) downto 1 do if Text[i] = Character then begin&lt;br /&gt;
    Result := i;&lt;br /&gt;
    Exit;&lt;br /&gt;
  end else Continue;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
function LoadData(File: string): string;&lt;br /&gt;
var&lt;br /&gt;
  i,j,High: byte;&lt;br /&gt;
begin&lt;br /&gt;
  File := 'scripts/' + ScriptName + '/' + File + '.ini';&lt;br /&gt;
  if FileExists(File) then begin&lt;br /&gt;
    try&lt;br /&gt;
      High := StrtoInt(ReadINI(File,'Sets','SetHigh',' '));&lt;br /&gt;
    except&lt;br /&gt;
      Result := 'SetHigh invalid';&lt;br /&gt;
      Exit;&lt;br /&gt;
    end;&lt;br /&gt;
    if High &amp;gt;= 0 then begin&lt;br /&gt;
      SetArrayLength(Sets,High + 1);&lt;br /&gt;
      for i := 0 to High do for j := 1 to 14 do begin&lt;br /&gt;
        if ReadINI(File,'Set' + InttoStr(i),'Weap' + InttoStr(j),'false') = 'true' then Sets[i][j] := true else Sets[i][j] := false;&lt;br /&gt;
      end;&lt;br /&gt;
    end else begin&lt;br /&gt;
      Result := 'SetHigh invalid';&lt;br /&gt;
      Exit;&lt;br /&gt;
    end;&lt;br /&gt;
    try&lt;br /&gt;
      High := StrtoInt(ReadINI(File,'Maps','MapHigh',' '));&lt;br /&gt;
    except&lt;br /&gt;
      Result := 'MapHigh invalid';&lt;br /&gt;
      Exit;&lt;br /&gt;
    end;&lt;br /&gt;
    if High &amp;gt;= 0 then begin&lt;br /&gt;
      SetArrayLength(Maps,High + 1);&lt;br /&gt;
      for i := 0 to High do for j := 0 to 4 do begin&lt;br /&gt;
        if i &amp;lt;&amp;gt; 0 then Maps[i].Map := ReadINI(File,'Maps','Map' + InttoStr(i) + '_Name','');&lt;br /&gt;
        try&lt;br /&gt;
          Maps[i].Sets[j] := StrtoInt(ReadINI(File,'Maps','Map' + InttoStr(i) + '_Team' + InttoStr(j) + '_Set',' '));&lt;br /&gt;
        except&lt;br /&gt;
          Result := 'Map ' + InttoStr(i) + ', Team ' + InttoStr(j) + ' Set invalid';&lt;br /&gt;
          Exit;&lt;br /&gt;
        end;&lt;br /&gt;
        Maps[i].Weaponsini := ReadINI(File,'Maps','Map' + InttoStr(i) + '_Weaponsini',' ');&lt;br /&gt;
        if Maps[i].Weaponsini &amp;lt;&amp;gt; '' then if FileExists(Maps[i].Weaponsini) = false then begin &lt;br /&gt;
          Result := 'Map ' + InttoStr(i) + ' Weapons.ini file non-existant (' + Maps[i].Weaponsini + ')';&lt;br /&gt;
          Exit;&lt;br /&gt;
        end else begin&lt;br /&gt;
          if Copy(Maps[i].Weaponsini,LastCharPos(Maps[i].Weaponsini,'.'),Length(Maps[i].Weaponsini)) &amp;lt;&amp;gt; '.ini' then begin&lt;br /&gt;
            Result := 'Map ' + InttoStr(i) + ' Weapons.ini file extention is required to be .ini';&lt;br /&gt;
            Exit;&lt;br /&gt;
          end;&lt;br /&gt;
        end;&lt;br /&gt;
        Maps[i].Soldatini := ReadINI(File,'Maps','Map' + InttoStr(i) + '_Soldatini',' ');&lt;br /&gt;
        if Maps[i].Soldatini &amp;lt;&amp;gt; '' then if FileExists(Maps[i].Soldatini) = false then begin &lt;br /&gt;
          Result := 'Map ' + InttoStr(i) + ' Soldat.ini file non-existant (' + Maps[i].Soldatini + ')';&lt;br /&gt;
          Exit;&lt;br /&gt;
        end else begin&lt;br /&gt;
          if Copy(Maps[i].Soldatini,LastCharPos(Maps[i].Soldatini,'.'),Length(Maps[i].Soldatini)) &amp;lt;&amp;gt; '.ini' then begin&lt;br /&gt;
            Result := 'Map ' + InttoStr(i) + ' Soldat.ini file extention is required to be .ini';&lt;br /&gt;
            Exit;&lt;br /&gt;
          end;&lt;br /&gt;
        end;&lt;br /&gt;
      end;&lt;br /&gt;
    end else begin&lt;br /&gt;
      Result := 'MapHigh invalid';&lt;br /&gt;
      Exit;&lt;br /&gt;
    end;&lt;br /&gt;
  end else begin&lt;br /&gt;
    Result := 'File does not exist';&lt;br /&gt;
    Exit;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure ActivateServer();&lt;br /&gt;
var&lt;br /&gt;
  Error: string;&lt;br /&gt;
begin&lt;br /&gt;
  Error := LoadData('data');&lt;br /&gt;
  if Error = '' then WriteLn(' [*] ' + ScriptName + ' -&amp;gt; Data loaded successfully') else WriteLn(' [*] ' + ScriptName + ' -&amp;gt; Error loading data: ' + Error);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure OnMapChange(NewMap: string);&lt;br /&gt;
var&lt;br /&gt;
  i,j: byte;&lt;br /&gt;
begin&lt;br /&gt;
  for i := 0 to GetArrayLength(Maps) - 1 do begin&lt;br /&gt;
    if Maps[i].Map = CurrentMap then begin&lt;br /&gt;
      MapID := i;&lt;br /&gt;
      if Maps[i].Soldatini &amp;lt;&amp;gt; '' then Command('/loadcon ' + Copy(Maps[i].Soldatini,1,Length(Maps[i].Soldatini) - 4));&lt;br /&gt;
      if Maps[i].Weaponsini &amp;lt;&amp;gt; '' then Command('/loadwep ' + Copy(Maps[i].Weaponsini,1,Length(Maps[i].Weaponsini) - 4));&lt;br /&gt;
      for i := 1 to 32 do if GetPlayerStat(i,'Active') = true then for j := 1 to 14 do SetWeaponActive(i,j,Sets[Maps[MapID].Sets[StrtoInt(InttoStr(GetPlayerStat(i,'Team')))]][j]);&lt;br /&gt;
      Exit;&lt;br /&gt;
    end else Continue;&lt;br /&gt;
  end;&lt;br /&gt;
  MapID := 0;&lt;br /&gt;
  if Maps[0].Soldatini &amp;lt;&amp;gt; '' then Command('/loadcon ' + Copy(Maps[0].Soldatini,1,Length(Maps[0].Soldatini) - 4));&lt;br /&gt;
  if Maps[0].Weaponsini &amp;lt;&amp;gt; '' then Command('/loadwep ' + Copy(Maps[0].Weaponsini,1,Length(Maps[0].Weaponsini) - 4));&lt;br /&gt;
  for i := 1 to 32 do if GetPlayerStat(i,'Active') = true then for j := 1 to 14 do SetWeaponActive(i,j,Sets[Maps[0].Sets[StrtoInt(InttoStr(GetPlayerStat(i,'Team')))]][j]);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure OnJoinTeam(ID, Team: byte);&lt;br /&gt;
var&lt;br /&gt;
  i,Set: byte;&lt;br /&gt;
begin&lt;br /&gt;
  if (Enabled) and (Team &amp;lt;&amp;gt; 5) then for i := 1 to 14 do SetWeaponActive(ID,i,Sets[Maps[MapID].Sets[Team]][i]);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==data.ini example==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Sets]&lt;br /&gt;
SetHigh=2&lt;br /&gt;
&lt;br /&gt;
[Set0]&lt;br /&gt;
Weap1=true&lt;br /&gt;
Weap2=true&lt;br /&gt;
Weap3=true&lt;br /&gt;
Weap4=true&lt;br /&gt;
Weap5=true&lt;br /&gt;
Weap6=true&lt;br /&gt;
Weap7=true&lt;br /&gt;
Weap8=true&lt;br /&gt;
Weap9=true&lt;br /&gt;
Weap10=true&lt;br /&gt;
Weap11=true&lt;br /&gt;
Weap12=true&lt;br /&gt;
Weap13=true&lt;br /&gt;
Weap14=true&lt;br /&gt;
&lt;br /&gt;
[Set1]&lt;br /&gt;
Weap1=false&lt;br /&gt;
Weap2=false&lt;br /&gt;
Weap3=false&lt;br /&gt;
Weap4=false&lt;br /&gt;
Weap5=false&lt;br /&gt;
Weap6=false&lt;br /&gt;
Weap7=false&lt;br /&gt;
Weap8=false&lt;br /&gt;
Weap9=false&lt;br /&gt;
Weap10=false&lt;br /&gt;
Weap11=false&lt;br /&gt;
Weap12=false&lt;br /&gt;
Weap13=true&lt;br /&gt;
Weap14=false&lt;br /&gt;
&lt;br /&gt;
[Set2]&lt;br /&gt;
Weap1=false&lt;br /&gt;
Weap2=false&lt;br /&gt;
Weap3=false&lt;br /&gt;
Weap4=false&lt;br /&gt;
Weap5=false&lt;br /&gt;
Weap6=false&lt;br /&gt;
Weap7=false&lt;br /&gt;
Weap8=false&lt;br /&gt;
Weap9=false&lt;br /&gt;
Weap10=true&lt;br /&gt;
Weap11=false&lt;br /&gt;
Weap12=true&lt;br /&gt;
Weap13=true&lt;br /&gt;
Weap14=true&lt;br /&gt;
&lt;br /&gt;
[Maps]&lt;br /&gt;
MapHigh=2&lt;br /&gt;
Map0_Team0_Set=0&lt;br /&gt;
Map0_Team1_Set=0&lt;br /&gt;
Map0_Team2_Set=0&lt;br /&gt;
Map0_Team3_Set=0&lt;br /&gt;
Map0_Team4_Set=0&lt;br /&gt;
Map0_Weaponsini=&lt;br /&gt;
Map0_Soldatini=&lt;br /&gt;
Map1_Name=ctf_Kampf&lt;br /&gt;
Map1_Team0_Set=1&lt;br /&gt;
Map1_Team1_Set=1&lt;br /&gt;
Map1_Team2_Set=1&lt;br /&gt;
Map1_Team3_Set=1&lt;br /&gt;
Map1_Team4_Set=1&lt;br /&gt;
Map1_Weaponsini=&lt;br /&gt;
Map1_Soldatini=&lt;br /&gt;
Map2_Name=ctf_Laos&lt;br /&gt;
Map2_Team0_Set=2&lt;br /&gt;
Map2_Team1_Set=2&lt;br /&gt;
Map2_Team2_Set=2&lt;br /&gt;
Map2_Team3_Set=2&lt;br /&gt;
Map2_Team4_Set=2&lt;br /&gt;
Map2_Weaponsini=&lt;br /&gt;
Map2_Soldatini=&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script Templates]]&lt;/div&gt;</summary>
		<author><name>Freeman</name></author>	</entry>

	</feed>