Add stuff

This commit is contained in:
Rim 2023-08-13 17:45:19 -04:00
parent 10d9bd46b1
commit 75f63d0ee9
113 changed files with 21179 additions and 0 deletions

View File

@ -0,0 +1,4 @@
f7acfb1ae8d12039e3b7c0b453a60b3ef7f796bb branch 'master' of https://github.com/Rackover/XLabsProject.github.io
09f1d8e3c9d3bec42ee542a197e9f4f0c8f203b7 not-for-merge branch 'patch-1' of https://github.com/Rackover/XLabsProject.github.io
fb9aa4f87fba6f6125e3eddea8527212e9cde6f9 not-for-merge branch 'patch-2' of https://github.com/Rackover/XLabsProject.github.io
c7d9a0b296511aee8e2f5fe279f7a227a8318ded not-for-merge branch 'patch-3' of https://github.com/Rackover/XLabsProject.github.io

1
website/.git_origin/HEAD Normal file
View File

@ -0,0 +1 @@
ref: refs/heads/main

View File

@ -0,0 +1 @@
f7acfb1ae8d12039e3b7c0b453a60b3ef7f796bb

View File

@ -0,0 +1,13 @@
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/Rackover/XLabsProject.github.io.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/master

View File

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

View File

@ -0,0 +1,15 @@
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit. The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".
. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:

View File

@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines.
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
exit 1
}

View File

@ -0,0 +1,173 @@
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open2;
# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 2) and last update token
# formatted as a string and outputs to stdout a new update token and
# all files that have been modified since the update token. Paths must
# be relative to the root of the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $last_update_token) = @ARGV;
# Uncomment for debugging
# print STDERR "$0 $version $last_update_token\n";
# Check the hook interface version
if ($version ne 2) {
die "Unsupported query-fsmonitor hook version '$version'.\n" .
"Falling back to scanning...\n";
}
my $git_work_tree = get_working_dir();
my $retry = 1;
my $json_pkg;
eval {
require JSON::XS;
$json_pkg = "JSON::XS";
1;
} or do {
require JSON::PP;
$json_pkg = "JSON::PP";
};
launch_watchman();
sub launch_watchman {
my $o = watchman_query();
if (is_work_tree_watched($o)) {
output_result($o->{clock}, @{$o->{files}});
}
}
sub output_result {
my ($clockid, @files) = @_;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# binmode $fh, ":utf8";
# print $fh "$clockid\n@files\n";
# close $fh;
binmode STDOUT, ":utf8";
print $clockid;
print "\0";
local $, = "\0";
print @files;
}
sub watchman_clock {
my $response = qx/watchman clock "$git_work_tree"/;
die "Failed to get clock id on '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
return $json_pkg->new->utf8->decode($response);
}
sub watchman_query {
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
# In the query expression below we're asking for names of files that
# changed since $last_update_token but not from the .git folder.
#
# To accomplish this, we're using the "since" generator to use the
# recency index to select candidate nodes and "fields" to limit the
# output to file names only. Then we're using the "expression" term to
# further constrain the results.
if (substr($last_update_token, 0, 1) eq "c") {
$last_update_token = "\"$last_update_token\"";
}
my $query = <<" END";
["query", "$git_work_tree", {
"since": $last_update_token,
"fields": ["name"],
"expression": ["not", ["dirname", ".git"]]
}]
END
# Uncomment for debugging the watchman query
# open (my $fh, ">", ".git/watchman-query.json");
# print $fh $query;
# close $fh;
print CHLD_IN $query;
close CHLD_IN;
my $response = do {local $/; <CHLD_OUT>};
# Uncomment for debugging the watch response
# open ($fh, ">", ".git/watchman-response.json");
# print $fh $response;
# close $fh;
die "Watchman: command returned no output.\n" .
"Falling back to scanning...\n" if $response eq "";
die "Watchman: command returned invalid output: $response\n" .
"Falling back to scanning...\n" unless $response =~ /^\{/;
return $json_pkg->new->utf8->decode($response);
}
sub is_work_tree_watched {
my ($output) = @_;
my $error = $output->{error};
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
$retry--;
my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
$output = $json_pkg->new->utf8->decode($response);
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# close $fh;
# Watchman will always return all files on the first query so
# return the fast "everything is dirty" flag to git and do the
# Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file.
my $o = watchman_clock();
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
output_result($o->{clock}, ("/"));
$last_update_token = $o->{clock};
eval { launch_watchman() };
return 0;
}
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
return 1;
}
sub get_working_dir {
my $working_dir;
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$working_dir = Win32::GetCwd();
$working_dir =~ tr/\\/\//;
} else {
require Cwd;
$working_dir = Cwd::cwd();
}
return $working_dir;
}

View File

@ -0,0 +1,8 @@
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
exec git update-server-info

View File

@ -0,0 +1,14 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".
. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:

View File

@ -0,0 +1,49 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=$(git hash-object -t tree /dev/null)
fi
# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --type=bool hooks.allownonascii)
# Redirect output to stderr.
exec 1>&2
# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range.
test $(git diff --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --

View File

@ -0,0 +1,13 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git merge" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message to
# stderr if it wants to stop the merge commit.
#
# To enable this hook, rename this file to "pre-merge-commit".
. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
exec "$GIT_DIR/hooks/pre-commit"
:

View File

@ -0,0 +1,53 @@
#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local oid> <remote ref> <remote oid>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
while read local_ref local_oid remote_ref remote_oid
do
if test "$local_oid" = "$zero"
then
# Handle delete
:
else
if test "$remote_oid" = "$zero"
then
# New branch, examine all commits
range="$local_oid"
else
# Update to existing branch, examine new commits
range="$remote_oid..$local_oid"
fi
# Check for WIP commit
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
if test -n "$commit"
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0

View File

@ -0,0 +1,169 @@
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.
publish=next
basebranch="$1"
if test "$#" = 2
then
topic="refs/heads/$2"
else
topic=`git symbolic-ref HEAD` ||
exit 0 ;# we do not interrupt rebasing detached HEAD
fi
case "$topic" in
refs/heads/??/*)
;;
*)
exit 0 ;# we do not interrupt others.
;;
esac
# Now we are dealing with a topic branch being rebased
# on top of master. Is it OK to rebase it?
# Does the topic really exist?
git show-ref -q "$topic" || {
echo >&2 "No such branch $topic"
exit 1
}
# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
echo >&2 "$topic is fully merged to master; better remove it."
exit 1 ;# we could allow it, but there is no point.
fi
# Is topic ever merged to next? If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
not_in_topic=`git rev-list "^$topic" master`
if test -z "$not_in_topic"
then
echo >&2 "$topic is already up to date with master"
exit 1 ;# we could allow it, but there is no point.
else
exit 0
fi
else
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
/usr/bin/perl -e '
my $topic = $ARGV[0];
my $msg = "* $topic has commits already merged to public branch:\n";
my (%not_in_next) = map {
/^([0-9a-f]+) /;
($1 => 1);
} split(/\n/, $ARGV[1]);
for my $elem (map {
/^([0-9a-f]+) (.*)$/;
[$1 => $2];
} split(/\n/, $ARGV[2])) {
if (!exists $not_in_next{$elem->[0]}) {
if ($msg) {
print STDERR $msg;
undef $msg;
}
print STDERR " $elem->[1]\n";
}
}
' "$topic" "$not_in_next" "$not_in_master"
exit 1
fi
<<\DOC_END
This sample hook safeguards topic branches that have been
published from being rewound.
The workflow assumed here is:
* Once a topic branch forks from "master", "master" is never
merged into it again (either directly or indirectly).
* Once a topic branch is fully cooked and merged into "master",
it is deleted. If you need to build on top of it to correct
earlier mistakes, a new topic branch is created by forking at
the tip of the "master". This is not strictly necessary, but
it makes it easier to keep your history simple.
* Whenever you need to test or publish your changes to topic
branches, merge them into "next" branch.
The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.
With this workflow, you would want to know:
(1) ... if a topic branch has ever been merged to "next". Young
topic branches can have stupid mistakes you would rather
clean up before publishing, and things that have not been
merged into other branches can be easily rebased without
affecting other people. But once it is published, you would
not want to rewind it.
(2) ... if a topic branch has been fully merged to "master".
Then you can delete it. More importantly, you should not
build on top of it -- other people may already want to
change things related to the topic as patches against your
"master", so if you need further changes, it is better to
fork the topic (perhaps with the same name) afresh from the
tip of "master".
Let's look at this example:
o---o---o---o---o---o---o---o---o---o "next"
/ / / /
/ a---a---b A / /
/ / / /
/ / c---c---c---c B /
/ / / \ /
/ / / b---b C \ /
/ / / / \ /
---o---o---o---o---o---o---o---o---o---o---o "master"
A, B and C are topic branches.
* A has one fix since it was merged up to "next".
* B has finished. It has been fully merged up to "master" and "next",
and is ready to be deleted.
* C has not merged to "next" at all.
We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.
To compute (1):
git rev-list ^master ^topic next
git rev-list ^master next
if these match, topic has not merged in next at all.
To compute (2):
git rev-list master..topic
if this is empty, it is fully merged to "master".
DOC_END

View File

@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
if test -n "$GIT_PUSH_OPTION_COUNT"
then
i=0
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
do
eval "value=\$GIT_PUSH_OPTION_$i"
case "$value" in
echoback=*)
echo "echo from the pre-receive-hook: ${value#*=}" >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi

View File

@ -0,0 +1,42 @@
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
# case "$COMMIT_SOURCE,$SHA1" in
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
# *) ;;
# esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi

View File

@ -0,0 +1,78 @@
#!/bin/sh
# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1
# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
echo >&2 "$*"
exit 1
}
# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.
# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.
if ! git update-index -q --ignore-submodules --refresh
then
die "Up-to-date check failed"
fi
if ! git diff-files --quiet --ignore-submodules --
then
die "Working directory has unstaged changes"
fi
# This is a rough translation of:
#
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
head=HEAD
else
head=$(git hash-object -t tree --stdin </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi

View File

@ -0,0 +1,128 @@
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --type=bool hooks.allowunannotated)
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
echo "*** Project description file hasn't been set" >&2
exit 1
;;
esac
# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
exit 1
fi
;;
refs/tags/*,delete)
# delete tag
if [ "$allowdeletetag" != "true" ]; then
echo "*** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/*,tag)
# annotated tag
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
then
echo "*** Tag '$refname' already exists." >&2
echo "*** Modifying a tag is not allowed in this repository." >&2
exit 1
fi
;;
refs/heads/*,commit)
# branch
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
echo "*** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/*,commit)
# tracking branch
;;
refs/remotes/*,delete)
# delete tracking branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
exit 1
fi
;;
*)
# Anything else (is there anything else?)
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac
# --- Finished
exit 0

BIN
website/.git_origin/index Normal file

Binary file not shown.

View File

@ -0,0 +1,6 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

View File

@ -0,0 +1,5 @@
# pack-refs with: peeled fully-peeled sorted
f7acfb1ae8d12039e3b7c0b453a60b3ef7f796bb refs/remotes/origin/master
09f1d8e3c9d3bec42ee542a197e9f4f0c8f203b7 refs/remotes/origin/patch-1
fb9aa4f87fba6f6125e3eddea8527212e9cde6f9 refs/remotes/origin/patch-2
c7d9a0b296511aee8e2f5fe279f7a227a8318ded refs/remotes/origin/patch-3

View File

@ -0,0 +1 @@
f7acfb1ae8d12039e3b7c0b453a60b3ef7f796bb

View File

@ -0,0 +1 @@
ref: refs/remotes/origin/master

16
website/.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,16 @@
### Subject of the issue
Describe your issue here.
### Expected behaviour
Tell us what should happen.
### Actual behaviour
Tell us what happens instead.
### I'm seeing this behaviour on
<!-- HINT: these checkboxes can be checked like this: [x] -->
<!-- Check all that apply -->
- [ ] Chrome
- [ ] Firefox
- [ ] Edge

View File

@ -0,0 +1,26 @@
## Pull request type
<!-- Please try to limit your pull request to one type, submit multiple pull requests if needed. -->
Please check the type of change your PR introduces:
<!-- HINT: these checkboxes can be checked like this: [x] -->
- [ ] Bugfix
- [ ] Feature
- [ ] Code style update (formatting, renaming)
- [ ] Other (please describe):
## What is the current behavior?
<!-- Please describe the current behavior that you are modifying, or link to a relevant issue. -->
Issue Number: N/A
## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by this PR. -->
## Other information
<!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. -->

350
website/.gitignore vendored Normal file
View File

@ -0,0 +1,350 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/

0
website/.nojekyll Normal file
View File

8
website/404.html Normal file
View File

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://xlabs.dev">
</head>
<body>
</body>
</html>

2
website/CNAME Normal file
View File

@ -0,0 +1,2 @@
xlabs.dev

21
website/LICENSE.md Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 XLabs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

11
website/README.md Normal file
View File

@ -0,0 +1,11 @@
# [XLabs.dev](https://xlabs.dev) ![Amount of GitHub Stars](https://img.shields.io/github/stars/XLabsProject/XLabsProject.github.io)
![XLabs Banner](https://xlabs.dev/img/xlabs_social.png)
Welcome to the repository that holds the [XLabs.dev](https://xlabs.dev) source code.
**This repo is NOT used for support. Do NOT open an issue about your game client problems.**
If you want to point out a correction/sugestion, open an issue.
If you want to fix something, feel free to open a Pull Request.

View File

@ -0,0 +1,586 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x faq">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Frequently asked questions related to console commands for the IW4x, IW6x, and S1x clients." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Frequently asked questions related to console commands for the IW4x, IW6x, and S1x clients." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_faq" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>Console Commands | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">Console <span>Commands</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Frequently asked questions related to console commands for our clients.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<table class="table table-hover table-dark table-striped table-fixed">
<thead>
<tr>
<th scope="col">Commands</th>
<th scope="col" class="table-collapsible">Example</th>
<th scope="col" class="table-collapsible">Cheat Protected</th>
<th scope="col" class="table-collapsible">IW4x</th>
<th scope="col" class="table-collapsible">IW6x</th>
<th scope="col" class="table-collapsible">S1x</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">name</th>
<td class="table-collapsible">name John</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Changes your name.</td>
</tr>
<tr>
<th scope="row">unlockstats</th>
<td class="table-collapsible">unlockstats</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Unlock everything and rank up.</td>
</tr>
<tr>
<th scope="row">cg_fov</th>
<td class="table-collapsible">cg_fov 90 (Changes FOV to 90)</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Manually tweak your desired FOV value.</td>
</tr>
<tr>
<th scope="row">sensitivity</th>
<td class="table-collapsible">sensitivity 1.25</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>The command is useful for fine tuning of your desired sensitivity.</td>
</tr>
<tr>
<th scope="row">intro</th>
<td class="table-collapsible">intro 0</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Enables/Disables the IW4x intro.</td>
</tr>
<tr>
<th scope="row">cg_drawfps</th>
<td class="table-collapsible">cg_drawfps 1 (enables) cg_drawfps 0 (disables)</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Displays a FPS counter on-screen.</td>
</tr>
<tr>
<th scope="row">cl_yawspeed</th>
<td class="table-collapsible">cl_yawspeed 800</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Adjusts the yawspeed (Turn Right/Left) sensitivity.</td>
</tr>
<tr>
<th scope="row">customtitle</th>
<td class="table-collapsible">customtitle ^1Hello!</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Adjusts your title with whatever you want.</td>
</tr>
<tr>
<th scope="row">com_maxfps</th>
<td class="table-collapsible">com_maxfps "85"</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Adjusts the FPS (this is only useful for doing a specific FPS)</td>
</tr>
<tr>
<th scope="row">r_fullbright</th>
<td class="table-collapsible">r_fullbright 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enable/Disable fullbright.</td>
</tr>
<tr>
<th scope="row">r_specularCustomMaps</th>
<td class="table-collapsible">r_specularCustomMaps 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Enable/Disable specular custom maps.</td>
</tr>
<tr>
<th scope="row">safeArea_horizontal</th>
<td class="table-collapsible">safeArea_horizontal .5</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Change the horizontal position of the safe area.</td>
</tr>
<tr>
<th scope="row">safeArea_vertical</th>
<td class="table-collapsible">safeArea_vertical .5</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Change the vertical position of the safe area.</td>
</tr>
<tr>
<th scope="row">g_playerCollision</th>
<td class="table-collapsible">g_playerCollision 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td>Flag whether player collision is on or or off.</td>
</tr>
<tr>
<th scope="row">g_playerEjection</th>
<td class="table-collapsible">g_playerEjection 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td>Flag whether player ejection is on or or off.</td>
</tr>
<tr>
<th scope="row">connect</th>
<td class="table-collapsible">connect 127.0.0.1:27017 (IP:Port)</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Connect to specified IP and port.</td>
</tr>
<tr>
<th scope="row">map mp_mapname</th>
<td class="table-collapsible">map mp_afghan</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Change the map.</td>
</tr>
<tr>
<th scope="row">fast_restart</th>
<td class="table-collapsible">fast_restart</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Quickly restarts the match.</td>
</tr>
<tr>
<th scope="row">map_restart</th>
<td class="table-collapsible">map_restart</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td>Fully restart the map.</td>
</tr>
<tr>
<th scope="row">status</th>
<td class="table-collapsible">status</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td>Display information about the current game and players.</td>
</tr>
<tr>
<th scope="row">clientkick</th>
<td class="table-collapsible">clientkick 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td>Kicks the player by ID. Use the <code>status</code> command to obtain the client ID.</td>
</tr>
<tr>
<th scope="row">net_port</th>
<td class="table-collapsible">net_port 28965</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Changes the port your server/game will run on.</td>
</tr>
<tr>
<th scope="row">camera_thirdPerson</th>
<td class="table-collapsible">camera_thirdPerson 0</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables third person mode.</td>
</tr>
<tr>
<th scope="row">cg_chatHeight</th>
<td class="table-collapsible">cg_chatHeight 4</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>The size of the chat that can be shown.</td>
</tr>
<tr>
<th scope="row">cg_draw2D</th>
<td class="table-collapsible">cg_draw2D 0</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/disables the HUD.</td>
</tr>
<tr>
<th scope="row">ui_drawCrosshair</th>
<td class="table-collapsible">ui_drawCrosshair 0</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/disables the crosshair.</td>
</tr>
<tr>
<th scope="row">cg_drawGun</th>
<td class="table-collapsible">cg_drawGun 1</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/disables the showing of your gun.</td>
</tr>
<tr>
<th scope="row">cg_drawPing</th>
<td class="table-collapsible">cg_drawPing 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/Disables the ping counter.</td>
</tr>
<tr>
<th scope="row">drawLagometer</th>
<td class="table-collapsible">drawLagometer 0</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Enables/Disables the lagometer.</td>
</tr>
<tr>
<th scope="row">cg_fovScale</th>
<td class="table-collapsible">cg_fovScale 1.2</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Manually tweak your desired FOV value. (affects aim fov)</td>
</tr>
<tr>
<th scope="row">cg_gun_x</th>
<td class="table-collapsible">cg_gun_x</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Tweak x value of your gun. (In IW6x the max value is 2)</td>
</tr>
<tr>
<th scope="row">devmap mp_mapname</th>
<td class="table-collapsible">devmap mp_rust</td>
<td class="table-collapsible">-</td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Change the map and enables cheats.</td>
</tr>
<tr>
<th scope="row">sv_cheats</th>
<td class="table-collapsible">sv_cheats 1(enables), sv_cheats 0 (disables)</td>
<td class="table-collapsible">-</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enable cheats.</td>
</tr>
<tr>
<th scope="row">developer</th>
<td class="table-collapsible">developer 1</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/Disables developer mode.</td>
</tr>
<tr>
<th scope="row">g_speed</th>
<td class="table-collapsible">g_speed 300</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td>Change game speed (requires devmap or sv_cheats 1) [Default = 190]</td>
</tr>
<tr>
<th scope="row">g_gravity</th>
<td class="table-collapsible">g_gravity 300 (gravity is reduced by half)</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td>Change game gravity (requires devmap or sv_cheats 1) [Default = 600]</td>
</tr>
<tr>
<th scope="row">bg_fallDamageMaxHeight / bg_fallDamageMinHeight</th>
<td class="table-collapsible">bg_fallDamageMaxHeight 300</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Changes amount you need to fall to take damage.</td>
</tr>
<tr>
<th scope="row">noclip</th>
<td class="table-collapsible">noclip</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td>Enables/Disables noclip mode.</td>
</tr>
<tr>
<th scope="row">ufo</th>
<td class="table-collapsible">ufo</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/Disables ufo mode.</td>
</tr>
<tr>
<th scope="row">god</th>
<td class="table-collapsible">god</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enables/Disables god.</td>
</tr>
<tr>
<th scope="row">jump_height</th>
<td class="table-collapsible">jump_height 1000</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Sets the jump height.</td>
</tr>
<tr>
<th scope="row">timescale</th>
<td class="table-collapsible">timescale 2</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td>Sets the scale of time.</td>
</tr>
<tr>
<th scope="row">r_znear</th>
<td class="table-collapsible">r_znear 0</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>See through stuff.</td>
</tr>
<tr>
<th scope="row">r_fog</th>
<td class="table-collapsible">r_fog 0</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Enable/Disable fog.</td>
</tr>
<tr>
<th scope="row">sv_hostname</th>
<td class="table-collapsible">sv_hostname "^2Server ^5Name"</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Change the hostname of your server/private match.</td>
</tr>
<tr>
<th scope="row">g_gametype</th>
<td class="table-collapsible">g_gametype gtnw</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Change the gametype of your server/private match.</td>
</tr>
<tr>
<th scope="row">rcon</th>
<td class="table-collapsible">rcon g_speed 200</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible">X</td>
<td>Used for managing your server in game.</td>
</tr>
<tr>
<th scope="row">scr_game_high_jump</th>
<td class="table-collapsible">scr_game_high_jump 0</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td>Disable the Exo Suits on a dedicated server.</td>
</tr>
<tr>
<th scope="row">spawnBot</th>
<td class="table-collapsible">spawnBot 18</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Spawns bots into your game.</td>
</tr>
<tr>
<th scope="row">disconnect</th>
<td class="table-collapsible">disconnect</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Disconnects you from the current game.</td>
</tr>
<tr>
<th scope="row">reconnect</th>
<td class="table-collapsible">reconnect</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Attempts to rejoin the last game you were in.</td>
</tr>
<tr>
<th scope="row">quit</th>
<td class="table-collapsible">quit</td>
<td class="table-collapsible">X</td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td class="table-collapsible"></td>
<td>Closes your game.</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

3111
website/css/animate.css vendored Normal file

File diff suppressed because it is too large Load Diff

6
website/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1339
website/css/main.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,244 @@
/*!
* Nivo Lightbox v1.3.1
* http://dev7studios.com/nivo-lightbox
*
* Copyright 2013, Dev7studios
* Free to use and abuse under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
.nivo-lightbox-overlay {
position: fixed;
top: 0;
left: 0;
z-index: 99999;
width: 100%;
height: 100%;
overflow: hidden;
visibility: hidden;
opacity: 0;
background: rgba(0, 0, 0, 0.8);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.nivo-lightbox-overlay.nivo-lightbox-open {
visibility: visible;
opacity: 1;
}
.nivo-lightbox-wrap {
position: absolute;
top: 10%;
bottom: 10%;
left: 10%;
right: 10%;
}
.nivo-lightbox-content {
width: 100%;
height: 100%;
}
.nivo-lightbox-title-wrap {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
z-index: 99999;
text-align: center;
}
.nivo-lightbox-nav {
display: none;
}
.nivo-lightbox-prev {
position: absolute;
top: 50%;
left: 0;
}
.nivo-lightbox-next {
position: absolute;
top: 50%;
right: 0;
}
.nivo-lightbox-close {
position: absolute;
top: 2%;
right: 2%;
}
.nivo-lightbox-image {
text-align: center;
}
.nivo-lightbox-image img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
vertical-align: middle;
}
.nivo-lightbox-content iframe {
width: 100%;
height: 100%;
}
.nivo-lightbox-inline,
.nivo-lightbox-ajax {
max-height: 100%;
overflow: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
/* https://bugzilla.mozilla.org/show_bug.cgi?id=308801 */
}
.nivo-lightbox-error {
display: table;
text-align: center;
width: 100%;
height: 100%;
color: #fff;
text-shadow: 0 1px 1px #000;
}
.nivo-lightbox-error p {
display: table-cell;
vertical-align: middle;
}
/* Effects
**********************************************/
.nivo-lightbox-notouch .nivo-lightbox-effect-fade,
.nivo-lightbox-notouch .nivo-lightbox-effect-fadeScale,
.nivo-lightbox-notouch .nivo-lightbox-effect-slideLeft,
.nivo-lightbox-notouch .nivo-lightbox-effect-slideRight,
.nivo-lightbox-notouch .nivo-lightbox-effect-slideUp,
.nivo-lightbox-notouch .nivo-lightbox-effect-slideDown,
.nivo-lightbox-notouch .nivo-lightbox-effect-fall {
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
/* fadeScale */
.nivo-lightbox-effect-fadeScale .nivo-lightbox-wrap {
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
-ms-transition: all 0.3s;
-o-transition: all 0.3s;
transition: all 0.3s;
-webkit-transform: scale(0.7);
-moz-transform: scale(0.7);
-ms-transform: scale(0.7);
transform: scale(0.7);
}
.nivo-lightbox-effect-fadeScale.nivo-lightbox-open .nivo-lightbox-wrap {
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
/* slideLeft / slideRight / slideUp / slideDown */
.nivo-lightbox-effect-slideLeft .nivo-lightbox-wrap,
.nivo-lightbox-effect-slideRight .nivo-lightbox-wrap,
.nivo-lightbox-effect-slideUp .nivo-lightbox-wrap,
.nivo-lightbox-effect-slideDown .nivo-lightbox-wrap {
-webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
-moz-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
-ms-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
-o-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
}
.nivo-lightbox-effect-slideLeft .nivo-lightbox-wrap {
-webkit-transform: translateX(-10%);
-moz-transform: translateX(-10%);
-ms-transform: translateX(-10%);
transform: translateX(-10%);
}
.nivo-lightbox-effect-slideRight .nivo-lightbox-wrap {
-webkit-transform: translateX(10%);
-moz-transform: translateX(10%);
-ms-transform: translateX(10%);
transform: translateX(10%);
}
.nivo-lightbox-effect-slideLeft.nivo-lightbox-open .nivo-lightbox-wrap,
.nivo-lightbox-effect-slideRight.nivo-lightbox-open .nivo-lightbox-wrap {
-webkit-transform: translateX(0);
-moz-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
.nivo-lightbox-effect-slideDown .nivo-lightbox-wrap {
-webkit-transform: translateY(-10%);
-moz-transform: translateY(-10%);
-ms-transform: translateY(-10%);
transform: translateY(-10%);
}
.nivo-lightbox-effect-slideUp .nivo-lightbox-wrap {
-webkit-transform: translateY(10%);
-moz-transform: translateY(10%);
-ms-transform: translateY(10%);
transform: translateY(10%);
}
.nivo-lightbox-effect-slideUp.nivo-lightbox-open .nivo-lightbox-wrap,
.nivo-lightbox-effect-slideDown.nivo-lightbox-open .nivo-lightbox-wrap {
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
}
/* fall */
.nivo-lightbox-body-effect-fall .nivo-lightbox-effect-fall {
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.nivo-lightbox-effect-fall .nivo-lightbox-wrap {
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-ms-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
-webkit-transform: translateZ(300px);
-moz-transform: translateZ(300px);
-ms-transform: translateZ(300px);
transform: translateZ(300px);
}
.nivo-lightbox-effect-fall.nivo-lightbox-open .nivo-lightbox-wrap {
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
}
.icon-close {
font-size: 24px;
}

562
website/css/normalize.css vendored Normal file
View File

@ -0,0 +1,562 @@
/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
/**
* 1. Change the default font family in all browsers (opinionated).
* 2. Correct the line height in all browsers.
* 3. Prevent adjustments of font size after orientation changes in
* IE on Windows Phone and in iOS.
*/
/* Document
========================================================================== */
html {
font-family: sans-serif;
/* 1 */
line-height: 1.15;
/* 2 */
-ms-text-size-adjust: 100%;
/* 3 */
-webkit-text-size-adjust: 100%;
/* 3 */
}
.selector-for-some-widget {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body {
margin: 0;
}
/**
* Add the correct display in IE 9-.
*/
article,
aside,
footer,
header,
nav,
section {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* Add the correct display in IE 9-.
* 1. Add the correct display in IE.
*/
figcaption,
figure,
main {
/* 1 */
display: block;
}
/**
* Add the correct margin in IE 8.
*/
figure {
margin: 1em 40px;
}
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box;
/* 1 */
height: 0;
/* 1 */
overflow: visible;
/* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace;
/* 1 */
font-size: 1em;
/* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a {
background-color: transparent;
/* 1 */
-webkit-text-decoration-skip: objects;
/* 2 */
}
/**
* Remove the outline on focused links when they are also active or hovered
* in all browsers (opinionated).
*/
a:active,
a:hover {
outline-width: 0;
}
/**
* 1. Remove the bottom border in Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none;
/* 1 */
text-decoration: underline;
/* 2 */
text-decoration: underline dotted;
/* 2 */
}
/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
font-weight: inherit;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace;
/* 1 */
font-size: 1em;
/* 2 */
}
/**
* Add the correct font style in Android 4.3-.
*/
dfn {
font-style: italic;
}
/**
* Add the correct background and color in IE 9-.
*/
mark {
background-color: #ff0;
color: #000;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
display: inline-block;
}
/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Remove the border on images inside links in IE 10-.
*/
img {
border-style: none;
}
/**
* Hide the overflow in IE.
*/
svg:not(:root) {
overflow: hidden;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: sans-serif;
/* 1 */
font-size: 100%;
/* 1 */
line-height: 1.15;
/* 1 */
margin: 0;
/* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input {
/* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
/* 1 */
text-transform: none;
}
/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
* controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"],
/* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
/* 2 */
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Change the border, margin, and padding in all browsers (opinionated).
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box;
/* 1 */
color: inherit;
/* 2 */
display: table;
/* 1 */
max-width: 100%;
/* 1 */
padding: 0;
/* 3 */
white-space: normal;
/* 1 */
}
/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
display: inline-block;
/* 1 */
vertical-align: baseline;
/* 2 */
}
/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield;
/* 1 */
outline-offset: -2px;
/* 2 */
}
/**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button;
/* 1 */
font: inherit;
/* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in IE 9-.
* 1. Add the correct display in Edge, IE, and Firefox.
*/
details,
/* 1 */
menu {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
display: inline-block;
}
/**
* Add the correct display in IE.
*/
template {
display: none;
}
/* Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
display: none;
}

View File

@ -0,0 +1,193 @@
/*
* Core Owl Carousel CSS File
* v1.3.3
*/
/* clearfix */
.owl-carousel .owl-wrapper:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
/* display none until init */
.owl-carousel {
display: none;
position: relative;
width: 100%;
-ms-touch-action: pan-y;
}
.owl-carousel .owl-wrapper {
display: none;
position: relative;
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-wrapper-outer {
overflow: hidden;
position: relative;
width: 100%;
}
.owl-carousel .owl-wrapper-outer.autoHeight {
-webkit-transition: height 500ms ease-in-out;
-moz-transition: height 500ms ease-in-out;
-ms-transition: height 500ms ease-in-out;
-o-transition: height 500ms ease-in-out;
transition: height 500ms ease-in-out;
}
.owl-carousel .owl-item {
float: left;
}
.owl-controls .owl-page,
.owl-controls .owl-buttons div {
cursor: pointer;
}
.owl-controls {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* mouse grab icon */
.grabbing {
cursor: url(grabbing.png) 8 8, move;
}
/* fix */
.owl-carousel .owl-wrapper,
.owl-carousel .owl-item {
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
}
/* Feel free to change duration */
.animated {
-webkit-animation-duration: 1000 ms;
animation-duration: 1000 ms;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
/* .owl-animated-out - only for current item */
/* This is very important class. Use z-index if you want move Out item above In item */
.owl-animated-out {
z-index: 1
}
/* .owl-animated-in - only for upcoming item
/* This is very important class. Use z-index if you want move In item above Out item */
.owl-animated-in {
z-index: 0
}
/* .fadeOut is style taken from Animation.css and this is how it looks in owl.carousel.css: */
.fadeOut {
-webkit-animation-name: fadeOut;
animation-name: fadeOut;
}
@-webkit-keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
#owl-demo .item img {
display: block;
width: 100%;
height: auto;
}
.owl-theme .owl-controls {
position: relative;
}
.owl-theme .owl-controls .item-link {
position: relative;
display: block;
width: 100px;
height: 70px;
margin: 0 2px;
border-bottom: 4px solid #ccc;
outline: none;
}
.owl-theme .owl-controls .item-link:focus {
-webkit-box-shadow: 0 0 8px #3498DB;
-moz-box-shadow: 0 0 8px #3498DB;
box-shadow: 0 0 8px #3498DB;
outline: none;
}
.owl-theme .owl-controls .active .item-link {
border-bottom: 4px solid #3498DB;
}
.owl-theme .owl-controls .owl-page span {
display: none;
}
.owl-theme .prev-owl,
.owl-theme .next-owl {
display: none;
}
.owl-theme .prev-owl:focus,
.owl-theme .next-owl:focus {
-webkit-box-shadow: 0 0 8px #3498DB;
-moz-box-shadow: 0 0 8px #3498DB;
box-shadow: 0 0 8px #3498DB;
}
.owl-theme .prev-owl {
left: 24px;
}
.owl-theme .next-owl {
right: 24px;
}

96
website/css/owl.theme.css Normal file
View File

@ -0,0 +1,96 @@
/*
* Owl Carousel Owl Demo Theme
* v1.3.3
*/
.owl-theme .owl-controls {
margin-top: 10px;
text-align: center;
}
/* Styling Next and Prev buttons */
.owl-theme .owl-controls .owl-buttons div {
color: #FFF;
display: inline-block;
zoom: 1;
*display: inline;
/*IE7 life-saver */
margin: 5px;
padding: 3px 10px;
font-size: 12px;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
background: #869791;
filter: Alpha(Opacity=50);
/*IE7 fix*/
opacity: 0.5;
}
/* Clickable class fix problem with hover on touch devices */
/* Use it for non-touch hover action */
.owl-theme .owl-controls.clickable .owl-buttons div:hover {
filter: Alpha(Opacity=100);
/*IE7 fix*/
opacity: 1;
text-decoration: none;
}
/* Styling Pagination*/
.owl-theme .owl-controls .owl-page {
display: inline-block;
zoom: 1;
*display: inline;
/*IE7 life-saver */
}
.owl-theme .owl-controls .owl-page span {
display: block;
width: 12px;
height: 12px;
margin: 5px 7px;
filter: Alpha(Opacity=50);
/*IE7 fix*/
opacity: 0.5;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
background: #869791;
}
.owl-theme .owl-controls .owl-page.active span,
.owl-theme .owl-controls.clickable .owl-page:hover span {
filter: Alpha(Opacity=100);
/*IE7 fix*/
opacity: 1;
}
/* If PaginationNumbers is true */
.owl-theme .owl-controls .owl-page span.owl-numbers {
height: auto;
width: auto;
color: #FFF;
padding: 2px 10px;
font-size: 12px;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
}
/* preloading images */
.owl-item.loading {
min-height: 150px;
background: url(AjaxLoader.gif) no-repeat center center
}

108
website/css/responsive.css Normal file
View File

@ -0,0 +1,108 @@
@media (min-width: 768px) and (max-width: 1024px) {
.section-header .section-title {
font-size: 22px;
}
#video-area .contents h1 {
font-size: 32px;
line-height: 48px;
}
.navbar-light .navbar-nav .nav-link {
padding: 8px 0px;
font-size: 13px;
}
.item-boxes h4 {
font-size: 16px;
}
#features .box-item .text h4 {
font-size: 12px;
}
#features .content-left .text {
margin-right: 85px;
}
#features .content-right .text {
margin-left: 85px;
}
.subscribe-box input[type="text"] {
padding: 6px 10px;
}
}
@media (max-width: 640px) {
.section-header .section-title {
font-size: 30px;
}
.menu-wrap {
padding: 10px;
}
.icon-list a {
padding: 5px 0;
}
.icon-list a::before {
top: 5px;
}
.bg-faded {
background: #fff!important;
}
#video-area .contents h1 {
font-size: 30px;
line-height: 48px;
}
#features .content-right span {
float: none;
}
#features .content-left span {
float: none;
}
#features .box-item .text h4 {
font-size: 14px;
}
.table-left {
margin: 0px 0px;
}
.counters .facts-item {
margin-bottom: 30px;
}
}
@media (min-width: 320px) and (max-width: 480px) {
.bg-faded {
background: #fff!important;
}
.section-header .section-title {
font-size: 20px;
line-height: 30px;
}
#video-area .contents {
padding: 80px 0 60px;
}
#video-area .contents h1 {
font-size: 18px;
line-height: 32px;
}
.video-promo .video-promo-content h2 {
font-size: 18px;
}
.pricing-tables .pricing-table {
margin-bottom: 30px;
}
#blog .blog-item-text h3 {
font-size: 18px;
}
#blog .blog-item-text .meta-tags span {
margin-right: 5px;
}
.counters .facts-item {
margin-bottom: 30px;
}
#contact .section-title {
font-size: 22px;
}
#subscribe .sub_btn {
min-width: 120px;
}
.social-icons ul li a {
width: 36px;
height: 36px;
line-height: 36px;
}
}

View File

@ -0,0 +1,450 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog v0.3.0](http://keepachangelog.com/en/0.3.0/) and this project adheres to [Semantic Versioning](http://semver.org/).
## [0.6.1] - 2020-12-23
### Added
- Add host information to /info endpoint (request)
- Add fileWrite GSC Function (#36)
- Add fileRead GSC Function (#36)
- Add fileExists GSC Function (#36)
- Add fileRemove GSC Function (#36)
- Add botMovement GSC Function (#46)
- Add botAction GSC Function (#46)
- Add botWeapon GSC Function (#46)
- Add botStop GSC Function (#46)
- Add isBot GSC Function (#46)
- Add setPing GSC Function (#46)
- Add GetSystemTime and GetSystemTimeMilliseconds GSC Functions (#46)
- Add PrintConsole GSC Function (#46)
- Add Exec GSC Function (#46)
- Add getIP GSC Method (#36)
- Add getPing GSC Method (#36)
- Add scr_intermissionTime GSC Function (#25)
- Add g_playerCollision Dvar (#36)
- Add g_playerEjection Dvar (#36)
- Add r_specularCustomMaps Dvar (#36)
- Unlock safeArea_horizontal and safeArea_vertical Dvars (#42)
- Unlock cg_fovscale Dvar (#47)
- Added g_antilag Dvar (#61)
### Changed
- Stats are now separate for each mod (#6). Player stats are copied to `fs_game` folder if no stats exist for this mod yet. Keep in mind this also means that level, XP and classes will not be synchronized with the main stats file after this point.
- Reduced duration of toasts (#48)
- Removed old updater functionality (#54)
- Use old bot names if bots.txt is not found (#46)
### Fixed
- Fixed a node system related crash (#45)
- Fixed an issue that made dedicated servers crash when info was requested during map rotation (#43)
- Fixed an issue where the game was trying to decrypt gsc files which caused it to crash when loading mods (#35)
- Fixed an issue causing the game to crash when Steam was running in the background (#56)
- Fixed slow download speed when using fast download
### Known issues
- HTTPS is not supported for fast downloads at the moment.
## [0.6.0] - 2018-12-30
### Added
- Implement unbanclient command.
- Implement /serverlist api endpoint on dedicated servers
- Add dvar to control the server query rate (net_serverQueryLimit & net_serverFrames)
### Changed
- Update dependencies
### Fixed
- Fix mods not working in private matches.
- Fix multiple game structures (map tools)
- Fix multiple vulnerability's
- Fix lag spikes on lower end PCs
- Fix invalid name check
- Fix openLink command crash issue
- Fix lobby server map downloading
- Fix steam integration
### Known issues
- HTTPS is not supported for fast downloads at the moment.
## [0.5.4] - 2017-07-09
### Added
- Integrate IW4MVM by luckyy.
### Changed
- Displayed stats for Dragunov have been changed, has no effect on actual game play.
### Fixed
- Fix fast download failing when the target host is missing a trailing slash.
- Fix servers not being listed in the server browser.
- Fix some FPS drop issues caused by compression code.
### Known issues
- HTTPS is not supported for fast downloads at the moment.
## [0.5.3] - 2017-07-02
### Added
- Increase webserver security.
### Fixed
- Reduce lags introduced by nodes.
- Fix modlist download.
## [0.5.2] - 2017-07-02
### Fixed
- Fix dedicated server crash.
## [0.5.1] - 2017-07-02
### Added
- Add fast download option for custom mods/maps based on Call of Duty 4.
- Display a toast when an update is available.
- Use the hourglass cursor while loading assets (with the native cursor feature).
- Show bots in parenthesis after the number of players in the serverlist (request).
- Add GSC event `level waittill("say", string, player);` (request).
- Restrict unauthorized mod download for password protected servers.
- Add OMA support for 15 classes.
### Changed
- Show friend avatars when they play IW4x (request).
- Rewrite and optimize the entire node system.
- Remove syncnode command for node system.
- Remove steam start.
### Fixed
- Fix lags and frame drops caused by server sorting.
- Fix demos on custom maps.
- Can no longer join a lobby or server with an incorrect password.
- Fix crashes caused by a bug in file/data compression.
- Improve overall stability.
## [0.5.0] - 2017-06-04
### Added
- Add GSC functionality to download files via HTTP(S) (request).
- Implement preliminary custom map support.
### Changed
- Add new nicknames for bots.
- Bumped Fastfile version. If you built fastfiles with the zone builder (e.g. mod.ff) you have to rebuild them!
- Default `sv_network_fps` to `1000` on dedicated game servers.
- Increase maximum FOV to 120.
### Fixed
- Fix `iw4x_onelog` dvar.
- Fix server list only showing local servers by default instead of Internet servers.
- Fix some deadlock situations on game shutdown.
## [0.4.2] - 2017-03-16
### Changed
- Disable unnecessary dvar update in server browser.
- Update bot names.
### Fixed
- Fix process permissions.
- Fix classic AK-47 color bleedthrough.
- Re-aligned the MG4's Raffica iron sights.
## [0.4.1] - 2017-03-10
### Fixed
- Fix command line argument parsing.
## [0.4.0] - 2017-03-10
### Added
- Set played with status.
- Add support for 15 classes.
- Add `iw4x_onelog` dvar.
- Add show server/playercount in server browser.
### Changed
- Do not show friend status notifications with stream friendly UI.
- Reduce loaded modules for dedis.
- Use joystick emblem for friend status.
- Disable XP bar when max level.
- Change fs_game display postition.
- Replace Painkiller with Juiced from IW5.
### Fixed
- Fix AK weaponfiles.
- Fix brightness slider.
- Fix text length for column mod in server browser.
- Changed the L86 LSW to use the correct HUD icon.
- Re-aligned the M93 Raffica's iron sights.
- Re-aligned the Desert Eagle's iron sights.
## [0.3.3] - 2017-02-14
### Added
- Add mapname to friend status (request).
- Add option to toggle notify friend state.
- Add support for mod.ff.
### Changed
- Disabled big minidump message box.
- Limit dedicated servers to 15 instances per IP.
- Move build number location.
- Remove news ticker and friends button from theater.
### Fixed
- Fix audio bug in options menu.
- Fix crash caused by faulty file download requests to game hosts.
- Fix friend sorting.
- Fix game not starting issue under certain circumstances.
- Fix menu crash.
- Fix typo in security increase popmenu.
- Fix vid_restart crash with connect protocol.
- Fix weapon crash issue.
- Potentially fix no-ammo bug.
## [0.3.2] - 2017-02-12
This is the third public Beta version.
### Added
- Add working friend system.
- Add colored pings in the server list.
- Add credits.
- Add first launch menu.
- Add AK-47 (Classic) attachments.
- Add HUD icon for night vision goggles.
### Changed
- Join when pressing enter in server list (request).
- Redesign and refactor all fullscreen menus.
- Increase weapon and configstring limit.
- Allow creating full crash dumps if wanted.
- Set default name from steam.
### Fixed
- Fix missing models on village.
- Fix custom server motd (request).
- Fix various memory leaks.
- Fix mouse pitch (request).
- Fix compatibility with B3 (request).
- Fix RCon bug (request).
- Fix dedicated server crash on linux.
- Fix crash in mod download.
- Fix peacekeeper reload sound.
- Fix cl_maxpackets 125 in settings (request).
- Fix deserteaglegold_mp icon.
### Known issues
- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS.
## [0.3.1] - 2017-01-21
This is the second public Beta version.
### Added
- Add classic AK-47 to CAC.
- Add servers to favorites when ingame.
- Add delete favorites button in the serverlist.
### Changed
- Change maplist to a dynamic list.
### Fixed
- Fix list focus.
- Fix mod restart loop.
- Fix mod download status.
- Fix modelsurf crash.
- Fix floating AK-74u.
### Known issues
- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS.
## [0.3.0] - 2017-01-14
This is the first public Beta version.
### Added
- Add com_logFilter dvar.
- Add peacekeeper.
- Add support for maps from DLC 8 (Recycled Pack)
- Chemical Plant (mp_storm_spring)
- Crash: Tropical (mp_crash_tropical)
- Estate: Tropical (mp_estate_tropical)
- Favela: Tropical (mp_fav_tropical)
- Forgotten City (mp_bloc_sh)
### Changed
- Improve node synchronization handling.
- Improve security by modifying GUIDs to allow 64-bit certificate fingerprints.
- Optimize fastfiles, they are now a lot smaller.
- Replace intro.
### Fixed
- Fix concurrent image loading bug.
- Fix issues when spawning more than one bot.
- Fix no ammo bug.
- Fix server crash on startup.
- Fix splash screen hang.
### Known issues
- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS.
## [0.2.1] - 2016-12-14
This is the second public Alpha version.
### Added
- Add support for CoD:Online maps.
- Firing Range (mp_firingrange)
- Rust (mp_rust_long)
- Shipment (mp_shipment/mp_shipment_long)
- Add `sv_motd` Dvar for server owners to set custom motd (will be visible in the loadscreen).
- Add Zonebuilder support for sounds and fx.
- Add command setviewpos.
- Add high-definition loadscreens.
### Changed
- Rename Arctic Wet Work map to it's official name (Freighter).
- Complete redesign of the main menus.
- Allow `cl_maxpackets` to be set up to 125.
### Fixed
- Fix crash when using the Harrier killstreak.
- Disable code that downloads news/changelog when in zonebuilder mode.
- Fix freeze on game shutdown.
- Disable unlockstats while ingame to prevent a crash.
### Known issues
- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS.
## [0.2.0] - 2016-10-09
This is the first public Alpha version.
### Added
- Support for CoD:Online maps.
- Arctic Wet Work (mp_cargoship_sh)
- Bloc (mp_bloc)
- Bog (mp_bog_sh)
- Crossfire (mp_cross_fire)
- Killhouse (mp_killhouse)
- Nuketown (mp_nuked)
- Wet Work (mp_cargoship)
### Fixed
- Fix techniques in Zonebuilder.
- Fix possible memory leak.
- Fix timeout bug when connecting to server via iw4x link.
- Partially fix deadlock in decentralized networking code.
### Known issues
- Running IW4x on Linux currently requires gnutls to be installed additional to Wine as it needs to access the Tor service via HTTPS.
## [0.1.1] - 2016-09-19
This version is an internal Pre-Alpha version.
### Added
- Add IW5 material embedding system.
### Changed
- Enhance mod download with detailed progress display.
### Fixed
- Fix and optimize network logging commands.
- Fix console not displaying command inputs properly.
- Fix crash when running multiple instances of the IW4x client from the same directory.
- Fix crash when the `securityLevel` command is used on a game server.
- Fix possible data corruption in code for decentralized networking.
- Fix possible deadlock during client shutdown.
## [0.1.0] - 2016-09-03
This version is an internal Pre-Alpha version.
### Added
- Add `banclient` command which will permanently ban a client from a server. The ban will persist across restarts.
- Add capabilities to save played games and replay them ("Theater").
- Add code for generating and sending minidumps for debugging purposes. This feature is meant to be used only during the Open Beta and will be removed once the code goes to stable release.
- Add commands that allow forwarding console and games log via UDP to other computers ("network logging").
- Add D3D9Ex.
- Add filters for server list.
- Add handling for `iw4x://` URLs ("connect protocol"). For example, if IW4x is properly registered in Windows as URL handler for `iw4x://` URLs you can type `iw4x://ip:port`. If possible, this will connect to the server in an already running IW4x client.
- Add lean support through new key bindings.
- Add native cursor as replacement for the sometimes laggy in-game cursor. This change can be reverted in the settings menu.
- Add news ticker.
- Add remote console ("RCon").
- Add support for BigBrotherBot.
- Add support for hosting game mods in order to allow players to just join modded servers out of the box ("mod download").
- Add Warfare2 text coloring.
- Add zone builder. For more information see the respective documentation.
- Implement a completely decentralized peering network.
- Implement playlists which can be used for flexible map and gametype rotation.
- Introduce security levels. This ensures that you need to "pay" with CPU power to verify your identity once before being able to join a server which reduces the interval at which people who get banned can circumvent server bans through using new identities. The default security level is 23.
- Move IW4x resource files into their own folder to prevent clogging up the main game directories.
- Reintroduce parties, now also available for dedicated servers ("lobby servers").
### Changed
- Move logs to `userraw` folder.
- Replace main menu background music.

8
website/discord.html Normal file
View File

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://discord.gg/sKeVmR3">
</head>
<body>
</body>
</html>

BIN
website/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

24
website/footer.js Normal file
View File

@ -0,0 +1,24 @@
// If you are adding new lines, make sure to escape the line at the end with a \
document.write('\
<footer>\
<div class="container">\
<div class="row">\
<div class="col-md-12">\
<div class="social-icons wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">\
<ul>\
<li class="twitter"><a target="_blank" href="https://twitter.com/XLabsProject"><i class="fab fa-twitter"></i></a></li>\
<li class="discord"><a target="_blank" href="https://discord.gg/sKeVmR3"><i class="fab fa-discord"></i></a></li>\
<li class="youtube"><a target="_blank" href="https://www.youtube.com/channel/UCPA9X79ZsCXMBBCSJ63wA3A?sub_confirmation=1"><i class="fab fa-youtube"></i></a></li>\
<li class="github"><a target="_blank" href="https://github.com/XLabsProject"><i class="fab fa-github"></i></a></li>\
<li class="patreon"><a target="_blank" href="https://www.patreon.com/xlabsproject"><i class="fab fa-patreon"></i></a></li>\
</ul>\
</div>\
<div class="site-info wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="0.3s">\
<p>All copyrights reserved &copy; 2021 - <a rel="nofollow" href="https://xlabs.dev">X Labs</a></p>\
</div>\
</div>\
</div>\
</div>\
</footer>\
');

70
website/header.js Normal file
View File

@ -0,0 +1,70 @@
// If you are adding new lines, make sure to escape the line at the end with a \
document.write('\
<nav class="navbar navbar-expand-md navbar-light">\
<a class="navbar-brand" href="https://xlabs.dev/" target="_self"><img src="img/xlabs.png" alt="X LABS"></a>\
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>\
<div class="collapse navbar-collapse" id="navbarSupportedContent">\
<ul class="navbar-nav ml-auto py-4 py-md-0">\
<li class="nav-item pl-4 pl-md-0 ml-0 ml-md-4 active">\
<a class="nav-link" href="https://xlabs.dev/">Home</a>\
</li>\
<li class="nav-item pl-4 pl-md-0 ml-0 ml-md-4">\
<a class="nav-link dropdown-toggle iw4x-menu" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">IW4x</a>\
<div class="dropdown-menu iw4x-menu">\
<a class="dropdown-item" href="support_iw4x_client">IW4x Client Support</a>\
<a class="dropdown-item" href="iw4x_repair">IW4x Repair Guide</a>\
<a class="dropdown-item" href="iw4x_faq">IW4x FAQs</a>\
<a class="dropdown-item" href="iw4x_controllers">IW4x Controller Guide</a>\
<a class="dropdown-item" href="iw4x_privatematch">IW4x Private Match Guide</a>\
<a class="dropdown-item" href="support_iw4x_server">IW4x Server Support</a>\
<a class="dropdown-item" href="iw4x_errors">IW4x Errors</a>\
<a class="dropdown-item" href="mod_guide">IW4x Mod Guide</a>\
<a class="dropdown-item" href="map_porting">IW4x Map Porting</a>\
</div>\
</li>\
<li class="nav-item pl-4 pl-md-0 ml-0 ml-md-4">\
<a class="nav-link dropdown-toggle iw6x-menu" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">IW6x</a>\
<div class="dropdown-menu iw6x-menu">\
<a class="dropdown-item" href="support_iw6x_client">IW6x Client Support</a>\
<a class="dropdown-item" href="iw6x_repair">IW6x Repair Guide</a>\
<a class="dropdown-item" href="iw6x_faq">IW6x FAQs</a>\
<a class="dropdown-item" href="iw6x_controllers">IW6x Controller Guide</a>\
<a class="dropdown-item" href="iw6x_privatematch">IW6x Private Match Guide</a>\
<a class="dropdown-item" href="support_iw6x_server">IW6x Server Support</a>\
<a class="dropdown-item" href="iw6x_errors">IW6x Errors</a>\
<a class="dropdown-item" href="iw6x_scripting_documentation">IW6x Scripting Docs</a>\
</div>\
</li>\
<li class="nav-item pl-4 pl-md-0 ml-0 ml-md-4">\
<a class="nav-link dropdown-toggle s1x-menu" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">S1x</a>\
<div class="dropdown-menu s1x-menu">\
<a class="dropdown-item" href="support_s1x_client">S1x Client Support</a>\
<a class="dropdown-item" href="s1x_repair">S1x Repair Guide</a>\
<a class="dropdown-item" href="s1x_faq">S1x FAQs</a>\
<a class="dropdown-item" href="s1x_controllers">S1x Controller Guide</a>\
<a class="dropdown-item" href="s1x_privatematch">S1x Private Match Guide</a>\
<a class="dropdown-item" href="support_s1x_server">S1x Server Support</a>\
<a class="dropdown-item" href="s1x_errors">S1x Errors</a>\
</div>\
</li>\
<li class="nav-item pl-4 pl-md-0 ml-0 ml-md-4">\
<a class="nav-link dropdown-toggle guides" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Misc Guides</a>\
<div class="dropdown-menu guides">\
<a class="dropdown-item" href="console_commands">Console Commands</a>\
</div>\
</li>\
<li class="nav-item pl-4 pl-md-0 ml-0 ml-md-4">\
<a class="nav-link dropdown-toggle socials" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Socials</a>\
<div class="dropdown-menu socials">\
<a class="dropdown-item" target="_blank" href="https://twitter.com/XLabsProject">Twitter</a>\
<a class="dropdown-item" target="_blank" href="https://discord.gg/sKeVmR3">Discord</a>\
<a class="dropdown-item" target="_blank" href="https://youtube.com/channel/UCPA9X79ZsCXMBBCSJ63wA3A?sub_confirmation=1">YouTube</a>\
<a class="dropdown-item" target="_blank" href="https://github.com/XLabsProject">GitHub</a>\
<a class="dropdown-item" target="_blank" href="https://patreon.com/xlabsproject">Patreon</a>\
</div>\
</li>\
</ul>\
</div>\
</nav>\
');

BIN
website/img/iw4x_banner.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
website/img/iw6x_banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
website/img/s1x_banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
website/img/xlabs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
website/img/xlabs_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

274
website/index.html Normal file
View File

@ -0,0 +1,274 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, momo">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="X Labs is the official home of the open source IW4x, IW6x, and S1x projects." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="X Labs is the official home of the open source IW4x, IW6x, and S1x projects." />
<meta name="twitter:url" content="https://xlabs.dev" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>Home | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/owl.carousel.css">
<link rel="stylesheet" href="css/owl.theme.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<div id="curtain">
<div class="row">
<div class="lds-dual-ring"></div>
</div>
</div>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section Start -->
<header id="video-area" data-stellar-background-ratio="0.5">
<div id="block" data-vide-bg="video/s1x.mp4"></div>
<!--<div id="block">
<div id="panorama"></div>
</div>-->
<!--<div class="fixed-top">
</div>-->
<div class="overlay overlay-2"></div>
<div class="container">
<!--<div class="row justify-content-md-center">
<div class="col-md-10">-->
<div class="contents text-center">
<h1 class="wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Official Home of IW4x, IW6x and S1x</h1>
<!--<p class="lead wow fadeIn" data-wow-duration="1000ms" data-wow-delay="400ms">We do things to games that require court officials to ask "Where on the doll did Snake touch you?"</p>-->
<a href="support_iw4x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i class="fas fa-download"></i> IW4x</a>
<a href="support_iw6x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i class="fas fa-download"></i> IW6x</a>
<a href="support_s1x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i class="fas fa-download"></i> S1x</a>
</div>
<!--</div>
</div>-->
</div>
</header>
<!-- Header Section End -->
<!-- CTA S1x Trailer Start -->
<!-- Hiding S1x CTA, since it got copyright claimed sometime in August 2021.
<section id="support" class="section" data-stellar-background-ratio="0.2">
<div class="container">
<div class="section-header">
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s"></h2>
<div class="yt">
<iframe width="920" height="520" src="https://www.youtube-nocookie.com/embed/YH5ZsVEz9jk?rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<br>
<a href="support_s1x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"> Get S1x Now!</a>
</div>
</div>
</section>
-->
<!-- CTA S1x Trailer End -->
<!-- Features Section Start -->
<section id="features" class="section">
<div class="container">
<div class="section-header">
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">X LABS <span>FEATURES</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">X Labs clients restore missing features removed by the developers and further the capabilities of the games.</p>
</div>
<div class="row">
<div class="col-md-4 col-sm-6">
<div class="item-boxes wow fadeInDown" data-wow-delay="0.2s">
<div class="icon">
<i class="fas fa-hdd"></i>
</div>
<h4>Additional Content</h4>
<p>Clients contain additional weapons and maps ported from other games.</p>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="item-boxes wow fadeInDown" data-wow-delay="0.4s">
<div class="icon">
<i class="fas fa-plus-circle"></i>
</div>
<h4>Improved Security</h4>
<p>Exploits that exist in the Steam versions of the game have been patched providing a safer gaming environment.</p>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="item-boxes wow fadeInDown" data-wow-delay="0.6s">
<div class="icon">
<i class="fas fa-code"></i>
</div>
<h4>Mods and Mod Tools</h4>
<p>Modding capabilities have been added allowing the community to further add new content to the game.</p>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="item-boxes wow fadeInDown" data-wow-delay="0.8s">
<div class="icon">
<i class="fas fa-server"></i>
</div>
<h4>Dedicated Servers</h4>
<p>Dedicated servers allow the community to host their own servers to. A server list is available in-game.</p>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="item-boxes wow fadeInDown" data-wow-delay="1s">
<div class="icon">
<i class="fas fa-eye"></i>
</div>
<h4>Anti-Cheat</h4>
<p>Between built in features of the clients and third-party tools, cheaters can be banned from playing the games.</p>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="item-boxes wow fadeInDown" data-wow-delay="1.2s">
<div class="icon">
<i class="fas fa-users"></i>
</div>
<h4>Support</h4>
<p>Support is available via the X Labs Discord, the website, and various gaming communities. Be polite.</p>
</div>
</div>
</div>
</div>
</section>
<!-- Features Section End -->
<!-- Support Section Start -->
<section id="support" class="section" data-stellar-background-ratio="0.2">
<div class="container">
<div class="section-header">
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">FAQ | <span>SUPPORT</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<br>
<a href="support_iw4x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"> IW4x Support</a>
<a href="support_iw6x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"> IW6x Support</a>
<a href="support_s1x_client" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"> S1x Support</a>
<br>
<br>
<p>Additional support can be obtained on the X Labs <a target="_blank" href="https://discord.gg/sKeVmR3">Discord</a></p>
</div>
</div>
</section>
<!-- Support Section End -->
<!-- testimonial Section Start -->
<div id="testimonial" class="section">
<div class="container">
<div class="row justify-content-md-center">
<div class="col-md-10 wow fadeInRight" data-wow-delay="0.2s">
<div class="touch-slider owl-carousel owl-theme">
<div class="testimonial-item">
<a target="_blank" href="https://youtube.com/poketLWEWT"><img src="https://i.imgur.com/fefoZqM.jpg" alt="FaZe Jev" /></a>
<div class="testimonial-text">
<p>I didn't realize all of the things I haven't done yet with Call of Duty until this. <br>It feels so clean. I can't get over how great it feels.</p>
<h3>- <a target="_blank" href="https://youtube.com/poketLWEWT">FaZe Jev</a></h3>
<span>FaZe Member & Content Creator</span>
</div>
</div>
<div class="testimonial-item">
<a target="_blank" href="https://youtube.com/M3RKMUS1C"><img src="https://i.imgur.com/X14Idcj.jpg" alt="M3RKMUS1C" /></a>
<div class="testimonial-text">
<p>IW4x is one of the greatest mods we've ever seen for Call of Duty.<br>S1x is genuinely such a fun mod to play.</p>
<h3>- <a target="_blank" href="https://youtube.com/M3RKMUS1C">M3RKMUS1C</a></h3>
<span>Call of Duty Content Creator</span>
</div>
</div>
<div class="testimonial-item">
<a target="_blank" href="https://youtube.com/xWASDMitch"><img src="https://i.imgur.com/LbUrtt4.jpg" alt="xWASDMitch" /></a>
<div class="testimonial-text">
<p>IW4x version of Modern Warfare 2 with custom guns, custom maps. Waaay better than Modern Warfare 2019. <br>That's just a fact.</p>
<h3>- <a target="_blank" href="https://youtube.com/xWASDMitch">xWASDMitch</a></h3>
<span>Call of Duty Streamer</span>
</div>
</div>
<div class="testimonial-item">
<a target="_blank" href="https://youtube.com/uhhShaawn"><img src="https://i.imgur.com/g8agCpb.jpg" alt="Parallel Shawn" /></a>
<div class="testimonial-text">
<p>I have been waiting for this for the longest time. I've always wanted a Ghosts client... <br>I absolutely love this. You really have to give it to everyone over at X Labs that is working on this project.</p>
<h3>- <a target="_blank" href="https://youtube.com/uhhShaawn">Parallel Shawn</a></h3>
<span>Trickshotter</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- testimonial Section Start -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
<script src="js/panorama.js"></script>
<script>
$(document).ready(function() {
setTimeout(function() {
window.scrollTo(0, 0);
requestAnimationFrame(function() {
$("#curtain").fadeOut();
});
}, 60);
});
</script>
</body>
</html>

1
website/iw4/motd.txt Normal file
View File

@ -0,0 +1 @@
^3S1x/IW6x out now! ^7| Support us on Patreon to get special rewards: ^1patreon.com/XLabsProject ^7| Follow us on Twitter: ^5@XLabsProject ^7| Visit ^2https://xlabs.dev ^7for more info!

View File

@ -0,0 +1,142 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x controller guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Controller Guide for IW4x client." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Controller Guide for IW4x client." />
<meta name="twitter:url" content="https://xlabs.dev/iw4x_controllers" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Controller Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw4x_banner.jpg" alt="IW4x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x CONTROLLER <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to setup controllers for IW4x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<h4>
Video Guide:
</h4>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/WcV33cu1K68" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<h4>
Text Guide:
</h4>
<p>As MW2 on PC does not natively support controllers, we must use external programs to make a controller emulate keyboard and mouse inputs. This guide will cover using Steam's Big Picture mode, which has this feature built in.</p>
<h3>Step 1: Adding IW4x to your Steam library.</h3>
<ol>
<li>Launch Steam and click the text in the bottom left that says '[+] ADD A GAME'.</li>
<li>Select the option 'Add a Non-Steam Game...'.</li>
<li>Click the 'Browse' button.</li>
<li>In the browse file window, locate your IW4x install and select 'iw4x.exe', then click the 'Open' button.</li>
<li>Now there should be a tick in the box next to iw4x, now simply click the button 'ADD SELECTED PROGRAMS'.</li>
<li>Then, IW4x has been added to your Steam library and can be launched at any time from within Steam.</li>
</ol>
<h3>Step 2: Enabling Controller Configuration Support</h3>
<ol>
<li>Connect your controller to your PC via USB or Bluetooth.</li>
<li>Open steam and select the 'Big Picture Mode' mode icon (It's located at the top right of the steam window next to minimise).</li>
<li>Once in Big Picture mode go to Settings (It's the cog icon in the top right).</li>
<li>In settings, select the 'Controller Settings' option.</li>
<li>Now, depending on the controller you are using, enable the configuration support. (e.g. For an Xbox controller, enable 'Xbox Configuration Support').</li>
</ol>
<h3>Step 3: Controller Configuration</h3>
<ol>
<li>Again, while in Big Picture mode, go to settings then controller settings. Plug in your controller, make sure it is detected, and enable the configuration support for your controller.</li>
<li>Go to your library, find IW4x, select 'Manage Shortcut' then the 'Controller Configuration' option. You will now be presented with a image with your controller.</li>
<li>Now select the 'BROWSE CONFIGS' button (Xbox Controllers -> X Button) (PS4 Controllers -> SQUARE Button).</li>
<li>You should now be on a list screen of configurations, Go to the 'Community' tab and press the 'SHOW OTHER CONTROLLER TYPES' button (Xbox Controllers -> Y Button) (PS4 Controllers -> TRIANGLE Button).</li>
<li>Now search the list till you find the 'H3X1C's ELITE IW4x Config V2' Configuration, press the (Xbox Controllers -> A Button ) (PS4 Controllers -> CROSS Button) to 'IMPORT CONFIG'.</li>
<li>Then, you just need to apply the configuration. For Xbox, this will be the "X" Button and for PS4 Controllers, this will be the SQUARE button.</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

127
website/iw4x_download.html Normal file
View File

@ -0,0 +1,127 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, x labs, iw4x download, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x faq">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Client download for IW4x" />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Client download for IW4x" />
<meta name="twitter:url" content="https://xlabs.dev/iw4x_download" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Download | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw4x_banner.jpg" alt="IW4x">
</div>
</div>
<div class="line"></div>
<h2>IW4x Download</h2>
<p id="download-block" style="display: none;">Click <a href="https://dss0.cc/updater/iw4x_files.zip">here</a> to download IW4x.</p>
<p id="patreon-block" style="display: none;">
If you like our projects, consider donating on patreon:<br>
<a href="https://www.patreon.com/xlabsproject" class="btn btn-common patreon-button"><i class="fab fa-patreon"></i>&nbsp;&nbsp;&nbsp;Patreon</a>
</p>
<script>
function unlocker() {
setTimeout(function() {
$("#patreon-block").show();
$("#download-block").show();
$("#twitter-block").hide();
}, 1000);
return true;
}
</script>
<p id="twitter-block">
Follow us on twitter to unlock the download:<br>
<a href="https://twitter.com/XLabsProject" target="_blank" onclick="unlocker()" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i class="fab fa-twitter"></i>&nbsp;&nbsp;&nbsp;Twitter</a>
</p>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=" anonymous"></script>
<script language="javascript" type="text/javascript">
function GetLatestReleaseInfo() {
$.getJSON("https://api.github.com/repos/XLabsProject/iw4x-client/releases/latest").done(function(release) {
var asset = release.assets[0];
$(".download").attr("href", asset.browser_download_url);
window.location.replace(asset.browser_download_url);
});
}
//GetLatestReleaseInfo();
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin=" anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

544
website/iw4x_errors.html Normal file
View File

@ -0,0 +1,544 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x errors">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Errors related to the IW4x client and server with potential fixes. " />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Errors related to the IW4x client and server with potential fixes." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_errors" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Errors | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw4x_banner.jpg" alt="IW4x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x <span>Errors</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Learn how to fix your game here.</p>
<a href="#blackscreen" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Black Screen / Not responding on startup</a>
<a href="#fatalerror" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">(0xc000005) Fatal Error on Launch</a>
<a href="#fatalerror2" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">(0xc000007b) Fatal Error</a>
<a href="#modlist" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Failed to download Mod List</a>
<a href="#xuid" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">XUID doesn't match the certificate</a>
<a href="#couldnotloadimage" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Couldn't load image 'AnyImageNameHere'</a>
<a href="#lowservers" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Low amount of servers</a>
<a href="#zeroservers" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">No servers</a>
<a href="#entrypointnotfound" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Entry Point Not Found - (DirectSound)</a>
<a href="#zoneversionnotsupported" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Zone Version is not supported</a>
<a href="#conrtoller" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">My controller isn't working on IW4x</a>
<a href="#seclevel" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Stuck on Increasing Security Level</a>
<a href="#reloadmenu" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Menu unresponsive / black screen with music on disconnect</a>
<a href="#filesyscheck" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Error during initialization: Couldn't load fileSysCheck.cfg</a>
<a href="#mss32" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">System Error: mss32.dll was not found</a>
<a href="#d3dx9_40" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">System Error: d3dx9_40.dll was not found</a>
<a href="#binkw32" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">System Error: binkw32.dll was not found</a>
<a href="#crosshair" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Crosshair is missing</a>
<a href="#minimap" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Minimap is missing</a>
<a href="#fpsdrops" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">FPS drops, choppy frames and ghosting</a>
<a href="#demoplayback" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Demo playback - Lost connection to host</a>
<a href="#serverdisconnected" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Server disconnected</a>
<a href="#awaitinggame" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Stuck on awaiting gamestate</a>
<a href="#steamhours" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Hours played in Steam shows an excessive amount of time</a>
<a href="#challenges" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Challenges not unlocking</a>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="blackscreen"></a>
Q: Black Screen / Not responding on startup
</p>
<img src="https://i.imgur.com/Dy1LyLI.jpg" alt="blackscreen" class="img-fluid">
<p>
A: To solve this issue, try one of the following solutions
</p>
<ul>
<li>If you have a Nvidia GPU, disable the overlay (see picture). Disable any other overlays as well (Discord, FPS Counters, Recorders, Steam, etc.)</li>
<li>Rightclick iw4x.exe, click Properties, go to the Compatibility tab and enable compatibility mode for Windows 8.</li>
<li>Turn off fullscreen mode by editing /players/iw4x_config.cfg and changing the line that says set r_fullscreen "1" to set r_fullscreen "0" and set r_noborder "0" to set r_noborder "1". Alternatively, run this batch file in your
game folder: <a href="https://cdn.discordapp.com/attachments/275267435945263104/589988562997608486/fullscreen_0.bat">fullscreen_0.bat</a></li>
<li>Disable DEP. Run this batch file as admin: <a href="https://cdn.discordapp.com/attachments/275267435945263104/544154785943650334/dep_disabler.bat">dep_disabler.bat</a></li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fatalerror"></a>
Q: (0xc000005) Fatal Error on Launch
</p>
<p>
A: To solve this issue, please replace your IW4x.dll with this one: <a href="https://github.com/XLabsProject/iw4x-client/releases/download/v0.6.1/iw4x.dll">here</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fatalerror2"></a>
Q: (0xc000007b) Fatal Error
</p>
<p>
A: To solve this issue, try one of the following solutions
</p>
<ul>
<li>Download and run the <a href="http://www.computerbase.de/downloads/systemtools/all-in-one-runtimes/">following program</a> (Installs/repairs runtimes)</li>
<li>If you downloaded any individual DLL's from Google sesrch results and placed them in your folder then YOU NEED TO REMOVE THEM! They can cause this error and are also used to spread malware</li>
<li>Try disabling your antivirus / Add an exception for IW4x</li>
<li>Make sure Windows is completely updated</li>
<li>Reinstall a clean version of Windows as a last resort</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="modlist"></a>
Q: Failed to download Mod List
</p>
<p>
A: Contact the server owner and inform them of the problem (Suggest a server restart).
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="xuid"></a>
Q: XUID doesn't match the certificate
</p>
<p>
A: Close IW4x, and delete players/guid.dat from your game folder.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="couldnotloadimage"></a>
Q: Couldn't load image 'AnyImageNameHere'
</p>
<img src="https://i.imgur.com/E0QovYi.jpg" alt="could not load image" class="img-fluid">
<p>
A: Run our <a href="iw4x_repair">repair guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="lowservers"></a>
Q: Low amount of servers
</p>
<p>
A: To see more servers, try the following solutions
</p>
<ul>
<li>Open the ingame console and check the values for <code>net_serverQueryLimit</code> and <code>net_serverFrames</code></li>
<li>Lower them both, step by step, until the amount of servers rise. (Alternatively, set them to their minimum and increase them one by one until your server amount goes up.)</li>
<li>As a last resort you can try entering the following command into the console while at the main menu /addnode 74.91.119.236</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="zeroservers"></a>
Q: No servers
</p>
<p>
A: Download and place <a href="https://cdn.discordapp.com/attachments/275267435945263104/766809297047781426/nodes.dat">nodes.dat</a> into your players folder, overwriting the existing one.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="entrypointnotfound"></a>
Q: Entry Point Not Found - (DirectSound)
</p>
<img src="https://i.imgur.com/Dhv3161.jpg" alt="entry point not found" class="img-fluid">
<p>
A: Review and follow the <a href="iw4x_repair">Repair Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="zoneversionnotsupported"></a>
Q: Zone Version is not supported
</p>
<img src="https://i.imgur.com/SVRNaCj.jpg" alt="zone version not supported" class="img-fluid">
<p>
A: Review and follow the <a href="iw4x_repair">Repair Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="conrtoller"></a>
Q: My controller isn't working on IW4x
</p>
<p>
A: Follow the <a href="iw4x_controllers">Controller Guide.</a>
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="seclevel"></a>
Q: Stuck on Increasing Security Level
</p>
<p>
A: Wait patiently, grab yourself a cup of tea while you wait. 🍵
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="reloadmenu"></a>
Q: Menu unresponsive / black screen with music on disconnect
</p>
<p>
A: To solve this issue, try the following solutions
</p>
<ul>
<li>Open the in-game console via the tilde key on your keyboard and enter the following command <code>/reloadmenus</code></li>
<li>Another option is to simply close the game and relaunch it</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="filesyscheck"></a>
Q: Error during initialization: Couldn't load fileSysCheck.cfg
</p>
<img src="https://i.imgur.com/7hKCF6d.jpg" alt="file sys check" class="img-fluid">
<p>
A: Review and follow the <a href="iw4x_repair">Repair Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="mss32"></a>
Q: System Error: mss32.dll was not found
</p>
<img src="https://i.imgur.com/Q1QuHni.jpg" alt="mss32.dll missing" class="img-fluid">
<p>
A: Review and follow the <a href="iw4x_repair">Repair Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="d3dx9_40"></a>
Q: System Error: d3dx9_40.dll was not found
</p>
<img src="https://i.imgur.com/0hQfjVJ.jpg" alt="d3dx9_40.dll was not found" class="img-fluid">
<p>
A: Install DirectX 9.0, you can do so from the pre-packed installer that comes with MW2, It's located at: Call of Duty Modern Warfare 2\Redist\DirectX\DXSETUP.exe, simply run the installer and restart your PC to resolve the error.
</p>
<p>
If you don't have the redist folder you can download the installer manually. (Run directx_mar2009_redist.exe extract to a location of your choice then run DXSETUP.exe):
<a href="https://www.microsoft.com/en-us/download/details.aspx?id=35">DirectX End-User Runtime Web Installer</a>
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="binkw32"></a>
Q: System Error: binkw32.dll was not found
</p>
<p>
A: Review and follow the <a href="iw4x_repair">Repair Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="crosshair"></a>
Q: Crosshair is missing
</p>
<p>
A: To restore the crosshair, try the following solutions
</p>
<ul>
<li>Open the in-game console via the tilde key on your keyboard and enter the following command <code>/ui_drawcrosshair 1</code></li>
<li>Alternatively you can manually edit your configuration file (iw4x_config.cfg) located in players folder of your MW2 folder and edit the line <code>/ui_drawcrosshair</code> and set it's value to 1</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="minimap"></a>
Q: Minimap is missing
</p>
<p>
A: To restore the minimap, try the following solutions
</p>
<ul>
<li>Open the in-game console via the tilde key on your keyboard and enter the following command /hud_enable 1</li>
<li>Alternatively, you can manually edit your configuration file (iw4x_config.cfg) located in players folder of your MW2 folder and edit the line /hud_enable and set it's value to 1</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fpsdrops"></a>
Q: FPS drops, choppy frames and ghosting
</p>
<p>
A: To solve this issue, try one of the following solutions
</p>
<ul>
<li>Disable the Nvidia overlay</li>
<li>Disable any recording software / overlays / external fps counters</li>
<li>If you have IW4x set to fullscreen mode try switching it to borderless windowed mode</li>
<li>Restart your PC (The good old turn it off and back on method)</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="demoplayback"></a>
Q: Demo playback - Lost connection to host
</p>
<p>
A: Currently, there is no solution to this issue due the demo code in IW4 being experimental and not compatible with laptop based killstreaks. To read more on this issue see the <a href="https://github.com/XLabsProject/iw4x-client/issues/16">github issue report</a> The only workaround is to not use laptop based killstreaks if you plan to playback your gameplay without issue
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="awaitinggame"></a>
Q: Stuck on awaiting gamestate
</p>
<p>
A: To solve this issue, try the following solutions
</p>
<ul>
<li>If you are recieving this issue in a private match, the cause results from your in-game name containing invalid characters. Please make sure to remove any symbols / non english characters.</li>
<li>If you are recieving this issue in a public match, the issue is related to your network. Try restarting your pc and router. Failing that, try switching to a wired connection if you are on WiFi or try another network if one
is available.</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="serverdisconnected"></a>
Q: Server disconnected
</p>
<p>
A: To solve this issue, try the following solutions
</p>
<ul>
<li>If you are recieving this issue in a private match, the cause results from your in-game name containing invalid characters. Please make sure to remove any symbols / non english characters.</li>
<li>If your name does not contain invalid characters, it may be due to you having the same guid as someone else. Delete players/guid.dat</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamhours"></a>
Q: Hours played in Steam shows an excessive amount of time
</p>
<p>
A: To fix this issue, try the following solutions
</p>
<ul>
<li>The simplest solution is to exit Steam prior to lauching IW4x. IW4x will see steam is not running and not attempt to launch steam integration. This prevents MW2 hours being recorded.</li>
<li>A second solution is to launch IW4x with the <code>-nosteam</code> parameter. This will disable steam intergration while Steam is open in the background. To add the parameter right click IW4x.exe and select Create Shortcut.
This will create a new file called 'iw4x.exe - Shortcut' right click this new file and select properties. Then in the target field add the -nosteam parameter. Example target field: C:\Games\MW2\iw4x.exe -nosteam</li>
</ul>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="challenges"></a>
Q: Challenges not unlocking
</p>
<p>
A: In order to start progressing a challenge, you must view it once from within the barracks menu, to remove it's New status. Your challenges should now unlock as normal.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

388
website/iw4x_faq.html Normal file
View File

@ -0,0 +1,388 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x faq">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Frequently asked questions related to the IW4x client and server." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Frequently asked questions related to the IW4x client and server." />
<meta name="twitter:url" content="https://xlabs.dev/iw4x_faq" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x FAQ | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw4x_banner.jpg" alt="IW4x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x <span>FAQ</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Frequently Asked Questions about the IW4x Project.</p>
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Experiencing errors? View our error page<a href="iw4x_errors"> HERE</a>.</p>
<a href="#steam" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Can I use my Steam copy of Modern Warfare 2 to play IW4x?</a>
<a href="#steamplayers" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">On IW4x, can I play with players on Steam or Steam players play with me?</a>
<a href="#bots" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How do I play with bots?</a>
<a href="#modguide" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How do I install mods?</a>
<a href="#steamvac" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Will IW4x get me VAC banned?</a>
<a href="#cheaters" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Is IW4x full of cheaters?</a>
<a href="#steamrank" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Does my Steam rank and stats carry over to IW4x?</a>
<a href="#customrank" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How do I set a custom prestige and level?</a>
<a href="#sensitivity" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How do I change my sensitivity?</a>
<a href="#fov" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I change my Field of View (FOV)?</a>
<a href="#devmap" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I use cheat protected commands in private match such as noclip?</a>
<a href="#fps" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I improve my FPS?</a>
<a href="#lowfps" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Why is my gaming laptop getting low FPS?</a>
<a href="#reportcheaters" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I report cheaters?</a>
<a href="#downloadmods" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Where can I download mods?</a>
<a href="#securitylevel" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">What is security level and why am I stuck on it?</a>
<a href="#mpport" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">What port does MW2 multiplayer use by default?</a>
<a href="#spport" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">What port does MW2 singleplayer run on by default?</a>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steam"></a>
Q: Can I use my Steam copy of Modern Warfare 2 to play IW4x?
</p>
<p>
A: You certainly can! A Steam copy of MW2 is the prefered way to play IW4x. Read the <a href="support_iw4x_client">Install Guide</a> to learn how to use your Steam copy.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamplayers"></a>
Q: On IW4x, can I play with players on Steam or Steam players play with me?
</p>
<p>
A: IW4x is entirely seperate from Steam MW2 services, so it is not possible to play with people playing on the Steam version of MW2. You can, however, invite your steam MW2 friends to install IW4x, and then you'll be able to play together.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="bots"></a>
Q: How do I play with bots?
</p>
<p>
A: Using the console, you can spawn test clients. These are dumb bots lacking any AI and do not move. The command to spawn these test clients is <code>/spawnbots 17</code> (The number is the amount you wish to spawn). The alternative
is to use a bot mod such as <a href="https://www.moddb.com/mods/bot-warfare">Bot-Warfare</a>. This will give the bots pathing and AI making them perfect for an offline match.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="modguide"></a>
Q: How do I install mods?
</p>
<p>
A: Please follow the <a href="mod_guide">Mod Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamvac"></a>
Q: Will IW4x get me VAC banned?
</p>
<p>
A: The short answer is no. IW4x is completely external to Steam and Steam Servers (You don't play with Steam users). It's impossible to get VAC banned. IW4x players only play with fellow IW4x players as the servers are completely seperate from Steam.
You are at no risk of recieving a VAC ban.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="cheaters"></a>
Q: Is IW4x full of cheaters?
</p>
<p>
A: Absolutely not! In-fact, IW4x has far less cheaters than Steam servers due to it's more advanced anti-cheat system, preventing .dll and process hooking exploits that plague Steam. Futhermore, server owners have full moderation control unlike Steam
as explained below. If cheaters do slip through the net, they can be quickly banned.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamrank"></a>
Q: Does my Steam rank and stats carry over to IW4x?
</p>
<p>
A: No. When you start IW4x, you will be starting at level 1. As stated above, IW4x is external from Steam, so you will have a separate rank, classes, title etc. When, and if, you go back to Steam MW2 you will still have the same rank you had before. IW4x
does not alter this at all. However, you can always manually set your rank back to the level you were if you wish as this is allowed, or just use the unlock all button in the barracks menu to get 10th prestige level 70 with
everything unlocked.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="customrank"></a>
Q: How do I set a custom prestige and level?
</p>
<p>
A: To set a custom prestige, open the console pressing the tilde key (~) and type the following: <code>\setplayerdata prestige x</code>. You can set your prestige to be 0 through 11. The console command for setting a custom
level is: <code>\setplayerdata experience x</code>. A list of experience for all the levels can be found <a href="https://i.imgur.com/M7Pi1JN.png">here</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="sensitivity"></a>
Q: How do I change my sensitivity?
</p>
<p>
A: You can change your sensitivty either though the options menu in-game or for more precise values use the command <code>/sensitivty 1</code> (Replace the number with your desired sensitivty).
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fov"></a>
Q: How can I change my Field of View (FOV)?
</p>
<p>
A: You can change your FOV by using the in-game menu or using the console command <code>/cg_fov 90</code> (Replace the number with your desired FOV).
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="devmap"></a>
Q: How can I use cheat protected commands in private match such as noclip?
</p>
<p>
A: You must use the <code>devmap</code> command to load a map, this enables the use of cheat protected commands as it toggles sv_cheats to 1. Example /devmap mp_highrise. For more information on console commands, see our guide:
<a href="console_commands">Console Commands Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fps"></a>
Q: How can I improve my FPS?
</p>
<p>
A: The best way is to go into the graphic options of the game and lower all the settings. The next step you can take is to lower your game's resolution. Keep lowering it until you reach your desired FPS. If your FPS is still too low, there's a good chance
your PC isn't good enough to play MW2.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="lowfps"></a>
Q: Why is my gaming laptop getting low FPS?
</p>
<p>
A: By default, many gaming laptops use intergrated CPU graphics to preserve battery. You may need to force IW4x to use your dedicated graphics card.
</p>
<ol>
<li>Go to the NVIDIA Control Panel by right clicking on your desktop and click on "NVIDIA Control Panel".</li>
<li>In the default screen that pops up (it should be "manage 3D settings", and the "Program Settings" tab should be automatically selected), under "1. Select a program to customize:" hit the "Add" button.</li>
<li>From here, navigate to the folder where IW4x is installed.</li>
<li>Select IW4x.exe and hit open.</li>
<li>Then, under "2. Select the preferred graphics processor for this program:" open the drop-down menu and select "High-performance NVIDIA processor".</li>
<li>Finally, hit apply in the far bottom right corner, and you should be good to go!</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="reportcheaters"></a>
Q: How can I report cheaters?
</p>
<p>
A: IW4x has no global control over server owners or what rules they enforce / who they choose to ban. For this reason, if you encounter a cheater you must report them to the server owner you encountered the cheater on. Most good server provide contact
information such as a Discord or website. Note: If a server has poor moderation and doesn't ban cheaters, it's advised you don't play on their servers.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="downloadmods"></a>
Q: Where can I download mods?
</p>
<p>
A: There is no one central location to download mods. For this reason, Google is your best bet at locating mods.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="securitylevel"></a>
Q: What is security level and why am I stuck on it?
</p>
<p>
A: Security level is a built in security mechanism that generates a unique ID. It's computationally intense and may take a while to complete. Please be patient.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="mpport"></a>
Q: What port does MW2 multiplayer use by default?
</p>
<p>
A: The default port is 28960. This port needs to be forwarded on the correct protocols if you wish to play private matches with friends. 28960 on the protocols (UDP & TCP) needs to be forwarded.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="spport"></a>
Q: What port does MW2 singleplayer run on by default?
</p>
<p>
A: The default port is 28961. This port needs to be forwarded on the correct protocols if you wish to host a spec ops lobby with a friend. 28961 on the protocols (UDP & TCP) needs to be forwarded.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

View File

@ -0,0 +1,124 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x private match guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Private Match Guide for IW4x client." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Private Match Guide for IW4x client." />
<meta name="twitter:url" content="https://xlabs.dev/iw4x_privatematch" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Private Match Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw4x_banner.jpg" alt="IW4x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x PRIVATE MATCH <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to play private match with friends for IW4x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<h3>Connecting to your friends:</h3>
<ol>
<li>Go to <a href="https://ipchicken.com">here</a> and PM anyone who wants to join your IP Address.</li>
<li>Start IW4x and select 'CREATE GAME' from the main menu.</li>
<li>Click 'START GAME'.</li>
<li>Tell anyone who wants to join, open the console by using the tilde key while at the main menu.</li>
<li>Get them to enter the following command, replacing 'HostsIPAddress' with the IP you previously sent him: <code>/connect HostsIPAddress:28960</code></li>
</ol>
<h3>Failed to join:</h3>
<ol>
<li>If you followed the above correctly and your friends are unable to join you or you are unable to join them, the host of the private match will need to port forward in order for them to connect to you or you connect to them.</li>
<li>Port Forward port "28960" UDP & TCP</li>
<li>You can find how to do this by Googling 'YourRouterName Port Forwarding'</li>
<li>Note: If port forwarding is too complex, just stick to playing public servers, or maybe join an empty server so you have the same experience as a private game.</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

133
website/iw4x_repair.html Normal file
View File

@ -0,0 +1,133 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x repair guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Repair guide for the IW4x client." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Repair guide for the IW4x client." />
<meta name="twitter:url" content="https://xlabs.dev/iw4x_repair" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Repair Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw4x_banner.jpg" alt="IW4x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x REPAIR <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to repair a broken IW4x install.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<!-- <h4>
Requirements:
</h4>
<ul>
<li><a href="https://www.fosshub.com/qBittorrent.html">qBittorrent</a></li>
</ul>
<h4>
Getting Started:
</h4> -->
<ol>
<li>Locate your MW2 Install, and make note of the folder name and folder path (Your folder name may differ from the example below). </li>
<img src="https://i.imgur.com/jEES4th.jpg" alt="mw2 install folder" width="539" height="344" class="img-fluid">
<li>Download the following <a href="https://dss0.cc/alterwarez/download/iw4x_full_game.torrent">torrent</a> and open it with qBittorent.</li>
<li>Once prompted with the following screen, click on the icon marked in red:</li>
<img src="https://i.imgur.com/TXFaZlh.png" alt="browse for mw2 files" width="568" height="380" class="img-fluid">
<li>Browse to the location of your MW2 folder and mark it by clicking on it once. Now click "Select Folder":</li>
<img src="https://i.imgur.com/Uok4tEO.jpg" alt="select mw2 folder" width="467" height="413" class="img-fluid">
<li>IMPORTANT: Under the content layout dropdown select "Don't create subfolder", after that hit OK to start the repair process:</li>
<img src="https://i.imgur.com/HQZKe1P.png" width="539" height="344" class="img-fluid">
<li>The torrent client will now check your game files and re-download missing or corrupted ones.</li>
<li>Once your torrent says <code>Seeding</code>, click on the torrent and hit the pause button.</li>
<img src="https://i.imgur.com/Mg3yxSn.png" width="500" height="200" alt="qBit Stop Seeding" class="img-fluid">
<p>Congratulations! Your game should now be repaired!</p>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

BIN
website/iw6/motd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

7
website/iw6/motd.txt Normal file
View File

@ -0,0 +1,7 @@
^3Welcome to IW6x^7
Support us on Patreon to get special rewards: ^1patreon.com/XLabsProject^7
Follow us on Twitter: ^5@XLabsProject^7
Visit ^2https://xlabs.dev ^7for more info!

View File

@ -0,0 +1,120 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x controller guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Controller Guide for IW6x client." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Controller Guide for IW6x client." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_controllers" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW6x Controller Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw6x_banner.png" alt="IW6x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW6x CONTROLLER <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to setup controllers for IW6x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<h3>
Xbox
</h3>
<p>IW6x should support xbox controllers out of the box. If it does not work, make sure "Gamepad Support" is enabled in settings.</p>
<h3>Playstation</h3>
<ol>
<li>Download <a href="https://github.com/Ryochan7/DS4Windows/releases/latest">DS4Windows</a>, make sure you pick DS4Windows_xxx_x64.zip</li>
<li>Install/Extract it to a safe place and open it.</li>
<li>It should detect your controller, but if it does not, you may need to install the driver.</li>
<li>Check if gamepad works in IW6x. If there is still problems, you can join the <a href="https://discord.gg/STm3JVx8VX"> Discord</a> and ask for support in the #iw6x-support channel.</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

142
website/iw6x_download.html Normal file
View File

@ -0,0 +1,142 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<!--
<meta http-equiv="refresh" content="0; URL=https://ci.appveyor.com/api/projects/XLabsProject/iw6x-client/artifacts/build%2Fbin%2Fx64%2FRelease%2Fiw6x.exe?branch=master&job=Environment%3A%20APPVEYOR_BUILD_WORKER_IMAGE%3DVisual%20Studio%202019%2C%20PREMAKE_ACTION%3Dvs2019%2C%20CI%3D1%3B%20Configuration%3A%20Release"/>
<meta http-equiv="refresh" content="0; url=https://github.com/XLabsProject/iw6x-client/releases/latest"/>
-->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw6x, x labs, iw6x download, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x faq">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Client download for IW6x" />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Client download for IW6x" />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_download" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW6x Download | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
<script language="javascript" type="text/javascript">
function GetLatestReleaseInfo() {
$.getJSON("https://api.github.com/repos/XLabsProject/iw6x-client/releases/latest").done(function(release) {
var asset = release.assets[0];
$(".download").attr("href", asset.browser_download_url);
window.location.replace(asset.browser_download_url);
});
}
//GetLatestReleaseInfo();
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw6x_banner.png" alt="IW6x">
</div>
</div>
<div class="line"></div>
<h2>IW6x Download</h2>
<p id="download-block" style="display: none;">Click <a href="https://master.xlabs.dev:444/iw6x/master/Release/build/bin/x64/Release/iw6x.exe">here</a> to download IW6x.</p>
<p id="patreon-block" style="display: none;">
If you like our projects, consider donating on patreon:<br>
<a href="https://www.patreon.com/xlabsproject" class="btn btn-common patreon-button"><i class="fab fa-patreon"></i>&nbsp;&nbsp;&nbsp;Patreon</a>
</p>
<script>
function unlocker() {
setTimeout(function() {
$("#patreon-block").show();
$("#download-block").show();
$("#twitter-block").hide();
}, 1000);
return true;
}
</script>
<p id="twitter-block">
Follow us on twitter to unlock the download:<br>
<a href="https://twitter.com/XLabsProject" target="_blank" onclick="unlocker()" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i class="fab fa-twitter"></i>&nbsp;&nbsp;&nbsp;Twitter</a>
</p>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script language="javascript" type="text/javascript">
function GetLatestReleaseInfo() {
$.getJSON("https://api.github.com/repos/XLabsProject/iw6x-client/releases/latest").done(function(release) {
var asset = release.assets[0];
$(".download").attr("href", asset.browser_download_url);
window.location.replace(asset.browser_download_url);
});
}
//GetLatestReleaseInfo();
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

235
website/iw6x_errors.html Normal file
View File

@ -0,0 +1,235 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x errors">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Errors related to the IW6x client and server with potential fixes. " />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Errors related to the IW6x client and server with potential fixes." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_errors" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW6x Errors | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw6x_banner.png" alt="IW6x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW6x <span>Errors</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Learn how to fix your game here.</p>
<a href="#MENU_CONTENT_NOT_AVAILABLE" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">MENU_CONTENT_NOT_AVAILABLE</a>
<a href="#no_bsp" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Couldn't find the bsp for this map.</a>
<a href="#script_error" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Script Error: An error has occurred in the script on this page.</a>
<a href="#xinput" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Unable to load import '#4' from module 'XINPUT1_3.dll'</a>
<a href="#blank_launcher" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Blank Menu (No Singleplayer/Multiplayer Option)</a>
<a href="#disc_read" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Disc read error</a>
<a href="#game_binary" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Failed to read/map game binary</a>
<a href="#steam_api64" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">The code execution cannot proceed because steam_api64.dll was not found.</a>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="MENU_CONTENT_NOT_AVAILABLE"></a>
Q: MENU_CONTENT_NOT_AVAILABLE
</p>
<img src="https://i.imgur.com/m6tjRb9.png" alt="MENU_CONTENT_NOT_AVAILABLE" class="img-fluid">
<p>
A: Install the <a href="support_iw6x_client">DLCs</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="no_bsp"></a>
Q: Couldn't find the bsp for this map.
</p>
<img src="https://i.imgur.com/LhirQ3z.png" alt="Couldn't find the bsp for this map" class="img-fluid">
<p>
A: Install the <a href="support_iw6x_client">DLCs</a>, or if you are 100% sure you installed them right, just restart your game.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="script_error"></a>
Q: Script Error: An error has occurred in the script on this page.
</p>
<img src="https://i.imgur.com/0b7l2no.png" alt="Script Error" class="img-fluid">
<p>
A: Try restarting the launcher. If it still happens, make a shortcut of IW6x.exe and add -multiplayer at the end of the target field.
</p>
<img src="https://i.imgur.com/1tWW4Nm.png" alt="Solution -multiplayer" class="img-fluid">
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="xinput"></a>
Q: Unable to load import '#4' from module 'XINPUT1_3.dll'
</p>
<img src="https://i.imgur.com/C6c1GyF.png" alt="XINPUT1_3.dll" class="img-fluid">
<p>
A: Install <a href="https://www.microsoft.com/en-us/download/details.aspx?id=35">DirectX</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="blank_launcher"></a>
Q: Blank Menu (No Singleplayer/Multiplayer Option)
</p>
<img src="https://i.imgur.com/8TaY8pF.png" alt="Blank Menu" class="img-fluid">
<p>
A: Try restarting the launcher or, if it still happens, make a shortcut of IW6x.exe and add -multiplayer at the end of the target field. <img src="https://i.imgur.com/1tWW4Nm.png" class="img-fluid">
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="disc_read"></a>
Q: Disc read error
</p>
<img src="https://i.imgur.com/5y13KBK.png" alt="Disc read error" class="img-fluid">
<p>
A: Verify your game files through Steam, or use the <a href="iw6x_repair"> IW6x Repair Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="game_binary"></a>
Q: Failed to read game binary
</p>
<img src="https://i.imgur.com/LZ4ds8h.png" alt="Failed to read game binary" class="img-fluid">
<p>
A: Make sure IW6x.exe is in your Ghosts directory. If this still happens, verify your game files using Steam or use the <a href="iw6x_repair">IW6x Repair Guide</a>
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steam_api64"></a>
Q: The code execution cannot proceed because steam_api64.dll was not found.
</p>
<img src="https://i.imgur.com/J7qNtru.png" alt="steam_api64.dll was not found" class="img-fluid">
<p>
A: Make sure you are launching the game with IW6x.exe, instead of iw6mp64_ship.exe.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

300
website/iw6x_faq.html Normal file
View File

@ -0,0 +1,300 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x faq">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Frequently asked questions related to the IW6x client and server." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Frequently asked questions related to the IW6x client and server.." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_faq" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW6x FAQ | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw6x_banner.png" alt="IW6x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW6x <span>FAQ</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Frequently Asked Questions about the IW6x Project.</p>
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Experiencing errors? View our error page<a href="iw6x_errors"> HERE</a>.</p>
<a href="#name" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I change my name?</a>
<a href="#classes" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">My classes don't work online?</a>
<a href="#steam" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Can I use my Steam copy of Ghosts to play IW6x?</a>
<a href="#steamfriends" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">On IW6x, can I play with players on Steam or Steam players play with me?</a>
<a href="#steamvac" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Will IW6x get me VAC banned?</a>
<a href="#steamrank" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Does my Steam rank and stats carry over to IW6x?</a>
<a href="#sensitivity" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I change my sensitivity?</a>
<a href="#fov" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I change my FOV?</a>
<a href="#devmap" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I use cheat protected commands in private match such as noclip?</a>
<a href="#fps" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I improve my FPS?</a>
<a href="#lowfps" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">Why is my gaming laptop getting low FPS?</a>
<a href="#reportcheaters" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms">How can I report cheaters?</a>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="name"></a>
Q: How do I change my name?
</p>
<p>
A: To change your name, open the in-game console (press the ~ key) and type <code>name yourname</code>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="classes"></a>
Q: My classes don't work online?
</p>
<p>
A: For now, you must make classes in private match.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steam"></a>
Q: Can I use my Steam copy of Ghosts to play IW6x?
</p>
<p>
A: You certainly can! A Steam copy of Ghosts is the prefered way to play IW6x. Read the <a href="support_iw6x_client">Install Guide</a> to learn how to use your Steam copy.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamfriends"></a>
Q: On IW6x, can I play with players on Steam or Steam players play with me?
</p>
<p>
A: IW6x is entirely seperate from Steam services, so it is not possible to play with people playing on the Steam version of Ghosts. You can, however, invite your Steam Ghosts friends to install IW6x, and then you'll be able to play together.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamvac"></a>
Q: Will IW6x get me VAC banned?
</p>
<p>
A: The short answer is no. IW6x is completely external to Steam and Steam Servers (You don't play with Steam users). It's impossible to get VAC banned. IW6x players only play with fellow IW6x players as the servers are completely seperate from Steam.
You are at no risk of recieving a VAC ban.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<!-- <div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
Q: Is IW6x full of cheaters?
</p>
<p>
A: Absolutely Not! [...]
</p>
</div>
</div> -->
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="steamrank"></a>
Q: Does my Steam rank and stats carry over to IW6x?
</p>
<p>
A: No. When you start IW6x, you will be starting fresh. As stated above, IW6x is external from Steam. So you will have a separate rank, classes, title, etc. When, and if, you go back to Steam Ghosts, you will still have the same rank you had before in
Steam. IW6x does not alter this at all. However, you can always manually set your rank back to the level you were if you wish as this is allowed, or just use the command <code>unlockstats</code> to get max prestige level 60 everything unlocked.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="sensitivity"></a>
Q: How do I change my sensitivity?
</p>
<p>
A: You can change your sensitivty either though the options menu in-game or for more precise values use the command <code>sensitivty 1</code> (Replace the number with your desired sensitivty).
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fov"></a>
Q: How can I change my Field of View (FOV)?
</p>
<p>
A: Using the in-game menu or using the console command <code>cg_fov 90</code> (Replace the number with your desired FOV).
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="devmap"></a>
Q: How can I use cheat protected commands in private match such as noclip?
</p>
<p>
A: You must use the <code>sv_cheats 1</code> command to enable cheats. For more information on console commands, see the <a href="console_commands">Console Commands Guide</a>.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="fps"></a>
Q: How can I improve my FPS?
</p>
<p>
A: The best way is to go into the graphic options of the game and lower all the settings. The next step you can take is to lower your games resolution. Keep lowering it until you reach your desired FPS. If your FPS is still low, there's a good chance
your PC isn't good enough to play IW6x.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="lowfps"></a>
Q: Why is my gaming laptop getting low FPS?
</p>
<p>
A: By default many gaming laptops use intergrated CPU graphics to preserve battery. It may be the case that you need to force IW6x to use your dedicated graphics card.
</p>
<ol>
<li>Go to the NVIDIA Control Panel by right clicking on your desktop and clicking on "NVIDIA Control Panel".</li>
<li>In the default screen that pops up (it should be "manage 3D settings", and the "Program Settings" tab should be automatically selected), under "1. Select a program to customize:" hit the "Add" button.</li>
<li>From here, navigate to the folder where your IW6x is installed.</li>
<li>Select IW6x.exe and click Open.</li>
<li>Then, under "2. Select the preferred graphics processor for this program". Open the drop-down menu and select "High-performance NVIDIA processor".</li>
<li>Finally, hit Apply in the far bottom right corner, and the correct GPU should be used for the game.</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
<a class="anchor" id="reportcheaters"></a>
Q: How can I report cheaters?
</p>
<p>
A: Report cheaters to the admins or owner of the server. Most server owners will provide links to their Discord or website.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

View File

@ -0,0 +1,125 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x private match guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Private Match Guide for IW6x client." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Private Match Guide for IW6x client." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_privatematch" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW6x Private Match Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw6x_banner.png" alt="IW6x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW6x PRIVATE MATCH <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to play private match with friends for IW6x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<h3>
<a class="anchor" id="privatematch"></a>
IW6x Private Match Guide:
</h3>
<ol>
<li>You can go to <a href="https://ipchicken.com">here</a> to get your IP Address and message anyone who wants to join it.</li>
<li>Start IW6x and launch a private match.</li>
<li>Tell anyone who wants to join to open the console by using the tilde key while at the main menu.</li>
<li>Get them to enter the following command, replacing 'HostsIPAddress' with the IP you previously sent him: <code>/connect HostsIPAddress:27016</code></li>
</ol>
<h3>Failed to join:</h3>
<ol>
<li>If you followed the above correctly and your friends are unable to join them you the host of the private match will need to port forward in order for them to connect to you.</li>
<li>Port Forward port 27016 UDP & TCP</li>
<li>You can find how to do this by Googling 'YourRouterName Port Forwarding'</li>
<li>Note: If port forwarding is too complex, just stick to playing public servers, or maybe join an empty server so you have the same experience as a private game.</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

134
website/iw6x_repair.html Normal file
View File

@ -0,0 +1,134 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x repair guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Repair guide for the IW6x client for users experiencing issues." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Repair guide for the IW6x client for users experiencing issues." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_repair" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW6x Repair Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/iw6x_banner.png" alt="IW6x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW6x REPAIR <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to repair a broken IW6x install.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<!-- <h4>
Requirements:
</h4>
<ul>
<li><a href="https://www.fosshub.com/qBittorrent.html">qBittorrent</a></li>
<li>IMPORTANT: This guide only works if you originally installed the game from the torrent, if you use steam you need to verify inside of steam.</li>
</ul> -->
<h4>
Getting Started:
</h4>
<ol>
<li>Locate your IW6x Install, and make note of the folder name and folder path (Your folder name may differ from the example below). </li>
<img src="https://i.imgur.com/w5qjDkK.jpg" width="539" height="344" class="img-fluid">
<li>Download the following <a href="https://dss0.cc/alterwarez/download/iw6x_full_game.torrent">torrent</a> and open it with qBittorent.</li>
<li>Once prompted with the following screen click on the icon marked in red:</li>
<img src="https://i.imgur.com/UieY9yh.png" width="568" height="380" class="img-fluid">
<li>Browse to the location of your IW6x folder and mark it by clicking on it once. Now click "Select Folder":</li>
<img src="https://i.imgur.com/W0vgmwq.jpg" width="467" height="413" class="img-fluid">
<li>IMPORTANT: Under the content layout dropdown select "Don't create subfolder", after that hit OK to start the repair process:</li>
<img src="https://i.imgur.com/0ohmghM.png" width="539" height="344" class="img-fluid">
<li>The torrent client will now check your game files and re-download missing or corrupted ones.</li>
<li>Once your torrent says <code>Seeding</code>, click on the torrent and hit the pause button.</li>
<img src="https://i.imgur.com/Mg3yxSn.png" width="500" height="200" alt="qBit Stop Seeding" class="img-fluid">
<p>Congratulations! Your game should now be repaired!</p>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

7
website/js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

80
website/js/classie.js Normal file
View File

@ -0,0 +1,80 @@
/*!
* classie - class helper functions
* from bonzo https://github.com/ded/bonzo
*
* classie.has( elem, 'my-class' ) -> true/false
* classie.add( elem, 'my-new-class' )
* classie.remove( elem, 'my-unwanted-class' )
* classie.toggle( elem, 'my-class' )
*/
/*jshint browser: true, strict: true, undef: true */
/*global define: false */
( function( window ) {
'use strict';
// class helper functions from bonzo https://github.com/ded/bonzo
function classReg( className ) {
return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
}
// classList support for class management
// altho to be fair, the api sucks because it won't accept multiple classes at once
var hasClass, addClass, removeClass;
if ( 'classList' in document.documentElement ) {
hasClass = function( elem, c ) {
return elem.classList.contains( c );
};
addClass = function( elem, c ) {
elem.classList.add( c );
};
removeClass = function( elem, c ) {
elem.classList.remove( c );
};
}
else {
hasClass = function( elem, c ) {
return classReg( c ).test( elem.className );
};
addClass = function( elem, c ) {
if ( !hasClass( elem, c ) ) {
elem.className = elem.className + ' ' + c;
}
};
removeClass = function( elem, c ) {
elem.className = elem.className.replace( classReg( c ), ' ' );
};
}
function toggleClass( elem, c ) {
var fn = hasClass( elem, c ) ? removeClass : addClass;
fn( elem, c );
}
var classie = {
// full names
hasClass: hasClass,
addClass: addClass,
removeClass: removeClass,
toggleClass: toggleClass,
// short names
has: hasClass,
add: addClass,
remove: removeClass,
toggle: toggleClass
};
// transport
if ( typeof define === 'function' && define.amd ) {
// AMD
define( classie );
} else {
// browser global
window.classie = classie;
}
})( window );

4
website/js/jquery-min.js vendored Normal file

File diff suppressed because one or more lines are too long

8
website/js/jquery.counterup.min.js vendored Normal file
View File

@ -0,0 +1,8 @@
/*!
* jquery.counterup.js 1.0
*
* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal
* Released under the GPL v2 License
*
* Date: Nov 26, 2013
*/(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery);

2098
website/js/jquery.mixitup.js Normal file

File diff suppressed because it is too large Load Diff

223
website/js/jquery.nav.js Normal file
View File

@ -0,0 +1,223 @@
/*
* jQuery One Page Nav Plugin
* http://github.com/davist11/jQuery-One-Page-Nav
*
* Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
* Dual licensed under the MIT and GPL licenses.
* Uses the same license as jQuery, see:
* http://jquery.org/license
*
* @version 3.0.0
*
* Example usage:
* $('#nav').onePageNav({
* currentClass: 'current',
* changeHash: false,
* scrollSpeed: 750
* });
*/
;(function($, window, document, undefined){
// our plugin constructor
var OnePageNav = function(elem, options){
this.elem = elem;
this.$elem = $(elem);
this.options = options;
this.metadata = this.$elem.data('plugin-options');
this.$win = $(window);
this.sections = {};
this.didScroll = false;
this.$doc = $(document);
this.docHeight = this.$doc.height();
};
// the plugin prototype
OnePageNav.prototype = {
defaults: {
navItems: 'a',
currentClass: 'current',
changeHash: false,
easing: 'swing',
filter: '',
scrollSpeed: 750,
scrollThreshold: 0.5,
begin: false,
end: false,
scrollChange: false
},
init: function() {
// Introduce defaults that can be extended either
// globally or using an object literal.
this.config = $.extend({}, this.defaults, this.options, this.metadata);
this.$nav = this.$elem.find(this.config.navItems);
//Filter any links out of the nav
if(this.config.filter !== '') {
this.$nav = this.$nav.filter(this.config.filter);
}
//Handle clicks on the nav
this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
//Get the section positions
this.getPositions();
//Handle scroll changes
this.bindInterval();
//Update the positions on resize too
this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
return this;
},
adjustNav: function(self, $parent) {
self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
$parent.addClass(self.config.currentClass);
},
bindInterval: function() {
var self = this;
var docHeight;
self.$win.on('scroll.onePageNav', function() {
self.didScroll = true;
});
self.t = setInterval(function() {
docHeight = self.$doc.height();
//If it was scrolled
if(self.didScroll) {
self.didScroll = false;
self.scrollChange();
}
//If the document height changes
if(docHeight !== self.docHeight) {
self.docHeight = docHeight;
self.getPositions();
}
}, 250);
},
getHash: function($link) {
return $link.attr('href').split('#')[1];
},
getPositions: function() {
var self = this;
var linkHref;
var topPos;
var $target;
self.$nav.each(function() {
linkHref = self.getHash($(this));
$target = $('#' + linkHref);
if($target.length) {
topPos = $target.offset().top;
self.sections[linkHref] = Math.round(topPos);
}
});
},
getSection: function(windowPos) {
var returnValue = null;
var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
for(var section in this.sections) {
if((this.sections[section] - windowHeight) < windowPos) {
returnValue = section;
}
}
return returnValue;
},
handleClick: function(e) {
var self = this;
var $link = $(e.currentTarget);
var $parent = $link.parent();
var newLoc = '#' + self.getHash($link);
if(!$parent.hasClass(self.config.currentClass)) {
//Start callback
if(self.config.begin) {
self.config.begin();
}
//Change the highlighted nav item
self.adjustNav(self, $parent);
//Removing the auto-adjust on scroll
self.unbindInterval();
//Scroll to the correct position
self.scrollTo(newLoc, function() {
//Do we need to change the hash?
if(self.config.changeHash) {
window.location.hash = newLoc;
}
//Add the auto-adjust on scroll back in
self.bindInterval();
//End callback
if(self.config.end) {
self.config.end();
}
});
}
e.preventDefault();
},
scrollChange: function() {
var windowTop = this.$win.scrollTop();
var position = this.getSection(windowTop);
var $parent;
//If the position is set
if(position !== null) {
$parent = this.$elem.find('a[href$="#' + position + '"]').parent();
//If it's not already the current section
if(!$parent.hasClass(this.config.currentClass)) {
//Change the highlighted nav item
this.adjustNav(this, $parent);
//If there is a scrollChange callback
if(this.config.scrollChange) {
this.config.scrollChange($parent);
}
}
}
},
scrollTo: function(target, callback) {
var offset = $(target).offset().top;
$('html, body').animate({
scrollTop: offset
}, this.config.scrollSpeed, this.config.easing, callback);
},
unbindInterval: function() {
clearInterval(this.t);
this.$win.unbind('scroll.onePageNav');
}
};
OnePageNav.defaults = OnePageNav.prototype.defaults;
$.fn.onePageNav = function(options) {
return this.each(function() {
new OnePageNav(this, options).init();
});
};
})( jQuery, window , document );

2
website/js/jquery.stellar.min.js vendored Normal file

File diff suppressed because one or more lines are too long

497
website/js/jquery.vide.js Normal file
View File

@ -0,0 +1,497 @@
/*
* Vide - v0.5.1
* Easy as hell jQuery plugin for video backgrounds.
* http://vodkabears.github.io/vide/
*
* Made by Ilya Makarov
* Under MIT License
*/
!(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(['jquery'], factory);
} else if (typeof exports === 'object') {
factory(require('jquery'));
} else {
factory(root.jQuery);
}
})(this, function($) {
'use strict';
/**
* Name of the plugin
* @private
* @const
* @type {String}
*/
var PLUGIN_NAME = 'vide';
/**
* Default settings
* @private
* @const
* @type {Object}
*/
var DEFAULTS = {
volume: 1,
playbackRate: 1,
muted: true,
loop: true,
autoplay: true,
position: '50% 50%',
posterType: 'detect',
resizing: true,
bgColor: 'transparent',
className: ''
};
/**
* Not implemented error message
* @private
* @const
* @type {String}
*/
var NOT_IMPLEMENTED_MSG = 'Not implemented';
/**
* Parse a string with options
* @private
* @param {String} str
* @returns {Object|String}
*/
function parseOptions(str) {
var obj = {};
var delimiterIndex;
var option;
var prop;
var val;
var arr;
var len;
var i;
// Remove spaces around delimiters and split
arr = str.replace(/\s*:\s*/g, ':').replace(/\s*,\s*/g, ',').split(',');
// Parse a string
for (i = 0, len = arr.length; i < len; i++) {
option = arr[i];
// Ignore urls and a string without colon delimiters
if (
option.search(/^(http|https|ftp):\/\//) !== -1 ||
option.search(':') === -1
) {
break;
}
delimiterIndex = option.indexOf(':');
prop = option.substring(0, delimiterIndex);
val = option.substring(delimiterIndex + 1);
// If val is an empty string, make it undefined
if (!val) {
val = undefined;
}
// Convert a string value if it is like a boolean
if (typeof val === 'string') {
val = val === 'true' || (val === 'false' ? false : val);
}
// Convert a string value if it is like a number
if (typeof val === 'string') {
val = !isNaN(val) ? +val : val;
}
obj[prop] = val;
}
// If nothing is parsed
if (prop == null && val == null) {
return str;
}
return obj;
}
/**
* Parse a position option
* @private
* @param {String} str
* @returns {Object}
*/
function parsePosition(str) {
str = '' + str;
// Default value is a center
var args = str.split(/\s+/);
var x = '50%';
var y = '50%';
var len;
var arg;
var i;
for (i = 0, len = args.length; i < len; i++) {
arg = args[i];
// Convert values
if (arg === 'left') {
x = '0%';
} else if (arg === 'right') {
x = '100%';
} else if (arg === 'top') {
y = '0%';
} else if (arg === 'bottom') {
y = '100%';
} else if (arg === 'center') {
if (i === 0) {
x = '50%';
} else {
y = '50%';
}
} else {
if (i === 0) {
x = arg;
} else {
y = arg;
}
}
}
return { x: x, y: y };
}
/**
* Search a poster
* @private
* @param {String} path
* @param {Function} callback
*/
function findPoster(path, callback) {
var onLoad = function() {
callback(this.src);
};
}
/**
* Vide constructor
* @param {HTMLElement} element
* @param {Object|String} path
* @param {Object|String} options
* @constructor
*/
function Vide(element, path, options) {
this.$element = $(element);
// Parse path
if (typeof path === 'string') {
path = parseOptions(path);
}
// Parse options
if (!options) {
options = {};
} else if (typeof options === 'string') {
options = parseOptions(options);
}
// Remove an extension
if (typeof path === 'string') {
path = path.replace(/\.\w*$/, '');
} else if (typeof path === 'object') {
for (var i in path) {
if (path.hasOwnProperty(i)) {
path[i] = path[i].replace(/\.\w*$/, '');
}
}
}
this.settings = $.extend({}, DEFAULTS, options);
this.path = path;
// https://github.com/VodkaBears/Vide/issues/110
try {
this.init();
} catch (e) {
if (e.message !== NOT_IMPLEMENTED_MSG) {
throw e;
}
}
}
/**
* Initialization
* @public
*/
Vide.prototype.init = function() {
var vide = this;
var path = vide.path;
var poster = path;
var sources = '';
var $element = vide.$element;
var settings = vide.settings;
var position = parsePosition(settings.position);
var posterType = settings.posterType;
var $video;
var $wrapper;
// Set styles of a video wrapper
$wrapper = vide.$wrapper = $('<div>')
.addClass(settings.className)
.css({
position: 'absolute',
'z-index': -1,
top: 0,
left: 0,
bottom: 0,
right: 0,
overflow: 'hidden',
'-webkit-background-size': 'cover',
'-moz-background-size': 'cover',
'-o-background-size': 'cover',
'background-size': 'cover',
'background-color': settings.bgColor,
'background-repeat': 'no-repeat',
'background-position': position.x + ' ' + position.y
});
// Get a poster path
if (typeof path === 'object') {
if (path.poster) {
poster = path.poster;
} else {
if (path.mp4) {
poster = path.mp4;
} else if (path.webm) {
poster = path.webm;
} else if (path.ogv) {
poster = path.ogv;
}
}
}
// Set a video poster
if (posterType === 'detect') {
findPoster(poster, function(url) {
$wrapper.css('background-image', 'url(' + url + ')');
});
} else if (posterType !== 'none') {
$wrapper.css('background-image', 'url(' + poster + '.' + posterType + ')');
}
// If a parent element has a static position, make it relative
if ($element.css('position') === 'static') {
$element.css('position', 'static');
}
$element.prepend($wrapper);
if (typeof path === 'object') {
if (path.mp4) {
sources += '<source src="' + path.mp4 + '.mp4" type="video/mp4">';
}
if (path.webm) {
sources += '<source src="' + path.webm + '.webm" type="video/webm">';
}
if (path.ogv) {
sources += '<source src="' + path.ogv + '.ogv" type="video/ogg">';
}
$video = vide.$video = $('<video>' + sources + '</video>');
} else {
$video = vide.$video = $('<video>' +
'<source src="' + path + '.mp4" type="video/mp4">' +
'<source src="' + path + '.webm" type="video/webm">' +
'<source src="' + path + '.ogv" type="video/ogg">' +
'</video>');
}
// https://github.com/VodkaBears/Vide/issues/110
try {
$video
// Set video properties
.prop({
autoplay: settings.autoplay,
loop: settings.loop,
volume: settings.volume,
muted: settings.muted,
defaultMuted: settings.muted,
playbackRate: settings.playbackRate,
defaultPlaybackRate: settings.playbackRate
});
} catch (e) {
throw new Error(NOT_IMPLEMENTED_MSG);
}
// Video alignment
$video.css({
margin: 'auto',
position: 'absolute',
'z-index': -1,
top: position.y,
left: position.x,
'-webkit-transform': 'translate(-' + position.x + ', -' + position.y + ')',
'-ms-transform': 'translate(-' + position.x + ', -' + position.y + ')',
'-moz-transform': 'translate(-' + position.x + ', -' + position.y + ')',
transform: 'translate(-' + position.x + ', -' + position.y + ')',
// Disable visibility, while loading
visibility: 'hidden',
opacity: 0
})
// Resize a video, when it's loaded
.one('canplaythrough.' + PLUGIN_NAME, function() {
vide.resize();
})
// Make it visible, when it's already playing
.one('playing.' + PLUGIN_NAME, function() {
$video.css({
visibility: 'visible',
opacity: 1
});
$wrapper.css('background-image', 'none');
});
// Resize event is available only for 'window'
// Use another code solutions to detect DOM elements resizing
$element.on('resize.' + PLUGIN_NAME, function() {
if (settings.resizing) {
vide.resize();
}
});
// Append a video
$wrapper.append($video);
};
/**
* Get a video element
* @public
* @returns {HTMLVideoElement}
*/
Vide.prototype.getVideoObject = function() {
return this.$video[0];
};
/**
* Resize a video background
* @public
*/
Vide.prototype.resize = function() {
if (!this.$video) {
return;
}
var $wrapper = this.$wrapper;
var $video = this.$video;
var video = $video[0];
// Get a native video size
var videoHeight = video.videoHeight;
var videoWidth = video.videoWidth;
// Get a wrapper size
var wrapperHeight = $wrapper.height();
var wrapperWidth = $wrapper.width();
if (wrapperWidth / videoWidth > wrapperHeight / videoHeight) {
$video.css({
// +2 pixels to prevent an empty space after transformation
width: wrapperWidth + 2,
height: 'auto'
});
} else {
$video.css({
width: 'auto',
// +2 pixels to prevent an empty space after transformation
height: wrapperHeight + 2
});
}
};
/**
* Destroy a video background
* @public
*/
Vide.prototype.destroy = function() {
delete $[PLUGIN_NAME].lookup[this.index];
this.$video && this.$video.off(PLUGIN_NAME);
this.$element.off(PLUGIN_NAME).removeData(PLUGIN_NAME);
this.$wrapper.remove();
};
/**
* Special plugin object for instances.
* @public
* @type {Object}
*/
$[PLUGIN_NAME] = {
lookup: []
};
/**
* Plugin constructor
* @param {Object|String} path
* @param {Object|String} options
* @returns {JQuery}
* @constructor
*/
$.fn[PLUGIN_NAME] = function(path, options) {
var instance;
this.each(function() {
instance = $.data(this, PLUGIN_NAME);
// Destroy the plugin instance if exists
instance && instance.destroy();
// Create the plugin instance
instance = new Vide(this, path, options);
instance.index = $[PLUGIN_NAME].lookup.push(instance) - 1;
$.data(this, PLUGIN_NAME, instance);
});
return this;
};
$(document).ready(function() {
var $window = $(window);
// Window resize event listener
$window.on('resize.' + PLUGIN_NAME, function() {
for (var len = $[PLUGIN_NAME].lookup.length, i = 0, instance; i < len; i++) {
instance = $[PLUGIN_NAME].lookup[i];
if (instance && instance.settings.resizing) {
instance.resize();
}
}
});
// https://github.com/VodkaBears/Vide/issues/68
$window.on('unload.' + PLUGIN_NAME, function() {
return false;
});
// Auto initialization
// Add 'data-vide-bg' attribute with a path to the video without extension
// Also you can pass options throw the 'data-vide-options' attribute
// 'data-vide-options' must be like 'muted: false, volume: 0.5'
$(document).find('[data-' + PLUGIN_NAME + '-bg]').each(function(i, element) {
var $element = $(element);
var options = $element.data(PLUGIN_NAME + '-options');
var path = $element.data(PLUGIN_NAME + '-bg');
$element[PLUGIN_NAME](path, options);
});
});
});

94
website/js/main.js Normal file
View File

@ -0,0 +1,94 @@
/*
CounterUp
========================================================================== */
jQuery(document).ready(function( $ ) {
$('.counter').counterUp({
time: 500
});
});
/*
MixitUp
========================================================================== */
$(function(){
$('#portfolio').mixItUp();
});
/*
Touch Owl Carousel
========================================================================== */
$(".touch-slider").owlCarousel({
navigation: false,
pagination: true,
slideSpeed: 1000,
stopOnHover: true,
autoPlay: true,
items: 1,
itemsDesktopSmall: [1024, 1],
itemsTablet: [600, 1],
itemsMobile: [479, 1]
});
$('.touch-slider').find('.owl-prev').html('<i class="fa fa-chevron-left"></i>');
$('.touch-slider').find('.owl-next').html('<i class="fa fa-chevron-right"></i>');
/*
Back Top Link
========================================================================== */
var offset = 200;
var duration = 500;
$(window).scroll(function() {
if ($(this).scrollTop() > offset) {
$('.back-to-top').fadeIn(400);
} else {
$('.back-to-top').fadeOut(400);
}
});
$('.back-to-top').click(function(event) {
event.preventDefault();
$('html, body').animate({
scrollTop: 0
}, 600);
return false;
})
/*
One Page Navigation & wow js
========================================================================== */
jQuery(function($) {
//Initiat WOW JS
new WOW().init();
// one page navigation
$('.main-navigation').onePageNav({
currentClass: 'active'
});
});
jQuery(document).ready(function() {
$('body').scrollspy({
target: '.navbar-collapse',
offset: 195
});
$(window).on('scroll', function() {
if ($(window).scrollTop() > 200) {
$('.fixed-top').addClass('menu-bg');
} else {
$('.fixed-top').removeClass('menu-bg');
}
});
});
/* Nivo Lightbox
========================================================*/
jQuery(document).ready(function( $ ) {
$('.lightbox').nivoLightbox({
effect: 'fadeScale',
keyboardNav: true,
});
});

163
website/js/menu.js Normal file
View File

@ -0,0 +1,163 @@
(function ($) {
"use strict";
$(function () {
var header = $(".start-style");
$(window).scroll(function () {
var scroll = $(window).scrollTop();
if (scroll >= 10) {
header.removeClass('start-style').addClass("scroll-on");
} else {
header.removeClass("scroll-on").addClass('start-style');
}
});
});
//Animation
$(document).ready(function () {
$('body.hero-anime').removeClass('hero-anime');
});
//Menu On Hover
$('body').on('mouseenter mouseleave', '.nav-item', function (e) {
if ($(window).width() > 750) {
var _d = $(e.target).closest('.nav-item'); _d.addClass('show');
setTimeout(function () {
_d[_d.is(':hover') ? 'addClass' : 'removeClass']('show');
}, 1);
}}
);
//Switch light/dark
$("#switch").on('click', function () {
if ($("body").hasClass("dark")) {
$("body").removeClass("dark");
$("#switch").removeClass("switched");
}
else {
$("body").addClass("dark");
$("#switch").addClass("switched");
}
});
// Cleanup Menus
$(".iw4x-menu").on('click', function () {
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$(".iw6x-menu").on('click', function () {
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$(".s1x-menu").on('click', function () {
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$(".guides").on('click', function () {
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$(".socials").on('click', function () {
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
});
// Clean up hover menus
$('.iw4x-menu').mouseover(function() {
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$('.iw6x-menu').mouseover(function() {
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$('.s1x-menu').mouseover(function() {
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$('.guides').mouseover(function() {
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".socials").removeClass("open");
$(".socials").removeClass("show");
});
$('.socials').mouseover(function() {
$(".iw4x-menu").removeClass("open");
$(".iw4x-menu").removeClass("show");
$(".iw6x-menu").removeClass("open");
$(".iw6x-menu").removeClass("show");
$(".s1x-menu").removeClass("open");
$(".s1x-menu").removeClass("show");
$(".guides").removeClass("open");
$(".guides").removeClass("show");
});
})(jQuery);

18
website/js/mixitup.min.js vendored Normal file

File diff suppressed because one or more lines are too long

411
website/js/nivo-lightbox.js Normal file
View File

@ -0,0 +1,411 @@
/*
* Nivo Lightbox v1.3.1
* http://dev7studios.com/nivo-lightbox
*
* Copyright 2013, Dev7studios
* Free to use and abuse under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
;(function($, window, document, undefined){
var pluginName = 'nivoLightbox',
defaults = {
effect: 'fade',
theme: 'default',
keyboardNav: true,
clickImgToClose: false,
clickOverlayToClose: true,
onInit: function(){},
beforeShowLightbox: function(){},
afterShowLightbox: function(lightbox){},
beforeHideLightbox: function(){},
afterHideLightbox: function(){},
beforePrev: function(element){},
onPrev: function(element){},
beforeNext: function(element){},
onNext: function(element){},
errorMessage: 'The requested content cannot be loaded. Please try again later.'
};
function NivoLightbox(element, options){
this.el = element;
this.$el = $(this.el);
this.options = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
this.init();
}
NivoLightbox.prototype = {
init: function(){
var $this = this;
// Need this so we don't use CSS transitions in mobile
if(!$('html').hasClass('nivo-lightbox-notouch')) $('html').addClass('nivo-lightbox-notouch');
if('ontouchstart' in document) $('html').removeClass('nivo-lightbox-notouch');
// Setup the click
this.$el.on('click', function(e){
$this.showLightbox(e);
});
// keyboardNav
if(this.options.keyboardNav){
$('body').off('keyup').on('keyup', function(e){
var code = (e.keyCode ? e.keyCode : e.which);
// Escape
if(code == 27) $this.destructLightbox();
// Left
if(code == 37) $('.nivo-lightbox-prev').trigger('click');
// Right
if(code == 39) $('.nivo-lightbox-next').trigger('click');
});
}
this.options.onInit.call(this);
},
showLightbox: function(e){
var $this = this,
currentLink = this.$el;
// Check content
var check = this.checkContent(currentLink);
if(!check) return;
e.preventDefault();
this.options.beforeShowLightbox.call(this);
var lightbox = this.constructLightbox();
if(!lightbox) return;
var content = lightbox.find('.nivo-lightbox-content');
if(!content) return;
$('body').addClass('nivo-lightbox-body-effect-'+ this.options.effect);
this.processContent( content, currentLink );
// Nav
if(this.$el.attr('data-lightbox-gallery')){
var galleryItems = $('[data-lightbox-gallery="'+ this.$el.attr('data-lightbox-gallery') +'"]');
$('.nivo-lightbox-nav').show();
// Prev
$('.nivo-lightbox-prev').off('click').on('click', function(e){
e.preventDefault();
var index = galleryItems.index(currentLink);
currentLink = galleryItems.eq(index - 1);
if(!$(currentLink).length) currentLink = galleryItems.last();
$.when($this.options.beforePrev.call(this, [ currentLink ])).done(function(){
$this.processContent(content, currentLink);
$this.options.onPrev.call(this, [ currentLink ]);
});
});
// Next
$('.nivo-lightbox-next').off('click').on('click', function(e){
e.preventDefault();
var index = galleryItems.index(currentLink);
currentLink = galleryItems.eq(index + 1);
if(!$(currentLink).length) currentLink = galleryItems.first();
$.when($this.options.beforeNext.call(this, [ currentLink ])).done(function(){
$this.processContent(content, currentLink);
$this.options.onNext.call(this, [ currentLink ]);
});
});
}
setTimeout(function(){
lightbox.addClass('nivo-lightbox-open');
$this.options.afterShowLightbox.call(this, [ lightbox ]);
}, 1); // For CSS transitions
},
checkContent: function( link ) {
var $this = this,
href = link.attr('href'),
video = href.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/);
if(href.match(/\.(jpeg|jpg|gif|png)$/i) !== null){
return true;
}
// Video (Youtube/Vimeo)
else if(video){
return true;
}
// AJAX
else if(link.attr('data-lightbox-type') == 'ajax'){
return true;
}
// Inline HTML
else if(href.substring(0, 1) == '#' && link.attr('data-lightbox-type') == 'inline'){
return true;
}
// iFrame (default)
else if(link.attr('data-lightbox-type') == 'iframe'){
return true;
}
return false;
},
processContent: function(content, link){
var $this = this,
href = link.attr('href'),
video = href.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/);
content.html('').addClass('nivo-lightbox-loading');
// Is HiDPI?
if(this.isHidpi() && link.attr('data-lightbox-hidpi')){
href = link.attr('data-lightbox-hidpi');
}
// Image
if(href.match(/\.(jpeg|jpg|gif|png)$/i) !== null){
var img = $('<img>', { src: href, 'class': 'nivo-lightbox-image-display' });
img.one('load', function() {
var wrap = $('<div class="nivo-lightbox-image" />');
wrap.append(img);
content.html(wrap).removeClass('nivo-lightbox-loading');
// Vertically center images
wrap.css({
'line-height': $('.nivo-lightbox-content').height() +'px',
'height': $('.nivo-lightbox-content').height() +'px' // For Firefox
});
$(window).resize(function() {
wrap.css({
'line-height': $('.nivo-lightbox-content').height() +'px',
'height': $('.nivo-lightbox-content').height() +'px' // For Firefox
});
});
}).each(function() {
if(this.complete) $(this).load();
});
img.error(function() {
var wrap = $('<div class="nivo-lightbox-error"><p>'+ $this.options.errorMessage +'</p></div>');
content.html(wrap).removeClass('nivo-lightbox-loading');
});
}
// Video (Youtube/Vimeo)
else if(video){
var src = '',
classTerm = 'nivo-lightbox-video';
if(video[1] == 'youtube'){
src = '//www.youtube.com/embed/'+ video[4];
classTerm = 'nivo-lightbox-youtube';
}
if(video[1] == 'youtube-nocookie'){
src = href; //https://www.youtube-nocookie.com/embed/...
classTerm = 'nivo-lightbox-youtube';
}
if(video[1] == 'youtu'){
src = '//www.youtube.com/embed/'+ video[3];
classTerm = 'nivo-lightbox-youtube';
}
if(video[1] == 'vimeo'){
src = '//player.vimeo.com/video/'+ video[3];
classTerm = 'nivo-lightbox-vimeo';
}
if(src){
var iframeVideo = $('<iframe>', {
src: src,
'class': classTerm,
frameborder: 0,
vspace: 0,
hspace: 0,
scrolling: 'auto'
});
content.html(iframeVideo);
iframeVideo.load(function(){ content.removeClass('nivo-lightbox-loading'); });
}
}
// AJAX
else if(link.attr('data-lightbox-type') == 'ajax'){
$.ajax({
url: href,
cache: false,
success: function(data) {
var wrap = $('<div class="nivo-lightbox-ajax" />');
wrap.append(data);
content.html(wrap).removeClass('nivo-lightbox-loading');
// Vertically center html
if(wrap.outerHeight() < content.height()){
wrap.css({
'position': 'relative',
'top': '50%',
'margin-top': -(wrap.outerHeight()/2) +'px'
});
}
$(window).resize(function() {
if(wrap.outerHeight() < content.height()){
wrap.css({
'position': 'relative',
'top': '50%',
'margin-top': -(wrap.outerHeight()/2) +'px'
});
}
});
},
error: function(){
var wrap = $('<div class="nivo-lightbox-error"><p>'+ $this.options.errorMessage +'</p></div>');
content.html(wrap).removeClass('nivo-lightbox-loading');
}
});
}
// Inline HTML
else if(href.substring(0, 1) == '#' && link.attr('data-lightbox-type') == 'inline'){
if($(href).length){
var wrap = $('<div class="nivo-lightbox-inline" />');
wrap.append($(href).clone().show());
content.html(wrap).removeClass('nivo-lightbox-loading');
// Vertically center html
if(wrap.outerHeight() < content.height()){
wrap.css({
'position': 'relative',
'top': '50%',
'margin-top': -(wrap.outerHeight()/2) +'px'
});
}
$(window).resize(function() {
if(wrap.outerHeight() < content.height()){
wrap.css({
'position': 'relative',
'top': '50%',
'margin-top': -(wrap.outerHeight()/2) +'px'
});
}
});
} else {
var wrapError = $('<div class="nivo-lightbox-error"><p>'+ $this.options.errorMessage +'</p></div>');
content.html(wrapError).removeClass('nivo-lightbox-loading');
}
}
// iFrame (default)
else if(link.attr('data-lightbox-type') == 'iframe'){
var iframe = $('<iframe>', {
src: href,
'class': 'nivo-lightbox-item',
frameborder: 0,
vspace: 0,
hspace: 0,
scrolling: 'auto'
});
content.html(iframe);
iframe.load(function(){ content.removeClass('nivo-lightbox-loading'); });
} else {
return false;
}
// Set the title
if(link.attr('title')){
var titleWrap = $('<span>', { 'class': 'nivo-lightbox-title' });
titleWrap.text(link.attr('title'));
$('.nivo-lightbox-title-wrap').html(titleWrap);
} else {
$('.nivo-lightbox-title-wrap').html('');
}
},
constructLightbox: function(){
if($('.nivo-lightbox-overlay').length) return $('.nivo-lightbox-overlay');
var overlay = $('<div>', { 'class': 'nivo-lightbox-overlay nivo-lightbox-theme-'+ this.options.theme +' nivo-lightbox-effect-'+ this.options.effect });
var wrap = $('<div>', { 'class': 'nivo-lightbox-wrap' });
var content = $('<div>', { 'class': 'nivo-lightbox-content' });
var nav = $('<a href="#" class="nivo-lightbox-nav nivo-lightbox-prev">Previous</a><a href="#" class="nivo-lightbox-nav nivo-lightbox-next">Next</a>');
var close = $('<a href="#" class="nivo-lightbox-close" title="Close"><i class="icon-close"></i></a>');
var title = $('<div>', { 'class': 'nivo-lightbox-title-wrap' });
var isMSIE = /*@cc_on!@*/0;
if(isMSIE) overlay.addClass('nivo-lightbox-ie');
wrap.append(content);
wrap.append(title);
overlay.append(wrap);
overlay.append(nav);
overlay.append(close);
$('body').append(overlay);
var $this = this;
if($this.options.clickOverlayToClose){
overlay.on('click', function(e){
if(e.target === this || $(e.target).hasClass('nivo-lightbox-content') || $(e.target).hasClass('nivo-lightbox-image')){
$this.destructLightbox();
}
});
}
if($this.options.clickImgToClose){
overlay.on('click', function(e){
if(e.target === this || $(e.target).hasClass('nivo-lightbox-image-display')){
$this.destructLightbox();
}
});
}
close.on('click', function(e){
e.preventDefault();
$this.destructLightbox();
});
return overlay;
},
destructLightbox: function(){
var $this = this;
this.options.beforeHideLightbox.call(this);
$('.nivo-lightbox-overlay').removeClass('nivo-lightbox-open');
$('.nivo-lightbox-nav').hide();
$('body').removeClass('nivo-lightbox-body-effect-'+ $this.options.effect);
// For IE
var isMSIE = /*@cc_on!@*/0;
if(isMSIE){
$('.nivo-lightbox-overlay iframe').attr("src", " ");
$('.nivo-lightbox-overlay iframe').remove();
}
// Remove click handlers
$('.nivo-lightbox-prev').off('click');
$('.nivo-lightbox-next').off('click');
// Empty content (for videos)
$('.nivo-lightbox-content').empty();
this.options.afterHideLightbox.call(this);
},
isHidpi: function(){
var mediaQuery = "(-webkit-min-device-pixel-ratio: 1.5),\
(min--moz-device-pixel-ratio: 1.5),\
(-o-min-device-pixel-ratio: 3/2),\
(min-resolution: 1.5dppx)";
if(window.devicePixelRatio > 1) return true;
if(window.matchMedia && window.matchMedia(mediaQuery).matches) return true;
return false;
}
};
$.fn[pluginName] = function(options){
return this.each(function(){
if(!$.data(this, pluginName)){
$.data(this, pluginName, new NivoLightbox(this, options));
}
});
};
})(jQuery, window, document);

1
website/js/owl.carousel.min.js vendored Normal file

File diff suppressed because one or more lines are too long

119
website/js/panorama.js Normal file
View File

@ -0,0 +1,119 @@
(function() {
return;
let camera, scene, renderer;
let isUserInteracting = false,
onPointerDownMouseX = 0,
onPointerDownMouseY = 0,
lon = new Date().getTime() / 100.0,
onPointerDownLon = 0,
lat = 0,
onPointerDownLat = 0,
phi = 0,
theta = 0;
// Image rendered by Slykuiper: https://slykuiper.com/
const textures = [
'https://i.imgur.com/eALPkl9.jpg',
'https://i.imgur.com/0CXz7zd.jpg'
];
// ugly but fuck it.
$.holdReady(true);
const resume = function() {
$.holdReady(false);
};
const target = textures[Math.floor(Math.random() * textures.length)];
const texture = new THREE.TextureLoader().load(target, resume, undefined, resume);
$(document).ready(function() {
init();
animate();
});
function init() {
const container = document.getElementById('panorama');
camera = new THREE.PerspectiveCamera(70, container.clientWidth / container.clientHeight, 1, 1100);
scene = new THREE.Scene();
const geometry = new THREE.SphereBufferGeometry(500, 60, 40);
// invert the geometry on the x-axis so that all of the faces point inward
geometry.scale(-1, 1, 1);
const material = new THREE.MeshBasicMaterial({ map: texture })
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(container.clientWidth, container.clientHeight);
container.appendChild(renderer.domElement);
container.style.touchAction = 'none';
container.addEventListener('pointerdown', onPointerDown, false);
new ResizeObserver(function() {
camera.aspect = container.clientWidth / container.clientHeight;
camera.updateProjectionMatrix();
renderer.setSize(container.clientWidth, container.clientHeight);
}).observe(container);
}
function onPointerDown(event) {
if (event.isPrimary === false) return;
isUserInteracting = true;
onPointerDownMouseX = event.clientX;
onPointerDownMouseY = event.clientY;
onPointerDownLon = lon;
onPointerDownLat = lat;
document.addEventListener('pointermove', onPointerMove, false);
document.addEventListener('pointerup', onPointerUp, false);
}
function onPointerMove(event) {
if (event.isPrimary === false) return;
lon = (onPointerDownMouseX - event.clientX) * 0.1 + onPointerDownLon;
lat = (event.clientY - onPointerDownMouseY) * 0.1 + onPointerDownLat;
}
function onPointerUp(event) {
if (event.isPrimary === false) return;
isUserInteracting = false;
document.removeEventListener('pointermove', onPointerMove);
document.removeEventListener('pointerup', onPointerUp);
}
function animate() {
requestAnimationFrame(animate);
update();
}
function update() {
if (isUserInteracting === false) {
lon += 0.1;
}
lat = Math.max(-85, Math.min(85, lat));
phi = THREE.MathUtils.degToRad(90 - lat);
theta = THREE.MathUtils.degToRad(lon);
const x = 500 * Math.sin(phi) * Math.cos(theta);
const y = 500 * Math.cos(phi);
const z = 500 * Math.sin(phi) * Math.sin(theta);
camera.lookAt(x, y, z);
renderer.render(scene, camera);
}
})();

1
website/js/tether.min.js vendored Normal file

File diff suppressed because one or more lines are too long

8
website/js/waypoints.min.js vendored Normal file

File diff suppressed because one or more lines are too long

184
website/js/wow.js Normal file
View File

@ -0,0 +1,184 @@
(function() {
var Util,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
Util = (function() {
function Util() {}
Util.prototype.extend = function(custom, defaults) {
var key, value;
for (key in custom) {
value = custom[key];
if (value != null) {
defaults[key] = value;
}
}
return defaults;
};
Util.prototype.isMobile = function(agent) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);
};
return Util;
})();
this.WOW = (function() {
WOW.prototype.defaults = {
boxClass: 'wow',
animateClass: 'animated',
offset: 0,
mobile: true
};
function WOW(options) {
if (options == null) {
options = {};
}
this.scrollCallback = __bind(this.scrollCallback, this);
this.scrollHandler = __bind(this.scrollHandler, this);
this.start = __bind(this.start, this);
this.scrolled = true;
this.config = this.util().extend(options, this.defaults);
}
WOW.prototype.init = function() {
var _ref;
this.element = window.document.documentElement;
this.boxes = this.element.getElementsByClassName(this.config.boxClass);
if (this.boxes.length) {
if (this.disabled()) {
return this.resetStyle();
} else {
if ((_ref = document.readyState) === "interactive" || _ref === "complete") {
return this.start();
} else {
return document.addEventListener('DOMContentLoaded', this.start);
}
}
}
};
WOW.prototype.start = function() {
var box, _i, _len, _ref;
_ref = this.boxes;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
this.applyStyle(box, true);
}
window.addEventListener('scroll', this.scrollHandler, false);
window.addEventListener('resize', this.scrollHandler, false);
return this.interval = setInterval(this.scrollCallback, 50);
};
WOW.prototype.stop = function() {
window.removeEventListener('scroll', this.scrollHandler, false);
window.removeEventListener('resize', this.scrollHandler, false);
if (this.interval != null) {
return clearInterval(this.interval);
}
};
WOW.prototype.show = function(box) {
this.applyStyle(box);
return box.className = "" + box.className + " " + this.config.animateClass;
};
WOW.prototype.applyStyle = function(box, hidden) {
var delay, duration, iteration;
duration = box.getAttribute('data-wow-duration');
delay = box.getAttribute('data-wow-delay');
iteration = box.getAttribute('data-wow-iteration');
return box.setAttribute('style', this.customStyle(hidden, duration, delay, iteration));
};
WOW.prototype.resetStyle = function() {
var box, _i, _len, _ref, _results;
_ref = this.boxes;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
_results.push(box.setAttribute('style', 'visibility: visible;'));
}
return _results;
};
WOW.prototype.customStyle = function(hidden, duration, delay, iteration) {
var style;
style = hidden ? "visibility: hidden; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none;" : "visibility: visible;";
if (duration) {
style += "-webkit-animation-duration: " + duration + "; -moz-animation-duration: " + duration + "; animation-duration: " + duration + ";";
}
if (delay) {
style += "-webkit-animation-delay: " + delay + "; -moz-animation-delay: " + delay + "; animation-delay: " + delay + ";";
}
if (iteration) {
style += "-webkit-animation-iteration-count: " + iteration + "; -moz-animation-iteration-count: " + iteration + "; animation-iteration-count: " + iteration + ";";
}
return style;
};
WOW.prototype.scrollHandler = function() {
return this.scrolled = true;
};
WOW.prototype.scrollCallback = function() {
var box;
if (this.scrolled) {
this.scrolled = false;
this.boxes = (function() {
var _i, _len, _ref, _results;
_ref = this.boxes;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
box = _ref[_i];
if (!(box)) {
continue;
}
if (this.isVisible(box)) {
this.show(box);
continue;
}
_results.push(box);
}
return _results;
}).call(this);
if (!this.boxes.length) {
return this.stop();
}
}
};
WOW.prototype.offsetTop = function(element) {
var top;
top = element.offsetTop;
while (element = element.offsetParent) {
top += element.offsetTop;
}
return top;
};
WOW.prototype.isVisible = function(box) {
var bottom, offset, top, viewBottom, viewTop;
offset = box.getAttribute('data-wow-offset') || this.config.offset;
viewTop = window.pageYOffset;
viewBottom = viewTop + this.element.clientHeight - offset;
top = this.offsetTop(box);
bottom = top + box.clientHeight;
return top <= viewBottom && bottom >= viewTop;
};
WOW.prototype.util = function() {
return this._util || (this._util = new Util());
};
WOW.prototype.disabled = function() {
return this.config.mobile === false && this.util().isMobile(navigator.userAgent);
};
return WOW;
})();
}).call(this);

143
website/launcher.html Normal file
View File

@ -0,0 +1,143 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords"
content="iw4x, x labs, iw4x download, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw4x faq">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Launcher download for X Labs" />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Launcher download for X Labs" />
<meta name="twitter:url" content="https://xlabs.dev/iw4x_download" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>Launcher Download | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css"
integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag()
{
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/xlabs_social.png" alt="IW4x">
</div>
</div>
<div class="line"></div>
<h2>X Labs Launcher Download</h2>
<p id="download-block" style="display: none;">Click <a
href="https://master.xlabs.dev/data/xlabs.exe">here</a> to download the Launcher.</p>
<p id="patreon-block" style="display: none;">
If you like our projects, consider donating on patreon:<br>
<a href="https://www.patreon.com/xlabsproject" class="btn btn-common patreon-button"><i
class="fab fa-patreon"></i>&nbsp;&nbsp;&nbsp;Patreon</a>
</p>
<script>
function unlocker()
{
setTimeout(function ()
{
$("#patreon-block").show();
$("#download-block").show();
$("#twitter-block").hide();
}, 1000);
return true;
}
</script>
<p id="twitter-block">
Follow us on twitter to unlock the download:<br>
<a href="https://twitter.com/XLabsProject" target="_blank" onclick="unlocker()"
class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i
class="fab fa-twitter"></i>&nbsp;&nbsp;&nbsp;Twitter</a>
</p>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=" anonymous"></script>
<script language="javascript" type="text/javascript">
function GetLatestReleaseInfo()
{
$.getJSON("https://api.github.com/repos/XLabsProject/iw4x-client/releases/latest").done(function (release)
{
var asset = release.assets[0];
$(".download").attr("href", asset.browser_download_url);
window.location.replace(asset.browser_download_url);
});
}
//GetLatestReleaseInfo();
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js"
integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w=="
crossorigin=" anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

159
website/map_porting.html Normal file
View File

@ -0,0 +1,159 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Learn how to convert a CoD4 custom map to IW4x." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Learn how to convert a CoD4 custom map to IW4x." />
<meta name="twitter:url" content="https://xlabs.dev/custom_maps" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Map Porting | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x <span>Map Porting</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Learn how to convert a CoD4 custom map to IW4x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
You will need the following installed:
<ul>
<li>Call of Duty 4: Modern Warfare (1.7)</li>
<li><a href="https://github.com/promod/CoD4-Mod-Tools/archive/master.zip">Call of Duty Mod Tools (1.1)</a></li>
<li><a href="support_iw4x_client">IW4x</a></li>
<li><a href="https://github.com/XLabsProject/iw4x-mod-builder/releases/latest/download/iw4x-mod-builder.exe">IW4x Mod Tools</a></li>
<li><a href="https://github.com/XLabsProject/iw3x-port/releases/latest/download/iw3x.dll">IW3xport</a></li>
</ul>
</p>
<p>
Extract the mod tools to your CoD4 directory and extract the IW3xport files to the CoD4 directory as well. Put the IW4x mod tools in the directory where you have IW4x installed in.
</p>
<h4>Get a map</h4>
<p>
Find any CoD4 custom map you want from Google, then put the files in <code>C:\Program Files (x86)\Activision\Call of Duty 4 - Modern Warfare\usermaps</code>. You will need to make a folder in there with the name of the map,
so for example: <code>C:\Program Files (x86)\Activision\Call of Duty 4 - Modern Warfare\usermaps\mp_summit</code>.
</p>
<h4>Install the map</h4>
<img src="https://i.imgur.com/ZLF76Wc.png" width="500" height="400" class="img-fluid">
<p>Install the map into your CoD4 directory like the pic above, where mine is mp_summit.<br><br> Now go to your IW4x install and open the IW4x mod tools (run it as Admin), it will take some time to load. Once its opened, click the
Settings tab and set the locations of your IW4x and CoD4 installs:</p>
<img src="https://i.imgur.com/QU8fNW1.png" width="500" height="350" class="img-fluid">
<p>then hit save. Once done go one tab above (Build Map)</p>
<img src="https://i.imgur.com/COTqzRO.png" width="500" height="350" class="img-fluid">
<p>
and scroll to Other Maps OR User Maps (will be located under one or the other). Then select the map (for me, mp_summit) and click these buttons in order:
<ol>
<li>Export COD4 Map</li>
<li>Build MW2 Map</li>
<li>Generate IWD</li>
<li>Run MW2 Map</li>
</ol>
Here is my compiled version of summit:
</p>
<img src="https://i.imgur.com/UAni1dI.png" width="500" height="350" class="img-fluid">
<p>
Then thats it.<br><br> Questions:
<br><br> How can I load it from the regular game?<br><br> Open the console with ~ and type map [map name]<br><br> How do I share this?<br><br> You can put it up the following files in the image up for HTTP download when clients
connect, or distribute these files:
</p>
<img src="https://i.imgur.com/YPXZ7BN.png" width="500" height="350" class="img-fluid">
<p>
Can I use this on my server?<br><br> Yes! Its the same process, just place the pictured files in the usermaps directory and run in the console map [map name]
</p>
<div class="yt">
<iframe width="920" height="520" src="https://www.youtube-nocookie.com/embed/GWEV2jOtubM?rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

130
website/mod_guide.html Normal file
View File

@ -0,0 +1,130 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="iw4x, iw6x, x labs, game modifications, cod clients, opensource, open source, ghosts client, mw2 client, iw4, iw6, iw6x faq">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Frequently asked questions related to adding mods to IW4x." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Frequently asked questions related to adding mods to IW4x." />
<meta name="twitter:url" content="https://xlabs.dev/iw6x_faq" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>IW4x Mod Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">IW4x <span>Mod Guide</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">Frequently asked questions related to adding mods to IW4x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<p>
Mods can consist of anything from custom textures, new gamemodes, new weapons, edits of existing gamemodes, the list is endless... In IW4x, mods are handled the same way as they were in Call of Duty: Modern Warefare (Call of Duty 4). If you are familar
with that games mod system, great! But if not, I will briefly explain.
<br>
<br> Mods are located within a folder conveniently named <code>mods</code> inside of your MW2 game folder (See folder structure screenshot below). Each mod has its own sub folder inside of the mods folder. The name of that
folder is how IW4x identifies each mod and it also determines the name that you will see in the mods menu inside of IW4x. Once you select a mod via the main menu, the mods content is loaded into the games memory. It will overwrite
any scripts / textures / ... with ones found in the loaded mods folder.
<br>
<br>
<h4>Folder Structure Examples:</h4>
<p>IW4x/mods/bots
<br> IW4x/mods/prophunt
</p>
<img src="https://i.imgur.com/q4jgm7g.jpg" class="img-fluid">
<h4>Loading a mod:</h4>
<p>
Once you have a mod downloaded and in the correct folder (mods), you can start the game up and select the mod in the main menu. Once you click 'Launch' the game will restart with the mod loaded.
</p>
<img src="https://i.imgur.com/LzjlzPu.jpg" class="img-fluid">
<h4>Where to download mods?</h4>
<p>This is a commonly asked question. Unfortunately, there is no central location for mod downloads so you will have to do a Google search to find some.
</p>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

8
website/patreon.html Normal file
View File

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://patreon.com/xlabsproject">
</head>
<body>
</body>
</html>

BIN
website/s1/motd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

7
website/s1/motd.txt Normal file
View File

@ -0,0 +1,7 @@
^3Welcome to S1x^7
Support us on Patreon to get special rewards: ^1patreon.com/XLabsProject^7
Follow us on Twitter: ^5@XLabsProject^7
Visit ^2https://xlabs.dev ^7for more info!

View File

@ -0,0 +1,120 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="x labs, game modifications, cod clients, opensource, open source, aw client, advanced warfare client, s1x controller guide">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Controller Guide for S1x client." />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Controller Guide for S1x client." />
<meta name="twitter:url" content="https://xlabs.dev/s1x_controllers" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>S1x Controller Guide | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/s1x_banner.png" alt="S1x">
</div>
<h2 class="section-title wow fadeIn" data-wow-duration="1000ms" data-wow-delay="0.3s">S1x CONTROLLER <span>GUIDE</span></h2>
<hr class="lines wow zoomIn" data-wow-delay="0.3s">
<p class="section-subtitle wow fadeInDown" data-wow-duration="1000ms" data-wow-delay="0.3s">An in-depth guide on how to setup controllers for S1x.</p>
</div>
<div class="row">
<!-- Support Item Starts -->
<div class="blog-item-wrapper wow fadeInUp" data-wow-delay="0.3s">
<div class="blog-item-text">
<h3>
Xbox
</h3>
<p>S1x should support xbox controllers out of the box. If it does not work, make sure "Gamepad Support" is enabled in settings.</p>
<h3>Playstation</h3>
<ol>
<li>Download <a href="https://github.com/Ryochan7/DS4Windows/releases/latest">DS4Windows</a>, make sure you pick DS4Windows_xxx_x64.zip</li>
<li>Install/Extract it to a safe place and open it.</li>
<li>It should detect your controller, but if it does not, you may need to install the driver.</li>
<li>Check if gamepad works in S1x. If there is still problems, you can join the <a href="https://discord.gg/STm3JVx8VX"> Discord</a> and ask for support in the #s1x-support channel.</li>
</ol>
</div>
</div>
<!-- Support Item Wrapper Ends-->
</div>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

117
website/s1x_download.html Normal file
View File

@ -0,0 +1,117 @@
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<!--<meta http-equiv="refresh" content="0; url=https://master.xlabs.dev:444/s1x/master/Release/build/bin/x64/Release/s1x.exe"/>-->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="keywords" content="S1x, x labs, S1x download, game modifications, cod clients, opensource, open source, aw client, advanced warfare client, s1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:title" content="X Labs" />
<meta property="og:description" content="Client download for S1x" />
<meta property="og:image" content="https://xlabs.dev/img/xlabs_social.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="X Labs" />
<meta name="twitter:description" content="Client download for S1x" />
<meta name="twitter:url" content="https://xlabs.dev/s1x_download" />
<meta name="twitter:image" content="https://xlabs.dev/img/xlabs_social.png" />
<title>S1x Download | X Labs</title>
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="css/nivo-lightbox.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/responsive.css">
<script src="https://kit.fontawesome.com/72366d0c6b.js" crossorigin="anonymous"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EJKDYYL6WF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-EJKDYYL6WF');
</script>
</head>
<body>
<!-- Menu Section Start -->
<div class="fixed-top">
<div class="container">
<div class="row">
<div class="col-12">
<script src="header.js"></script>
</div>
</div>
</div>
</div>
<!-- Menu Section End -->
<!-- Header Section End -->
<!-- Client Support Section -->
<section id="blog" class="section">
<!-- Client Container Starts -->
<div class="container">
<div class="section-header">
<div class="blog-item-img">
<img src="img/s1x_banner.png" alt="S1x">
</div>
</div>
<div class="line"></div>
<h2>S1x Download</h2>
<p id="download-block" style="display: none;">Click <a href="https://master.xlabs.dev:444/s1x/master/Release/build/bin/x64/Release/s1x.exe">here</a> to download S1x.</p>
<p id="patreon-block" style="display: none;">
If you like our projects, consider donating on patreon:<br>
<a href="https://www.patreon.com/xlabsproject" class="btn btn-common patreon-button"><i class="fab fa-patreon"></i>&nbsp;&nbsp;&nbsp;Patreon</a>
</p>
<script>
function unlocker() {
setTimeout(function() {
$("#patreon-block").show();
$("#download-block").show();
$("#twitter-block").hide();
}, 1000);
return true;
}
</script>
<p id="twitter-block">
Follow us on twitter to unlock the download:<br>
<a href="https://twitter.com/XLabsProject" target="_blank" onclick="unlocker()" class="btn btn-common wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="400ms"><i class="fab fa-twitter"></i>&nbsp;&nbsp;&nbsp;Twitter</a>
</p>
</div>
</section>
<!-- blog Section End -->
<!-- Footer Section Start -->
<script src="footer.js"></script>
<!-- Footer Section End -->
<!-- Go To Top Link -->
<a href="#" class="back-to-top">
<i class="fas fa-arrow-up"></i>
</a>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js" integrity="sha512-Q+IG0h7As6sfqE2t1Xf5IeamNyCXb4EXxGCA9Mlbpv7xtwurVHNdVDbyWeSQ3ulPf2FRlqeu77Ec3SJDdIR63w==" crossorigin="anonymous"></script>
<script src="js/classie.js"></script>
<script src="js/mixitup.min.js"></script>
<script src="js/nivo-lightbox.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.nav.js"></script>
<script src="js/wow.js"></script>
<script src="js/menu.js"></script>
<script src="js/jquery.vide.js"></script>
<script src="js/jquery.counterup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More