Skip to content

Instantly share code, notes, and snippets.

@Kobiro57
Created April 25, 2024 20:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kobiro57/01151ce1d48474ef758ffca42aaac05f to your computer and use it in GitHub Desktop.
Save Kobiro57/01151ce1d48474ef758ffca42aaac05f to your computer and use it in GitHub Desktop.
grandtheftautosa/germancrimescene
This file has been truncated, but you can view the full file.
#define SendClientMessageX(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
#define SendClientMessageToAllX(%0,%1,%2) do{new _string[144]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
#define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#define GetPlayerNameEx(%0) acPlayer[%0][acpName]
//id von Ajdin 10002782
enum
{
/*
Definiert die eindeutigen IDs
der Dialoge
*/
DIALOG_LOGIN, DIALOG_REGISTER,
DIALOG_REGISTER2,
DIALOG_REGISTER3,
DIALOG_REGISTER4,
DIALOG_BUYGUN,
DIALOG_NAVI,
DIALOG_NAVI2,
DIALOG_TICKET,
DIALOG_TICKET2,
DIALOG_COPMISSION,
DIALOG_COPMISSION2,
DIALOG_GROUP,
DIALOG_GROUPCREATE,
DIALOG_GROUPBACK,
DIALOG_GROUPLEAVE,
DIALOG_GROUPCONFIG,
DIALOG_GROUPMOTD,
DIALOG_GROUPUPGRADE,
DIALOG_GROUPCOMMANDRANK,
DIALOG_GROUPCOMMANDSETRANK,
DIALOG_GROUPWEAPONS,
DIALOG_GROUPRANKS,
DIALOG_GROUPRANKS2,
DIALOG_GROUPMEMBERS,
DIALOG_GROUPMEMBERS2,
DIALOG_GROUPLIST,
DIALOG_GROUPLIST2,
DIALOG_GROUPALLIANCE,
DIALOG_GROUPCHOOSEALLIANCE,
DIALOG_GROUPRENAME,
DIALOG_GROUPRESPAWNCARS,
DIALOG_GROUPCHANGEWEAPONPRICE,
DIALOG_GROUPCHANGEWEAPONPRICE2,
DIALOG_GROUPCOLOR,
DIALOG_GROUPCOLOR2,
DIALOG_GROUPREWARD,
DIALOG_GROUPDRUGS,
DIALOG_GROUPOTHER,
DIALOG_FACTIONMEMBERS,
DIALOG_FACTIONMEMBERS2,
DIALOG_FACTIONMEMBERRANK,
DIALOG_FACTIONSETBANK,
DIALOG_FACTIONRANKS,
DIALOG_FACTIONRANKS2,
DIALOG_SKILLS,
DIALOG_IRCCREATE,
DIALOG_ACHIEVEMENTS,
DIALOG_TUNING,
DIALOG_RADIO,
DIALOG_RADIO2,
DIALOG_TIMEDIALOG,
DIALOG_SPAWNCHANGE,
DIALOG_TOG,
DIALOG_SERVERTOG,
DIALOG_ACCOUNT,
DIALOG_CHANGEPASSWORD,
DIALOG_CHANGENAME,
DIALOG_CHANGENAMEINFO,
DIALOG_LAWYER,
DIALOG_BUYWEAPONMATS,
DIALOG_OBJLIST,
DIALOG_CHANGEFIGHTINGSTYLE,
DIALOG_FISHMENU,
DIALOG_FISHMENU2,
DIALOG_UNBANIP,
DIALOG_DUELL,
DIALOG_DUELLJOIN,
DIALOG_DUELLCONFIG,
DIALOG_ADDPLAYERFILE,
DIALOG_PLAYERFILE,
DIALOG_NOTIFICATIONS,
DIALOG_NOTIFI,
DIALOG_OFFLINEPN,
DIALOG_MDC,
DIALOG_MDCCURRENTCRIM,
DIALOG_PORTS,
DIALOG_PORTADD,
DIALOG_BUYVEH,
DIALOG_BUYVEH2,
DIALOG_VEHICLES,
DIALOG_VEHICLES2,
DIALOG_VEHICLESELL,
DIALOG_VEHICLESETRANK,
DIALOG_VEHICLENUMBERPLATE,
DIALOG_QUEST,
DIALOG_BANKMENU,
DIALOG_BANKMENU0,
DIALOG_BANKMENU1,
DIALOG_BANKMENU2,
DIALOG_BANKBACK,
DIALOG_IVAN,
DIALOG_PRICEBOOK,
DIALOG_BUY,
DIALOG_INFO,
DIALOG_HOUSECONFIG,
DIALOG_HOUSEUPGRADE,
DIALOG_HOUSEUPGRADE2,
DIALOG_HOUSEINTERIOR,
DIALOG_HOUSEINTERIOR2,
DIALOG_COMMANDCONFIG,
DIALOG_COMMANDCONFIG2,
DIALOG_COMMANDCONFIG3,
DIALOG_COMPACT,
DIALOG_SHOP,
DIALOG_SHOP2,
DIALOG_BIZLIST,
DIALOG_ZONELIST,
DIALOG_FRIENDLIST,
DIALOG_VEHICLETUNING,
DIALOG_VEHICLETUNING2,
DIALOG_EDITFACTION,
DIALOG_ACCESSOIRES,
DIALOG_ACCESSOIRCONTROL,
DIALOG_ACCESSOIRCONTROL2,
DIALOG_SEARCHEDGROUP,
DIALOG_BUYDRUGS,
DIALOG_VARIABLECONFIG,
DIALOG_ANTICHEAT,
}
enum
{
RANK_NONE,
RANK_VOLUNTEER,
RANK_SUPPORTER,
RANK_SUPPORTER2,
RANK_MODERATOR,
RANK_ADMIN,
RANK_FULLADMIN,
RANK_OWNER,
MAX_TEAMRANKS,
};
#include <a_samp>
#include <a_mysql>
#include <a_zones>
#include <crashdetect>
#include <sscanf2>
#include <YSI\y_commands>
#include <YSI\y_master>
#include <foreach>
#include <streamer>
#include <usefulstuff>
#include <CnR\Anna>
//#include <CnR\AntiCheatClient>
#include <GetVehicleColor>
#include <MapAndreas>
#include <water>
#include <geolocation>
//#define WARTUNGSMODUS
native gpci(playerid, serial [], len);
native WP_Hash(buffer[], len, const str[]);
native IsValidVehicle(vehicleid);
#define GetPlayerWantedLevel CnR_GetPlayerWantedLevel
#pragma dynamic 10000
#undef MAX_PLAYERS
#define COUNTER_BANK 1.0
#define COUNTER_ATM 2.0
#define COUNTER_ROBATM 3.0
#define REPAIR_COP 1.0
#define REPAIR_PLANE 2.0
#define BIZFIGHTSIZE (80 + 50) // Gibt an, wie groß die unsichtbare Zone beim Bizfight sein soll.
#define SELL_VEHICLE_PERCENTAGE 0.75 // Gibt an, welchen Prozentsatz man beim Verkauf von einem Fahrzeug vom Kaufpreis bekommt.
#define BANKROBTIME_DRILL 180 // Gibt an, wie lange das Aufboren der Banktür dauert. (Angabe in Sekunden)
#define BANKROBTIME_BLAST 10 // Gibt an, wie lange die Detonation des Plastiksprengstoffes an der Tresortür dauert (Angabe in Sekunden).
#define MIN_GROUPNAME_LENGTH 2
#define MAX_USER_VEHICLES 3 // Gibt an, wie viele Fahrzeuge ein normaler Spieler laden kann.
#define MAX_DONATOR_VEHIICLES 6 // Gibt an, wie viele Fahrzeuge ein Donator Spieler laden kann.
#define MAX_VEHICLETRADER 5 // Gibt an, wie viele Autohäuser maximal existieren können.
#define MAX_VEHICLETRADER_SPAWNS 50 // Gibt an, wie viele Spawns beim Autohaus geben können.
#define MAX_GROUPNAME_LENGTH 18
#define MAX_PLAYERS 250
#define MAX_GROUPS 55 // Gibt an, wie viele Gruppen maximal existieren können.
#define MAX_RANKS 13 // Gibt an, wie viele Gruppenränge es geben kann. (12 + 1 für R 0 - R 12).
#define MAX_RANK_NAME 32 // Gibt an, wie lang die Gruppenrangbezeichnungen maximal sein können.
#define MAX_SURPRISE 40 // Gibt an, wie viele Geschenke es maximal gleichzeitig geben kann.
#define MAX_GROUPCOLORS 121 // Gibt an, wie viele Gruppenfarben es zur Auswahl gibt.
#define MAX_PLAYERFISHES 5 // Gibt an, wie viele Fische ein Spieler bei sich haben kann.
#define MAX_MATSPOINTS 3 // Gibt an, wie viele Materialpoints es gibt.
#define MAX_ENTRACES 100 // Gibt an, wie viele Eingänge / Ausgänge geben kann.
#define MAX_FRIENDS 15 // Gibt an, wie viele Freunde man maximal gleichzeitig haben kann.
#define MAX_NEON 7 // Gibt an, wie viele verschiedene Neon Arten es gibt.
#define MAX_REPAIRPICKUPS 6
#define MAX_JOBVEHICLES 30
#define MAX_JOBOBJECTS 60
#define MAX_PLAYERFILE_ENTRIES 15 // Gibt an, wie viele Einträge pro Seite in der Spielerakte angezeigt werden soll.
#define MAX_FACTIONMEMBER_ENTRIES 15 // Gibt an, wie viele Einträge pro Seite in der Fraktionsmitglieder Übersicht angezeigt werden soll.
#define MIN_PLANTPRICE 75 // Gibt an, wie viel man mindestens pro Blüte beim Bauernjob bekommt.
#define MAX_PLANTPRICE 125 // Gibt an, wie viel man maximal pro Blüte beim Bauernjob bekommt.
#define BUY_PLANTPRICE (MAX_PLANTPRICE * 5) // Gibt an, wie viel man pro Blüte bei Ivan bezahlen muss.
#define MAX_NAVICATEGORIES 10
#define MAX_NAVIGATION 50
#define MAX_HOUSES 350
#define NEEDED_MONEY_FOR_CREATINGGROUP 500000 // 500k neu(1 Millionen) Gibt an, wie viel die Gruppenerstellung kostet.
#define GROUP_STARTMONEY 500000 // (500 Tausend) Gibt an, wie viel Startgeld eine Gruppe hat.
#define NEEDED_LEVEL_FOR_CREATINGGROUP 6 // Gibt an, wie das Mindestlevel zur Erstellung von einer Gruppe ist.
#define NEEDED_LOCALBIZFIGHTPLAYER 1 // Gibt an, wie viele Spieler zum Starten eines Bizfights benötigt werden (localhost).
#define NEEDED_BIZFIGHTPLAYER 2 // (3) Gibt an, wie viele Spieler zum Starten eines Bizfights benötigt werden.
#define NEEDED_CONQUERPLAYER 2 // (3) Gibt an, wie viele Spieler zum Starten eines Zonenfights benötigt werden.
#define NEEDED_TRANSPORTER_ROBBER 2 // (3) Gibt an, wie viele Räuber benötigt werden, um einen Transporterraub zu starten.
#define NEEDED_ATM_COPS 0 // (4) Gibt an, wie viele Cops benötigt werden, um ein ATM - Raub zu machen.
#define NEEDED_BANK_ROBBER 4 // (4) Gibt an, wie viele Räuber benötigt werden, um ein Bankraub zu starten.
#define NEEDED_BANK_COPS 4 // (3) Gibt an, wie viele Cops benötigt werden, um ein Bankraub zu starten.
#define PRODS_MINPRICE 60 // Gibt den Verkaufpreis ein, die ein Business pro Produkt mindestens bezahlen muss.
#define PRODS_MAXPRICE 100 // Gibt den Verkaufpreis ein, die ein Business pro Produkt maximal bezahlen darf.
#define INVALID_SLOT_ID -1
#define INVALID_TICKET_ID INVALID_VEHICLE_ID
#define INVALID_HOUSE_ID INVALID_VEHICLE_ID
#define INVALID_BUSINESS_ID INVALID_VEHICLE_ID
#define INVALID_GROUP_ID INVALID_VEHICLE_ID
#define INVALID_CHANNEL_ID INVALID_VEHICLE_ID
#define INVALID_MISSION_ID -1
#define INFINITY (Float:0x7F800000)
#define GetPlayerGroupID(%0) playerInfo[%0][pGroup]
//#define GetPlayerGroupIndex(%0) playerInfo[%0][pGroupIndex]
#define GetVehicleName(%0) VehicleName[GetVehicleModel(%0)-400]
#define GetModelName(%0) VehicleName[%0-400]
#define SendOnlineErrorMessage(%0) SendClientMessage(%0, COLOR_LESSRED, "Der gewünschte Spieler ist nicht Online.")
#define GetPlayerIRCTitle(%0) ircTitle[playerInfo[%0][pChannelRank]]
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_YELLOW 0xEBEB44FF
#define COLOR_ORANGE 0xD67520FF
#define COLOR_LESSRED 0xB85476FF
#define COLOR_RED 0xFF002FFF
#define COLOR_LIGHTBLUE 0x5BCCD4FF
#define COLOR_GREY 0xBFC0C2FF
#define COLOR_BLUE 0x5062B3FF
#define COLOR_DARKBLUE 0x2569C2FF
#define COLOR_GREEN 0x4AA334FF
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_DARKPURPLE 0x9A49CCFF
#define COLOR_DONATOR 0xD058D6FF
#define COLOR_PLAYERINFO 0xD6D59AFF
#define COLOR_FBI 0x177A9CFF
#define COLOR_BOT 0x03261DFF
#define COLOR_CLANCHAT 0x2FD6C3FF
#define COLOR_FACTIONCHAT 0x3FD956FF
#define COLOR_TUTORIAL 0xD1BF36FF
#define COLOR_MISSION 0xBF9475FF
#define COLOR_IRC 0xBDB999FF
#define COLOR_JOB 0xBA59B7FF
#define COLOR_ROB 0xD4B148FF
#define COLOR_LOTTERY 0xCAD461FF
//#define WARTUNGSMODUS
forward KillServer();
forward DrawCube(playerid, pID);
forward Float:floatdivEx(Float:div1, Float:div2);
forward OnPlayerChangeName(playerid, newname[]);
forward ShowPlayerUserFile(playerid);
forward UpdateMatsProgressbar(playerid, price, currentmats, maxmats);
forward ConnectFixedBot(botid);
forward CreateBankTransporterRobLabel();
forward LoadVehicles(playerid);
forward CreateC4ForBankRob(playerid);
forward OnServerLoadGroupInfoForPlayer(playerid,groupid);
forward OnServerLoadGroupMembers(playerid,groupid, startrow, endrow);
forward OnServerInitIrc(playerid,slotid);
forward OnServerCheckGroupNameAvailable(playerid, groupname[]);
forward OnPlayerGetLevelUp(playerid, level);
forward SecondsTimer();
forward CheckData();
forward HalfMinuteTimer();
forward MinuteTimer();
forward PlayerTimer(playerid);
forward AutoServerMessage();
forward HitmanAD();
forward OnServerCheckAccountExists(playerid);
forward OnServerCheckAccountExistsForAD(playerid,playername[]);
forward OnPlayerChangeSkin(playerid, updown, leftright);
forward OnPlayerChangeAcces(playerid, updown, leftright);
forward OnPlayerTuneVehicle(playerid, updown, leftright);
forward FillUp(price,vehicleid,playerid);
forward KickPlayer(playerid);
forward InsertInit(space, index);
forward OpenGate(gateid);
forward UnfreezePlayer(playerid,vworld);
forward AimbotTest(playerid,Float:x,Float:y,Float:z,Float:a);
forward OnPlayerUnBanPlayer(playerid, playerName[], reason[]);
forward OnPlayerBanPlayer(playerid, playername[], reason[]);
forward OnQueryFinished(queryid);
forward Float:GetVehicleSpeed(vehicleid);
forward Float:GetPlayerSpeed(playerid, bool:allowvehicle = true);
forward ExtendedAimbotTest(pID, tID, step, Float:oldX, Float:oldY, Float:oldZ, Float:oldA);
forward Float:GetWeaponDamageForObject(weaponid);
forward DelayedFunction(playerid, index);
forward RemoveVehicleComponentEx(vehicleid, componentid);
forward ChangeVehiclePaintjobEx(vehicleid, paintjobid);
forward ChangeVehicleColorEx(vehicleid, color1, color2);
forward MovePlayerPos(playerid, index, du);
forward MovePlayerCamera(playerid, index, du);
forward OnPlayerOpenShopMenu(playerid);
forward OnServerCheckIpWhitelist(playerid);
forward OnServerAddPlayerToWhiteList(senderid, setname[]);
forward OnPlayerLoadGroup(playerid);
forward ShowPlayerTicketInfo(playerid);
forward OnPlayerSearchKeyWord(playerid);
forward OnPlayerOpenHelpDialog(playerid, id);
forward OnServerLoadMemberInfo(playerid);
forward SearchNameChangeId(playerid);
forward ShowPlayerNameChange(playerid);
forward OnServerLoadFriends(playerid, msg);
forward OnServerSearchFriend(playerid, pID);
forward OnServerDeleteFriend(playerid, pID);
forward OnServerOpenFriendList(playerid);
forward OnServerCheckPlayerIp(playerid);
forward OnServerCheckIpExists(playerid, ip[]);
forward OnPlayerEnterNoDmZone(playerid);
forward OnPlayerLeaveNoDmZone(playerid);
forward OnPlayerEnterEntrance(playerid, entranceid);
forward OnPlayerExitEntrance(playerid, entranceid);
forward ShowPlayerPossibleMultiAcc(playerid, showplayerid);
forward OnServerSearchFriendEx(playerid, pID);
forward OnServerSearchLastIp(playerid, uName[]);
forward UpdateSpectator(playerid);
forward OnQueryFinishedEx(queryid, space);
forward Float:GetPlayerExp(playerid);
forward Float:GetPlayerExpForLevel(level);
forward ShowPlayerNotifications(playerid, id);
forward OnServerSearchedGroup(playerid, groupname[]);
forward EmergencyLightMod(vehicleid);
forward ReducePlayerRobStep(playerid, houseid);
forward AttachTrailerToSpawnedVehicle(trailerid, vehicleid);
forward RespawnPickup(typ, Float:x,Float:y,Float:z, index, index2);
forward LoadPlayerAchievements(playerid);
forward OnServerLoadFactionMembers(playerid, fid, startrow);
forward OnServerCheckAccountBanState(playerid);
forward Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2);
forward ApplyActorAnim(actorid);
forward ORM:InitializeNavigationORM(id);
forward ORM:InitializeNaviCategoryORM(id);
forward ORM:InitializeHouseORM(id);
forward ORM:InitializeGroupORM(id);
forward ORM:InitializeEntranceORM(id);
enum _groupUpgradeItems
{
guCategoryID,
guCategory,
guRequiredUpgrade,
guName[32],
guValue,
guPrice,
Float:guExp,
};
new groupUpgradeItems[][_groupUpgradeItems] =
{
{0, 0, 0, "Heal", 1, 750000, 0.0},
{0, 1, 0, "Max. Mitglieder -", 5, 0, 0.0},
{1, 1, 0, "Max. Mitglieder -", 5, 0, 0.0},
{2, 1, 0, "Max. Mitglieder I", 5, 500000, 0.0},
{3, 1, 0, "Max. Mitglieder II", 5, 625000, 0.0},
{4, 1, 0, "Max. Mitglieder III", 5, 750000, 0.0},
{5, 1, 0, "Max. Mitglieder IV", 5, 875000, 0.0},
{6, 1, 0, "Max. Mitglieder V", 5, 1000000, 0.0},
{7, 1, 0, "Max. Mitglieder VI", 5, 1250000, 0.0},
{0, 2, 0, "Max. Fahrzeuge 1", 1, 75000, 0.0},
{1, 2, 0, "Max. Fahrzeuge 2", 1, 100000, 0.0},
{2, 2, 0, "Max. Fahrzeuge 3", 1, 150000, 0.0},
{3, 2, 0, "Max. Fahrzeuge 4", 1, 200000, 0.0},
{4, 2, 0, "Max. Fahrzeuge 5", 1, 450000, 0.0},
{5, 2, 0, "Max. Fahrzeuge 6", 1, 600000, 500.0},
{6, 2, 0, "Max. Fahrzeuge 7", 1, 650000, 1000.0},
{7, 2, 0, "Max. Fahrzeuge 8", 1, 650000, 2000.0},
{8, 2, 0, "Max. Fahrzeuge 9", 1, 850000, 3500.0},
{9, 2, 0, "Max. Fahrzeuge 10", 1, 1000000, 8000.0},
{10, 2, 0, "Max. Fahrzeuge 11", 1, 1000000, 8000.0},
{11, 2, 0, "Max. Fahrzeuge 12", 1, 0, 800.0},
{12, 2, 0, "Max. Fahrzeuge 13", 1, 0, 800.0},
{13, 2, 0, "Max. Fahrzeuge 14", 1, 0, 800.0},
{14, 2, 0, "Max. Fahrzeuge 15", 1, 0, 800.0}
};
enum
{
SOUND_AMMUNATION_BUY_WEAPON = 1052,
SOUND_SHOP_BUY = 1054,
SOUND_RACE_GO = 1057,
SOUND_PART_MISSION_COMPLETE = 1058,
SOUND_AWARD_TRACK_START = 1097,
SOUND_AWARD_TRACK_STOP = 1098,
SOUND_BUY_CAR_MOD = 1133,
SOUND_BUY_CAR_RESPRAY = 1134,
SOUND_SWEETS_HORN = 1147,
SOUND_BANDIT_PAYOUT = 4201,
};
enum warState
{
WAR_NONE,
WAR_NORMAL,
WAR_BIZ,
WAR_ZONE,
}
enum
{
INSERTINIT_REGISTERACCOUNT,
INSERTINIT_HOUSE,
INSERTINIT_NAVI,
INSERTINIT_NAVICATEGORY,
INSERTINIT_SUPPORT,
INSERTINIT_VEHICLE,
INSERTINIT_TELEPORT,
}
enum
{
GROUPUPGRADE_HEAL,
GROUPUPGRADE_MEMBER,
GROUPUPGRADE_VEHICLE,
MAX_GROUPUPGRADES,
};
enum
{
TICKET_NONE,
TICKET_OPEN,
TICKET_EDIT,
TICKET_RELEASE,
TICKET_OFFEDIT,
TICKET_FORCE,
}
enum
{
SPAWN_TEAM,
SPAWN_ZIVILV,
SPAWN_GROUP,
SPAWN_HOUSE,
SPAWN_FACTION,
}
enum
{
MISSION_PATROL,
}
enum
{
QUEST_NONE,
QUEST_SPECIALVEH,
QUEST_HITMAN,
QUEST_DELIVERBIZPAKET,
QUEST_DELIVERHOUSEPAKET,
QUEST_DELIVERDRUGS,
};
enum
{
QUESTDELIVER_HOUSE,
QUESTDELIVER_ACTOR,
QUESTDELIVER_PLAYER,
};
enum
{
FACTION_NONE = 0,
FACTION_HITMAN,
FACTION_FBI,
MAX_FACTIONS,
}
enum
{
MATSPOINT_NORMAL = 1,
MATSPOINT_AIRPORT
}
enum
{
WANTED_ATTACKCOPVEH,
WANTED_STEALSTATE,
WANTED_ROBTRANSPORTER,
WANTED_ROBBANK,
WANTED_ROBSAFE,
WANTED_STEALING,
WANTED_TICKETDENIAL,
WANTED_ROBSHOP,
WANTED_ATTACKCOP,
WANTED_MURDER,
WANTED_ATTACKATM,
WANTED_VEHICLEDEAL,
WANTED_HITMAN,
WANTED_PAKETDEAL,
WANTED_DRUGDEAL,
WANTED_ROBPERSON,
WANTED_MAX,
}
enum
{
/*
Definiert die IDs, welche zur Differenzierung
unter OnQueryFinished(queryid) verwendet wird.
Hierbei entspricht queryid den folgenden Bezeichnungen;
weitere Parameter hat die Funktion nicht.
*/
QUERY_GROUP,
QUERY_HOUSE,
QUERY_BADWORDS,
QUERY_TELEPORTS,
QUERY_ENTRANCES,
QUERY_GROUPFIGHT,
QUERY_COMMANDCONFIG,
QUERY_IRC,
QUERY_VEHICLETRADER,
QUERY_VEHICLETRADERSPAWN,
QUERY_ACTORS,
QUERY_ACHIEVEMENTS,
QUERY_FACTIONLIST,
//QUERY_LOTTERY,
//QUERY_LOTTERY2,
QUERY_NODMZONE,
QUERY_NAVICATEGORY,
QUERY_NAVI,
QUERY_GROUPCOLOR,
QUERY_GROUPWEAPONS,
QUERY_GROUPALLIANCE,
QUERY_INTERIOR,
QUERY_PATROLCHECKPOINTS,
QUERY_WANTEDS,
};
enum
{
QUERYEX_FRIENDS,
QUERYEX_MESSAGES,
QUERYEX_PLAYERFILE,
QUERYEX_NOTIFI,
QUERYEX_ACHIEVEMENTS,
QUERYEX_DEATHKILL,
QUERYEX_TESTBONUS,
QUERYEX_ACSERIALBAN,
QUERYEX_REACHEDSURPRISED,
QUERYEX_PLAYERCRIMINALS,
}
enum
{
HOUSEUPGRADE_ALARMSYSTEM,
HOUSEUPGRADE_SAFE,
HOUSEUPGRADE_CAMERA,
MAX_HOUSEUPGRADES
}
enum
{
WORLD_NONE,
WORLD_DERBY,
WORLD_DEAGLE,
WORLD_BATTLEFIELD,
WORLD_SNIPER,
WORLD_MINIGUN,
WORLD_DUELL,
MAX_WORLDS,
};
enum playerSkill
{
SKILL_LAWYER,
SKILL_FISHER,
SKILL_HOUSEROBBER,
SKILL_FARMER,
SKILL_SHOPROBBER,
SKILL_IVAN,
SKILL_DRUGADDICTION,
SKILL_PICKPOCKETING,
MAX_SKILLS
};
enum
{
ACHIEVE_WELCOME = 1,
ACHIEVE_DOITYOURSELF,
ACHIEVE_FIRSTCOMMUNI,
ACHIEVE_ROLECHANGE,
ACHIEVE_SOTRUE,
ACHIEVE_FIRSTVEH,
ACHIEVE_FIRSTOWNGROUP,
ACHIEVE_FAILEDSELFSUP,
ACHIEVE_FIRSTHOUSE,
ACHIEVE_MILIONAIR,
ACHIEVE_PRIVATE,
ACHIEVE_CORPORAL,
ACHIEVE_SERGEANT,
ACHIEVE_GENERALOFSA,
ACHIEVE_DEATHKING,
ACHIEVE_TUTORIAL,
ACHIEVE_MISSIONIMPOSSIBLE,
MAX_ACHIEVEMENTS,
}
enum
{
TALENT_NONE,
TALENT_PICKPOCKET,
TALENT_MECHANIC,
TALENT_MEDIC,
TALENT_WEAPONDEALER,
}
enum job
{
JOB_NONE,
JOB_BAUER,
JOB_PRODDRIVER,
};
enum
{
/*
Definiert im Allgemeinen die verschiedenen Typen von Besitzereigentümern.
Um es an ein konkretes Beispiel zu erklären: Fahrzeug gehört den Typ Gruppe,
erhält somit die Permissions von Fahrzeugen einer Gruppe > Mitglieder können
mit dem jeweiligen Fahrzeug fahren.
*/
OWNERTYP_NONE,
OWNERTYP_BUYABLE = 1,
OWNERTYP_STATIC = 2,
OWNERTYP_JOB = 3,
OWNERTYP_TEAM = 4,
OWNERTYP_PERSON = 5,
OWNERTYP_GROUP = 6,
OWNERTYP_FACTION = 7,
OWNERTYP_EVENT,
};
enum
{
TEAM_NONE = 0,
TEAM_ZIVI = 1,
TEAM_SFPD = 2,
MAX_TEAMS,
}
enum
{
SHOPITEM_ENTRYTOOL,
SHOPITEM_PICKLOCK,
SHOPITEM_PRICEBOOK,
SHOPITEM_CUBE,
MAX_SHOPITEMS,
}
enum
{
ALLIANCE_NORMAL,
ALLIANCE_ALLIED,
ALLIANCE_HOSTILE,
ALLIANCE_REQUESTALLIED,
ALLIANCE_REQUESTNORMAL,
}
enum
{
TOG_PN,
TOG_WANTEDINFO,
TOG_VEHICLERADIO,
TOG_HITMAN,
TOG_ALLIANCE,
TOG_HCHAT,
TOG_GROUPJLMESSAGE,
TOG_JOINLEAVEMESSAGE,
TOG_PLAYERINFO,
TOG_GROUPKILLDEATH,
MAX_TOGS
};
enum
{
TOG_OOC,
TOG_DOUBLEEXP,
TOG_REGISTER,
TOG_TEAMCHANGE,
TOG_REDUCEDWAIT,
MAX_SERVERTOGS,
};
enum
{
TDMENU_NONE,
TDMENU_ADVENTCALENDER,
//TDMENU_LOTTERY,
};
enum
{
FISHSTEP_NONE,
FISHSTEP_FISHING,
FISHSTEP_GETFISH,
}
enum
{
SHOP_VIP30,
SHOP_VIP10,
SHOP_DEXP1,
SHOP_DEXP3,
SHOP_DEXP6,
SHOP_THAMMU,
SHOP_DRUGS,
}
enum
{
TUN_NONE,
TUN_COLOR,
TUN_NEON,
TUN_SAFEWHEELS,
TUN_VEHDL,
TUN_DELETE,
};
enum
{
DICETD_BACKGROUND,
DICETD_TOPLEFT,
DICETD_TOPMIDDLE,
DICETD_TOPRIGHT,
DICETD_MIDDLEMIDDLE,
DICETD_BUTTOMLEFT,
DICETD_BUTTOMMIDDLE,
DICETD_BUTTOMRIGHT,
DICETD_MAX,
DICETD_FINISH = -1
};
enum
{
ROBTYPE_SHOP,
ROBTYPE_BANK,
ROBTYPE_ATM,
ROBTYPE_TRANSPORTER,
ROBTYPE_HOUSESAFE,
MAX_ROBTYPE
};
enum
{
MONEYBAG_NONE,
MONEYBAG_SHOP,
MONEYBAG_BANK,
MONEYBAG_ATMROB,
MONEYBAG_TRANSPORTER,
MONEYBAG_HOUSESAFE,
};
enum
{
FISH_NONE,
FISH_SCHUH,
FISH_FLASCHE,
FISH_SARDINE,
FISH_MAKRELE,
FISH_FLUNDER,
FISH_DELPHIN,
FISH_SEELACHS,
MAX_FISHES
}
enum
{
/*
Enthält alle WetterIDs, welche auf
German Crimescene Verwendung finden.
*/
EXTRASUNNY_LA,
SUNNY_LA,
EXTRASUNNY_SMOG_LA,
SUNNY_SMOG_LA,
CLOUDY_LA,
SUNNY_SF,
EXTRASUNNY_SF,
CLOUDY_SF,
RAINY_SF,
FOGGY_SF,
SUNNY_VEGAS,
EXTRASUNNY_VEGAS, //(heat waves)
CLOUDY_VEGAS,
EXTRASUNNY_COUNTRYSIDE,
SUNNY_COUNTRYSIDE,
CLOUDY_COUNTRYSIDE,
RAINY_COUNTRYSIDE,
EXTRASUNNY_DESERT,
SUNNY_DESERT,
SANDSTORM_DESERT,
UNDERWATER, //(greenish, foggy)
};
enum
{
ROB_NONE,
ROB_POSSIBLE,
ROB_START,
};
enum
{
/*
Definiert die eindeutigen IDs der
Gruppenpermissions.
*/
PERM_INVITE,
PERM_UNINVITE,
PERM_VEHDEAL,
PERM_VEHTUNING,
PERM_VEHCONTROL,
PERM_VEHLABEL,
PERM_VEHPARK,
PERM_WITHDRAW,
PERM_ALLIANCE,
PERM_WAR,
PERM_GETDRUGS,
MAX_PERMS,
};
enum _playerInfo
{
ORM:pORMID,
pSQLID,
bool:pLoggedIn,
bool:pSearchedAccount,
pTitle[MAX_PLAYER_NAME],
pSkip,
pAdmin,
pCoins,
pDonator,
pDoubleExp,
pPremiumFeature[3],
pBank,
pPlayerTimer,
pFirstSpawn,
pKills[MAX_WORLDS],
pDeaths[MAX_WORLDS],
pAdminMuteTime,
pMuteTime,
pPlayTime,
pDayPlayTime,
pPayDayTime,
pGroup,
pGroupRank,
pGroupInvite,
pGroupCharity,
pGroupCharityDiff,
pGroupTimestamp,
pGroupReward,
pGroupIndex,
pGroupDailyDrugs,
pLeader,
pCopRank,
bool:pNoAntiCheat,
pQuestID,
pQuestItem,
pQuestMoney,
pQuestActor,
pQuestLock,
pQuests,
bool:pInLoginScreen,
pMissionCoolDown[2],
pMission,
pMissionStep,
pMissionTime,
pMissionRoute,
pTalent,
pSpawnChange,
pZoneID,
pSkin,
pTeam,
pFps,
pDrunkLevel,
//pTeamLock,
pEatTime,
pCuffed,
pCuffedPerson,
pLoginTime,
pLoginTries,
pWorld,
pWorldIndex,
pAttachTrailerID,
pKillStreak,
bool:pAntiCheat,
bool:pBuyedFightingStyle[6],
bool:pVisitRoom,
bool:pBanIp,
bool:pIsNPC,
bool:pDamageLog,
bool:pHasJetpack,
pAcceptedTickets,
pWrittenTickets,
pCompactID,
pBail,
pFightingStyle,
pFaction[2],
pFactionRank[2],
pFactionInvite,
bool:pFactionInstructor,
pFactionDutyLock,
bool:pFactionDuty,
bool:pSeeTutorial,
pTutorialTime,
pTutorialStep,
pZiviTutorial,
pCopTutorial,
pJobPlayerState,
pJobLeaveTime,
pJobPoints,
pJobMaxPoints,
pJobStep,
pJobSlot,
job:pJobDuty,
pJobVehicle,
pJobTrailer,
pJobObjects[MAX_JOBOBJECTS],
pJobPickups[MAX_JOBOBJECTS],
PlayerText:pJobTextDraw[2],
pOfferDrugAmount,
pOfferDrugPrice,
pOfferDrugSellerID,
pDrugs,
pDrugsBoom,
pDrugsUsed,
pHouseDrugs,
Text3D:pHeadLabel,
pShowHeadLabel,
bool:pNeedAntiCheat,
PlayerText:pHouseRobTextDraw[2],
bool:pHouseRobber,
pHouseRobTimer,
pHouseRobMaxAmount,
pHouseRobAmount,
pHouseRobIndex,
pHouseRobCooldown,
pChannel,
pChannelIndex,
pChannelRank,
pShopItems[MAX_SHOPITEMS],
pPriceBookTime,
pFishes,
pFishingStep,
pFishingTime,
pFish[MAX_PLAYERFISHES],
Float:pFishWeight[MAX_PLAYERFISHES],
pCubeThrow,
pCubeNumber[2],
pCubeTimer,
/*pLotteryNumbers,
pActiveLotteryTickets,
PlayerText:pLotteryTD[50],*/
pOfferDice,
pOfferDiceValue,
pOfferHouseSellerID,
pOfferHousePrice,
pOfferBizSellerID,
pOfferBizPrice,
pDice,
pDiceValue,
pDiceWin,
pDiceLose,
pDerbyWin,
pDerbyLock,
pDerbySlot,
pDerbyVehicle,
pDerbySpectatorID,
Float:pDerbyPos[3],
pDerbySamePos,
pContractValue,
pContractKills,
pCopJailed,
pCopTicket,
pOfferVehicle,
pOfferVehicleSellerID,
pOfferVehiclePrice,
pOfferLawyerID,
pOfferLawyerMoney,
pLawyerTime,
pTicketID,
pTicketTime,
pLastLogout,
pLastLag,
pLastUpdateCall,
pLastContract,
pLastAdvertiseTime,
pLastEquip,
pLastPayDay,
pLastGiveTicket,
pLastMessage,
pLastCommand,
pLastMessages,
pLastVeh,
pLastHit,
pLastHitID,
pLastVehicleHit,
pLastEntranceTime,
pLastVisitTuning,
pLastDeliver,
pLastSearched,
pCommandWarnings,
pLastAchievement,
pLastUsedDrugs,
pLastAfk,
Float:pSpecX,
Float:pSpecY,
Float:pSpecZ,
Float:pSpecA,
pSpecInterior,
pSpecVirtualWorld,
pSpecHouse,
pSpecEntrance,
Float:pSpecHealth,
Float:pSpecArmour,
bool:pLoadedAchievement,
bool:pHasKnife,
bool:pMask,
bool:pVehicleFueling,
bool:pAdminJail,
pTransporterWarns,
bool:pVoting,
bool:pShot,
bool:pDead,
bool:pIgnoreIp,
pTimeProcess,
pBarrierSlot,
pBarrierTime,
pHouseKey,
pHouseSlot,
pHouseRent,
pBizKey,
pBizSlot,
pSkinShop,
bool:pSkinChange,
bool:pAccesChange,
pChooseSkin,
pChooseIndex,
pChooseTeamStep,
pSupportTicketID,
bool:pSupportUnderCover,
pSpectateTyp,
pSpectateID,
pIsSpectator,
pIsSpectated,
pLoginKickTime,
pLoginScreen,
bool:pHandsUp,
pTimer,
pShowTime,
pLifeTimer,
pLevel,
pJailTime,
pJailRoom,
pEntranceID,
pHouseID,
pAdLock,
pTextDrawMenu,
pPlayerRobID,
pPlayerRobTime,
pPlayerRobProtect,
pPlayerRobLock,
pRobbed[MAX_ROBTYPE],
pRobMoney,
pMoneyBag,
pMoneyBagExp,
pMoneyBagAmount,
pMoneyBagDate,
pActorRob,
pWantedLvL,
pCreatedVehicles,
pMaxVehicles,
pVehicles,
pTuningGarage,
pTuningGarageSpace,
bool:pBankRobber,
bool:pTransporterRobber,
bool:pAdminDuty,
bool:pAFK,
bool:pNewbieProtection,
pAFKNumber,
pAFKCheckTime,
pInfoBox,
pVehicleHit,
pNoDmHit,
bool:pNoDmZone,
pSpawnProtection,
pTimeDialog,
pAccessoirID[3],
Float:pAccessoirPosX[3],
Float:pAccessoirPosY[3],
Float:pAccessoirPosZ[3],
Float:pAccessoirRotX[3],
Float:pAccessoirRotY[3],
Float:pAccessoirRotZ[3],
Float:pAccessoirScaleX[3],
Float:pAccessoirScaleY[3],
Float:pAccessoirScaleZ[3],
bool:pReachedCalender[31],
Float:pgetDamagedMax,
Float:pgetDamaged[MAX_PLAYERS],
pDamageTime[MAX_PLAYERS],
pDamageID[MAX_PLAYERS],
pDamageUnique[MAX_PLAYERS],
pDamageTeam[MAX_PLAYERS],
bool:pReachedAchievement[MAX_ACHIEVEMENTS],
PlayerText:pAchievementTD[6],
Float:pExp[2],
pEMail[32],
pTimeDialogHeadLine[32],
pTimeDialogMainText[1024],
pReachedSurprised[MAX_SURPRISE],
pWeaponHit[17],
pWeaponShot[17],
bool:pTog[MAX_TOGS],
pTeamLock[2],
Float:pPlayerPos[3],
Float:pOldPos[3],
oldKeyState[2],
pWarns[2],
pWarnTime,
pWeapon[8],
pAmmo[8],
pLastWanted[3],
pSkill[_:MAX_SKILLS],
pFriends[MAX_FRIENDS],
pPayDayData[5],
pName[MAX_PLAYER_NAME],
pAdvertiser[MAX_PLAYER_NAME],
pKey[129],
pSalt[16]
};
enum _commandInfo
{
ciID,
ciSQLID,
ciName[32],
ciRank
};
enum _playerSkills
{
psSkillName[32],
psSkillMsg[6],
psSkillReal[6],
psSkillDescription[256]
};
enum _entranceInfo
{
ORM:eiORMID,
eiSQLID,
Text3D:eiLabelID,
eiEntranceName[32],
eiEntranceColor[8],
Float:eiEntranceX,
Float:eiEntranceY,
Float:eiEntranceZ,
Float:eiEntranceA,
eiExitID,
eiExitSQLID,
eiActorID,
bool:eiRobable,
bool:eiActor,
bool:eiOwnable,
eiOwnerID,
eiOwner[MAX_PLAYER_NAME],
eiPrice,
eiLevel,
eiProds,
eiProdsPrice,
eiMaxProds,
eiBank,
eiBlackmailer,
eiBlackmailerIndex,
eiBlackmailerName[24],
eiBlackMailerProtection,
};
enum _copComputer
{
ccName[32],
ccLevel,
};
enum _objectInfo
{
oiObjID,
oiModelID,
oiInt,
oiVirt,
Float:oiPos[6],
};
enum _teamInfo
{
tiName[32],
Float:tiPosX,
Float:tiPosY,
Float:tiPosZ,
Float:tiPosA
};
enum _ladderSpawn
{
Float:UpSpawnX,
Float:UpSpawnY,
Float:UpSpawnZ,
Float:UpSpawnA,
Float:DownSpawnX,
Float:DownSpawnY,
Float:DownSpawnZ,
Float:DownSpawnA
};
enum _neonInfo
{
niName[12],
niObjectID[2]
};
enum _shopItems
{
siName[32],
siPrice,
siMaxAmount,
};
enum _houseSafe
{
Float:hsX,
Float:hsY,
Float:hsZ,
Float:hsrX,
Float:hsrY,
Float:hsrZ,
Float:hsDoorX,
Float:hsDoorY,
hsObj[3],
Float:hsPlayer[4],
};
enum _serverInfo
{
serverIp[16],
oldTime,
Tickets,
currentRobStations,
bool:allowSwat,
bool:togDerby,
bool:togAdminUserChat,
bool:togLocked,
//bool:togAntiCheat,
bool:sLocalhost,
currentInfo,
currentPlayers,
currentSFPDVirtualWorld,
currentEntrances,
teamVehicle[MAX_TEAMS],
eventBox,
fishPrice[MAX_FISHES],
productPrice,
bool:lockTeam[2],
CountPatrolCPs,
//lotteryTicketPrice,
rainbowColorID,
rainbowDirection,
HitmanSkinChange,
Float:bonusExp,
bonusMoney,
serverMotD[4096],
//lastLotteryMessage,
LastAdvertiseTime,
LastConnectBot,
Text3D:productLabel,
Text3D:siloLabel[2],
siloCapacity[2],
/*lotteryJackpot,
lotteryNumbers[6],
lottoObj,
lotteryTime,
lotteryStep,*/
secondsTimerTick,
minuteTimerTick,
dataTimerTick,
Float:eventPos[4],
bool:eventState,
bool:eventSurpriseState,
serverTreasury,
Float:ammoPercent,
plantPrice,
siMinDrugPrice,
siMaxDrugPrice,
currentBankRobbers,
currentBankCoolDown,
currentBankTimer,
currentBankTimerID,
currentBankRobState,
currentActiveBankRobber,
BankTransporterTime,
BankTransporterMinute,
BankTransporterHour,
BankTransporterMoneyBags,
BankTransporterVeh,
BankTransporterDriver,
BankTransporterState,
BankTransporterTimer,
BankTransporterRobber,
Text3D:BankTransporterLabel,
Float:BankTransporterPos[4],
currentRespawnVehOwner,
currentRespawnVehOwnerTyp,
currentRespawnVehTime,
currentActiveVote,
currentActiveVotePlayer[MAX_PLAYER_NAME],
currentActiveVotes[2],
currentActiveVoteID,
currentActiveVoteTime,
currentActiveVoteNeeded,
siMusic,
weatherID,
Float:sChatLock[4],
Float:sCountDownPos[4],
sCountDown,
ArrestPickup[3],
RepairPickup[MAX_REPAIRPICKUPS],
};
enum _naviCategory
{
ORM:ncORMID,
ncSQLID,
ncName[32]
};
enum _navigationInfo
{
ORM:niORMID,
niSQLID,
niName[32],
niCategory,
Float:niPosX,
Float:niPosY,
Float:niPosZ
};
enum _deathInfo
{
diPickupID,
Text3D:diLabelID,
Float:diPos[3],
diDeadTime,
};
enum _togInfo
{
tTitle[32],
bool:tDefaultValue
};
enum _serverTog
{
stTitle[32],
bool:stValue,
}
enum _vehicleInfo
{
viSQLID,
ORM:viORMID,
viOwnerTyp,
viOwner[MAX_PLAYER_NAME],
viOwnerID,
viTempOwnerID,
viDriver,
viNumberPlate[32],
viVehicleID,
viModelID,
viTrailer,
viPrice,
viRank,
viOption,
viExpireDate,
viNeon,
bool:viLoaded,
bool:viSafeWheels,
Float:viMaxHealth,
Float:viPos[4],
Text3D:viLabelID,
viPaintjobID,
viColor[2],
viNeonObj[2],
viTuning[14],
};
enum _gangFightInfo
{
gfOwner,
gfOwnerIndex,
gfAttacker,
gfProtectionTime,
gfCtfID,
gfCtfStart,
gfCtfTeam,
Text3D:gfLabelID,
bool:gfActiveFight,
};
enum _tutorialInfo
{
tiHeadLine[32],
Float:tiPos[3],
Float:tiCameraPos[3],
Float:tiCameraLookAt[3],
tiText[512],
};
enum _gangfightZoneData
{
Float:gfMinX,
Float:gfMinY,
Float:gfMaxX,
Float:gfMaxY,
Float:gfCtfX,
Float:gfCtfY,
Float:gfCtfZ,
};
enum _vehicleData
{
viMats,
viProducts,
viTireArmour[4],
bool:viTire[4],
bool:viMotor,
bool:viRefueling,
bool:viMarker,
bool:viLocked,
bool:viAttached,
bool:viStatic,
Float:viDistance,
Float:viOldDistance,
Float:viCurrentPos[3],
Float:viTank,
vdColor[2],
vehicleRadioID,
viEmergencyTimer,
viLightState,
bool:viUCL,
viSireneObj[5],
};
enum _gasstationInfo
{
giLiterPrice,
Text3D:giStationLabel,
giStationID,
Float:giPosX,
Float:giPosY,
Float:giPosZ
};
enum _pickupInfo
{
bool:piCreated,
Float:piX,
Float:piY,
Float:piZ,
piShowTime,
piWanteds,
piUserid,
piTyp,
piParams[3],
piPickupID,
Text3D:piLabelID,
};
enum _portInfo
{
poSQLID,
poName[32],
Float:poX,
Float:poY,
Float:poZ,
Float:poA,
poInt,
poVirt,
};
enum _ammunationInfo
{
aiWeaponID,
aiWeaponAmmo,
aiWeaponPrice,
aiGroupWeaponPrice,
Float:aiGroupExp,
};
/*
enum _SupportTicket
{
stSQLID,
bool:stLocked,
bool:stEdit,
stOpentime,
stOwner[MAX_PLAYER_NAME],
stDatum[30],
st_text[128]
};*/
enum _eatInfo
{
Float:eiPosX,
Float:eiPosY,
Float:eiPosZ,
};
enum _houseInfo
{
ORM:hORMID,
hSQLID,
hOwnerID,
hOwner[MAX_PLAYER_NAME],
Float:hPos[3],
hInteriorID,
hInteriorSQLID,
hLevel,
hPrice,
hRent,
hBank,
hTimestamp,
bool:hSilenctAlarm,
hUpgrade[3],
hDoorObj,
hRobber,
hRobStep,
Float:hRobPercent,
hRobberProtect,
hPickupid,
Text3D:hLabelid
};
enum _groupInfo
{
ORM:gORMID,
gSQLID,
gLeaderID,
gActiveMember,
gMember,
gMaxMember,
gBaseID,
gBank,
gBizes,
Float:gExp,
gKills,
gDeaths,
gMats,
gMatsPrice,
gMatsMaxPrice,
gColor,
gLastActivity,
gDrugs,
gDrugsBuyPrice,
gDrugsSellPrice,
gUpgrade[MAX_GROUPUPGRADES],
gHighestRank,
gOfferMatsValue,
gOfferMatsPrice,
gOfferMats,
gOfferBiz,
gOfferBizValue,
gOfferBizPrice,
gWar,
gWarIndex,
gWarBiz,
warState:gWarTyp,
gWarTime,
gWarPrice,
gWarKills,
gOfferWar,
gWarBizRobLock,
gWarBizLock,
gWarLock,
gWarZoneLock,
gVehicles,
bool:gAllowDM,
gMotD[100],
gRewardKill[2],
gPayDay[4],
gBuyedColor[MAX_GROUPCOLORS],
gName[MAX_GROUPNAME_LENGTH],
gPermission[MAX_PERMS],
gWeaponPrice[35],
bool:gWeaponActivated[35],
gLeader[MAX_PLAYER_NAME],
};
enum _barrierInfo
{
biObjID,
biCreateTime,
biCreateID,
Float:biPos[4]
};
enum _vehicleRadio
{
streamcategory,
streamname[64],
streamurl[64 + 8]
};
enum _questInfo
{
qiName[24],
qiText[256]
};
new questInfo[][_questInfo] =
{
{"Fahrzeugbeschaffung", "Hey %s, kannst du mir das Fahrzeug %s besorgen?\nDu würdest ungefähr $%s als Belohnung bekommen, wenn es unbeschädigt ankommt."},
{"Kopfgeldjäger", "Hey %s, ich habe eine bitte für dich. Bitte töte %s. \nHinterfrag nicht warum, es ist einfach nötig. Du würdest $%s Entschädigung bekommen."},
{"Kurier", "Hey %s, ich habe ein wichtiges Anliegen:\nKannst du ein Paket zum %s in %s bringen? \nIch komm hier leider nicht weg. Ich würde dir $%s zahlen."},
{"Kurier", "Hey %s, ich habe ein wichtiges Anliegen:\nKannst du für mich etwas zu %s bringen? \nSein Haus ist in %s. Ich zahle dir $%s!"},
{"Drogenankauf", "Hey %s, ich habe einen großen Deal am Laufen. \nKannst du mir %dg Drogen besorgen? Ich würde dir $%s zahlen!"}
};
enum _badWords
{
bwWord[32],
bwMoney,
bool:bwPunishment,
bwMuteTime
}
enum _shopItem
{
siCategory,
siID,
siName[32],
siPrice,
siDescription[512]
};
enum _factionInfo
{
ORM:fiORMID,
fiSQLID,
fiName[24],
fiBank,
fiTeam,
Float:fiSpawnX,
Float:fiSpawnY,
Float:fiSpawnZ,
Float:fiSpawnA,
fiInterior,
fiVirtualWorld
};
enum _vehicleTrader
{
vtSQLID,
vtBank,
vtName[32],
vtMaxSpawn[6],
vtCurrentSpawn[6],
vtSpawns,
Float:vtMinX,
Float:vtMinY,
Float:vtMaxX,
Float:vtMaxY
};
enum _vehicleTraderSpawns
{
vtsTyp[MAX_VEHICLETRADER_SPAWNS],
Float:vtsX[MAX_VEHICLETRADER_SPAWNS],
Float:vtsY[MAX_VEHICLETRADER_SPAWNS],
Float:vtsZ[MAX_VEHICLETRADER_SPAWNS],
Float:vtsA[MAX_VEHICLETRADER_SPAWNS]
};
enum _interiorInfo
{
iiSQLID,
iiName[32],
Float:iiPosX,
Float:iiPosY,
Float:iiPosZ,
Float:iiPosA,
iiInterior,
bool:iiFreeze,
bool:iiBuyable,
iiPrice
};
enum _dmArea
{
dmID,
dmAreaName[16],
dmInt,
Text3D:dmLabelID,
dmMaxSpawns,
dmCurrentPlayers,
dmMaxPlayers,
dmWeapons[6],
dmAmmos[6],
Float:dmEntrance[4],
Float:dmSpawnX[16],
Float:dmSpawnY[16],
Float:dmSpawnZ[16],
Float:dmSpawnA[16]
};
enum _fishInfo
{
fiName[16],
fiMinPrice,
fiMaxPrice,
Float:fiMinWeight,
Float:fiMaxWeight
};
enum _tuningItems
{
tiID,
tiName[32],
tiPrice
};
enum _fightingStyle
{
fsID,
fsName[16],
fsPrice
};
enum _surpriseInfo
{
siObjectID,
Text3D:siLabelID,
Float:siPos[3],
};
enum _atmInfo
{
Text3D:aiLabelID,
aiObjKasseID,
aiObjTresorID,
aiMoneyBags,
aiOpenTresor,
aiRobbedTresor,
aiLastHit,
bool:aiCopMessage,
Float:aiKasseHealth,
Float:aiTresorHealth
};
enum _variableConfig
{
vcName[32],
vcDescription[128]
};
enum _colorArray
{
caColorName[32],
caColor
};
enum _ircInfo
{
ircSQLID,
ircName[32],
ircOwner[MAX_PLAYER_NAME],
ircPassword[32],
ircMembers,
};
enum _materialPoint
{
mpName[32],
mpTyp,
mpPrice,
Float:mpMinX,
Float:mpMinY,
Float:mpMaxX,
Float:mpMaxY
};
enum _wantedInfo {
wiID,
wiName[32],
wiWanteds,
bool:wiTicketProtect
};
/*enum _lotteryTD
{
Text:lnTextDrawID,
Float:lnPositionX,
Float:lnPositionY,
};*/
enum _actorInfo
{
//Raubsystem
bool:acRobable,
bool:acRobAnim,
acRobState,
acRobTime,
acLastRob,
acActiveRobber,
Float:acX,
Float:acY,
Float:acZ,
//Questsystem
acQuest,
acQuestItem,
acQuestMoney,
bool:acQuestable,
bool:acSpeak,
acAnimLib[32],
acAnimName[32],
Text3D:label
};
enum _houseUpgrade
{
huID,
huLevel,
huName[32],
huPrice,
huDescription[256]
};
new actorInfo[450][_actorInfo];
enum _duellInfo
{
diPassword,
diCountPlayers,
diPlayers[2],
diLocation,
diWeapon[11],
Float:diHealth,
Float:diArmour,
};
#define MAX_DUELL 10
new duellInfo[MAX_DUELL][_duellInfo];
enum _duellRoom
{
drName[32],
Float:drSpawnX[2],
Float:drSpawnY[2],
Float:drSpawnZ[2],
Float:drSpawnA[2],
Float:drZoneMinX,
Float:drZoneMinY,
Float:drZoneMaxX,
Float:drZoneMaxY,
drInterior
};
new duellRoom[3][_duellRoom] =
{
{"Startower", {1556.7499,1532.6179} , {-1353.4788,-1353.7446} , {329.4609,329.4535} , {88.0276,269.0435} , 1508.48364,-1375.36328,1564.48364,-1319.36328, 0},
{"Dach SF", {-2213.7803,-2212.1194}, {1196.7306,1236.9529}, {87.2109,87.2109}, {357.3026,177.8029}, -2243.7415,1189.9790,-2182.2549,1254.9135, 0},
{"Flint Country Parkplatz", {-557.8120, -581.3973}, {-1040.5889,-1077.9878}, {24.0880,23.6575}, {144.7959,324.1808}, -632.0452,-1085.9221,-505.7649,-1026.8186, 0}
};
new Text3D:TopGruppenLabel;
new TopGruppen[3][35];
new vehicleTraderSpawns[MAX_VEHICLETRADER][_vehicleTraderSpawns];
new vehicleTrader[MAX_VEHICLETRADER][_vehicleTrader];
new ircInfo[150][_ircInfo];
new atmInfo[45][_atmInfo];
new ServerTracks[20][64];
new dbHandle = -1;
new naviCategory[MAX_NAVICATEGORIES][_naviCategory];
new navigationInfo[MAX_NAVIGATION][_navigationInfo];
new factionInfo[3][_factionInfo];
new deathInfo[MAX_PLAYERS][_deathInfo];
new objectInfo[500][_objectInfo];
new portInfo[50][_portInfo];
new barrierInfo[65][_barrierInfo];
new vehicleSlot[MAX_VEHICLES] = {INVALID_SLOT_ID,...};
new gRankName[MAX_GROUPS][MAX_RANKS][MAX_RANK_NAME];
new fRankName[MAX_FACTIONS][MAX_RANKS][MAX_RANK_NAME];
new gDrugsAmount[MAX_GROUPS][MAX_RANKS];
new groupInfo[MAX_GROUPS][_groupInfo];
new houseInfo[MAX_HOUSES][_houseInfo];
new entranceInfo[MAX_ENTRACES][_entranceInfo];
new serverInfo[_serverInfo];
new playerInfo[MAX_PLAYERS][_playerInfo];
new interiorInfo[50][_interiorInfo];
new vehicleInfo[MAX_VEHICLES][_vehicleInfo];
new vehicleData[MAX_VEHICLES][_vehicleData];
new pickupInfo[MAX_PLAYERS][_pickupInfo];
//new SupportTicket[MAX_PLAYERS][_SupportTicket];
new badWords[200][_badWords];
new commandInfo[200][_commandInfo];
new surpriseInfo[MAX_SURPRISE][_surpriseInfo];
//new lotteryTD[53][_lotteryTD];
new wantedInfo[WANTED_MAX][_wantedInfo];
/*new const Float:LottoLetterX = 255.0,
Float:LottoLetterY = 135.0;*/
new const ownerTyp[][] =
{
"Keiner", "Kaufbar", "Statisch", "Job", "Team", "Personal", "Gruppe", "Fraktion", "Event"
};
new const weatherIDs[] =
{
EXTRASUNNY_LA, SUNNY_LA, EXTRASUNNY_SMOG_LA, SUNNY_SMOG_LA, CLOUDY_LA, SUNNY_SF, EXTRASUNNY_SF, CLOUDY_SF,
EXTRASUNNY_VEGAS, EXTRASUNNY_COUNTRYSIDE, SUNNY_COUNTRYSIDE
};
new const variableConfig[][_variableConfig] =
{
{"Steuersatz Ammu-Nation", "Gibt den Prozentsatz für die Steuern an, die beim Kauf von Waffen abgerechnet\nund der Steuerkasse zugeführt werden."},
{"Mindestpreis Drogen", "Gibt den Mindestpreis für Drogen an, der pro Gramm mindestens verlangt werden muss."},
{"Maximalpreis Drogen", "Gibt den Maximalpreis für Drogen an, der pro Gramm maximal verlangt werden darf."}
};
new const NoteDice[][] =
{
{DICETD_FINISH},
{DICETD_MIDDLEMIDDLE,DICETD_FINISH},
{DICETD_TOPLEFT,DICETD_BUTTOMRIGHT,DICETD_FINISH},
{DICETD_TOPLEFT,DICETD_MIDDLEMIDDLE,DICETD_BUTTOMRIGHT,DICETD_FINISH},
{DICETD_TOPLEFT,DICETD_TOPRIGHT,DICETD_BUTTOMLEFT,DICETD_BUTTOMRIGHT,DICETD_FINISH},
{DICETD_TOPLEFT,DICETD_TOPRIGHT,DICETD_MIDDLEMIDDLE,DICETD_BUTTOMLEFT,DICETD_BUTTOMRIGHT,DICETD_FINISH},
{DICETD_TOPLEFT,DICETD_TOPMIDDLE,DICETD_TOPRIGHT,DICETD_BUTTOMLEFT,DICETD_BUTTOMMIDDLE,DICETD_BUTTOMRIGHT,DICETD_FINISH}
};
new const houseUpgrade[][_houseUpgrade] =
{
{HOUSEUPGRADE_ALARMSYSTEM, 1, "Alarmanlage Stufe 1", 100000, "Einstiegsmodell der Sicherheitsanlagen.\nBietet eine Basissicherheit gegen Einbrecher."},
{HOUSEUPGRADE_ALARMSYSTEM, 2, "Alarmanlage Stufe 2", 200000, "Fortgeschrittendes Modell der Sicherheitsanlagen.\nErmöglicht die Option, den stillen Alarm zu aktivieren."},
{HOUSEUPGRADE_ALARMSYSTEM, 3, "Alarmanlage Stufe 3", 200000, "Das Experten Modell der Sicherheitsanlagen.\nDie Alarmanlage ist über das World Wide Web direkt mit dem SFPD verbunden.\nRaubzüge werden direkt gemeldet."},
{HOUSEUPGRADE_ALARMSYSTEM, 4, "Alarmsanlage Stufe MAX", 0, " "},
{HOUSEUPGRADE_SAFE, 1, "Safe Stufe 1", 25000, "Erschwert dem Einbrecher eindeutig das Ausrauben deines Tresors!"},
{HOUSEUPGRADE_SAFE, 2, "Safe Stufe 2", 75000, "Erschwert dem Einbrecher eindeutig das Ausrauben deines Tresors!"},
{HOUSEUPGRADE_SAFE, 3, "Safe Stufe 3", 75000, "Erschwert dem Einbrecher eindeutig das Ausrauben deines Tresors!"},
{HOUSEUPGRADE_SAFE, 4, "Safe Stufe MAX", 0, " "},
{HOUSEUPGRADE_CAMERA, 1, "Kamera Stufe 1", 150000, "Notwendig: Alarmanlage Stufe 3\nDie Kamera ist mit der neusten Gesichtserkennungsoftware ausgerüstet.\nSie meldet dem SFPD automatisch, wer der Räuber ist.\nDer Staatsanwalt von San Andreas wird direkt Klage gegen den Räuber stellen."},
{HOUSEUPGRADE_CAMERA, 2, "Kamera Stufe MAX", 0, " "}
};
enum _drugMaschine
{
Float:dmX,
Float:dmY,
Float:dmZ,
Float:dmRX,
Float:dmRY,
Float:dmRZ,
Float:dmFrontX,
Float:dmFrontY,
dmObjID[4],
dmStep,
dmValue,
dmOwner,
dmEndTime,
};
new drugMaschine[10][_drugMaschine];
/*
new Float:surpriseTDpos[][2] =
{
//{165.000000, 105.000000},
{165.000000, 160.000000},
{165.000000, 215.000000},
{165.000000, 270.000000},
{165.000000, 325.000000},
{220.000000, 160.000000},
{220.000000, 215.000000},
{220.000000, 270.000000},
{220.000000, 325.000000},
{275.000000, 160.000000},
{275.000000, 215.000000},
{275.000000, 270.000000},
{275.000000, 325.000000},
{330.000000, 160.000000},
{330.000000, 215.000000},
{330.000000, 270.000000},
{330.000000, 325.000000},
//{385.000000, 105.000000},
{385.000000, 160.000000},
{385.000000, 215.000000},
{385.000000, 270.000000},
{385.000000, 325.000000},
{440.000000, 160.000000},
{440.000000, 215.000000},
{440.000000, 270.000000},
{440.000000, 325.000000}
};
*/
new const acces[][] =
{
/* Bandana */ {18891,18892,18893,18894,18895,18896,18897,18898,18899,18900,18901,18902,18903,18904,18905,18906,18907,18908,18909,18910,-1},
/* Mask */ {18911,18912,18913,18914,18915,18916,18917,18918,18919,18920,-1},
/* Beret */ {18921,18922,18923,18924,18925,-1},
/* Caps */ {18926,18927,18928,18929,18930,18931,18932,18933,18934,18935,/**/18939,18940,18941,18942,18943,/**/18955,18956,18957,18958,18959,18962,18961,-1},
/* Hats */ {18967,18968,18969,18970,18971,18972,18973,-1},
/* Glasses */ {19006,19007,19008,19009,19010,19011,19012,19013,19014,19015,19016,19017,19018,19019,19020,19021,19022,19023,19024,19025,19026,19027,19028,19029,19030,19031,19032,19033,19034,19035,-1}
};
new const Float:accesPos[][] =
{
/* Bandana */ {0.131928,0.007891,-0.003518,-94.900009,-9.599996,-85.899940,1.000000,1.000000,1.000000},
/* Mask */ {0.075927,0.008891,-0.000517,-76.300018,0.699999,-92.999885,1.000000,1.000000,1.000000},
/* Beret */ {0.135928, 0.002891, -0.008518,0.000000, 0.000000, 347.188201,1.000000,1.000000,1.000000},
/* Caps */ {0.135928, 0.002891, -0.008518,0.000000, 0.000000, 347.188201,1.000000,1.000000,1.000000},
/* Hats */ {0.120927,-0.012110,0.005482,-86.800033,107.200057,-1.311802,1.000000,1.000000,1.000000},
/* Glasses */ {0.086927,0.014891,-0.001517,75.799850,91.399986,14.999990,1.000000,1.000000,1.000000}
};
enum _jobDuty
{
jName[16],
Float:jX,
Float:jY,
Float:jZ,
jSkinAmount,
jSkins[23],
jCurrentPlayers,
jMaxPlayers,
Text3D:jTextLabel,
};
new jobDuty[][_jobDuty] =
{
{"none", 0.0,0.0,0.0,0, {0,0}, 0},
{"Bauer", -1060.4038,-1195.4991,129.5517, 22, {128, 129, 130, 131, 132, 133, 157, 158, 159, 160, 196, 197, 198, 199, 161, 162, 200, 201, 202, 31, 32, 34}, 0, 7,Text3D:INVALID_3DTEXT_ID},
{"Lieferant", 125.3519,-285.5678,1.5781, 10, {15,23,72,73,101,191, 217, 222, 242, 250}, 0, 0, Text3D:INVALID_3DTEXT_ID}
};
new const playerSkills[][_playerSkills] =
{
{"Rechtsberatung", {10,20,40,80,200},{10,30,70,150,350}, "Um weitere Fähigkeitspunkte zu sammeln, \nmusst du Personen aus dem San Fierro Police Department befreien. \nGenauere Infos gibt es unter '/help Anwalt'"},
{"Angeln",{50,150,400,800,1000},{50,200,600,1400,2400}, "Um weitere Fähigkeitspunkte zu sammeln, musst du Fische angeln. \nGenauere Infos gibt es unter '/help Fischer'"},
{"Haustresore knacken", {30,60,90,150,200}, {30,90,180,330,530}, "Um weitere Fähigkeitspunkte zu sammeln, \nmusst du weitere Haustresore ausrauben."},
{"Säen & Ernten",{15,35,60,100,150},{15,50,110,210,360}, "Um weitere Fähigkeitspunkte zu sammeln, \nmusst du Pflanzen säen sowie auch ernten. \n\nWirkung:\nDu kannst mehr Blüten säen und ernten.\nAuch können 2 weitere Blüten bei Ivan pro Skilllevel gekauft und verarbeitet werden."},
{"Ausrauben eines Ladens", {60, 120, 180, 300, 400}, {60, 180, 360, 660, 1040}, "Um weitere Fähigkeitspunkte zu sammeln, \nmusst du Läden ausrauben."},
{"Brüderlichkeit mit Ivan", {250, 750, 1250, 1800, 4000}, {250, 1000, 2250, 3050, 7050}, "Um weitere Sympathiepunkte zu sammeln, \nmusst du bei Ivan weitere Blüten kaufen (pro Blüte ein Sympatiepunkt). \n\nWirkung:\nIvan verkauft dir mehr Blüten aufeinmal."},
{"Drogensucht", {50, 120, 260, 400, 750}, {50, 170, 380, 780, 1530}, "Um weitere Suchtpunkte zu sammeln, \nmusst du Drogen konsumieren (pro Gramm ein Suchtpunkt). \n\nWirkung:\nDer Rückgang des Drogenlimits erfolgt schneller."},
{"Taschendiebstahl", {20, 40, 60, 80, 160}, {20, 60, 120, 200, 360}, "Um weitere Fähigkeitspunkte zu sammeln, \nmusst du erfolgreich die Kunst des Taschendiebstahls bei Opfern durchführen. \n\nWirkung:\nSchnellers Ausführen der Kunst"}
};
enum _farmerZone
{
Float:fzMinX,
Float:fzMinY,
Float:fzMaxX,
Float:fzMaxY,
bool:fzOccupied,
};
new farmerZone[7][_farmerZone] =
{
{-1194.6704,-1063.0341,-1012.6479,-1043.6471, false},
{-1194.6718,-1042.0756,-1012.6198,-1022.6430, false},
{-1194.7194,-1021.0690,-1012.2618,-1001.5468, false},
{-1194.5618,-1000.0610,-1012.3853,-980.5626, false},
{-1194.6011,-979.0010,-1012.2313,-959.6002, false},
{-1194.3276,-958.0654,-1012.2167,-938.5580, false},
{-1194.2229,-936.9504,-1012.1517,-917.5368, false}
};
new const actorCarJacker[][] =
{
{402, 10000},
{403, 12000},
{409, 15000},
{411, 20000},
{413, 14000},
{415, 11000},
{420, 15000},
{424, 9000},
{437, 12000},
{443, 14000},
{448, 5000},
{451, 20000},
{461, 9000},
{463, 6000},
{474, 8000},
{475, 7000},
{477, 9000},
{480, 12000},
{485, 9000},
{483, 12000},
{500, 5000},
{515, 13000},
{506, 12000},
{516, 9000},
{517, 8000},
{522, 12000},
{525, 28000},
{526, 20000},
{530, 20000},
{535, 7000},
{536, 7000},
{541, 12000},
{542, 17000},
{545, 10000},
{547, 8000},
{560, 10000},
{561, 8000},
{562, 8000},
{567, 6000},
{579, 5000},
{582, 8000},
{603, 6000},
{609, 10000}
};
new const tutorialInfo[9][_tutorialInfo] =
{
{"Das Ammu - Nation", {-2288.2512,-63.4292,35.3203}, {-2240.261230, -58.063800, 53.119003}, {-2287.952148, -69.546928, 37.115482},"Ein Gebaeude kann mit ~k~~VEHICLE_ENTER_EXIT~ betreten oder verlassen werden. Hier im Ammunation kannst du mit /buygun Waffen und eine Ausruestung kaufen. Waffen sind das taegliche Brot auf den Strassen von [GSC] German Crimescene | CnR."},
{"Burger Shot Garcia", {-2331.1528,-164.9718,35.5547}, {-2314.239501, -209.291717, 53.233898},{-2328.603759, -174.475540, 38.183219}, "Hier am Burgershot kannst du deine Lebensenergie (roter Balken oben rechts) auffuellen. Um bedient zu werden, druecke die Taste ~k~~SNEAK_ABOUT~. Deine Energie erhaeltst du, nachdem du gezahlt hast."},
{"Das Autohaus", {-2664.9553,-52.0423,4.3268}, {-2706.203857, -85.168830, 37.842285}, {-2668.385009, -21.610254, 5.179983},"Dies ist unser Autohaus, um genauere Informationen zu erhalten, gehe in das zu sehende i und bestaetige das erweiternde Tutorial mit /tutorial nachdem du dieses hier beendet hast. Denke daran, dass unsere Fahrzeuge Kraftstoff benoetigen."},
{"Die Bank", {-1956.6190,1319.8969,7.2553}, {-1975.563720, 1281.954467, 30.487586}, {-1956.026855, 1325.201538, 11.864626},"Dies ist die Bank von [GSC] German Crimescene | CnR, welche fuer unsere Finanzen zustaendig ist. Moechtest du eine Ueberweissung an ein Event taetigen, so solltest du als Empfaenger Event eingeben. Deinen Finanzstatus und weitere Optionen kannst du im Dialog einsehen."},
{"Das P.D.", {-1568.4779,652.7084,7.1875}, { -1635.383300, 622.336425, 45.317245}, {-1625.426269, 674.055541, 14.510066},"Wirst du zum Verbrecher, und sollten dich die Polizisten schnappen, so wirst du hier landen, schau es dir genau an, denn auch Anwaelte koennen dich hier befreien. Sollten wir deine Interesse geweckt haben, dass das Police Department spannende Aufgaben hat, so kannst du selber ein Polizist werden, tippe dazu /teamchange."},
{"Der Hafen", {-1715.4873,-60.0748,3.5547}, {-1691.764648, -96.671134, 33.344402}, {-1730.796020, -57.881095, 8.886375},"Dies ist ein wichtiger Ort, um Geldsaecke abzugeben. Solltest du mal deiner Kriminalitaet freien Lauf lassen, so erhaeltst du bei einem Raub einen Geldsack, welchen du hier abgeben kannst, um dein Geld zu erhalten. Es gibt auch weitere Punkte, die jedoch selber erkundet werden muessen."},
{"Der Job: Bauer", {-1058.6638,-1200.7518,129.2188}, {-1032.262817, -1087.851562, 143.077850}, {-1047.208862, -1183.119262, 133.551788},"An diesem Ort arbeiten die Bauern, moechtest du ebenfalls aushelfen, so musst du dich hier zum Dienst melden /duty. Weitere Informationen wirst du im Chat erhalten, wenn du diesen Job ausueben moechtest."},
{"Haeuserraub", {-2027.8009,-50.9420,35.3786}, {-2013.965576, -82.720466, 44.994178}, {-2027.564819, -54.405517, 38.154163},"In zufaellige Haeuser, welche Spielern gehoeren kannst du mithilfe eines Einbruchwerkzeuges einbrechen. Diese kannst du in einem 24/7 (/navi) kaufen und dann einbrechen. Je oefter du diese Kriminalitaet taetigst, desto besser kannst du es. Denke daran, jedes Haus kann auch extrem gesichert sein. Im Haus findest du ein Tresor, welchen du mit dem passenden Werkzeug aufbrechen kannst."},
{"Tutorialende", {-1984.4114,137.8572,27.6875}, {-2018.042358, 212.655792, 53.609016}, {-2016.408081, 93.808158, 38.130874},"Hiermit hast du das Tutorial erfolgreich beendet, Wir hoffen, dass du einen groben Ueberblick erhalten hast, viele Funktionen wirst du jedoch im Laufe deiner Karriere kennenlernen. Sollten weitere Fragen bestehen, so steht dir der Support (/sup) oder der Teamspeak german-crimescene.de zur Verfuegung. Viel Spass."}
};
enum _tutorialPoint
{
tpHelpID,
tpHeadLine[32],
Float:tpPos[3],
};
enum _missionInfo
{
miName[32],
miTeam,
miRewardMoney,
Float:miRewardExp,
miDesciption[512]
};
enum _patrolCheckpoints
{
pcID,
pcCheckpoints,
pcTime[50],
Float:pcX[50],
Float:pcY[50],
Float:pcZ[50],
};
new missionInfo[][_missionInfo] =
{
{"Auf Streife", TEAM_SFPD, 6000, 3.0, "Jetzt geht es auf Streife! Wichtig dabei ist, dass du ausgerüstet bist und ein vollgetanktes Fahrzeug besitzt. \nDu musst ein Checkpoint innerhalb von 15 Sekunden erreichen. Sollte die Streife erfolgreich beendet werden, \nso erhältst du eine Belohnung von $6.000 und 3 EXP. Viel Erfolg dabei!"}
};
new patrolCheckpoints[20][_patrolCheckpoints];
new const tutorialPoint[][_tutorialPoint] =
{
{1213, "Autohaus" , {-2662.9441,-17.4288,4.3268}},
{1214, "Ladenraub", {-2032.9757,159.1497,29.0391}},
{1214, "Ladenraub", {-2331.1528,-164.9718,35.5547}},
{1214, "Ladenraub", {-2283.9746,-79.9187,35.3203}}
};
new const fightingStyle[6][_fightingStyle] =
{
{FIGHT_STYLE_NORMAL, "Normaler", 0},
{FIGHT_STYLE_BOXING, "Boxer", 150000},
{FIGHT_STYLE_KUNGFU, "Kung-Fu", 200000},
{FIGHT_STYLE_KNEEHEAD, "Kneehead",300000},
{FIGHT_STYLE_GRABKICK, "Grabkick", 275000},
{FIGHT_STYLE_ELBOW, "Elbow", 300000}
};
new copComputer[][_copComputer] =
{
{"Aktuelle Verbrechen", 50}
};
new const Float:cityCoords[][] =
{
{685.0, 476.093, 3000.0, 3000.0}, // Las Venturas
{480.0, -3000.0 , 3000.0, -850.0}, // Los Santos
{80.0, -2101.61, 1075.0, -1239.61}, // Los Santos
{-1213.91, -768.027, 2997.06, 596.349}, // Red Country
{-1213.91, -2892.97, 44.6147, -768.027}, // Flint Country
{-2997.47, -2892.97, -1213.91, -1115.58} // Whetstone
};
new const Float:repairPoints[MAX_REPAIRPICKUPS][4] =
{
{REPAIR_COP,-1631.4897,651.2254,7.1875}, // SFPD Repairpunkt
{REPAIR_COP,987.5336,1075.3224,10.8203}, // FBI Repairpunkt
// Helicopter Pay 'n Spray
{REPAIR_PLANE,-1905.0199,285.0955,48.9843}, // SF Downtown
{REPAIR_PLANE,-2424.5720,1017.7410,58.4587}, // SF Juniper Hallow
{REPAIR_PLANE,488.9448,-1739.1942,26.0231}, // LS Santa Maria Beach
{REPAIR_PLANE,1027.5151,-1010.5729,43.8161} // LS Temple
};
new const shopCategory[][] =
{
" - ", "Bundle","Temporäre Boost","Permanente Boost"
};
new const shopItem[][_shopItem] =
{
{1, SHOP_DEXP1, "1 Stunde Double EXP", 18, "Mit diesem Artikel erhälst du eine Stunde lang einen Double EXP Boost.\nAlle möglichen Aktivitäten, die einem EXP verschaffen, werden verdoppelt.\nAchtung: Dieser Boost gilt ab der Uhrzeit, wo es erworben wurde. "},
{1, SHOP_DEXP3, "3 Stunden Double EXP", 33, "Mit diesem Artikel erhälst du drei Stunden lang einen Double EXP Boost.\nAlle möglichen Aktivitäten, die einem EXP verschaffen, werden verdoppelt.\nAchtung: Dieser Boost gilt ab der Uhrzeit, wo es erworben wurde. "},
{1, SHOP_DEXP6, "6 Stunden Double EXP", 58, "Mit diesem Artikel erhälst du sechs Stunde lang einen Double EXP Boost.\nAlle möglichen Aktivitäten, die einem EXP verschaffen, werden verdoppelt.\nAchtung: Dieser Boost gilt ab der Uhrzeit, wo es erworben wurde. "},
{2, SHOP_THAMMU, "-30P. Ammu-Nation Waffenpreise", 26, "Mit diesem Artikel sparst du 30% beim Kauf von Produkten im Ammu-Nation."},
{2, SHOP_DRUGS, "Drogenbaron", 75, "Mit diesem Artikel bist du ideal für den Drogenhandel gewappnet. \nDu erhälst die Drogen bei der Aufnahme aus der Drogenmaschine direkt in deinen Tresor!"}
};
new const fishInfo[][_fishInfo] =
{
{"None", 0, 0, 0.0,0.0},
{"Schuh", 0, 0, 0.0, 0.0},
{"Flasche", 0, 0, 0.0, 0.0},
{"Sardine", 150, 290, 1.0, 3.0},
{"Makrele", 200, 330, 3.0, 12.5},
{"Flunder", 220, 420, 3.5, 5.5},
{"Delphin", 500, 950, 20.0, 40.0},
{"Seelachs", 300, 350, 8.0, 32.0}
};
new const accesName[][32] =
{
"Bandanas (Kopf)","Bandanas (Mund)","Baskenmützen","Caps","Hüte","Brillen"
};
new shopItems[][_shopItems] =
{
{"Einbruchswerkzeug", 20000, 1},
{"Dietrich", 35000, 1},
{"Price - Book", 110000, 1},
{"Würfel", 500, 1}
};
new dmArea[7][_dmArea] =
{
// BEZEICHNUNG INT MAXPLAYERS WEAPONS AMMOS Entrance Position
{WORLD_DEAGLE, "Only Deagle", 1, Text3D:-1,0,0, 15, {24,-1} , {500,-1}, {-2109.7515,-439.1251,38.7344,91.0550},
{2171.8521,2192.6384,2198.8931,2218.3171,2228.6301,2229.3586,2207.8931,2217.9482,2205.7222,2194.5867,2172.4722, -1.0},
{1619.3826,1626.9703,1612.2703,1614.9343,1592.8728,1574.7174,1552.2617,1593.1423,1580.6846,1591.4404,1578.5382, -1.0},
{999.9766,999.9686,999.9712,999.9827,999.9614,999.9699,1007.4122,999.9769,999.9794,999.9731,999.9666, -1.0},
{268.7112,177.5681,272.0202,0.3954,91.1768,5.8099,269.3132,181.4788,354.0786,182.3811,1.9600, -1.0}
},
{WORLD_BATTLEFIELD, "Battlefield", 10, Text3D:-1,0,0, 12, {24,25,33,-1}, {500,500,500,-1}, {-2109.7471,-442.3077,38.7344,86.4270},
{-973.2989,-969.5819,-974.1447,-974.1853,-1030.3578,-1059.3798,-1083.8812,-1068.2190,-1117.4552,-1131.9363,-1135.9863,-1131.6482,-1132.8276, -1.0},
{1061.2922,1040.4972,1026.0153,1094.9185,1074.9855,1030.3655,1045.4150,1091.8490,1097.3223,1057.8800,1075.1526,1096.9108,1024.6448, -1.0},
{1345.6704,1345.0602,1345.0431,1344.9812,1343.2601,1344.0551,1343.5428,1343.3024,1341.8438,1346.4143,1345.7990,1345.7941,1345.7295, -1.0},
{91.5273,0.3841,90.9257,89.7224,229.8964,336.6205,333.6125,251.2533,214.2546,265.3300,179.6012,202.1616,274.2933, -1.0}
},
{WORLD_DEAGLE, "Only Deagle", 1, Text3D:-1,0,0, 15, {24,-1} , {500,-1}, {-2109.7207,-445.5649,38.7344,88.3270},
{2171.8521,2192.6384,2198.8931,2218.3171,2228.6301,2229.3586,2207.8931,2217.9482,2205.7222,2194.5867,2172.4722, -1.0},
{1619.3826,1626.9703,1612.2703,1614.9343,1592.8728,1574.7174,1552.2617,1593.1423,1580.6846,1591.4404,1578.5382, -1.0},
{999.9766,999.9686,999.9712,999.9827,999.9614,999.9699,1007.4122,999.9769,999.9794,999.9731,999.9666, -1.0},
{268.7112,177.5681,272.0202,0.3954,91.1768,5.8099,269.3132,181.4788,354.0786,182.3811,1.9600, -1.0}
},
{WORLD_BATTLEFIELD, "Battlefield", 10, Text3D:-1,0,0, 12, {24,25,33,-1}, {500,500,500,-1}, {-2109.7495,-449.1166,38.7344,93.4407},
{-973.2989,-969.5819,-974.1447,-974.1853,-1030.3578,-1059.3798,-1083.8812,-1068.2190,-1117.4552,-1131.9363,-1135.9863,-1131.6482,-1132.8276, -1.0},
{1061.2922,1040.4972,1026.0153,1094.9185,1074.9855,1030.3655,1045.4150,1091.8490,1097.3223,1057.8800,1075.1526,1096.9108,1024.6448, -1.0},
{1345.6704,1345.0602,1345.0431,1344.9812,1343.2601,1344.0551,1343.5428,1343.3024,1341.8438,1346.4143,1345.7990,1345.7941,1345.7295, -1.0},
{91.5273,0.3841,90.9257,89.7224,229.8964,336.6205,333.6125,251.2533,214.2546,265.3300,179.6012,202.1616,274.2933, -1.0}
},
{WORLD_SNIPER, "Assassin", 0, Text3D:-1,0,0, 20, {34,-1}, {500,-1}, {-2078.5176,-407.7728,38.7344,357.6172},
{576.1014,672.4165,464.6403,587.2090,618.9842,512.1632,670.9943,750.8999,489.6925,434.6310,712.7559,546.8530,585.7540,537.2505,516.6357, -1.0},
{763.6522,944.6865,877.8581,871.6965,892.1263,971.5226,1001.3806,779.1976,810.0320,896.3268,912.9607,919.5118,874.8378,839.1852,914.0845, -1.0},
{-16.1737,-32.2186,-28.3787,-38.3681,-37.1285,-24.3989,5.8574,-3.1786,1.3076,1.8650,-18.6534,-30.1218,-42.4973,-34.6727,-36.8034, -1.0},
{355.3845,208.5411,275.3844,136.4076,157.9966,237.8485,183.3130,99.9171,276.8683,188.3533,123.0813,262.7763,266.6914,323.3881,179.8920, -1.0}
},
{WORLD_MINIGUN, "Minigun", 0, Text3D:-1,0,0, 10, {38,-1}, {9999,-1}, {-2053.4165,-407.4869,38.7344,183.0350},
{158.9749,246.3193,246.0081,210.0216,165.9437,142.6915,107.3164,-1.0},
{1929.0955,1917.8665,1823.9716,1833.4155,1850.1272,1875.4451,1875.7955,-1.0},
{20.3672,17.6406,17.6406,17.6406,25.4985,17.8434,17.8804,-1.0}
},
{WORLD_DUELL, "Duell", -1, Text3D:-1,0,0, 2, {-1}, {-1}, {-2082.2502,-407.7130,38.7344,7.6773},
{-1.0, -1.0},
{-1.0, -1.0},
{-1.0, -1.0},
{-1.0, -1.0}
}
};
new materialPoint[MAX_MATSPOINTS][_materialPoint] =
{
{"Las Venturas",MATSPOINT_NORMAL,0,106.9005,1335.2454, 294.1531,1488.0292},
{"SF Fleischberg", MATSPOINT_NORMAL,0,-178.3403,-338.7320,18.2223,-218.8444},
{"LS Airport", MATSPOINT_AIRPORT,0,1886.8922,-2477.8391,2054.5049,-2179.0139}
};
new const Float:ladderSpawn[][_ladderSpawn] =
{
// San Fierro Airport
{-1154.8324,-476.3474,14.1484,62.5821,-1154.1696,-476.6938,1.9609,62.5821},
{-1361.0404,-695.9506,14.1484,4.5368,-1361.0913,-696.6430,1.9609,5.2825},
{-1603.4193,-696.6431,1.9609,1.2402,-1603.3944,-695.9041,14.1440,1.3415},
{-1735.6807,-445.9853,14.1484,271.8339,-1736.4481,-445.9722,1.9609,268.3039},
{-1618.2056,-84.5095,14.1484,229.9404,-1618.7570,-84.0270,1.9609,226.6407},
{-1443.9229,89.6551,14.1466,220.7014,-1444.4501,90.2406,1.9609,225.8084},
{-1164.1884,369.5129,14.1484,224.0833,-1164.5991,370.0375,1.9609,224.4494},
{-1116.3221,335.8925,14.1442,41.6436,-1115.7870,335.3467,1.9609,47.2467},
{-1183.0720,60.0523,14.1484,133.3022,-1182.6097,60.4024,1.9609,140.7766},
{-1082.5409,-208.2141,14.1440,114.1666,-1081.9011,-207.9101,1.9609,116.2983},
{-2328.8423,1530.5697,17.3281,9.5750,-2328.9399,1528.5167,1.3984,9.5750} // Containerschiff SF (Angler)
};
new const vehicleRadio[][_vehicleRadio] =
{
{0, "GTA - Pop / 90er / Charts", "http://188.138.33.174:12300/;stream"},
{0, "GTA - HipHop / Rap / Deutschrap", "http://188.138.33.174:12200/;stream"},
{0, "GTA - Rock / Metal / Punk", "http://188.138.33.174:12600/;stream"},
{0, "GTA - Dubstep / Chillstep", "http://188.138.33.174:12500/;stream"},
{0, "GTA - Techno / Trance", "http://188.138.33.174:12800/;stream"},
{1, "HouseTime.FM","http://listen.housetime.fm/dsl.pls"},
{1, "ClubTime.FM","http://listen.clubtime.fm/dsl.pls"},
{1, "TechoBase.FM","http://listen.technobase.fm/dsl.pls"},
{1, "BigFM","http://srv04.bigstreams.de/bigfm-mp3-64"},
{2, "1Live","http://gffstream.ic.llnwd.net/stream/gffstream_stream_wdr_einslive_a"},
{2, "Top100Station","http://www.top100station.de/switch/vtuner.pls"},
{2, "N-JOY","http://www.ndr.de/resources/metadaten/audio/m3u/n-joy.m3u"},
{2, "ILoveRadio","http://www.iloveradio.de/listen.m3u"}
};
new const radioCategory[][] =
{
"{2FB53F}GTA - Radio.de{FFFFFF}",".FM - Radiosender","Weitere Radiostreams","Radiostream stoppen"
};
new ircTitle[][16] =
{
" ","Spieler","Moderator","Admin"
};
new const tuningItems[][_tuningItems] =
{
{TUN_NONE, "NONE",0},
{TUN_COLOR, "Lackierung",500},
{TUN_NEON, "Unterbodenbeleuchtung", 8000000},
{TUN_SAFEWHEELS, "Schusssichere Reifen", 6500000},
{TUN_VEHDL, "Panzerung", 300000},
{TUN_DELETE, "Tuning entfernen", -1}
};
new const eatInfo[][_eatInfo] =
{
{374.7362,-118.8030,1001.4995}, // Pizza
{368.1488,-6.0166,1001.8516}, // Cluckin' Bell
{376.5619,-67.4348,1001.5078}, // Burger Shot
//{-2712.6565,365.9821,4.4215}, // Hotdogstand (Zivispawn) [ArTeX]
//{-2690.2354,395.6454,4.4195}, // Hotdogstand (Zivispawn) [ArTeX]
//{-1982.5376,120.3162,27.6799}, // Hotdogstand (Zivispawn)
//{-2285.4231,148.3396,35.3125}, // Hotdogstand
//{-2147.7031,-424.1660,35.3359}, // Hotdogstand
{2211.0161,1620.7688,999.9827}, // Wasserspender
{2198.9077,1607.4270,999.9694}, // Wasserspender
{2222.8125,1601.7787,999.9722} // Wasserspender
};
new const Float:LoginPos[][6] =
{
{-2011.9277, 217.0272, 47.1989,-2011.4341, 216.1519, 46.8089},
{-2008.3446, 85.8009, 37.4376,-2008.0946, 86.7736, 37.1376},
{-1567.7128, 759.3898, -2.0686,-1568.2755, 758.5581, -2.1585},
{-2702.8293, -52.8638, 24.8043,-2701.9011, -52.4785, 24.1943},
{-2242.2681, -60.3645, 55.6770,-2243.1904, -60.7599, 55.2120},
{-2602.0403, 238.7982, 20.4816,-2602.5825, 237.9520, 20.0066},
{-1895.4678, 1292.6378, 54.5293,-1896.2959, 1293.2061, 53.8194},
{-2917.6592, 2051.5627, 6.3324,-2916.9475, 2050.8550, 6.7075}
};
new const Float:moneyDeposition[][] =
{
{-2975.8220,505.050600,2.4297},
{-1892.5430,-1747.1843,21.7500},
{-1713.5211,-62.0716,3.5547}
};
new const Float:skinChangePos[][] =
{
{0.0,0.0,0.0,0.0}, // NONE
{209.7953,-8.1595,1005.2109,93.1648,5.0}, // VICTIM
{180.9175,-88.1478,1002.0307,92.3486,18.0} // ZIP
};
new const Float:accesChangePos[][] =
{
{0.0,0.0,0.0,0.0},
{206.4897,-8.2346,1005.2109,271.5197,5.0}, // VICTIM
{148.4172,-73.3265,1001.8047,215.9481,18.0} // ZIP
};
new const teamInfo[][_teamInfo] =
{
{"None",0.0,0.0,0.0,0.0},
{"Zivilisten",-1983.1361,137.9180,27.6875,90.2520},
{"Police Department",-1606.3622,673.1793,-5.2422,359.9256}
};
new const ticketState[][] =
{
"{8A9488}Unbekannt", "{4AE82E}Offen", "{E3A32D}Bearbeitung", "{4EBFBF}Freigegeben", "{B07509}Offline Bearbeitung", "{E62727}Erzwungen"
};
new neonInfo[MAX_NEON][_neonInfo] =
{
{"None", {0, 0}},
{"Rot", {18647, 0}},
{"Blau", {18648, 0}},
{"Gruen", {18649, 0}},
{"Gelb", {18650, 0}},
{"Violett", {18651, 0}},
{"Weiss", {18652, 0}}
};
new const skinInfo[4][278] =
{
{0,-1}, // None
{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,48,49,50,53,54,55,56,57,
58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,75,
77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,93,94,
95,96,97,98,100,101,102,103,104,105,106,107,108,109,
110,111,112,113,114,115,116,117,118,119,120,121,122,123,
124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,
139,140,142,143,144,145,146,147,148,149,150,151,152,153,
154,155,156,157,158,159,160,161,162,167,168,169,
170,171,172,173,174,175,176,177,178,179,180,181,182,183,
184,185,186,187,188,189,190,191,192,193,194,195,196,197,
198,199,200,201,202,203,204,205,206,207,208,209,210,211,
212,213,214,215,216,217,218,219,220,221,222,223,224,225,
226,227,228,229,230,231,232,233,234,235,236,237,238,239,
240,241,242,243,244,245,246,247,248,249,250,251,252,253,
254,255,256,257,258,259,260,261,262,263,264,268,269,270,
271,272,273,274,275,276,277,278,279,290,
291,292,293,294,295,296,297,298,299,303,304,305,-1}, // Zivilist
{60, 250, 265, 266, 267, 280, 281, 282, 283, 284, 288, 300, 301, 302, 306, 307, 309, 310, 311, /*FBI SKINS */ 165, 166, 286, 303, 304, 305,-1}, // San Fierro Police Department
{165, 166, 286, 287, 303, 304, 305, -1} // F.B.I.
};
new houseSafe[][_houseSafe] =
{
{2490.381347,-1707.488891,1017.793212,0.000000,0.000000,89.269851,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {2491.3447,-1707.5157,1018.3438,90.0577}},
{310.094085,1119.701049,1083.332275,0.000000,0.000000,173.102920,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {310.0732,1120.3853,1083.8828,179.0875}},
{299.759857,309.232238,1002.754333,0.000000,0.000000,91.008743,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {300.4367,309.2339,1003.3047,91.6433}},
{2339.826904,-1142.535522,1053.754638,0.000000,0.000000,179.225906,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {2339.8477,-1141.8580,1054.3047,178.4374}},
{243.933273,1070.754272,1083.646972,0.000000,0.000000,-178.800949,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {243.8692,1071.4296,1084.1875,185.3307}},
{494.943084,1418.134155,1083.767944,0.000000,0.000000,268.907501,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {494.2649,1418.1399,1084.3685,267.7851}},
{2224.207031,-1140.964599,1025.206542,0.000000,0.000000,359.499542,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {2224.1785,-1141.6436,1025.7969,0.4858}},
{495.487548,-80.686271,998.177368,0.000000,0.000000,-90.397895,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {494.8102,-80.6837,998.7651,271.8350}},
{-2164.225341,641.344055,1057.012939,0.000000,0.000000,-179.120330,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {-2164.2576,642.0203,1057.5875,176.2674}},
{2215.330078,1575.091064,999.390014,0.000000,0.000000,91.077644,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {2216.0056,1575.1521,999.9706,92.2699}},
{316.976989,313.430297,998.577941,0.000000,0.000000,91.288352,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {317.6520,313.5141,999.1484,93.5467}},
{-2221.802490,133.102172,1035.187744,0.000000,0.000000,181.098968,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {-2221.7922,133.7794,1035.6328,177.4974}},
{-111.928535,-8.426483,1000.138183,0.000000,-0.300000,-90.779747,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {-112.6075,-8.5063,1000.7188,269.3283}},
{963.859741,2167.132568,1010.462951,0.000000,0.000000,-1.335846,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {963.9442,2166.4536,1011.0234,3.0159}},
{765.220397,-78.711158,1000.085937,0.000000,0.000000,179.387542,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {765.1939,-78.0341,1000.6563,188.1743}},
{758.744140,-16.354967,1000.005493,0.000000,0.000000,0.074018,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {758.7687,-17.0317,1000.5859,359.8826}},
{769.863464,-5.257561,1000.132934,0.000000,0.000000,180.000015,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {769.8015,-4.5808,1000.7234,186.2942}},
{1216.526367,-23.910140,1000.362487,0.000000,0.000000,-2.313677,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {1216.4135,-24.5832,1000.9531,354.1956}},
{1200.139404,11.724754,1000.361328,0.000000,0.000000,88.715080,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {1200.8173,11.7132,1000.9219,89.7633}},
{-2644.103515,1425.806030,905.890502,0.000000,0.000000,309.477661,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {-2644.5894,1425.3306,906.4609,310.9787}},
{2331.149902,-1185.481567,1031.365966,0.000000,0.000000,90.342979,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {2331.8267,-1185.5020,1031.9766,93.8132}},
{1240.924194,-819.204895,1082.555664,0.000000,0.000000,1.239068,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {1240.9474,-819.8845,1083.1563,4.8256}},
{1711.897583,-1673.542724,19.634756,0.000000,0.000000,90.455528,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {1712.5752,-1673.5745,20.2247,92.5831}},
{2572.734619,-1298.282226,1037.190307,0.000000,0.000000,270.704071,0.0,0.0, {INVALID_OBJECT_ID, INVALID_OBJECT_ID, INVALID_OBJECT_ID}, {2572.0579,-1298.2848,1037.7805,273.4018}}
};
new const togInfo[][_togInfo] =
{ // true = Ausgeschaltet, = false = Aktiviert
{"Private Nachrichten empfangen",false},
{"Wantedinformationen erhalten",false},
{"Fahrzeugradio hören",false},
{"Kopfgeldinformationen",false},
{"Verbündete auf'm Radar sehen",true},
{"H-Chat für Teammitglieder",false},
{"Gruppen - Online - Nachrichten",false},
{"'Join & Leave' Nachrichten", true},
{"Globale Spielerereignisse",false},
{"Gruppenkills anzeigen", true}
};
new const serverTog[][_serverTog] =
{
{"OOC-Chat für Spieler",true},
{"Doppelte EXP",true},
{"Registration",false},
{"Teamchange", false},
{"Reduzierte Wartezeit", true}
};
new const ammunationInfo[][_ammunationInfo] =
{
{WEAPON_DEAGLE,120, 1450, 115000,0.0},
{WEAPON_SHOTGUN,100, 1600, 150000,0.0},
{WEAPON_MP5,700, 2500, 250000,0.0},
{WEAPON_AK47,700, 3500, 600000,500.0},
{WEAPON_M4,400, 9000, 1250000,1500.0},
{WEAPON_RIFLE,85, 9500, 950000,1000.0},
{WEAPON_SNIPER,80, 25000, 3000000,5000.0},
{WEAPON_KATANA, 1, 500,50000, 0.0},
{WEAPON_BAT, 1, 500,50000, 0.0}
};
new gasstationInfo[][_gasstationInfo] =
{
// Nähe Burger Shot, Brücke
{1,Text3D:-1,1,-2411.5713,981.4898,45.4609},
{1,Text3D:-1,1,-2411.5710,976.1647,45.4609},
{1,Text3D:-1,1,-2411.5713,970.8414,45.4609},
{1,Text3D:-1,3,-1614.5759,729.2377,-5.2422}, // SFPD
//Nähe San Fierro PD
{1,Text3D:-1,4,-1673.5553,410.9908,7.1797},
{1,Text3D:-1,4,-1678.4640,415.8287,7.1797},
{1,Text3D:-1,4,-1673.1760,421.1121,7.1797},
{1,Text3D:-1,4,-1667.9248,415.8582,7.1797},
{1,Text3D:-1,4,-1678.5179,405.2824,7.1797},
{1,Text3D:-1,4,-1683.7260,410.5691,7.1797},
// Fort Carson
{1,Text3D:-1,5,68.0067,1220.8083,19.1406},
{1,Text3D:-1,5,74.0674,1219.3542,19.1250},
// Bone Country
{1,Text3D:-1,6,623.6715,1678.2772,6.9922},
{1,Text3D:-1,6,620.1793,1683.1548,6.9922},
{1,Text3D:-1,6,616.8119,1688.1748,6.9922},
{1,Text3D:-1,6,613.2248,1692.8535,7.1875},
{1,Text3D:-1,6,609.7933,1697.8823,6.9922},
{1,Text3D:-1,6,606.4520,1702.8417,6.9995},
{1,Text3D:-1,6,603.0638,1707.8771,6.9922},
// The Emerald Isle
{1,Text3D:-1,7,2207.1147,2470.3054,10.9952},
{1,Text3D:-1,7,2207.1155,2474.6892,10.9952},
{1,Text3D:-1,7,2207.1111,2480.4282,10.9952},
{1,Text3D:-1,7,2197.4849,2480.2126,10.9952},
{1,Text3D:-1,7,2197.4875,2474.6860,10.9952},
{1,Text3D:-1,7,2197.4851,2470.2031,10.9952},
// LV, Sprinyed
{1,Text3D:-1,8,2142.2588,2753.3052,10.9602},
{1,Text3D:-1,8,2148.1179,2753.1782,10.9602},
{1,Text3D:-1,8,2153.8999,2753.2700,10.9602},
{1,Text3D:-1,8,2153.9016,2742.3987,10.9602},
{1,Text3D:-1,8,2148.1182,2742.3203,10.9602},
{1,Text3D:-1,8,2142.2583,2742.4126,10.9602},
//LV, ggü. Casino
{1,Text3D:-1,9,2120.7878,924.9282,10.9609},
{1,Text3D:-1,9,2114.8071,924.9280,10.9609},
{1,Text3D:-1,9,2109.0635,924.9252,10.9609},
{1,Text3D:-1,9,2109.1421,915.3069,10.9609},
{1,Text3D:-1,9,2114.8623,915.3051,10.9609},
{1,Text3D:-1,9,2120.8796,915.3060,10.9609},
//LS, Idlewood
{1,Text3D:-1,10,1942.6049,-1767.3245,13.3906},
{1,Text3D:-1,10,1942.6052,-1771.3785,13.3906},
{1,Text3D:-1,10,1942.6047,-1774.3477,13.3906},
{1,Text3D:-1,10,1942.6049,-1778.4883,13.3906},
//LS, Montgomery
{1,Text3D:-1,11,1378.6575,460.3003,19.9911},
{1,Text3D:-1,11,1380.2740,459.5799,19.9968},
{1,Text3D:-1,11,1383.0039,458.4059,19.9994},
{1,Text3D:-1,11,1384.7793,457.5551,19.9907},
//LS, Dillimore
{1,Text3D:-1,12,654.8952,-571.2336,16.5015},
{1,Text3D:-1,12,654.8964,-569.5550,16.5015},
{1,Text3D:-1,12,654.8965,-560.4770,16.5015},
{1,Text3D:-1,12,654.8962,-558.9559,16.5015},
//LV, Tierra Robada
{1,Text3D:-1,13,-1464.9136,1859.7963,32.6328},
{1,Text3D:-1,13,-1477.6455,1858.9667,32.6398},
{1,Text3D:-1,13,-1477.9590,1866.5371,32.6398},
{1,Text3D:-1,13,-1465.4297,1867.5079,32.6328},
//LV, Tierra Robada
{1,Text3D:-1,14,-1329.0182,2670.0317,50.0625},
{1,Text3D:-1,14,-1328.3746,2675.4585,50.0625},
{1,Text3D:-1,14,-1327.7014,2680.8877,50.4688},
{1,Text3D:-1,14,-1326.8636,2686.3481,50.0625},
//LV, Valle
{1,Text3D:-1,15,-737.0575,2744.7173,47.2266},
//LS, BSN
{1,Text3D:-1,16,998.9000200,-937.7000100,42.6000000},
{1,Text3D:-1,16,1002.0000000,-937.2999900,42.6000000},
{1,Text3D:-1,16,1005.7000000,-936.7999900,42.7000000},
{1,Text3D:-1,16,1008.9000000,-936.2000100,42.6000000},
//SF, Bahnhof
{1,Text3D:-1,17,-2026.6000000,155.7000000,29.4000000},
{1,Text3D:-1,17,-2026.6000000,158.0000000,29.4000000},
//LV, nord-west vom toten Flughafen
{1,Text3D:-1,18,-737.0999800,2744.8999000,47.5000000}
};
new const Float:JailSpawns[][] =
{
{219.3842,110.3419,999.0156,18.8336}, // Zelle 1
{220.0995,111.6375,999.0156,289.2195}, // Zelle 1
{214.8300,108.2268,999.0156,352.5134}, // Zelle 2
{215.2502,111.2945,999.0156,352.2001}, // Zelle 2
{223.6720,111.0002,999.0156,5.6501}, // Zelle 3
{223.5895,107.6898,999.0156,5.6501}, // Zelle 3
{227.7213,111.3929,999.0156,3.4567}, // Zelle 4
{226.9660,108.1161,999.0156,350.6100} // Zelle 4
};
new const colorArray[MAX_GROUPCOLORS][_colorArray] =
{
{"standard", 0xCCBE45FF},
{"aliceblue", 0xF0F8FF},
{"antiquewhite",0xFAEBD7FF},
{"aquamarine",0x7FFFD4FF},
{"azure",0xF0FFFFFF},
{"beige",0xF5F5DCFF},
{"blueviolet",0x8A2BE2FF},
{"brown",0xA52A2AFF},
{"burlywood",0xDEB887FF},
{"cadetblue",0x5F9EA0FF},
{"chartreuse",0x7FFF00FF},
{"chocolate",0xD2691EFF},
{"coral",0xFF7F50FF},
{"cornflowerblue",0x6495EDFF},
{"cornsilk",0xFFF8DCFF},
{"crimson",0xDC143CFF},
{"darkblue",0x00008BFF},
{"darkcyan",0x008B8BFF},
{"darkgoldenrod",0xB8860BFF},
{"darkgray",0xA9A9A9FF},
{"darkgreen",0x006400FF},
{"darkkhaki",0xBDB76BFF},
{"darkmagenta",0x8B008BFF},
{"darkolivegreen",0x556B2FFF},
{"darkorange",0xFF8C00FF},
{"darkorchid",0x9932CCFF},
{"darkred",0x8B0000FF},
{"darksalmon",0xE9967AFF},
{"darkseagreen",0x8FBC8FFF},
{"darkslateblue",0x483D8BFF},
{"darkslategray",0x2F4F4FFF},
{"darkturquoise",0x00CED1FF},
{"darkviolet",0x9400D3FF},
{"deeppink",0xFF9999FF},
{"deepskyblue",0x00BFFFFF},
{"dimgray",0x696969FF},
{"dodgerblue",0x1E90FFFF},
{"firebrick",0xB22222FF},
{"floralwhite",0xFFFAF0FF},
{"forestgreen",0x228B22FF},
{"gainsboro",0xDCDCDCFF},
{"ghostwhite",0xF8F8FFFF},
{"gold",0xFFD700FF},
{"goldenrod",0xDAA520FF},
{"greenyellow",0xADFF2FFF},
{"honeydew",0xF0FFF0FF},
{"hotpink",0xFF69B4FF},
{"indianred",0xCD5C5CFF},
{"indigo",0x4B0082FF},
{"ivory",0xFFFFF0FF},
{"khaki",0xF0E68CFF},
{"lavender",0xE6E6FAFF},
{"lavenderblush",0xFFF0F5FF},
{"lawngreen",0x7CFC00FF},
{"lemonchiffon",0xFFFACDFF},
{"lightblue",0xADD8E6FF},
{"lightcoral",0xF08080FF},
{"lightcyan",0xE0FFFFFF},
{"lightgoldenrodyellow",0xFAFAD2FF},
{"lightgreen",0x90EE90FF},
{"lightgrey",0xD3D3D3FF},
{"lightpink",0xFFB6C1FF},
{"lightsalmon",0xFFA07AFF},
{"lightseagreen",0x20B2AAFF},
{"lightskyblue",0x87CEFAFF},
{"lightslategray",0x778899FF},
{"lightsteelblue",0xB0C4DEFF},
{"lightyellow",0xFFFFE0FF},
{"limegreen",0x32CD32FF},
{"linen",0xFAF0E6FF},
{"mediumaquamarine",0x66CDAAFF},
{"mediumblue",0x0000CDFF},
{"mediumorchid",0xBA55D3FF},
{"mediumpurple",0x9370DBFF},
{"mediumseagreen",0x3CB371FF},
{"mediumslateblue",0x7B68EEFF},
{"mediumspringgreen",0x00FA9AFF},
{"mediumturquoise",0x48D1CCFF},
{"mediumvioletred",0xC71585FF},
{"midnightblue",0x191970FF},
{"mintcream",0xF5FFFAFF},
{"mistyrose",0xFFE4E1FF},
{"moccasin",0xFFE4B5FF},
{"navajowhite",0xFFDEADFF},
{"oldlace",0xFDF5E6FF},
{"olivedrab",0x6B8E23FF},
{"orange",0xFFA500FF},
{"orangered",0xFF4500FF},
{"orchid",0xDA70D6FF},
{"palegoldenrod",0xEEE8AAFF},
{"palegreen",0x98FB98FF},
{"paleturquoise",0xAFEEEEFF},
{"palevioletred",0xDB7093FF},
{"papayawhip",0xFFEFD5FF},
{"peachpuff",0xFFDAB9FF},
{"peru",0xCD853FFF},
{"pink",0xFFC0CBFF},
{"plum",0xDDA0DDFF},
{"powderblue",0xB0E0E6FF},
{"rosybrown",0xBC8F8FFF},
{"royalblue",0x4169E1FF},
{"saddlebrown",0x8B4513FF},
{"salmon",0xFA8072FF},
{"sandybrown",0xF4A460FF},
{"seagreen",0x2E8B57FF},
{"seashell",0xFFF5EEFF},
{"sienna",0xA0522DFF},
{"skyblue",0x87CEEBFF},
{"slateblue",0x6A5ACDFF},
{"slategray",0x708090FF},
{"snow",0xFFFAFAFF},
{"springgreen",0x00FF7FFF},
{"steelblue",0x4682B4FF},
{"tan",0xD2B48CFF},
{"thistle",0xD8BFD8FF},
{"tomato",0xFF6347FF},
{"turquoise",0x40E0D0FF},
{"violet",0xEE82EEFF},
{"wheat",0xF5DEB3FF},
{"whitesmoke",0xF5F5F5FF},
{"yellowgreen",0x9ACD32FF}
};
new const Float:BankCounterPos[][] =
{
{COUNTER_BANK,1380.7429,-972.3622,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1383.0239,-972.3667,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1385.1312,-972.3701,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1387.3491,-972.3727,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1389.8367,-972.3757,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1392.1093,-972.3736,5664.4258,0.0,0.0,0.0},
{COUNTER_BANK,1392.1173,-981.7606,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1389.8813,-981.7668,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1387.4984,-981.7522,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1385.2974,-981.7554,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1383.3177,-981.7583,5664.4189,0.0,0.0,0.0},
{COUNTER_BANK,1380.7898,-981.7537,5664.4189,0.0,0.0,0.0},
{COUNTER_ROBATM,-2077.0000000,5.5000000,34.8000000,0.0000000,0.0000000,270.0000000},
{COUNTER_ROBATM,-2293.7000000,-80.4000000,34.8000000,0.0000000,0.0000000,180.0000000},
{COUNTER_ROBATM,-2697.1001000,230.3999900,3.8000000,0.0000000,0.0000000,270.0000000},
{COUNTER_ROBATM,-2649.8000000,378.5000000,5.6000000,0.0000000,0.0000000,270.0000000},
{COUNTER_ROBATM,-2767.8000000,786.2999900,52.2000000,0.0000000,0.0000000,90.0000000},
{COUNTER_ROBATM,-2704.6001000,1308.4000000,6.5000000,0.0000000,0.0000000,270.0000000},
{COUNTER_ROBATM,-1718.4000000,1355.1000000,6.6000000,0.0000000,0.0000000,314.0000000},
{COUNTER_ROBATM,-1677.2000000,435.5000000,6.6000000,0.0000000,0.0000000,134.2500000},
{COUNTER_ROBATM,-1985.6000000,-418.7999900,35.0000000,0.0000000,0.0000000,112.0000000},
{COUNTER_ROBATM,-1964.4000000,-823.7000100,35.4000000,0.0000000,0.0000000,89.5000000},
//Neue ATMs ab 12.09.2016
{COUNTER_ROBATM,-2117.0242,219.3477,35.2760,0.0000000,0.0000000,270.0000000}, //Beim Noobspawn auf der Baustelle
//{COUNTER_ATM,-1980.5999800,140.5,27.3,0.0,0.0,268.0}, Noobspawn
{COUNTER_ATM,-2671.33716,-17.63530,3.96650,0.0,0.0, 90.0},
{COUNTER_ATM,-2475.5100,2312.4304,4.0,0.0,0.0,85.6193},
// ATMs im 4 Dragons Casino
{COUNTER_ATM,1986.9000000,1003.3000000,994.0999800,0.0000000,0.0000000,180.0000000},
{COUNTER_ATM,1993.9000000,1003.3000000,994.0999800,0.0000000,0.0000000,179.9950000},
{COUNTER_ATM,2000.2000000,1003.3000000,994.0999800,0.0000000,0.0000000,179.9950000}
};
//Float:gfMinX,Float:gfMinY,Float:gfMaxX,Float:gfMaxY,Float:gfCtfX,Float:gfCtfY,Float:gfCtfZ,
new const gangfightZoneData[12][_gangfightZoneData] =
{
{986.386, 1809.776, 1185.533, 2049.596,1066.4142,1883.8596,10.8203}, //0 LV Container (-gebiet)
{-934.23, 1342.956, -537.1823, 1658.258,-797.2783,1522.8790,26.9849}, //1 LV Wüste (-gebiet)
{2484.375,2601.5625,2785.15625,2878.90625,2579.8132,2848.5693,10.8203}, //2 LV Fabrik (-gebiet)
{2225.6658,2407.3857,2376.0110,2510.8875,2228.3889,2458.1714,-7.4531}, //3 LV PD (-gebiet)
{91.3330, 1771.7003, 352.3584, 1945.8903, 297.7065,1846.9758,7.7266}, //4 LV Area69 (-gebiet)
{1827.8401,-1925.9685,2075.9666,-1758.5586, 1957.9349,-1850.6807,4.1360}, //5 LS Kanal (Tankengebiet)
{2086.8740,-2337.5791,2251.9570,-2163.4504,2151.3147,-2255.9607,13.2987}, //6 LS Hafen (-gebiet)
{2820.8552, -2566.7026, 2851.8118,-2320.1882,2840.8367,-2366.5249,31.0039}, //7 LS Schiff (-gebiet)
{-1496.0350,1470.5017,-1332.4955,1514.4312,-1434.5029,1483.3695,1.8672}, //8 SF Schiff (-gebiet)
{781.3787,-1608.9816,925.0168,-1414.4778,873.2939,-1505.6322,12.9068}, //9 LS Burger Shot South (-gebiet)
{1855.3834,-1455.0468,1981.6373,-1346.0753,1954.8956,-1372.2028,19.6484}, //10 LS Glenpark (-gebiet)
{-1628.3854,2562.9988,-1390.8412,2717.5710,-1478.5391,2640.7668,58.7879} //11 LV El Quebrados (-gebiet)
};
new const groupPermission[MAX_PERMS][32] =
{
"Spieler einladen", "Spieler rauswerfen", "Fahrzeug handeln", "Fahrzeug tunen", "Fahrzeug kontrollieren","Fahrzeug beschriften", "Fahrzeug parken",
"Vermögen auszahlen", "Bündnis ändern", "Angriffe kontrollieren", "Drogen auszahlen"
};
new const TeamRank[][] =
{
"Spieler","Community-Helfer","Trial-Supporter","Supporter","Moderator",
"Administrator","Server-Manager","Projektleiter"
};
new const copRank[][] =
{
"Trainee","Cadet 1st Grade","Cadet 2nd Grade","Cadet 3rd Grade","Officer 1st Grade","Officer 2nd Grade","Officer 3rd Grade","Detective 1st Grade","Detective 2nd Grade",
"Detective 3rd Grade","Sergeant 1st Grade","Sergeant 2nd Grade","Commissioner 1st Grade","Commissioner 2nd Grade","Lieutenant 1st Grade","Lieutenant 2nd Grade","SFPD Captain",
"Deputy SFPD Chief","SFPD Chief"
};
new const WantedColor[] =
{
0xFFFFFFFF,0xFFC40000,0xFFA20000,0xFF8800FF,0xFF7300FF,0xFF5500FF,0xFF3700FF,0xF05151FF,
0xFC3A3AFF,0xFF0000FF,0xBD2300FF,0x8A1900FF,0x470D00FF,
};
new Iterator:jobObjects[MAX_PLAYERS]<MAX_JOBOBJECTS>;
new Iterator:Pickup<MAX_PLAYERS>;
new Iterator:Groups<MAX_GROUPS>;
new Iterator:DeathPickup<MAX_PLAYERS>;
new Iterator:Vehicles<2000>;
new Iterator:Barrier<65>;
new Iterator:IRC<50>;
new Iterator:MoneyDrop<MAX_PLAYERS>;
new Iterator:SupportTickets<MAX_PLAYERS>;
new Iterator:NoDmZone<20>;
new Iterator:NavigationCategory<MAX_NAVICATEGORIES>;
new Iterator:Navigation<MAX_NAVIGATION>;
new Iterator:Houses<MAX_HOUSES>;
new Iterator:Actors<MAX_ACTORS>;
enum _supportTicket
{
stSQLID,
stUserSQLID,stUserID,stUserName[MAX_PLAYER_NAME],
stAdminSQLID,stAdminID,
stQuestion[144],
stReleaseReason[32],
stState,
stDate
};
new supportTicket[MAX_PLAYERS][_supportTicket];
enum _nodmZone
{
ORM:ndmORMID,
ndmZone,
ndmSQLID,
ndmName[32],
Float:ndmMinX,
Float:ndmMinY,
Float:ndmMaxX,
Float:ndmMaxY
};
new nodmZone[15][_nodmZone];
enum _moneyDrop
{
mpName[MAX_PLAYER_NAME],
mpPickupID,
mpMoney,
mpDate,
};
enum _achievementInfo
{
aiName[32],
aiDescription[256],
aiRewardMoney,
aiRewardExp
};
new moneyDrop[MAX_PLAYERS][_moneyDrop];
new achievementInfo[MAX_ACHIEVEMENTS][_achievementInfo];
new Text:DiceTD_P1[DICETD_MAX][2],
Text:DiceTD_P2[DICETD_MAX][2];
new Text:tutorialTextDraw[sizeof(tutorialInfo)][2],
Text:tutorialTextDrawStatic[2];
new Text:LoginTextDraw[7];
new Text:farmerJob[3];
new Text:houseRob_Crack[5],
Text:houseRob_Rob[3];
new Text:ADutyLabel;
new Text:BadBizfightTD;
new Text:AdvertiseTD;
new Text:MaterialTD[2];
new Text:WarTextdraw[MAX_GROUPS][3],
Text:WarTextDrawBackGround[6];
new GroupAlliance[MAX_GROUPS][MAX_GROUPS];
new BusinessZone[sizeof(entranceInfo)];
new gangFightInfo[sizeof(gangfightZoneData)][_gangFightInfo];
new gangFightZone[sizeof(gangfightZoneData)];
new Text3D:BankSachenLabel[2];
new BankSachen[14];
new SFPDGate[1];
new bool:GateState[2];
new DialogTempDataIndex[MAX_PLAYERS] = {0,...};
new DialogTempData[MAX_PLAYERS][MAX_PLAYERS];
new MoneyDepositionPickup[sizeof(moneyDeposition)];
new entrancePickup[sizeof(entranceInfo)][2];
new PlayerText:WantedTextDraw[MAX_PLAYERS], Text:Vote[4], Text:CountdownTD;
new PlayerText:MatsProgressbar[MAX_PLAYERS][2];
new PlayerText:Tacho[MAX_PLAYERS][5];
new PlayerText:InfoHeadLine[MAX_PLAYERS],PlayerText:InfoText[MAX_PLAYERS][2];
new Text:TachoBackground,Text:TachoStateFont,Text:TachoTankBackground[4];
new Text:Uhrzeit[2],Text:Datum,Text:MainLine,Text:NoDMTD;
new Text:InfoBox,Text:InfoHeadLineBox,Text:InfoTip,Text:TicketInfo,Text:InfoSkinChange[3],Text:InfoDoubleExp, Text:InfoAccChange;
new PlayerText:PlayerTimeLine[MAX_PLAYERS];
new PlayerText:ZoneText[MAX_PLAYERS];
new Text:CaptureTheFlagTD, Text:CaptureTheFlagBGTD, Text:CaptureTheFlagFlag;
new PlayerText:GangFightCtfTD[MAX_PLAYERS];
new Text:GangFightTD[sizeof(gangfightZoneData)][5], Text:GangFightTD_TIMER, Text:GangFightTD_BGT;
new Text:SurpriseTD[48];
new Text:SurpriseBox[5];
main() { }
stock ReplaceChar(text[], findchar = '_', replacechar = ' ')
{
for(new i = 0, strl = strlen(text); i < strl; i++)
if(findchar == text[i])
text[i] = replacechar;
}
stock Hook_DestroyVehicle(vehicleid)
{
vehicleInfo[vehicleid][viDriver] = INVALID_PLAYER_ID;
DestoryUnderCoverLightsFromVeh(vehicleid);
DestroyVehicleNeon(vehicleid);
deleteproperty(_, "", PROPERTY_OFFSET(vehicleid));
return DestroyVehicle(vehicleid);
}
#define DestroyVehicle Hook_DestroyVehicle
// -------------------- Load Systems ---------------
#include <CnR\systems\derby.inc>
// -------------------------------------------------
public OnGameModeInit()
{
new smallstr[128], Info[3];
gettime(Info[0], Info[1], Info[2]);
MySQL_SetupConnection();
MapAndreas_Init(MAP_ANDREAS_MODE_FULL);
Iter_Init(jobObjects);
SetNameTagDrawDistance(45.0);
LimitGlobalChatRadius(30.0);
for(new i = 0; i < sizeof(dmArea); i++)
{
if(dmArea[i][dmID] != WORLD_MINIGUN) continue;
CreateDynamicObject(19313,96.697189,1915.013793,20.456399,0.000000,0.000000,90.569564, i + 1); //dIndex + 1
}
// ANTICHEAT
//acServer[acTog][0] = true; // High - Ping abschalten
//acServer[acTog][1] = true; // FPS abschalten
// Default Einstellungen
serverInfo[LastConnectBot] = gettime() + 15;
serverInfo[BankTransporterHour] = Info[0];
serverInfo[BankTransporterMinute] = 20 + random(25);
serverInfo[currentActiveBankRobber] = INVALID_PLAYER_ID;
//serverInfo[togLocked] = true;
serverTog[TOG_OOC][stValue] = true;
serverTog[TOG_DOUBLEEXP][stValue] = true;
serverTog[TOG_REDUCEDWAIT][stValue] = true;
serverInfo[togDerby] = false;
GenerateMaterialPrice(true);
GenerateFishPrice(true);
GeneratePlantPrice();
LoadServerMotD();
LoadServerConfig();
LoadMusicConfig();
LoadDerbyConfig();
LoadNextDerby();
SetTimer("HitmanAD",1200000,1);
Command_AddAltNamed("pn", "pm");
Command_AddAltNamed("overhaften", "oarrest");
Command_AddAltNamed("festnehmen", "cuff");
Command_AddAltNamed("einladen", "invite");
Command_AddAltNamed("feinladen", "finvite");
Command_AddAltNamed("rauswerfen", "uninvite");
Command_AddAltNamed("frauswerfen", "funinvite");
Command_AddAltNamed("giverank", "gibrang");
Command_AddAltNamed("fgiverank", "fgibrang");
Command_AddAltNamed("annehmen", "accept");
Command_AddAltNamed("rob", "ausrauben");
Command_AddAltNamed("grab", "reinziehen");
Command_AddAltNamed("verkaufen", "sell");
Command_AddAltNamed("a", "report");
Command_AddAltNamed("hmanage", "hverwalten");
Command_AddAltNamed("hmanage", "bverwalten");
Command_AddAltNamed("kriegsstart", "startwar");
Command_AddAltNamed("buygun", "kaufwaffe");
Command_AddAltNamed("clearchat", "cc");
Command_AddAltNamed("clearad", "cad");
Command_AddAltNamed("vertrag", "compact");
Command_AddAltNamed("showfinances", "showmoney");
Command_AddAltNamed("showfinances", "finanzen");
Command_AddAltNamed("showfinances", "money");
Command_AddAltNamed("contract", "kopfgeld");
Command_AddAltNamed("controlbiz", "cbiz");
Command_AddAltNamed("closeticket", "ct");
Command_AddAltNamed("releasesup", "rs");
serverInfo[weatherID] = weatherIDs[random(sizeof(weatherIDs))];
SetWeather(serverInfo[weatherID]);
SetGameModeText("Cops and Robbers");
EnableStuntBonusForAll(0);
DisableInteriorEnterExits();
ManualVehicleEngineAndLights();
#if defined WARTUNGSMODUS
SendRconCommand("hostname .:: [GSC] German Crimescene | CnR ::. [Wartungsmodus]");
#endif
SendRconCommand("loadfs maps");
//SendRconCommand("loadfs ferriswheel");
gettime(serverInfo[oldTime],Info[0],Info[1]);
SetWorldTime(serverInfo[oldTime]);
// Bots connecten lassen
SetTimerEx("ConnectFixedBot",500, false, "d",1);
//SetTimerEx("ConnectFixedBot",1250, false, "d",4); XMAS - BOT
SetTimer("CheckData",250, true);
SetTimer("SecondsTimer",1000, true);
SetTimer("MinuteTimer",1000 * 60, true);
SetTimer("HalfMinuteTimer",1000 * 30, true);
SetTimer("AutoServerMessage", 1000 * 60 * 20, true);
serverInfo[BankTransporterVeh] = CreateVehicle(428,-2440.8467,531.7496,30.0293,180.0864,38,55, -1);
for(new i = 0; i < 4; i++)
vehicleData[serverInfo[BankTransporterVeh]][viTireArmour][i] = 16;
vehicleData[serverInfo[BankTransporterVeh]][viLocked] = true;
mysql_tquery(dbHandle,"SELECT * FROM `groups` WHERE `loaded` = '1'","OnQueryFinished","d",QUERY_GROUP);
format(smallstr, 128, "SELECT * FROM `vehicles` WHERE `loaded` = '1' AND `ownertyp` != '%d'",OWNERTYP_PERSON);
mysql_tquery(dbHandle,smallstr,"LoadVehicles","d",INVALID_PLAYER_ID);
mysql_tquery(dbHandle,"SELECT * FROM `interiors`","OnQueryFinished","d",QUERY_INTERIOR);
mysql_tquery(dbHandle,"SELECT username,businesse.* FROM businesse LEFT JOIN accounts ON accounts.id = businesse.owner", "OnQueryFinished","d",QUERY_ENTRANCES);
mysql_tquery(dbHandle,"SELECT * FROM `groupfight`", "OnQueryFinished","d",QUERY_GROUPFIGHT);
mysql_tquery(dbHandle,"SELECT * FROM `vehicletrader`", "OnQueryFinished","d",QUERY_VEHICLETRADER);
mysql_tquery(dbHandle,"SELECT * FROM `vehicletrader_spawns`", "OnQueryFinished","d",QUERY_VEHICLETRADERSPAWN);
mysql_tquery(dbHandle,"SELECT * FROM `achievements` WHERE `active` = '1' ORDER BY `name` ASC", "OnQueryFinished","d", QUERY_ACHIEVEMENTS);
mysql_tquery(dbHandle,"SELECT * FROM `navicategory`", "OnQueryFinished","d", QUERY_NAVICATEGORY);
mysql_tquery(dbHandle,"SELECT username,houses.* FROM houses LEFT JOIN accounts ON accounts.id = houses.owner","OnQueryFinished","d",QUERY_HOUSE);
mysql_tquery(dbHandle,"SELECT * FROM `groups_buyedcolor` ORDER BY `groupid`", "OnQueryFinished","d", QUERY_GROUPCOLOR);
mysql_tquery(dbHandle,"SELECT * FROM `groups_weapons` ORDER BY `groupid`", "OnQueryFinished","d", QUERY_GROUPWEAPONS);
mysql_tquery(dbHandle,"SELECT * FROM `groups_alliance` ORDER BY `groupid`", "OnQueryFinished","d", QUERY_GROUPALLIANCE);
mysql_tquery(dbHandle,"SELECT * FROM `actors`", "OnQueryFinished","d",QUERY_ACTORS);
mysql_pquery(dbHandle, "SELECT * FROM `factionlist`", "OnQueryFinished", "d", QUERY_FACTIONLIST);
mysql_pquery(dbHandle, "SELECT * FROM `nodmzone`", "OnQueryFinished", "d", QUERY_NODMZONE);
mysql_pquery(dbHandle,"SELECT * FROM `commandconfig`", "OnQueryFinished","d",QUERY_COMMANDCONFIG);
mysql_pquery(dbHandle,"SELECT * FROM `badwords`", "OnQueryFinished","d",QUERY_BADWORDS);
mysql_pquery(dbHandle,"SELECT * FROM `teleports`", "OnQueryFinished","d",QUERY_TELEPORTS);
mysql_pquery(dbHandle,"SELECT * FROM `mission_patrolcps`", "OnQueryFinished","d",QUERY_PATROLCHECKPOINTS);
mysql_pquery(dbHandle,"SELECT * FROM `wanteds`", "OnQueryFinished","d",QUERY_WANTEDS);
mysql_pquery(dbHandle,"SELECT * FROM `irc`","OnQueryFinished","d",QUERY_IRC);
mysql_tquery(dbHandle,"DELETE from `log_surprise` WHERE timestamp < (Now() - INTERVAL 30 DAY)");
mysql_tquery(dbHandle,"DELETE from `log_gchat` WHERE timestamp < (Now() - INTERVAL 7 DAY)");
mysql_tquery(dbHandle,"DELETE from `log_dchat` WHERE timestamp < (Now() - INTERVAL 7 DAY)");
mysql_tquery(dbHandle,"DELETE from `log_command` WHERE date < (Now() - INTERVAL 7 DAY)");
AddPlayerClass(1,-685.3075,939.5270,13.6328,90.1,0,0,0,0,0,0);
/*serverInfo[lottoObj] = CreateObject(9188, -1970.518310,113.315971,31.497526,0.000000,0.000000,-179.887054); // rechte Werbetafel
UpdateLottoObj(" ");*/
// Menu
new TopGruppenSTR[350];
format(TopGruppenSTR, sizeof(TopGruppenSTR), ">>TOP 3 Gruppen<<\n1. Leer | Punkte: 000\n2. Leer | Punkte: 000\n3. Leer | Punkte: 000\nAktualisierung um XX:XX Uhr");
TopGruppenLabel = CreateDynamic3DTextLabel(TopGruppenSTR,COLOR_YELLOW,-1983.5575,128.5517,27.6875,4.5);
CreateDynamicPickup(1239,1,296.4866,-38.5101,1001.5156);
CreateDynamic3DTextLabel("[ Information ]{FFFFFF}\n/buygun",COLOR_YELLOW,296.4866,-38.5101,1001.5156,3.5);
CreateDynamicPickup(1239,1,-23.2072,-55.6462,1003.5469);
CreateDynamic3DTextLabel("[ Information ]{FFFFFF}\n/buy",COLOR_YELLOW,-23.2072,-55.6462,1003.5469,3.5);
// Ivan Label
CreateDynamicPickup(1239,1,-1075.8691,-1189.0864,129.2188);
CreateDynamic3DTextLabel("[ Ivan ]{FFFFFF}\nDrücke ALT, um mit Ivan zu interagieren",0x72C275FF,-1075.8691,-1189.0864,129.2188,7.5);
//Arrestpunkt SFPD
serverInfo[ArrestPickup][0] = CreateDynamicPickup(1314,14,-1606.4254,732.9525,-5.2344);
CreateDynamic3DTextLabel("[ {1796BD}Übergabepunkt von Verbrechern ]{FFFFFF}",COLOR_WHITE,-1606.4254,732.9525,-5.2344,7.5);
serverInfo[ArrestPickup][1] = CreateDynamicPickup(1314,14,-1649.6470,695.9135,38.2422); // PD Heli
CreateDynamic3DTextLabel("[ {1796BD}Übergabepunkt von Verbrechern ]{FFFFFF}",COLOR_WHITE,-1649.6470,695.9135,38.2422,15.0);
serverInfo[ArrestPickup][2] = CreateDynamicPickup(1314,14,612.4927,-589.9958,17.2330); // FBI
CreateDynamic3DTextLabel("[ {1796BD}Übergabepunkt von Verbrechern ]{FFFFFF}",COLOR_WHITE,612.4927,-589.9958,17.2330,15.0);
//Lieferantpunkt SF
CreateDynamicPickup(1239,1,134.4319,-285.1986,1.5781);
serverInfo[productLabel] = CreateDynamic3DTextLabel("[ Warenlager ]{FFFFFF}\n/buyprods [ Anzahl ]\nPreis pro Produkt: $0",COLOR_YELLOW,134.4319,-285.1986,1.5781,7.5);
GenerateProductPrice(true);
//Arrestpunkt SFPD - Selbst stellen
CreateDynamicPickup(1314,14,246.3708,118.3636,1003.2188);
CreateDynamic3DTextLabel("[ {1796BD}Stellpunkt für Verbrecher ]{FFFFFF}\n~k~~SNEAK_ABOUT~, um Dich zu stellen",COLOR_WHITE,246.3708,118.3636,1003.2188,7.5);
//Anwaltpunkt SFPD
CreateDynamicPickup(1314,1,222.0275,121.7605,999.0156);
CreateDynamic3DTextLabel("[ {5EA61B}Anwalt{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das Anwaltmenü zu öffnen",COLOR_WHITE,222.0275,121.7605,999.0156,7.5);
//Materialien Abholpunkt Fleischberg #1
CreateDynamicPickup(1318,1,-130.5432,-319.0816,1.4219);
CreateDynamic3DTextLabel("[ {95BBC4}Waffenlager{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das Kaufmenü zu öffnen",COLOR_WHITE,-130.5432,-319.0816,1.4219,7.5);
//Missionspunkt SFPD
CreateDynamicPickup(1277,1,-1638.8821,670.2036,7.1875);
CreateDynamic3DTextLabel("[ Cop Missionen ]{FFFFFF}\n/mission",COLOR_YELLOW,-1638.8821,670.2036,7.1875,7.5);
//Materialien Abholpunkt LV #2
CreateDynamicPickup(1318,1,262.9011,1388.5336,10.5859);
CreateDynamic3DTextLabel("[ {95BBC4}Waffenlager{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das Kaufmenü zu öffnen",COLOR_WHITE,262.9011,1388.5336,10.5859,7.5);
//Materialien Abholpunkt Airport LS #3
CreateDynamicPickup(1318,1,1973.1516,-2382.5566,13.5469);
CreateDynamic3DTextLabel("[ {95BBC4}Waffenlager (Flughafen){FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das Kaufmenü zu öffnen",COLOR_WHITE,1973.1516,-2382.5566,13.5469,7.5);
//Hitman Kaufpunkt
CreateDynamicPickup(2359, 1,2553.7827,-1294.0857,1031.4219);
CreateDynamic3DTextLabel("[ {81C77F}Waffenlager Hitman Agency{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das Kaufmenü zu öffnen",COLOR_WHITE,2553.7827,-1294.0857,1031.4219,7.5);
//Hitman Skinchange
serverInfo[HitmanSkinChange] = CreateDynamicPickup(1275,1,2564.3318,-1298.0846,1031.4219);
CreateDynamic3DTextLabel("[ Kleiderschrank (Zufallsskin) ]{FFFFFF}",0x9F84BAFF,2564.3318,-1298.0846,1031.4219,15.0);
// Fisherman Dan
CreateDynamicPickup(1239,1,-2475.8281,1547.4886,23.6484);
CreateDynamic3DTextLabel("[ {95BBC4}Fisherman Dan{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um eine Unterhaltung zu starten",COLOR_WHITE,-2475.8281,1547.4886,23.6484,7.5);
// FBI
CreateDynamicPickup(1314,1,289.7004,187.6945,1007.1794);
CreateDynamic3DTextLabel("[ Waffenlager FBI ]\n{FFFFFF}/equip",0x81C77FFF,289.7004,187.6945,1007.1794,7.5);
/*
CreateDynamicPickup(1239,1,-2079.5950,1381.1173,7.1016);
CreateDynamic3DTextLabel("[ {95BBC4}Weihnachts-Kundschafter Aan{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um den Adventskalender zu oeffnen",COLOR_WHITE,-2079.5950,1381.1173,7.1016,7.5);
*/
CreateDrugMaschine(0, -2759.5000000,246.3000000,7.6000000,0.0000000,0.0000000,270.0000000);
CreateDrugMaschine(1, -2458.754394,774.158142,35.962997,0.000000,0.00000,270.0);
CreateDrugMaschine(2, -1808.397949,-1651.132690,22.520004,0.000000,0.000000,277.986724);
CreateDrugMaschine(3, -1331.843383,-241.552124,6.779999,0.000000,0.000000,-89.508003);
//Pay 'n Spray Heli
for(new i = 0, j = sizeof(repairPoints); i < j; i++)
{
serverInfo[RepairPickup][i] = CreateDynamicPickup(3096,14,repairPoints[i][1],repairPoints[i][2],repairPoints[i][3]);
}
for(new i = 0; i < MAX_DUELL; i++)
{
ResetDuellRoom(i);
}
for(new i = 0; i < sizeof(tutorialPoint); i++)
{
format(smallstr, sizeof(smallstr), "[ Hilfestellung - %s]\n{FFFFFF}Gebe /tutorial ein, um \nInformationen / Hilfestellungen zu diesem Punkt zu bekommen.");
CreateDynamic3DTextLabel(smallstr,0xDEA983FF,tutorialPoint[i][tpPos][0],tutorialPoint[i][tpPos][1],tutorialPoint[i][tpPos][2],3.5);
CreateDynamicPickup(1239,1,tutorialPoint[i][tpPos][0],tutorialPoint[i][tpPos][1],tutorialPoint[i][tpPos][2],0);
}
for(new i = 0; i < sizeof(houseSafe); i++)
{
houseSafe[i][hsDoorX] = houseSafe[i][hsX];
houseSafe[i][hsDoorY] = houseSafe[i][hsY];
houseSafe[i][hsDoorX] -= (0.25 * floatsin(- (houseSafe[i][hsrZ]), degrees));
houseSafe[i][hsDoorY] -= (0.25 * floatcos(- (houseSafe[i][hsrZ]), degrees));
houseSafe[i][hsDoorX] -= (0.4 * floatsin(- (houseSafe[i][hsrZ] -90), degrees));
houseSafe[i][hsDoorY] -= (0.4 * floatcos(- (houseSafe[i][hsrZ] -90), degrees));
houseSafe[i][hsObj][0] = CreateDynamicObject(2003,houseSafe[i][hsX],houseSafe[i][hsY],houseSafe[i][hsZ],houseSafe[i][hsrX],houseSafe[i][hsrY],houseSafe[i][hsrZ]); //object(cr_safe_body) (1)
houseSafe[i][hsObj][1] = CreateDynamicObject(2005,houseSafe[i][hsX],houseSafe[i][hsY],houseSafe[i][hsZ]-0.08,houseSafe[i][hsrX],houseSafe[i][hsrY],houseSafe[i][hsrZ]-2.0); //object(cr_safe_cash) (1)
}
for(new i = 1; i < sizeof(jobDuty); i++)
{
jobDuty[i][jTextLabel] = CreateDynamic3DTextLabel(" ", 0xB978C2FF, jobDuty[i][jX], jobDuty[i][jY], jobDuty[i][jZ], 7.5);
CreateDynamicPickup(1275, 1, jobDuty[i][jX], jobDuty[i][jY], jobDuty[i][jZ], 0);
UpdateJobLabel(i);
}
for(new i = 0; i < sizeof(ladderSpawn); i++)
{
CreateDynamic3DTextLabel("[ {A0CC43}Leiter{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um die Leiter zu benutzen.", COLOR_WHITE, ladderSpawn[i][UpSpawnX], ladderSpawn[i][UpSpawnY], ladderSpawn[i][UpSpawnZ], 7.5);
CreateDynamic3DTextLabel("[ {A0CC43}Leiter{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um die Leiter zu benutzen.", COLOR_WHITE, ladderSpawn[i][DownSpawnX], ladderSpawn[i][DownSpawnY], ladderSpawn[i][DownSpawnZ], 7.5);
}
for(new i = 0; i < sizeof(moneyDeposition); i++)
{
CreateDynamic3DTextLabel("[ {4AA334}Geldabgabepunkt{FFFFFF} ]",COLOR_WHITE, moneyDeposition[i][0],moneyDeposition[i][1],moneyDeposition[i][2],20);
MoneyDepositionPickup[i] = CreateDynamicPickup(1274,1,moneyDeposition[i][0],moneyDeposition[i][1],moneyDeposition[i][2],0);
}
for(new i = 1; i < sizeof(skinChangePos); i++)
{
CreateDynamicPickup(19198,1,skinChangePos[i][0],skinChangePos[i][1],skinChangePos[i][2]);
CreateDynamic3DTextLabel("[ {F5E3A2}Umkleide{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um dich umzuziehen",COLOR_WHITE,skinChangePos[i][0],skinChangePos[i][1],skinChangePos[i][2],10.0);
}
for(new i = 1; i < sizeof(accesChangePos); i++)
{
CreateDynamicPickup(19198,1,accesChangePos[i][0],accesChangePos[i][1],accesChangePos[i][2]);
CreateDynamic3DTextLabel("[ {F5E3A2}Accessoires{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um dich umzuziehen",COLOR_WHITE,accesChangePos[i][0],accesChangePos[i][1],accesChangePos[i][2],10.0);
}
for(new i = 0; i < sizeof(dmArea); i++)
{
CreateDynamicPickup(1314,1,dmArea[i][dmEntrance][0],dmArea[i][dmEntrance][1],dmArea[i][dmEntrance][2]);
if(!strcmp(dmArea[i][dmAreaName], "Duell", true))
{
format(smallstr, sizeof(smallstr), "[ {F5E3A2}%s - Arena{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um die Arena zu betreten.",dmArea[i][dmAreaName]);
}
else
{
format(smallstr, sizeof(smallstr), "[ {F5E3A2}%s - Arena{FFFFFF} ]\n0 / %d Spieler\n~k~~SNEAK_ABOUT~, um die Arena zu betreten.",dmArea[i][dmAreaName],dmArea[i][dmMaxPlayers]);
}
dmArea[i][dmLabelID] = CreateDynamic3DTextLabel(smallstr,COLOR_WHITE,dmArea[i][dmEntrance][0],dmArea[i][dmEntrance][1],dmArea[i][dmEntrance][2],3.5);
for(new x = 0; x < 15; x++)
{
if(dmArea[i][dmSpawnX][x] == -1.0) break;
dmArea[i][dmMaxSpawns]++;
}
}
CreateDynamicPickup(1314,1,-2050.6506,-407.7728,38.7344);
CreateDynamic3DTextLabel("[ {F5E3A2}Derby - Arena{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um die Arena zu betreten.",COLOR_WHITE,-2050.6506,-407.7728,38.7344,3.5);
for(new i = 0; i < sizeof(BankCounterPos); i++)
{
if(BankCounterPos[i][0] == COUNTER_BANK)
{
CreateDynamic3DTextLabel("[ {18A5B5}Bankschalter{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das Bankmenü zu öffnen",COLOR_WHITE, BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3],2.5);
}
else if(BankCounterPos[i][0] == COUNTER_ROBATM)
{
atmInfo[i][aiLabelID] = CreateDynamic3DTextLabel("[ {18A5B5}ATM{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das ATM-Menü zu öffnen\n\n{E38C29}Zustand: 100%",COLOR_WHITE, BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3],2.5);
atmInfo[i][aiObjTresorID] = CreateDynamicObject(2332,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3] - 0.1,BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6]);
atmInfo[i][aiObjKasseID] = CreateDynamicObject(2941,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3] + 0.7,BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6] + 180.0);
atmInfo[i][aiKasseHealth] = 25.0;
atmInfo[i][aiTresorHealth] = 350.0;
atmInfo[i][aiMoneyBags] = 2;
}
else if(BankCounterPos[i][0] == COUNTER_ATM)
{
CreateDynamic3DTextLabel("[ {18A5B5}ATM{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das ATM-Menü zu öffnen",COLOR_WHITE, BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3],2.5);
CreateDynamicObject(2942, BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3],BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6]);
}
}
for(new i = 0; i < sizeof(eatInfo); i++)
{
CreateDynamic3DTextLabel("[ HP - Aufladestation ]\nDrücke ALT, um dich zu heilen.\nPro 1 HP kostet es dich $1",COLOR_GREY,eatInfo[i][eiPosX],eatInfo[i][eiPosY],eatInfo[i][eiPosZ], 20.0);
}
new currentStation = 0;
for(new i = 0; i < sizeof(gasstationInfo); i++)
{
if(gasstationInfo[i][giStationID] != currentStation)
{
gasstationInfo[i][giLiterPrice] = 10;
currentStation = gasstationInfo[i][giStationID];
}
else
{
gasstationInfo[i][giLiterPrice] = gasstationInfo[i - 1][giLiterPrice];
}
format(smallstr,sizeof(smallstr),"[ Zapfsäule ]\nPreis pro Liter: $%d\n/fill zum Tanken",gasstationInfo[i][giLiterPrice]);
gasstationInfo[i][giStationLabel] = CreateDynamic3DTextLabel(smallstr,COLOR_GREY,gasstationInfo[i][giPosX],gasstationInfo[i][giPosY],gasstationInfo[i][giPosZ],15.0);
}
// Weihnachts - Event
/*
SurpriseBox[0] = TextDrawCreate(140.000000, 91.000000, "~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(SurpriseBox[0], 255);
TextDrawFont(SurpriseBox[0], 1);
TextDrawLetterSize(SurpriseBox[0], 0.500000, 1.000000);
TextDrawColor(SurpriseBox[0], -1);
TextDrawSetOutline(SurpriseBox[0], 0);
TextDrawSetProportional(SurpriseBox[0], 1);
TextDrawSetShadow(SurpriseBox[0], 1);
TextDrawUseBox(SurpriseBox[0], 1);
TextDrawBoxColor(SurpriseBox[0], 96);
TextDrawTextSize(SurpriseBox[0], 495.000000, 0.000000);
SurpriseBox[1] = TextDrawCreate(312.000000, 98.000000, "German Crimescene~n~wuenscht dir eine~n~Frohe Weihnachtszeit!");
TextDrawAlignment(SurpriseBox[1], 2);
TextDrawBackgroundColor(SurpriseBox[1], 255);
TextDrawFont(SurpriseBox[1], 0);
TextDrawLetterSize(SurpriseBox[1], 0.589999, 1.399999);
TextDrawColor(SurpriseBox[1], -1);
TextDrawSetOutline(SurpriseBox[1], 0);
TextDrawSetProportional(SurpriseBox[1], 1);
TextDrawSetShadow(SurpriseBox[1], 1);
SurpriseBox[2] = TextDrawCreate(140.000000, 91.000000, "~n~_~n~_~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(SurpriseBox[2], 255);
TextDrawFont(SurpriseBox[2], 1);
TextDrawLetterSize(SurpriseBox[2], 0.500000, 1.000000);
TextDrawColor(SurpriseBox[2], -1);
TextDrawSetOutline(SurpriseBox[2], 0);
TextDrawSetProportional(SurpriseBox[2], 1);
TextDrawSetShadow(SurpriseBox[2], 1);
TextDrawUseBox(SurpriseBox[2], 1);
TextDrawBoxColor(SurpriseBox[2], 70);
TextDrawTextSize(SurpriseBox[2], 495.000000, 44.000000);
SurpriseBox[3] = TextDrawCreate(350.000000, 75.000000, "Weihnachtsmuetze");
TextDrawBackgroundColor(SurpriseBox[3], 0);
TextDrawFont(SurpriseBox[3], TEXT_DRAW_FONT_MODEL_PREVIEW);
TextDrawLetterSize(SurpriseBox[3], 0.500000, 1.000000);
TextDrawColor(SurpriseBox[3], -1);
TextDrawSetOutline(SurpriseBox[3], 0);
TextDrawSetProportional(SurpriseBox[3], 1);
TextDrawSetShadow(SurpriseBox[3], 1);
TextDrawUseBox(SurpriseBox[3], 3);
TextDrawBoxColor(SurpriseBox[3], 75);
TextDrawTextSize(SurpriseBox[3], 50.0, 50.0);
TextDrawSetPreviewModel(SurpriseBox[3], 19065);
TextDrawSetPreviewRot(SurpriseBox[3], -16.000000, 0.000000, 0.000000, 1.000000);
SurpriseBox[4] = TextDrawCreate(213.000000, 145.000000, "Waehle ein Geschenk aus, um es zu oeffnen!");
TextDrawBackgroundColor(SurpriseBox[4], 255);
TextDrawFont(SurpriseBox[4], 2);
TextDrawLetterSize(SurpriseBox[4], 0.200000, 1.000000);
TextDrawColor(SurpriseBox[4], 901597183);
TextDrawSetOutline(SurpriseBox[4], 0);
TextDrawSetProportional(SurpriseBox[4], 1);
TextDrawSetShadow(SurpriseBox[4], 1);
for(new i = 0; i < sizeof(surpriseTDpos); i++)
{
SurpriseTD[i] = TextDrawCreate(surpriseTDpos[i][0]-10.0, surpriseTDpos[i][1], "surpriseobject");
TextDrawBackgroundColor(SurpriseTD[i], (i+1 == 6 || i+1==24 ? 0xD9E04825 : 75));
TextDrawFont(SurpriseTD[i], TEXT_DRAW_FONT_MODEL_PREVIEW);
TextDrawLetterSize(SurpriseTD[i], 0.500000, 1.000000);
TextDrawColor(SurpriseTD[i], 0xFFFFFFFF);
TextDrawTextSize(SurpriseTD[i], 50.0, 50.0);
TextDrawSetPreviewModel(SurpriseTD[i], 19054 + random(5));
TextDrawSetPreviewRot(SurpriseTD[i], -16.000000, 0.000000, 0.000000, 1.000000);
TextDrawSetSelectable(SurpriseTD[i], 1);
valstr(bindip, i+1);
SurpriseTD[i + sizeof(surpriseTDpos)] = TextDrawCreate(surpriseTDpos[i][0]+ 25.0 , surpriseTDpos[i][1] + 40.0, bindip);
TextDrawBackgroundColor(SurpriseTD[i + sizeof(surpriseTDpos)], 255);
TextDrawFont(SurpriseTD[i + sizeof(surpriseTDpos)], 3);
TextDrawLetterSize(SurpriseTD[i + sizeof(surpriseTDpos)], 0.500000, 1.000000);
TextDrawColor(SurpriseTD[i + sizeof(surpriseTDpos)], -1);
TextDrawSetOutline(SurpriseTD[i + sizeof(surpriseTDpos)], 0);
TextDrawSetProportional(SurpriseTD[i + sizeof(surpriseTDpos)], 1);
TextDrawSetShadow(SurpriseTD[i + sizeof(surpriseTDpos)], 1);
}
*/
tutorialTextDrawStatic[0] = TextDrawCreate(521.000000, 103.000000, "~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(tutorialTextDrawStatic[0], 255);
TextDrawFont(tutorialTextDrawStatic[0], 1);
TextDrawLetterSize(tutorialTextDrawStatic[0], 0.500000, 1.000000);
TextDrawColor(tutorialTextDrawStatic[0], -1);
TextDrawSetOutline(tutorialTextDrawStatic[0], 0);
TextDrawSetProportional(tutorialTextDrawStatic[0], 1);
TextDrawSetShadow(tutorialTextDrawStatic[0], 1);
TextDrawUseBox(tutorialTextDrawStatic[0], 1);
TextDrawBoxColor(tutorialTextDrawStatic[0], 96);
TextDrawTextSize(tutorialTextDrawStatic[0], 639.000000, 0.000000);
TextDrawSetSelectable(tutorialTextDrawStatic[0], 0);
tutorialTextDrawStatic[1] = TextDrawCreate(520.000000, 113.000000, ".");
TextDrawBackgroundColor(tutorialTextDrawStatic[1], 255);
TextDrawFont(tutorialTextDrawStatic[1], 1);
TextDrawLetterSize(tutorialTextDrawStatic[1], 11.910009, 1.000000);
TextDrawColor(tutorialTextDrawStatic[1], -1);
TextDrawSetOutline(tutorialTextDrawStatic[1], 0);
TextDrawSetProportional(tutorialTextDrawStatic[1], 1);
TextDrawSetShadow(tutorialTextDrawStatic[1], 1);
TextDrawSetSelectable(tutorialTextDrawStatic[1], 0);
for(new i = 0; i < sizeof(tutorialInfo); i++)
{
tutorialTextDraw[i][0] = TextDrawCreate(584.000000, 105.000000, tutorialInfo[i][tiHeadLine]);
TextDrawAlignment(tutorialTextDraw[i][0], 2);
TextDrawBackgroundColor(tutorialTextDraw[i][0], 255);
TextDrawFont(tutorialTextDraw[i][0], 1);
TextDrawLetterSize(tutorialTextDraw[i][0], 0.370000, 1.299999);
TextDrawColor(tutorialTextDraw[i][0], 1102761215);
TextDrawSetOutline(tutorialTextDraw[i][0], 0);
TextDrawSetProportional(tutorialTextDraw[i][0], 1);
TextDrawSetShadow(tutorialTextDraw[i][0], 1);
TextDrawSetSelectable(tutorialTextDraw[i][0], 0);
tutorialTextDraw[i][1] = TextDrawCreate(524.000000, 128.000000, tutorialInfo[i][tiText]);
TextDrawBackgroundColor(tutorialTextDraw[i][1], 255);
TextDrawFont(tutorialTextDraw[i][1], 1);
TextDrawLetterSize(tutorialTextDraw[i][1], 0.240000, 1.599999);
TextDrawColor(tutorialTextDraw[i][1], -1);
TextDrawSetOutline(tutorialTextDraw[i][1], 0);
TextDrawSetProportional(tutorialTextDraw[i][1], 1);
TextDrawSetShadow(tutorialTextDraw[i][1], 1);
TextDrawUseBox(tutorialTextDraw[i][1], 1);
TextDrawBoxColor(tutorialTextDraw[i][1], 0);
TextDrawTextSize(tutorialTextDraw[i][1], 637.000000, 0.000000);
TextDrawSetSelectable(tutorialTextDraw[i][1], 0);
}
// new value = 0;
/*lotteryTD[0][lnTextDrawID] = TextDrawCreate(LottoLetterX - 5.0, LottoLetterY - 3.0, "~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(lotteryTD[0][lnTextDrawID], 255);
TextDrawFont(lotteryTD[0][lnTextDrawID], 1);
TextDrawLetterSize(lotteryTD[0][lnTextDrawID], 0.500000, 1.000000);
TextDrawColor(lotteryTD[0][lnTextDrawID], -1);
TextDrawSetOutline(lotteryTD[0][lnTextDrawID], 0);
TextDrawSetProportional(lotteryTD[0][lnTextDrawID], 1);
TextDrawSetShadow(lotteryTD[0][lnTextDrawID], 1);
TextDrawUseBox(lotteryTD[0][lnTextDrawID], 1);
TextDrawBoxColor(lotteryTD[0][lnTextDrawID], -192);
TextDrawTextSize(lotteryTD[0][lnTextDrawID], LottoLetterX + 130.0, 0.000000);
TextDrawSetSelectable(lotteryTD[0][lnTextDrawID], 0);
for(new x = 0; x < 7; x++)
{
for(new i = 0; i < 7; i++)
{
format(smallstr, sizeof(smallstr), "%d",++value);
lotteryTD[value][lnPositionX] = LottoLetterX + (19 * i);
lotteryTD[value][lnPositionY] = LottoLetterY + (19 * x);
lotteryTD[value][lnTextDrawID] = TextDrawCreate(lotteryTD[value][lnPositionX], lotteryTD[value][lnPositionY], smallstr);
TextDrawBackgroundColor(lotteryTD[value][lnTextDrawID], 255);
TextDrawFont(lotteryTD[value][lnTextDrawID], 3);
TextDrawLetterSize(lotteryTD[value][lnTextDrawID] , value > 9 ? 0.280000 : 0.519999, 1.300000);
TextDrawColor(lotteryTD[value][lnTextDrawID], 0xC23C3CFF);
TextDrawSetOutline(lotteryTD[value][lnTextDrawID], 0);
TextDrawSetProportional(lotteryTD[value][lnTextDrawID], 1);
TextDrawSetShadow(lotteryTD[value][lnTextDrawID], 1);
TextDrawUseBox(lotteryTD[value][lnTextDrawID], 1);
TextDrawBoxColor(lotteryTD[value][lnTextDrawID], -160);
TextDrawTextSize(lotteryTD[value][lnTextDrawID], LottoLetterX + 11.0 + (19 * i), 10.000000);
TextDrawSetSelectable(lotteryTD[value][lnTextDrawID], 1);
}
}
lotteryTD[++value][lnTextDrawID] = TextDrawCreate(250.000000, 117.000000, "Dein Lottoschein");
TextDrawBackgroundColor(lotteryTD[value][lnTextDrawID], 255);
TextDrawFont(lotteryTD[value][lnTextDrawID], 0);
TextDrawLetterSize(lotteryTD[value][lnTextDrawID], 0.659999, 1.200000);
TextDrawColor(lotteryTD[value][lnTextDrawID], -918786305);
TextDrawSetOutline(lotteryTD[value][lnTextDrawID], 1);
TextDrawSetProportional(lotteryTD[value][lnTextDrawID], 1);
TextDrawUseBox(lotteryTD[value][lnTextDrawID], 1);
TextDrawBoxColor(lotteryTD[value][lnTextDrawID], -160);
TextDrawTextSize(lotteryTD[value][lnTextDrawID], 385.000000, 2.000000);
TextDrawSetSelectable(lotteryTD[value][lnTextDrawID], 0);
lotteryTD[51][lnTextDrawID] = TextDrawCreate(250.000000, 271.000000, "Einsenden");
TextDrawBackgroundColor(lotteryTD[51][lnTextDrawID], 255);
TextDrawFont(lotteryTD[51][lnTextDrawID], 2);
TextDrawLetterSize(lotteryTD[51][lnTextDrawID], 0.250000, 1.000000);
TextDrawColor(lotteryTD[51][lnTextDrawID], -1);
TextDrawSetOutline(lotteryTD[51][lnTextDrawID], 0);
TextDrawSetProportional(lotteryTD[51][lnTextDrawID], 1);
TextDrawSetShadow(lotteryTD[51][lnTextDrawID], 1);
TextDrawUseBox(lotteryTD[51][lnTextDrawID], 1);
TextDrawBoxColor(lotteryTD[51][lnTextDrawID], -192);
TextDrawTextSize(lotteryTD[51][lnTextDrawID], 317.000000, 7.500000);
TextDrawSetSelectable(lotteryTD[51][lnTextDrawID], 1);
lotteryTD[52][lnTextDrawID] = TextDrawCreate(320.000000, 271.000000, "Abbrechen");
TextDrawBackgroundColor(lotteryTD[52][lnTextDrawID], 255);
TextDrawFont(lotteryTD[52][lnTextDrawID], 2);
TextDrawLetterSize(lotteryTD[52][lnTextDrawID], 0.250000, 1.000000);
TextDrawColor(lotteryTD[52][lnTextDrawID], -1);
TextDrawSetOutline(lotteryTD[52][lnTextDrawID], 0);
TextDrawSetProportional(lotteryTD[52][lnTextDrawID], 1);
TextDrawSetShadow(lotteryTD[52][lnTextDrawID], 1);
TextDrawUseBox(lotteryTD[52][lnTextDrawID], 1);
TextDrawBoxColor(lotteryTD[52][lnTextDrawID], -192);
TextDrawTextSize(lotteryTD[52][lnTextDrawID], 385.000000, 7.500000);
TextDrawSetSelectable(lotteryTD[52][lnTextDrawID], 1); */
LoginTextDraw[0] = TextDrawCreate(218.000000, 264.000000, "[GSC] German Crimescene | CnR");
TextDrawBackgroundColor(LoginTextDraw[0], 255);
TextDrawFont(LoginTextDraw[0], 3);
TextDrawLetterSize(LoginTextDraw[0], 0.599999, 2.200000);
TextDrawColor(LoginTextDraw[0], -65281);
TextDrawSetOutline(LoginTextDraw[0], 0);
TextDrawSetProportional(LoginTextDraw[0], 1);
TextDrawSetShadow(LoginTextDraw[0], 1);
TextDrawSetSelectable(LoginTextDraw[0], 0);
LoginTextDraw[1] = TextDrawCreate(232.000000, 146.000000, "Cops");
TextDrawBackgroundColor(LoginTextDraw[1], 255);
TextDrawFont(LoginTextDraw[1], 3);
TextDrawLetterSize(LoginTextDraw[1], 0.679998, 2.299998);
TextDrawColor(LoginTextDraw[1], 65535);
TextDrawSetOutline(LoginTextDraw[1], 1);
TextDrawSetProportional(LoginTextDraw[1], 1);
TextDrawSetSelectable(LoginTextDraw[1], 0);
LoginTextDraw[2] = TextDrawCreate(300.000000, 163.000000, "vs.");
TextDrawBackgroundColor(LoginTextDraw[2], 255);
TextDrawFont(LoginTextDraw[2], 2);
TextDrawLetterSize(LoginTextDraw[2], 0.500000, 1.000000);
TextDrawColor(LoginTextDraw[2], -1);
TextDrawSetOutline(LoginTextDraw[2], 0);
TextDrawSetProportional(LoginTextDraw[2], 1);
TextDrawSetShadow(LoginTextDraw[2], 1);
TextDrawSetSelectable(LoginTextDraw[2], 0);
LoginTextDraw[3] = TextDrawCreate(351.000000, 160.000000, "Robbers");
TextDrawBackgroundColor(LoginTextDraw[3], 255);
TextDrawFont(LoginTextDraw[3], 0);
TextDrawLetterSize(LoginTextDraw[3], 0.659998, 2.599998);
TextDrawColor(LoginTextDraw[3], -16776961);
TextDrawSetOutline(LoginTextDraw[3], 1);
TextDrawSetProportional(LoginTextDraw[3], 1);
TextDrawSetSelectable(LoginTextDraw[3], 0);
LoginTextDraw[4] = TextDrawCreate(291.000000, 117.000000, "auto");
TextDrawBackgroundColor(LoginTextDraw[4], 255);
TextDrawFont(LoginTextDraw[4], 3);
TextDrawLetterSize(LoginTextDraw[4], 0.670000, 2.000000);
TextDrawColor(LoginTextDraw[4], -1);
TextDrawSetOutline(LoginTextDraw[4], 1);
TextDrawSetProportional(LoginTextDraw[4], 1);
TextDrawSetSelectable(LoginTextDraw[4], 0);
LoginTextDraw[5] = TextDrawCreate(299.000000, 103.000000, "theft");
TextDrawBackgroundColor(LoginTextDraw[5], 255);
TextDrawFont(LoginTextDraw[5], 3);
TextDrawLetterSize(LoginTextDraw[5], 0.670000, 2.000000);
TextDrawColor(LoginTextDraw[5], -1);
TextDrawSetOutline(LoginTextDraw[5], 1);
TextDrawSetProportional(LoginTextDraw[5], 1);
TextDrawSetSelectable(LoginTextDraw[5], 0);
LoginTextDraw[6] = TextDrawCreate(278.000000, 89.000000, "grand");
TextDrawBackgroundColor(LoginTextDraw[6], 255);
TextDrawFont(LoginTextDraw[6], 3);
TextDrawLetterSize(LoginTextDraw[6], 0.670000, 2.000000);
TextDrawColor(LoginTextDraw[6], -1);
TextDrawSetOutline(LoginTextDraw[6], 1);
TextDrawSetProportional(LoginTextDraw[6], 1);
TextDrawSetSelectable(LoginTextDraw[6], 0);
farmerJob[0] = TextDrawCreate(451.000000, 27.000000, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(farmerJob[0], 0);
TextDrawFont(farmerJob[0], 0);
TextDrawLetterSize(farmerJob[0], 0.500000, 1.000000);
TextDrawColor(farmerJob[0], -1);
TextDrawSetOutline(farmerJob[0], 1);
TextDrawSetProportional(farmerJob[0], 1);
TextDrawUseBox(farmerJob[0], 1);
TextDrawBoxColor(farmerJob[0], 96);
TextDrawTextSize(farmerJob[0], 497.000000, 58.000000);
TextDrawSetSelectable(farmerJob[0], 0);
farmerJob[1] = TextDrawCreate(450.000000, 11.000000, "plants");
TextDrawBackgroundColor(farmerJob[1], 0);
TextDrawFont(farmerJob[1], 5);
TextDrawLetterSize(farmerJob[1], 0.539999, 1.000000);
TextDrawColor(farmerJob[1], -1);
TextDrawSetPreviewModel(farmerJob[1], 3409);
TextDrawSetOutline(farmerJob[1], 1);
TextDrawSetProportional(farmerJob[1], 1);
TextDrawUseBox(farmerJob[1], 1);
TextDrawBoxColor(farmerJob[1], 255);
TextDrawTextSize(farmerJob[1], 49.000000, 55.000000);
TextDrawSetSelectable(farmerJob[1], 0);
farmerJob[2] = TextDrawCreate(454.000000, 60.000000, "_");
TextDrawBackgroundColor(farmerJob[2], 255);
TextDrawFont(farmerJob[2], 1);
TextDrawLetterSize(farmerJob[2], 0.500000, 1.000000);
TextDrawColor(farmerJob[2], -1);
TextDrawSetOutline(farmerJob[2], 0);
TextDrawSetProportional(farmerJob[2], 1);
TextDrawSetShadow(farmerJob[2], 1);
TextDrawUseBox(farmerJob[2], 1);
TextDrawBoxColor(farmerJob[2], 255);
TextDrawTextSize(farmerJob[2], 495.000000, 0.000000);
TextDrawSetSelectable(farmerJob[2], 0);
houseRob_Crack[0] = TextDrawCreate(250.000000, 100.000000, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(houseRob_Crack[0], 255);
TextDrawFont(houseRob_Crack[0], 1);
TextDrawLetterSize(houseRob_Crack[0], 0.500000, 1.000000);
TextDrawColor(houseRob_Crack[0], -1);
TextDrawSetOutline(houseRob_Crack[0], 0);
TextDrawSetProportional(houseRob_Crack[0], 1);
TextDrawSetShadow(houseRob_Crack[0], 1);
TextDrawUseBox(houseRob_Crack[0], 1);
TextDrawBoxColor(houseRob_Crack[0], -176);
TextDrawTextSize(houseRob_Crack[0], 390.000000, 0.000000);
houseRob_Crack[1] = TextDrawCreate(258.000000, 100.000000, "Tresorraub");
TextDrawBackgroundColor(houseRob_Crack[1], 255);
TextDrawFont(houseRob_Crack[1], 2);
TextDrawLetterSize(houseRob_Crack[1], 0.469999, 1.299999);
TextDrawColor(houseRob_Crack[1], -1);
TextDrawSetOutline(houseRob_Crack[1], 0);
TextDrawSetProportional(houseRob_Crack[1], 1);
TextDrawSetShadow(houseRob_Crack[1], 1);
houseRob_Crack[2] = TextDrawCreate(246.000000, 109.000000, "-");
TextDrawBackgroundColor(houseRob_Crack[2], 255);
TextDrawFont(houseRob_Crack[2], 1);
TextDrawLetterSize(houseRob_Crack[2], 10.320002, 1.000000);
TextDrawColor(houseRob_Crack[2], -1);
TextDrawSetOutline(houseRob_Crack[2], 0);
TextDrawSetProportional(houseRob_Crack[2], 1);
TextDrawSetShadow(houseRob_Crack[2], 1);
houseRob_Crack[3] = TextDrawCreate(250.000000, 136.000000, "_");
TextDrawBackgroundColor(houseRob_Crack[3], 255);
TextDrawFont(houseRob_Crack[3], 1);
TextDrawLetterSize(houseRob_Crack[3], 0.500000, 1.000000);
TextDrawColor(houseRob_Crack[3], -1);
TextDrawSetOutline(houseRob_Crack[3], 0);
TextDrawSetProportional(houseRob_Crack[3], 1);
TextDrawSetShadow(houseRob_Crack[3], 1);
TextDrawUseBox(houseRob_Crack[3], 1);
TextDrawBoxColor(houseRob_Crack[3], 80);
TextDrawTextSize(houseRob_Crack[3], 390.000000, 0.000000);
houseRob_Crack[4] = TextDrawCreate(278.000000, 116.000000, "Aufknacken des Tresors");
TextDrawBackgroundColor(houseRob_Crack[4], 255);
TextDrawFont(houseRob_Crack[4], 1);
TextDrawLetterSize(houseRob_Crack[4], 0.200000, 1.000000);
TextDrawColor(houseRob_Crack[4], -1);
TextDrawSetOutline(houseRob_Crack[4], 0);
TextDrawSetProportional(houseRob_Crack[4], 1);
TextDrawSetShadow(houseRob_Crack[4], 1);
houseRob_Rob[0] = TextDrawCreate(250.000000, 100.000000, "~n~_~n~_~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(houseRob_Rob[0], 255);
TextDrawFont(houseRob_Rob[0], 1);
TextDrawLetterSize(houseRob_Rob[0], 0.500000, 1.000000);
TextDrawColor(houseRob_Rob[0], -1);
TextDrawSetOutline(houseRob_Rob[0], 0);
TextDrawSetProportional(houseRob_Rob[0], 1);
TextDrawSetShadow(houseRob_Rob[0], 1);
TextDrawUseBox(houseRob_Rob[0], 1);
TextDrawBoxColor(houseRob_Rob[0], -176);
TextDrawTextSize(houseRob_Rob[0], 390.000000, 0.000000);
houseRob_Rob[1] = TextDrawCreate(250.000000, 154.000000, "_");
TextDrawBackgroundColor(houseRob_Rob[1], 255);
TextDrawFont(houseRob_Rob[1], 1);
TextDrawLetterSize(houseRob_Rob[1], 0.500000, 1.000000);
TextDrawColor(houseRob_Rob[1], -1);
TextDrawSetOutline(houseRob_Rob[1], 0);
TextDrawSetProportional(houseRob_Rob[1], 1);
TextDrawSetShadow(houseRob_Rob[1], 1);
TextDrawUseBox(houseRob_Rob[1], 1);
TextDrawBoxColor(houseRob_Rob[1], 80);
TextDrawTextSize(houseRob_Rob[1], 390.000000, 0.000000);
houseRob_Rob[2] = TextDrawCreate(263.000000, 117.000000, "Tresor ausrauben");
TextDrawBackgroundColor(houseRob_Rob[2], 255);
TextDrawFont(houseRob_Rob[2], 1);
TextDrawLetterSize(houseRob_Rob[2], 0.380000, 0.699999);
TextDrawColor(houseRob_Rob[2], -1);
TextDrawSetOutline(houseRob_Rob[2], 0);
TextDrawSetProportional(houseRob_Rob[2], 1);
TextDrawSetShadow(houseRob_Rob[2], 1);
///////////////////////////////////////////////////////////////////////////////////////////////
ADutyLabel = TextDrawCreate(498.000000, 98.000000, "Admin im Dienst");
TextDrawBackgroundColor(ADutyLabel, 255);
TextDrawFont(ADutyLabel, 3);
TextDrawLetterSize(ADutyLabel, 0.399999, 1.799999);
TextDrawColor(ADutyLabel, 836145663);
TextDrawSetOutline(ADutyLabel, 0);
TextDrawSetProportional(ADutyLabel, 1);
TextDrawSetShadow(ADutyLabel, 1);
Vote[0] = TextDrawCreate(521.000000, 151.000000, " Abstimmung");
TextDrawBackgroundColor(Vote[0], 255);
TextDrawFont(Vote[0], 1);
TextDrawLetterSize(Vote[0], 0.509998, 1.200000);
TextDrawColor(Vote[0], -1);
TextDrawSetOutline(Vote[0], 0);
TextDrawSetProportional(Vote[0], 1);
TextDrawSetShadow(Vote[0], 0);
TextDrawUseBox(Vote[0], 1);
TextDrawBoxColor(Vote[0], 80);
TextDrawTextSize(Vote[0], 639.000000, 3.000000);
Vote[1] = TextDrawCreate(521.000000, 164.500000, "Banvote gegen ~n~TechnickThePlayerXYZASSS~n~~n~~g~Z: 03 ~w~03/10 ~r~N: 02~n~_");
TextDrawBackgroundColor(Vote[1], 255);
TextDrawFont(Vote[1], 2);
TextDrawLetterSize(Vote[1], 0.189999, 0.899999);
TextDrawColor(Vote[1], -1);
TextDrawSetOutline(Vote[1], 0);
TextDrawSetProportional(Vote[1], 1);
TextDrawSetShadow(Vote[1], 0);
TextDrawUseBox(Vote[1], 1);
TextDrawBoxColor(Vote[1], 80);
TextDrawTextSize(Vote[1], 639.000000, 0.000000);
Vote[2] = TextDrawCreate(578.000000, 196.000000, "Du hast fuer ~g~Ja~w~ gestimmt");
TextDrawAlignment(Vote[2], 2);
TextDrawBackgroundColor(Vote[2], 255);
TextDrawFont(Vote[2], 1);
TextDrawLetterSize(Vote[2], 0.200000, 1.000000);
TextDrawColor(Vote[2], -1);
TextDrawSetOutline(Vote[2], 0);
TextDrawSetProportional(Vote[2], 1);
TextDrawSetShadow(Vote[2], 1);
Vote[3] = TextDrawCreate(578.000000, 196.000000, "Du hast fuer ~r~Nein~w~ gestimmt");
TextDrawAlignment(Vote[3], 2);
TextDrawBackgroundColor(Vote[3], 255);
TextDrawFont(Vote[3], 1);
TextDrawLetterSize(Vote[3], 0.200000, 1.000000);
TextDrawColor(Vote[3], -1);
TextDrawSetOutline(Vote[3], 0);
TextDrawSetProportional(Vote[3], 1);
TextDrawSetShadow(Vote[3], 1);
MaterialTD[0] = TextDrawCreate(274.000000, 140.000000, "_~n~_~n~_~n~");
TextDrawBackgroundColor(MaterialTD[0], 255);
TextDrawFont(MaterialTD[0], 1);
TextDrawLetterSize(MaterialTD[0], 0.500000, 1.000000);
TextDrawColor(MaterialTD[0], -1);
TextDrawSetOutline(MaterialTD[0], 0);
TextDrawSetProportional(MaterialTD[0], 1);
TextDrawSetShadow(MaterialTD[0], 1);
TextDrawUseBox(MaterialTD[0], 1);
TextDrawBoxColor(MaterialTD[0], 96);
TextDrawTextSize(MaterialTD[0], 371.000000, 0.000000);
MaterialTD[1] = TextDrawCreate(275.000000, 145.000000, "~n~_");
TextDrawBackgroundColor(MaterialTD[1], 255);
TextDrawFont(MaterialTD[1], 1);
TextDrawLetterSize(MaterialTD[1], 0.500000, 1.000000);
TextDrawColor(MaterialTD[1], -1);
TextDrawSetOutline(MaterialTD[1], 0);
TextDrawSetProportional(MaterialTD[1], 1);
TextDrawSetShadow(MaterialTD[1], 1);
TextDrawUseBox(MaterialTD[1], 1);
TextDrawBoxColor(MaterialTD[1], 80);
TextDrawTextSize(MaterialTD[1], 370.000000, -4.000000);
MainLine = TextDrawCreate(0.000000, 433.250000, " ~r~~h~forum.german-crimescene.de");
TextDrawBackgroundColor(MainLine, 255);
TextDrawFont(MainLine, 1);
TextDrawLetterSize(MainLine, 0.230000, 1.500000);
TextDrawColor(MainLine, -1);
TextDrawSetOutline(MainLine, 0);
TextDrawSetProportional(MainLine, 1);
TextDrawSetShadow(MainLine, 1);
TextDrawUseBox(MainLine, 1);
TextDrawBoxColor(MainLine, 96);
TextDrawTextSize(MainLine, 639.000000, 40.000000);
CountdownTD = TextDrawCreate(325.000000, 418.000000, "~g~_");
TextDrawAlignment(CountdownTD, 2);
TextDrawBackgroundColor(CountdownTD, 255);
TextDrawFont(CountdownTD, 2);
TextDrawLetterSize(CountdownTD, 0.190000, 1.400000);
TextDrawColor(CountdownTD, -1);
TextDrawSetOutline(CountdownTD, 1);
TextDrawSetProportional(CountdownTD, 1);
Uhrzeit[0] = TextDrawCreate(576.000000, 30.000000, "00:00");
TextDrawAlignment(Uhrzeit[0], 2);
TextDrawBackgroundColor(Uhrzeit[0], 255);
TextDrawFont(Uhrzeit[0], 2);
TextDrawLetterSize(Uhrzeit[0], 0.449999, 1.200000);
TextDrawColor(Uhrzeit[0], -1);
TextDrawSetOutline(Uhrzeit[0], 1);
TextDrawSetProportional(Uhrzeit[0], 1);
Uhrzeit[1] = TextDrawCreate(604.000000, 29.000000, "13");
TextDrawBackgroundColor(Uhrzeit[1], 255);
TextDrawFont(Uhrzeit[1], 2);
TextDrawLetterSize(Uhrzeit[1], 0.250000, 0.699999);
TextDrawColor(Uhrzeit[1], -1);
TextDrawSetOutline(Uhrzeit[1], 1);
TextDrawSetProportional(Uhrzeit[1], 1);
TextDrawSetSelectable(Uhrzeit[1], 0);
Datum = TextDrawCreate(575.000000, 22.000000, "09.01.1996");
TextDrawAlignment(Datum, 2);
TextDrawBackgroundColor(Datum, 255);
TextDrawFont(Datum, 1);
TextDrawLetterSize(Datum, 0.240000, 1.000000);
TextDrawColor(Datum, -1);
TextDrawSetOutline(Datum, 0);
TextDrawSetProportional(Datum, 1);
TextDrawSetShadow(Datum, 1);
getdate(Info[0], Info[1], Info[2]);
format(smallstr,sizeof(smallstr),"%02d.%02d.%04d",Info[2],Info[1],Info[0]);
TextDrawSetString(Datum, smallstr);
WarTextDrawBackGround[0] = TextDrawCreate(575.000000, 11.000000, "_");
TextDrawBackgroundColor(WarTextDrawBackGround[0], 255);
TextDrawFont(WarTextDrawBackGround[0], 1);
TextDrawLetterSize(WarTextDrawBackGround[0], 0.500000, 1.000000);
TextDrawColor(WarTextDrawBackGround[0], -1);
TextDrawSetOutline(WarTextDrawBackGround[0], 0);
TextDrawSetProportional(WarTextDrawBackGround[0], 1);
TextDrawSetShadow(WarTextDrawBackGround[0], 1);
TextDrawUseBox(WarTextDrawBackGround[0], 1);
TextDrawBoxColor(WarTextDrawBackGround[0], 729148752);
TextDrawTextSize(WarTextDrawBackGround[0], 549.000000, 21.000000);
WarTextDrawBackGround[1] = TextDrawCreate(601.000000, 11.000000, "_");
TextDrawBackgroundColor(WarTextDrawBackGround[1], 255);
TextDrawFont(WarTextDrawBackGround[1], 1);
TextDrawLetterSize(WarTextDrawBackGround[1], 0.500000, 1.000000);
TextDrawColor(WarTextDrawBackGround[1], -1);
TextDrawSetOutline(WarTextDrawBackGround[1], 0);
TextDrawSetProportional(WarTextDrawBackGround[1], 1);
TextDrawSetShadow(WarTextDrawBackGround[1], 1);
TextDrawUseBox(WarTextDrawBackGround[1], 1);
TextDrawBoxColor(WarTextDrawBackGround[1], 0xCF801960);
TextDrawTextSize(WarTextDrawBackGround[1], 574.000000, 0.000000);
WarTextDrawBackGround[2] = TextDrawCreate(575.000000, 11.000000, "_");
TextDrawBackgroundColor(WarTextDrawBackGround[2], 255);
TextDrawFont(WarTextDrawBackGround[2], 1);
TextDrawLetterSize(WarTextDrawBackGround[2], 0.500000, 1.000000);
TextDrawColor(WarTextDrawBackGround[2], -1);
TextDrawSetOutline(WarTextDrawBackGround[2], 0);
TextDrawSetProportional(WarTextDrawBackGround[2], 1);
TextDrawSetShadow(WarTextDrawBackGround[2], 1);
TextDrawUseBox(WarTextDrawBackGround[2], 1);
TextDrawBoxColor(WarTextDrawBackGround[2], 0x39B33B60);
TextDrawTextSize(WarTextDrawBackGround[2], 549.000000, 21.000000);
WarTextDrawBackGround[3] = TextDrawCreate(601.000000, 11.000000, "_");
TextDrawBackgroundColor(WarTextDrawBackGround[3], 255);
TextDrawFont(WarTextDrawBackGround[3], 1);
TextDrawLetterSize(WarTextDrawBackGround[3], 0.500000, 1.000000);
TextDrawColor(WarTextDrawBackGround[3], -1);
TextDrawSetOutline(WarTextDrawBackGround[3], 0);
TextDrawSetProportional(WarTextDrawBackGround[3], 1);
TextDrawSetShadow(WarTextDrawBackGround[3], 1);
TextDrawUseBox(WarTextDrawBackGround[3], 1);
TextDrawBoxColor(WarTextDrawBackGround[3], 0x9C283860);
TextDrawTextSize(WarTextDrawBackGround[3], 574.000000, 0.000000);
WarTextDrawBackGround[4] = TextDrawCreate(602.000000, 11.000000, "_");
TextDrawBackgroundColor(WarTextDrawBackGround[4], 255);
TextDrawFont(WarTextDrawBackGround[4], 1);
TextDrawLetterSize(WarTextDrawBackGround[4], 0.500000, 1.000000);
TextDrawColor(WarTextDrawBackGround[4], 80);
TextDrawSetOutline(WarTextDrawBackGround[4], 0);
TextDrawSetProportional(WarTextDrawBackGround[4], 1);
TextDrawSetShadow(WarTextDrawBackGround[4], 1);
TextDrawUseBox(WarTextDrawBackGround[4], 1);
TextDrawBoxColor(WarTextDrawBackGround[4], 80);
TextDrawTextSize(WarTextDrawBackGround[4], 637.000000, 12.000000);
WarTextDrawBackGround[5] = TextDrawCreate(620.000000, 10.000000, "ld_grav:timer");
TextDrawBackgroundColor(WarTextDrawBackGround[5], 255);
TextDrawFont(WarTextDrawBackGround[5], 4);
TextDrawLetterSize(WarTextDrawBackGround[5], -0.029998, -6.599998);
TextDrawColor(WarTextDrawBackGround[5], -1);
TextDrawSetOutline(WarTextDrawBackGround[5], 0);
TextDrawSetProportional(WarTextDrawBackGround[5], 1);
TextDrawSetShadow(WarTextDrawBackGround[5], 1);
TextDrawUseBox(WarTextDrawBackGround[5], 1);
TextDrawBoxColor(WarTextDrawBackGround[5], 255);
TextDrawTextSize(WarTextDrawBackGround[5], -20.000000, 10.000000);
NoDMTD = TextDrawCreate(520.000000, 33.000000, "~r~~h~No-DM~n~Zone");
TextDrawAlignment(NoDMTD, 2);
TextDrawBackgroundColor(NoDMTD, 255);
TextDrawFont(NoDMTD, 2);
TextDrawLetterSize(NoDMTD, 0.349999, 1.600000);
TextDrawColor(NoDMTD, -1);
TextDrawSetOutline(NoDMTD, 0);
TextDrawSetProportional(NoDMTD, 1);
TextDrawSetShadow(NoDMTD, 1);
TicketInfo = TextDrawCreate(635.000000, 435.000000, "Tickets: 0");
TextDrawAlignment(TicketInfo, 3);
TextDrawBackgroundColor(TicketInfo, 255);
TextDrawFont(TicketInfo, 2);
TextDrawLetterSize(TicketInfo, 0.270000, 1.000000);
TextDrawColor(TicketInfo, -1);
TextDrawSetOutline(TicketInfo, 0);
TextDrawSetProportional(TicketInfo, 1);
TextDrawSetShadow(TicketInfo, 1);
InfoBox = TextDrawCreate(521.000000, 229.000000, "~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(InfoBox, 255);
TextDrawFont(InfoBox, 1);
TextDrawLetterSize(InfoBox, 0.500000, 1.000000);
TextDrawColor(InfoBox, -1);
TextDrawSetOutline(InfoBox, 0);
TextDrawSetProportional(InfoBox, 1);
TextDrawSetShadow(InfoBox, 1);
TextDrawUseBox(InfoBox, 1);
TextDrawBoxColor(InfoBox, 96);
TextDrawTextSize(InfoBox, 639.000000, 0.000000);
InfoHeadLineBox = TextDrawCreate(521.000000, 208.000000, "~n~_");
TextDrawBackgroundColor(InfoHeadLineBox, 255);
TextDrawFont(InfoHeadLineBox, 1);
TextDrawLetterSize(InfoHeadLineBox, 0.500000, 1.000000);
TextDrawColor(InfoHeadLineBox, -1);
TextDrawSetOutline(InfoHeadLineBox, 0);
TextDrawSetProportional(InfoHeadLineBox, 1);
TextDrawSetShadow(InfoHeadLineBox, 1);
TextDrawUseBox(InfoHeadLineBox, 1);
TextDrawBoxColor(InfoHeadLineBox, 112);
TextDrawTextSize(InfoHeadLineBox, 639.000000, 0.000000);
InfoTip = TextDrawCreate(521.000000, 358.000000, " ~y~Druecke ~k~~PED_FIREWEAPON~ um das Fenster ~n~ zu schliessen.");
TextDrawBackgroundColor(InfoTip, 255);
TextDrawFont(InfoTip, 1);
TextDrawLetterSize(InfoTip, 0.179999, 1.200000);
TextDrawColor(InfoTip, -1);
TextDrawSetOutline(InfoTip, 0);
TextDrawSetProportional(InfoTip, 1);
TextDrawSetShadow(InfoTip, 1);
InfoDoubleExp = TextDrawCreate(86.000000, 431.000000, "Double EXP");
TextDrawBackgroundColor(InfoDoubleExp, 255);
TextDrawFont(InfoDoubleExp, 2);
TextDrawLetterSize(InfoDoubleExp, 0.149999, 1.099999);
TextDrawColor(InfoDoubleExp, -1);
TextDrawSetOutline(InfoDoubleExp, 0);
TextDrawSetProportional(InfoDoubleExp, 1);
TextDrawSetShadow(InfoDoubleExp, 0);
InfoAccChange = TextDrawCreate(330.000000, 100.000000, "~<~ Voheriges A. II Naechstes A. ~>~~n~Auswahl bestaetigen: ~k~~VEHICLE_ENTER_EXIT~ ~n~Auswahl abbrechen: ~k~~PED_SPRINT~");
TextDrawAlignment(InfoAccChange, 2);
TextDrawBackgroundColor(InfoAccChange, 255);
TextDrawFont(InfoAccChange, 1);
TextDrawLetterSize(InfoAccChange, 0.200000, 1.100000);
TextDrawColor(InfoAccChange, -1);
TextDrawSetOutline(InfoAccChange, 0);
TextDrawSetProportional(InfoAccChange, 1);
TextDrawSetShadow(InfoAccChange, 1);
InfoSkinChange[0] = TextDrawCreate(490.000000, 120.000000, "Skin- und Teamauswahl");
TextDrawBackgroundColor(InfoSkinChange[0], 255);
TextDrawFont(InfoSkinChange[0], 2);
TextDrawLetterSize(InfoSkinChange[0], 0.219999, 1.200000);
TextDrawColor(InfoSkinChange[0], -1);
TextDrawSetOutline(InfoSkinChange[0], 0);
TextDrawSetProportional(InfoSkinChange[0], 1);
TextDrawSetShadow(InfoSkinChange[0], 1);
TextDrawUseBox(InfoSkinChange[0], 1);
TextDrawBoxColor(InfoSkinChange[0], 1420741680);
TextDrawTextSize(InfoSkinChange[0], 608.000000, 0.000000);
TextDrawSetSelectable(InfoSkinChange[0], 0);
InfoSkinChange[1] = TextDrawCreate(490.000000, 134.000000, "Pfeiltasten fuer ~y~~h~Team~w~:__~u~~d~~n~Pfeiltasten fuer ~p~~h~Skin~w~:___~<~~>~~n~____(Bestaetigen mit ~k~~VEHICLE_ENTER_EXIT~)");
TextDrawBackgroundColor(InfoSkinChange[1], 255);
TextDrawFont(InfoSkinChange[1], 1);
TextDrawLetterSize(InfoSkinChange[1], 0.230000, 1.200000);
TextDrawColor(InfoSkinChange[1], -1);
TextDrawSetOutline(InfoSkinChange[1], 1);
TextDrawSetProportional(InfoSkinChange[1], 1);
TextDrawUseBox(InfoSkinChange[1], 1);
TextDrawBoxColor(InfoSkinChange[1], -208);
TextDrawTextSize(InfoSkinChange[1], 608.000000, 0.000000);
TextDrawSetSelectable(InfoSkinChange[1], 0);
InfoSkinChange[2] = TextDrawCreate(490.000000, 134.000000, "Pfeiltasten fuer ~p~~h~Skin~w~:___~<~~>~~n~~n~Du kannst auch einen Skin auswaehlen, in dem du die SKIN ID in den Chat eingibst!~n~~n~~w~____(Bestaetigen mit ~k~~VEHICLE_ENTER_EXIT~)");
TextDrawBackgroundColor(InfoSkinChange[2], 255);
TextDrawFont(InfoSkinChange[2], 1);
TextDrawLetterSize(InfoSkinChange[2], 0.230000, 1.200000);
TextDrawColor(InfoSkinChange[2], -1);
TextDrawSetOutline(InfoSkinChange[2], 1);
TextDrawSetProportional(InfoSkinChange[2], 1);
TextDrawUseBox(InfoSkinChange[2], 1);
TextDrawBoxColor(InfoSkinChange[2], -208);
TextDrawTextSize(InfoSkinChange[2], 608.000000, 0.000000);
TextDrawSetSelectable(InfoSkinChange[2], 0);
DerbyText[0] = TextDrawCreate(132.000000, 434.000000, "03:05 Minuten 3 / 5 Spieler DouqsSpassMap");
TextDrawBackgroundColor(DerbyText[0], 255);
TextDrawFont(DerbyText[0], 1);
TextDrawLetterSize(DerbyText[0], 0.330000, 1.299999);
TextDrawColor(DerbyText[0], -695874049);
TextDrawSetOutline(DerbyText[0], 0);
TextDrawSetProportional(DerbyText[0], 1);
TextDrawSetShadow(DerbyText[0], 0);
CaptureTheFlagTD = TextDrawCreate(496.000000, 125.000000+25.0, " :");
TextDrawBackgroundColor(CaptureTheFlagTD, 255);
TextDrawFont(CaptureTheFlagTD, 2);
TextDrawLetterSize(CaptureTheFlagTD, 0.250000, 1.000000);
TextDrawColor(CaptureTheFlagTD, -1);
TextDrawSetOutline(CaptureTheFlagTD, 0);
TextDrawSetProportional(CaptureTheFlagTD, 1);
TextDrawSetShadow(CaptureTheFlagTD, 0);
TextDrawUseBox(CaptureTheFlagTD, 1);
TextDrawBoxColor(CaptureTheFlagTD, 80);
TextDrawTextSize(CaptureTheFlagTD, 609.000000, 0.000000);
TextDrawSetSelectable(CaptureTheFlagTD, 0);
CaptureTheFlagBGTD = TextDrawCreate(517.000000, 128.000000+25.0, "_");
TextDrawBackgroundColor(CaptureTheFlagBGTD, 255);
TextDrawFont(CaptureTheFlagBGTD, 1);
TextDrawLetterSize(CaptureTheFlagBGTD, 0.450000, 0.499999);
TextDrawColor(CaptureTheFlagBGTD, -1);
TextDrawSetOutline(CaptureTheFlagBGTD, 0);
TextDrawSetProportional(CaptureTheFlagBGTD, 1);
TextDrawSetShadow(CaptureTheFlagBGTD, 1);
TextDrawUseBox(CaptureTheFlagBGTD, 1);
TextDrawBoxColor(CaptureTheFlagBGTD, 255);
TextDrawTextSize(CaptureTheFlagBGTD, 607.000000, 0.000000);
TextDrawSetSelectable(CaptureTheFlagBGTD, 0);
CaptureTheFlagFlag = TextDrawCreate(498.000000, 125.000000+25.0, "hud:radar_enemyattack");
TextDrawBackgroundColor(CaptureTheFlagFlag, 255);
TextDrawFont(CaptureTheFlagFlag, 4);
TextDrawLetterSize(CaptureTheFlagFlag, 0.500000, 1.000000);
TextDrawColor(CaptureTheFlagFlag, -1);
TextDrawSetOutline(CaptureTheFlagFlag, 0);
TextDrawSetProportional(CaptureTheFlagFlag, 1);
TextDrawSetShadow(CaptureTheFlagFlag, 1);
TextDrawUseBox(CaptureTheFlagFlag, 1);
TextDrawBoxColor(CaptureTheFlagFlag, 255);
TextDrawTextSize(CaptureTheFlagFlag, 11.000000, 10.000000);
TextDrawSetSelectable(CaptureTheFlagFlag, 0);
for(new gangzone = 0; gangzone < sizeof(GangFightTD); gangzone++)
{
GangFightTD[gangzone][0] = TextDrawCreate(496.000000, 101.000000+25.0, "Laden .."); // 101.0
TextDrawBackgroundColor(GangFightTD[gangzone][0], 255);
TextDrawFont(GangFightTD[gangzone][0], 2);
TextDrawLetterSize(GangFightTD[gangzone][0], 0.179998, 1.000000);
TextDrawColor(GangFightTD[gangzone][0], -1);
TextDrawSetOutline(GangFightTD[gangzone][0], 0);
TextDrawSetProportional(GangFightTD[gangzone][0], 1);
TextDrawSetShadow(GangFightTD[gangzone][0], 1);
TextDrawUseBox(GangFightTD[gangzone][0], 1);
TextDrawBoxColor(GangFightTD[gangzone][0], 112);
TextDrawTextSize(GangFightTD[gangzone][0], 554.000000, 0.000000);
TextDrawSetSelectable(GangFightTD[gangzone][0], 0);
GangFightTD[gangzone][1] = TextDrawCreate(556.000000, 101.000000+25.0, "Laden ..");
TextDrawBackgroundColor(GangFightTD[gangzone][1], 255);
TextDrawFont(GangFightTD[gangzone][1], 2);
TextDrawLetterSize(GangFightTD[gangzone][1], 0.179998, 1.000000);
TextDrawColor(GangFightTD[gangzone][1], -1);
TextDrawSetOutline(GangFightTD[gangzone][1], 0);
TextDrawSetProportional(GangFightTD[gangzone][1], 1);
TextDrawSetShadow(GangFightTD[gangzone][1], 1);
TextDrawUseBox(GangFightTD[gangzone][1], 1);
TextDrawBoxColor(GangFightTD[gangzone][1], 96);
TextDrawTextSize(GangFightTD[gangzone][1], 609.000000, 0.000000);
TextDrawSetSelectable(GangFightTD[gangzone][1], 0);
GangFightTD[gangzone][2] = TextDrawCreate(496.000000, 113.000000+25.0, "0");
TextDrawBackgroundColor(GangFightTD[gangzone][2], 255);
TextDrawFont(GangFightTD[gangzone][2], 2);
TextDrawLetterSize(GangFightTD[gangzone][2], 0.179998, 1.000000);
TextDrawColor(GangFightTD[gangzone][2], -1);
TextDrawSetOutline(GangFightTD[gangzone][2], 0);
TextDrawSetProportional(GangFightTD[gangzone][2], 1);
TextDrawSetShadow(GangFightTD[gangzone][2], 1);
TextDrawUseBox(GangFightTD[gangzone][2], 1);
TextDrawBoxColor(GangFightTD[gangzone][2], 112);
TextDrawTextSize(GangFightTD[gangzone][2], 554.000000, 0.000000);
TextDrawSetSelectable(GangFightTD[gangzone][2], 0);
GangFightTD[gangzone][3] = TextDrawCreate(556.000000, 113.000000+25.0, "0");
TextDrawBackgroundColor(GangFightTD[gangzone][3], 255);
TextDrawFont(GangFightTD[gangzone][3], 2);
TextDrawLetterSize(GangFightTD[gangzone][3], 0.179998, 1.000000);
TextDrawColor(GangFightTD[gangzone][3], -1);
TextDrawSetOutline(GangFightTD[gangzone][3], 0);
TextDrawSetProportional(GangFightTD[gangzone][3], 1);
TextDrawSetShadow(GangFightTD[gangzone][3], 1);
TextDrawUseBox(GangFightTD[gangzone][3], 1);
TextDrawBoxColor(GangFightTD[gangzone][3], 96);
TextDrawTextSize(GangFightTD[gangzone][3], 609.000000, 0.000000);
TextDrawSetSelectable(GangFightTD[gangzone][3], 0);
GangFightTD[gangzone][4] = TextDrawCreate(480.000000, 112.000000+25.0, "60");
TextDrawBackgroundColor(GangFightTD[gangzone][4], 255);
TextDrawFont(GangFightTD[gangzone][4], 1);
TextDrawLetterSize(GangFightTD[gangzone][4], 0.250000, 1.100000);
TextDrawColor(GangFightTD[gangzone][4], -1);
TextDrawSetOutline(GangFightTD[gangzone][4], 0);
TextDrawSetProportional(GangFightTD[gangzone][4], 1);
TextDrawSetShadow(GangFightTD[gangzone][4], 1);
}
GangFightTD_TIMER = TextDrawCreate(479.000000, 100.000000+25.0, "ld_grav:timer");
TextDrawBackgroundColor(GangFightTD_TIMER, 255);
TextDrawFont(GangFightTD_TIMER, 4);
TextDrawLetterSize(GangFightTD_TIMER, 0.500000, 1.000000);
TextDrawColor(GangFightTD_TIMER, -1);
TextDrawSetOutline(GangFightTD_TIMER, 0);
TextDrawSetProportional(GangFightTD_TIMER, 1);
TextDrawSetShadow(GangFightTD_TIMER, 1);
TextDrawUseBox(GangFightTD_TIMER, 1);
TextDrawBoxColor(GangFightTD_TIMER, 255);
TextDrawTextSize(GangFightTD_TIMER, 13.000000, 11.000000);
GangFightTD_BGT = TextDrawCreate(479.000000, 101.000000+25.0, "~n~_~n~_");
TextDrawBackgroundColor(GangFightTD_BGT, 255);
TextDrawFont(GangFightTD_BGT, 1);
TextDrawLetterSize(GangFightTD_BGT, 0.490000, 0.779999);
TextDrawColor(GangFightTD_BGT, -1);
TextDrawSetOutline(GangFightTD_BGT, 0);
TextDrawSetProportional(GangFightTD_BGT, 1);
TextDrawSetShadow(GangFightTD_BGT, 1);
TextDrawUseBox(GangFightTD_BGT, 1);
TextDrawBoxColor(GangFightTD_BGT, 80);
TextDrawTextSize(GangFightTD_BGT, 494.000000, 0.000000);
TachoBackground = TextDrawCreate(521.000000, 385.000000, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(TachoBackground, 255);
TextDrawFont(TachoBackground, 1);
TextDrawLetterSize(TachoBackground, 0.500000, 1.000000);
TextDrawColor(TachoBackground, -1);
TextDrawSetOutline(TachoBackground, 0);
TextDrawSetProportional(TachoBackground, 1);
TextDrawSetShadow(TachoBackground, 1);
TextDrawUseBox(TachoBackground, 1);
TextDrawBoxColor(TachoBackground, 112);
TextDrawTextSize(TachoBackground, 639.000000, 0.000000);
TachoTankBackground[0] = TextDrawCreate(571.000000, 395.000000, "_");
TextDrawBackgroundColor(TachoTankBackground[0], 255);
TextDrawFont(TachoTankBackground[0], 1);
TextDrawLetterSize(TachoTankBackground[0], 0.500000, 1.000000);
TextDrawColor(TachoTankBackground[0], -1);
TextDrawSetOutline(TachoTankBackground[0], 0);
TextDrawSetProportional(TachoTankBackground[0], 1);
TextDrawSetShadow(TachoTankBackground[0], 1);
TextDrawUseBox(TachoTankBackground[0], 1);
TextDrawBoxColor(TachoTankBackground[0], 96);
TextDrawTextSize(TachoTankBackground[0], 634.000000, 0.000000);
TachoTankBackground[1] = TextDrawCreate(574.000000, 395.000000, "_");
TextDrawBackgroundColor(TachoTankBackground[1], 255);
TextDrawFont(TachoTankBackground[1], 1);
TextDrawLetterSize(TachoTankBackground[1], 0.500000, 1.000000);
TextDrawColor(TachoTankBackground[1], -1);
TextDrawSetOutline(TachoTankBackground[1], 0);
TextDrawSetProportional(TachoTankBackground[1], 1);
TextDrawSetShadow(TachoTankBackground[1], 1);
TextDrawUseBox(TachoTankBackground[1], 1);
TextDrawBoxColor(TachoTankBackground[1], 1421041504);
TextDrawTextSize(TachoTankBackground[1], 630.000000, 0.000000);
TextDrawSetSelectable(TachoTankBackground[1], 0);
TachoTankBackground[2] = TextDrawCreate(571.000000, 415.000000, "_");
TextDrawBackgroundColor(TachoTankBackground[2], 255);
TextDrawFont(TachoTankBackground[2], 1);
TextDrawLetterSize(TachoTankBackground[2], 0.500000, 1.000000);
TextDrawColor(TachoTankBackground[2], -1);
TextDrawSetOutline(TachoTankBackground[2], 0);
TextDrawSetProportional(TachoTankBackground[2], 1);
TextDrawSetShadow(TachoTankBackground[2], 1);
TextDrawUseBox(TachoTankBackground[2], 1);
TextDrawBoxColor(TachoTankBackground[2], 96);
TextDrawTextSize(TachoTankBackground[2], 634.000000, 0.000000);
TachoTankBackground[3] = TextDrawCreate(574.000000, 415.000000, "_");
TextDrawBackgroundColor(TachoTankBackground[3], 255);
TextDrawFont(TachoTankBackground[3], 1);
TextDrawLetterSize(TachoTankBackground[3], 0.500000, 1.000000);
TextDrawColor(TachoTankBackground[3], -1);
TextDrawSetOutline(TachoTankBackground[3], 0);
TextDrawSetProportional(TachoTankBackground[3], 1);
TextDrawSetShadow(TachoTankBackground[3], 1);
TextDrawUseBox(TachoTankBackground[3], 1);
TextDrawBoxColor(TachoTankBackground[3], -2147082896);
TextDrawTextSize(TachoTankBackground[3], 630.000000, 0.000000);
TachoStateFont = TextDrawCreate(528.000000, 414.000000, "Zustand");
TextDrawBackgroundColor(TachoStateFont, 255);
TextDrawFont(TachoStateFont, 1);
TextDrawLetterSize(TachoStateFont, 0.189999, 1.000000);
TextDrawColor(TachoStateFont, -1);
TextDrawSetOutline(TachoStateFont, 0);
TextDrawSetProportional(TachoStateFont, 1);
TextDrawSetShadow(TachoStateFont, 1);
AdvertiseTD = TextDrawCreate(310.000000, 435.000000, "_");
TextDrawAlignment(AdvertiseTD, 2);
TextDrawBackgroundColor(AdvertiseTD, 255);
TextDrawFont(AdvertiseTD, 1);
TextDrawLetterSize(AdvertiseTD, 0.180000, 1.100000);
TextDrawColor(AdvertiseTD, -1);
TextDrawSetOutline(AdvertiseTD, 0);
TextDrawSetProportional(AdvertiseTD, 1);
TextDrawSetShadow(AdvertiseTD, 1);
BadBizfightTD = TextDrawCreate(320.000000, 9.000000, "~w~Aktiver Bizfight~n~~w~~r~Einmischen wird sanktioniert!");
TextDrawAlignment(BadBizfightTD, 2);
TextDrawBackgroundColor(BadBizfightTD, 255);
TextDrawFont(BadBizfightTD, 1);
TextDrawLetterSize(BadBizfightTD, 0.549999, 1.400000);
TextDrawColor(BadBizfightTD, -1);
TextDrawSetOutline(BadBizfightTD, 0);
TextDrawSetProportional(BadBizfightTD, 1);
TextDrawSetShadow(BadBizfightTD, 1);
///////////////////////////////=== DICE SYSTEM ===//////////////////////////////////////////////////////////
// Player 1, Cube 1
DiceTD_P1[DICETD_BACKGROUND][0] = TextDrawCreate(230.000000 + 10.0, 170.000000 - 40.0, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BACKGROUND][0], 255);
TextDrawFont(DiceTD_P1[DICETD_BACKGROUND][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BACKGROUND][0], 0.349999, 0.799999);
TextDrawColor(DiceTD_P1[DICETD_BACKGROUND][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BACKGROUND][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BACKGROUND][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BACKGROUND][0], 1);
TextDrawUseBox(DiceTD_P1[DICETD_BACKGROUND][0], 1);
TextDrawBoxColor(DiceTD_P1[DICETD_BACKGROUND][0], 80);
TextDrawTextSize(DiceTD_P1[DICETD_BACKGROUND][0], 271.000000 + 10.0, 1.000000);
// Top
DiceTD_P1[DICETD_TOPLEFT][0] = TextDrawCreate(231.000000 + 10.0, 166.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_TOPLEFT][0], 255);
TextDrawFont(DiceTD_P1[DICETD_TOPLEFT][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_TOPLEFT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_TOPLEFT][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_TOPLEFT][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_TOPLEFT][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_TOPLEFT][0], 1);
DiceTD_P1[DICETD_TOPMIDDLE][0] = TextDrawCreate(247.000000 + 10.0, 166.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_TOPMIDDLE][0], 255);
TextDrawFont(DiceTD_P1[DICETD_TOPMIDDLE][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_TOPMIDDLE][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_TOPMIDDLE][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_TOPMIDDLE][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_TOPMIDDLE][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_TOPMIDDLE][0], 1);
DiceTD_P1[DICETD_TOPRIGHT][0] = TextDrawCreate(264.000000 + 10.0, 166.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_TOPRIGHT][0], 255);
TextDrawFont(DiceTD_P1[DICETD_TOPRIGHT][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_TOPRIGHT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_TOPRIGHT][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_TOPRIGHT][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_TOPRIGHT][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_TOPRIGHT][0], 1);
// Middle
DiceTD_P1[DICETD_MIDDLEMIDDLE][0] = TextDrawCreate(247.000000 + 10.0, 180.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], 255);
TextDrawFont(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_MIDDLEMIDDLE][0], 1);
// Buttom
DiceTD_P1[DICETD_BUTTOMLEFT][0] = TextDrawCreate(231.000000 + 10.0, 196.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BUTTOMLEFT][0], 255);
TextDrawFont(DiceTD_P1[DICETD_BUTTOMLEFT][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BUTTOMLEFT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_BUTTOMLEFT][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BUTTOMLEFT][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BUTTOMLEFT][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BUTTOMLEFT][0], 1);
DiceTD_P1[DICETD_BUTTOMMIDDLE][0] = TextDrawCreate(247.000000 + 10.0, 197.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], 255);
TextDrawFont(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BUTTOMMIDDLE][0], 1);
DiceTD_P1[DICETD_BUTTOMRIGHT][0] = TextDrawCreate(264.000000 + 10.0, 196.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BUTTOMRIGHT][0], 255);
TextDrawFont(DiceTD_P1[DICETD_BUTTOMRIGHT][0], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BUTTOMRIGHT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_BUTTOMRIGHT][0], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BUTTOMRIGHT][0], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BUTTOMRIGHT][0], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BUTTOMRIGHT][0], 1);
// Player 1, Cube 2
DiceTD_P1[DICETD_BACKGROUND][1] = TextDrawCreate(230.000000 + 10.0, 170.000000, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BACKGROUND][1], 255);
TextDrawFont(DiceTD_P1[DICETD_BACKGROUND][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BACKGROUND][1], 0.349999, 0.799999);
TextDrawColor(DiceTD_P1[DICETD_BACKGROUND][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BACKGROUND][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BACKGROUND][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BACKGROUND][1], 1);
TextDrawUseBox(DiceTD_P1[DICETD_BACKGROUND][1], 1);
TextDrawBoxColor(DiceTD_P1[DICETD_BACKGROUND][1], 80);
TextDrawTextSize(DiceTD_P1[DICETD_BACKGROUND][1], 271.000000 + 10.0, 1.000000);
// Top
DiceTD_P1[DICETD_TOPLEFT][1] = TextDrawCreate(231.000000 + 10.0, 166.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_TOPLEFT][1], 255);
TextDrawFont(DiceTD_P1[DICETD_TOPLEFT][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_TOPLEFT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_TOPLEFT][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_TOPLEFT][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_TOPLEFT][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_TOPLEFT][1], 1);
DiceTD_P1[DICETD_TOPMIDDLE][1] = TextDrawCreate(247.000000 + 10.0, 166.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_TOPMIDDLE][1], 255);
TextDrawFont(DiceTD_P1[DICETD_TOPMIDDLE][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_TOPMIDDLE][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_TOPMIDDLE][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_TOPMIDDLE][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_TOPMIDDLE][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_TOPMIDDLE][1], 1);
DiceTD_P1[DICETD_TOPRIGHT][1] = TextDrawCreate(264.000000 + 10.0, 166.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_TOPRIGHT][1], 255);
TextDrawFont(DiceTD_P1[DICETD_TOPRIGHT][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_TOPRIGHT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_TOPRIGHT][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_TOPRIGHT][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_TOPRIGHT][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_TOPRIGHT][1], 1);
// Middle
DiceTD_P1[DICETD_MIDDLEMIDDLE][1] = TextDrawCreate(247.000000 + 10.0, 180.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], 255);
TextDrawFont(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_MIDDLEMIDDLE][1], 1);
// Buttom
DiceTD_P1[DICETD_BUTTOMLEFT][1] = TextDrawCreate(231.000000 + 10.0, 196.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BUTTOMLEFT][1], 255);
TextDrawFont(DiceTD_P1[DICETD_BUTTOMLEFT][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BUTTOMLEFT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_BUTTOMLEFT][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BUTTOMLEFT][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BUTTOMLEFT][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BUTTOMLEFT][1], 1);
DiceTD_P1[DICETD_BUTTOMMIDDLE][1] = TextDrawCreate(247.000000 + 10.0, 197.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], 255);
TextDrawFont(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BUTTOMMIDDLE][1], 1);
DiceTD_P1[DICETD_BUTTOMRIGHT][1] = TextDrawCreate(264.000000 + 10.0, 196.000000, ".");
TextDrawBackgroundColor(DiceTD_P1[DICETD_BUTTOMRIGHT][1], 255);
TextDrawFont(DiceTD_P1[DICETD_BUTTOMRIGHT][1], 1);
TextDrawLetterSize(DiceTD_P1[DICETD_BUTTOMRIGHT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P1[DICETD_BUTTOMRIGHT][1], -1);
TextDrawSetOutline(DiceTD_P1[DICETD_BUTTOMRIGHT][1], 0);
TextDrawSetProportional(DiceTD_P1[DICETD_BUTTOMRIGHT][1], 1);
TextDrawSetShadow(DiceTD_P1[DICETD_BUTTOMRIGHT][1], 1);
// Player 2 , Cube 1
DiceTD_P2[DICETD_BACKGROUND][0] = TextDrawCreate(350.000000, 170.000000 - 40.0, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BACKGROUND][0], 255);
TextDrawFont(DiceTD_P2[DICETD_BACKGROUND][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BACKGROUND][0], 0.349999, 0.799999);
TextDrawColor(DiceTD_P2[DICETD_BACKGROUND][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BACKGROUND][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BACKGROUND][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BACKGROUND][0], 1);
TextDrawUseBox(DiceTD_P2[DICETD_BACKGROUND][0], 1);
TextDrawBoxColor(DiceTD_P2[DICETD_BACKGROUND][0], 80);
TextDrawTextSize(DiceTD_P2[DICETD_BACKGROUND][0], 391.000000, 1.000000);
// Top
DiceTD_P2[DICETD_TOPLEFT][0] = TextDrawCreate(231.000000 + 120.0, 166.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_TOPLEFT][0], 255);
TextDrawFont(DiceTD_P2[DICETD_TOPLEFT][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_TOPLEFT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_TOPLEFT][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_TOPLEFT][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_TOPLEFT][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_TOPLEFT][0], 1);
DiceTD_P2[DICETD_TOPMIDDLE][0] = TextDrawCreate(247.000000 + 120.0, 166.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_TOPMIDDLE][0], 255);
TextDrawFont(DiceTD_P2[DICETD_TOPMIDDLE][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_TOPMIDDLE][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_TOPMIDDLE][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_TOPMIDDLE][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_TOPMIDDLE][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_TOPMIDDLE][0], 1);
DiceTD_P2[DICETD_TOPRIGHT][0] = TextDrawCreate(264.000000 + 120.0, 166.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_TOPRIGHT][0], 255);
TextDrawFont(DiceTD_P2[DICETD_TOPRIGHT][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_TOPRIGHT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_TOPRIGHT][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_TOPRIGHT][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_TOPRIGHT][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_TOPRIGHT][0], 1);
// Middle
DiceTD_P2[DICETD_MIDDLEMIDDLE][0] = TextDrawCreate(247.000000 + 120.0, 180.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], 255);
TextDrawFont(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_MIDDLEMIDDLE][0], 1);
// Buttom
DiceTD_P2[DICETD_BUTTOMLEFT][0] = TextDrawCreate(231.000000 + 120.0, 196.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BUTTOMLEFT][0], 255);
TextDrawFont(DiceTD_P2[DICETD_BUTTOMLEFT][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BUTTOMLEFT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_BUTTOMLEFT][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BUTTOMLEFT][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BUTTOMLEFT][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BUTTOMLEFT][0], 1);
DiceTD_P2[DICETD_BUTTOMMIDDLE][0] = TextDrawCreate(247.000000 + 120.0, 197.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], 255);
TextDrawFont(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BUTTOMMIDDLE][0], 1);
DiceTD_P2[DICETD_BUTTOMRIGHT][0] = TextDrawCreate(264.000000 + 120.0, 196.000000 - 40.0, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BUTTOMRIGHT][0], 255);
TextDrawFont(DiceTD_P2[DICETD_BUTTOMRIGHT][0], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BUTTOMRIGHT][0], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_BUTTOMRIGHT][0], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BUTTOMRIGHT][0], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BUTTOMRIGHT][0], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BUTTOMRIGHT][0], 1);
// Player 2, Cube 2 //
DiceTD_P2[DICETD_BACKGROUND][1] = TextDrawCreate(350.000000, 170.000000, "~n~_~n~_~n~_~n~_");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BACKGROUND][1], 255);
TextDrawFont(DiceTD_P2[DICETD_BACKGROUND][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BACKGROUND][1], 0.349999, 0.799999);
TextDrawColor(DiceTD_P2[DICETD_BACKGROUND][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BACKGROUND][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BACKGROUND][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BACKGROUND][1], 1);
TextDrawUseBox(DiceTD_P2[DICETD_BACKGROUND][1], 1);
TextDrawBoxColor(DiceTD_P2[DICETD_BACKGROUND][1], 80);
TextDrawTextSize(DiceTD_P2[DICETD_BACKGROUND][1], 391.000000, 1.000000);
// Top
DiceTD_P2[DICETD_TOPLEFT][1] = TextDrawCreate(231.000000 + 120.0, 166.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_TOPLEFT][1], 255);
TextDrawFont(DiceTD_P2[DICETD_TOPLEFT][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_TOPLEFT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_TOPLEFT][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_TOPLEFT][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_TOPLEFT][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_TOPLEFT][1], 1);
DiceTD_P2[DICETD_TOPMIDDLE][1] = TextDrawCreate(247.000000 + 120.0, 166.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_TOPMIDDLE][1], 255);
TextDrawFont(DiceTD_P2[DICETD_TOPMIDDLE][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_TOPMIDDLE][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_TOPMIDDLE][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_TOPMIDDLE][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_TOPMIDDLE][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_TOPMIDDLE][1], 1);
DiceTD_P2[DICETD_TOPRIGHT][1] = TextDrawCreate(264.000000 + 120.0, 166.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_TOPRIGHT][1], 255);
TextDrawFont(DiceTD_P2[DICETD_TOPRIGHT][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_TOPRIGHT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_TOPRIGHT][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_TOPRIGHT][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_TOPRIGHT][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_TOPRIGHT][1], 1);
// Middle
DiceTD_P2[DICETD_MIDDLEMIDDLE][1] = TextDrawCreate(247.000000 + 120.0, 180.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], 255);
TextDrawFont(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_MIDDLEMIDDLE][1], 1);
// Buttom
DiceTD_P2[DICETD_BUTTOMLEFT][1] = TextDrawCreate(231.000000 + 120.0, 196.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BUTTOMLEFT][1], 255);
TextDrawFont(DiceTD_P2[DICETD_BUTTOMLEFT][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BUTTOMLEFT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_BUTTOMLEFT][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BUTTOMLEFT][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BUTTOMLEFT][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BUTTOMLEFT][1], 1);
DiceTD_P2[DICETD_BUTTOMMIDDLE][1] = TextDrawCreate(247.000000 + 120.0, 197.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], 255);
TextDrawFont(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BUTTOMMIDDLE][1], 1);
DiceTD_P2[DICETD_BUTTOMRIGHT][1] = TextDrawCreate(264.000000 + 120.0, 196.000000, ".");
TextDrawBackgroundColor(DiceTD_P2[DICETD_BUTTOMRIGHT][1], 255);
TextDrawFont(DiceTD_P2[DICETD_BUTTOMRIGHT][1], 1);
TextDrawLetterSize(DiceTD_P2[DICETD_BUTTOMRIGHT][1], 0.500000, 1.000000);
TextDrawColor(DiceTD_P2[DICETD_BUTTOMRIGHT][1], -1);
TextDrawSetOutline(DiceTD_P2[DICETD_BUTTOMRIGHT][1], 0);
TextDrawSetProportional(DiceTD_P2[DICETD_BUTTOMRIGHT][1], 1);
TextDrawSetShadow(DiceTD_P2[DICETD_BUTTOMRIGHT][1], 1);
////////////////////////////////////////////////////////////////////////////////////////////////
CreateDynamic3DTextLabel("Drücke ~k~~SNEAK_ABOUT~, um einen Geldbeutel aufzuheben.",0xFFFFFFFF,1388.6068,-957.2712,5651.8394,12.5);
BankSachenLabel[0] = CreateDynamic3DTextLabel("Drücke ~k~~SNEAK_ABOUT~, um den Raub zu starten.",0xFFFFFFFF,1388.7621,-992.3865,5651.8315,5.0);
BankSachenLabel[1] = CreateDynamic3DTextLabel("Drücke ~k~~SNEAK_ABOUT~, um den Plastiksprengstoff zu platzieren.",0xFFFFFFFF,1388.6259,-972.1985,5651.9512,5.0);
BankSachen[0] = CreateObject(19303, 1387.89, -991.78, 5652.04, 0.00, 0.00, 0.00); // TOR LINKS (ZU)
BankSachen[1] = CreateObject(19303, 1389.57, -991.78, 5652.04, 0.00, 0.00, 180.00); // TOR RECHTS (ZU)
BankSachen[2] = CreateDynamicObject(2680, 1388.73, -991.85, 5652.08, 0.00, 0.00, 0.00); // SCHLOSS
BankSachen[4] = CreateDynamicObject(2963, 1388.58, -971.49, 5652.88, 0.00, 0.00, 90.00); // TRESORTÜR
BankSachen[9] = CreateDynamicObject(1550, 1391.32, -955.97, 5651.23, 0.00, 0.00, 0.00); // Geldbeutel
BankSachen[10] = CreateDynamicObject(1550, 1385.80, -955.93, 5651.23, 0.00, 0.00, 0.00); // Geldbeutel
BankSachen[11] = CreateDynamicObject(1550, 1388.57, -955.83, 5651.23, 0.00, 0.00, 0.00); // Geldbeutel
BankSachen[12] = CreateDynamicObject(1550, 1385.61, -957.04, 5651.23, 0.00, 0.00, 0.00); // Geldbeutel
BankSachen[13] = CreateDynamicObject(1550, 1391.50, -957.08, 5651.23, 0.00, 0.00, 0.00); // Geldbeutel
SFPDGate[0] = CreateDynamicObject(10184, -1631.86084, 688.31818, 8.66950, 0.00000, 0.00000, 90.00000);
mysql_function_query(dbHandle, "UPDATE `accounts` SET `online` = '0'", true, "", "");
return 1;
}
public OnGameModeExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!playerInfo[i][pLoggedIn]) continue;
OnServerSavePlayerData(i,false);
}
foreach(new i : Actors)
{
DestroyActor(i);
}
mysql_close(dbHandle);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
if(!playerInfo[playerid][pLoggedIn])
{
playerInfo[playerid][pLoginScreen] = random(sizeof(LoginPos));
SetPlayerCameraPos(playerid, LoginPos[playerInfo[playerid][pLoginScreen]][0],LoginPos[playerInfo[playerid][pLoginScreen]][1],LoginPos[playerInfo[playerid][pLoginScreen]][2]);
SetPlayerCameraLookAt(playerid, LoginPos[playerInfo[playerid][pLoginScreen]][3],LoginPos[playerInfo[playerid][pLoginScreen]][4],LoginPos[playerInfo[playerid][pLoginScreen]][5]);
SetPlayerPos(playerid, LoginPos[playerInfo[playerid][pLoginScreen]][0], LoginPos[playerInfo[playerid][pLoginScreen]][1], LoginPos[playerInfo[playerid][pLoginScreen]][2]-2.0);
Streamer_UpdateEx(playerid, LoginPos[playerInfo[playerid][pLoginScreen]][0], LoginPos[playerInfo[playerid][pLoginScreen]][1], LoginPos[playerInfo[playerid][pLoginScreen]][2] - 2.0);
}
if(!playerInfo[playerid][pSearchedAccount] && !playerInfo[playerid][pFirstSpawn] && playerInfo[playerid][pChooseTeamStep] != 3 && !playerInfo[playerid][pLoggedIn])
{
if(serverInfo[siMusic]) PlayAudioStreamForPlayer(playerid, ServerTracks[random(serverInfo[siMusic])]);
playerInfo[playerid][pSearchedAccount] = true;
new tmp[90], Ip[16], query[512];
GetPlayerIp(playerid, Ip, 16);
strins(tmp, ip2long(Ip), 0);
mysql_format(dbHandle, query, 512, "SELECT `id` FROM `iptable` WHERE startip < %s AND %s < endip LIMIT 1",tmp, tmp);
mysql_pquery(dbHandle, query, "OnServerCheckPlayerIp", "d", playerid);
InitializePlayerORM(playerid);
}
return 1;
}
public OnPlayerConnect(playerid)
{
AC_OnPlayerConnect(playerid);
SetPlayerColor(playerid, 0xFFFFFF00);
GetPlayerName(playerid, GetPlayerNameEx(playerid), MAX_PLAYER_NAME);
for(new i = 0, j = sizeof(playerInfo[]); i < j; i++)
{
playerInfo[playerid][_playerInfo:i] = 0;
}
for(new i = 0; i < MAX_TOGS; i++)
{
playerInfo[playerid][pTog][i] =!! togInfo[i][tDefaultValue];
}
for(new i = 0; i < MAX_WORLDS; i++)
{
playerInfo[playerid][pKills][i] = 0;
playerInfo[playerid][pDeaths][i] = 0;
}
for(new i = 0; i < 17; i++)
{
playerInfo[playerid][pWeaponHit][i] = 0;
playerInfo[playerid][pWeaponShot][i] = 0;
}
for(new i = 0; i < MAX_JOBOBJECTS; i++)
{
playerInfo[playerid][pJobObjects][i] = 0;
}
/*for(new i = 0; i < 50; i++)
{
playerInfo[playerid][pLotteryTD][i] = PlayerText:INVALID_TEXT_DRAW;
}*/
SetPVarInt(playerid, "sqlid", -1);
SetPVarInt(playerid, "adminlevel", 0);
playerInfo[playerid][pTalent]= TALENT_PICKPOCKET;
playerInfo[playerid][pChannel] = INVALID_CHANNEL_ID;
playerInfo[playerid][pDerbySpectatorID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferHouseSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferBizSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferDrugSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pCompactID] = INVALID_PLAYER_ID;
playerInfo[playerid][pSpectateID] = INVALID_PLAYER_ID;
playerInfo[playerid][pLastHit] = INVALID_PLAYER_ID;
playerInfo[playerid][pTicketID] = INVALID_PLAYER_ID;
playerInfo[playerid][pCuffedPerson] = INVALID_PLAYER_ID;
// playerInfo[playerid][pSupportPlayer] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferLawyerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferDice] = INVALID_PLAYER_ID;
playerInfo[playerid][pDice] = INVALID_PLAYER_ID;
playerInfo[playerid][pJobVehicle] = INVALID_SLOT_ID;
playerInfo[playerid][pJobTrailer] = INVALID_SLOT_ID;
playerInfo[playerid][pSupportTicketID] = INVALID_TICKET_ID;
playerInfo[playerid][pBarrierSlot] = INVALID_SLOT_ID;
playerInfo[playerid][pMission] = INVALID_MISSION_ID;
playerInfo[playerid][pQuestActor] = INVALID_ACTOR_ID;
playerInfo[playerid][pActorRob] = INVALID_ACTOR_ID;
playerInfo[playerid][pBuyedFightingStyle][0] = true;
playerInfo[playerid][pEntranceID] = -1;
playerInfo[playerid][pHouseID] = -1;
playerInfo[playerid][pHouseRobTextDraw][0] = PlayerText:INVALID_TEXT_DRAW;
playerInfo[playerid][pHouseRobTextDraw][1] = PlayerText:INVALID_TEXT_DRAW;
playerInfo[playerid][pExp][0] = 63.0;
playerInfo[playerid][pExp][1] = 63.0;
playerInfo[playerid][pWarns][0] = 0;
playerInfo[playerid][pWarns][1] = 0;
playerInfo[playerid][oldKeyState][0] = 0;
playerInfo[playerid][oldKeyState][1] = 0;
playerInfo[playerid][pPayDayData][1] = 0;
playerInfo[playerid][pPayDayData][2] = 0;
playerInfo[playerid][pPayDayData][3] = 0;
playerInfo[playerid][pPayDayData][4] = 0;
for(new i = 0; i < MAX_ROBTYPE; i++)
playerInfo[playerid][pRobbed][i] = 0;
GivePlayerMoney(playerid, 100,"");
playerInfo[playerid][pHouseSlot] = INVALID_HOUSE_ID;
playerInfo[playerid][pHouseKey] = INVALID_HOUSE_ID;
playerInfo[playerid][pBizSlot] = INVALID_BUSINESS_ID;
playerInfo[playerid][pBizKey] = INVALID_BUSINESS_ID;
strdel(playerInfo[playerid][pAdvertiser], 0, MAX_PLAYER_NAME);
strdel(playerInfo[playerid][pTitle], 0, MAX_PLAYER_NAME);
if(!IsPlayerNPC(playerid))
{
serverInfo[currentPlayers]++;
new i = 0;
for(new j = sizeof(moneyDeposition); i < j; i++)
{
SetPlayerMapIcon(playerid,i,moneyDeposition[i][0],moneyDeposition[i][1],moneyDeposition[i][2],52,0,MAPICON_LOCAL);
}
SetPlayerMapIcon(playerid,++i,teamInfo[1][tiPosX],teamInfo[1][tiPosY],teamInfo[1][tiPosZ],56,0,MAPICON_LOCAL);
SetPlayerMapIcon(playerid,++i,teamInfo[2][tiPosX],teamInfo[2][tiPosY],teamInfo[2][tiPosZ],30,0,MAPICON_LOCAL);
new id = 0;
for(new n = 0; n < serverInfo[currentEntrances]; n++)
{
if(!strcmp(entranceInfo[n][eiEntranceName],"Ammu-Nation",true)) id = 6;
else if(!strcmp(entranceInfo[n][eiEntranceName],"Burger Shot",true)) id = 10;
else if(!strcmp(entranceInfo[n][eiEntranceName],"Cluckin' Bell",true)) id = 14;
else if(!strcmp(entranceInfo[n][eiEntranceName],"The Well Stacked Pizza Co",true)) id = 29;
else if(!strcmp(entranceInfo[n][eiEntranceName],"Zip",true) || !strcmp(entranceInfo[n][eiEntranceName],"Victim",true)) id = 45;
else if(!strcmp(entranceInfo[n][eiEntranceName],"Tankstellenshop",true)) id = 42;
else if(!strcmp(entranceInfo[n][eiEntranceName], "24 / 7", true)) id = 38;
else continue;
SetPlayerMapIcon(playerid,++i,entranceInfo[n][eiEntranceX],entranceInfo[n][eiEntranceY],entranceInfo[n][eiEntranceZ],id,0,MAPICON_LOCAL);
}
new Ip[16];
GetPlayerIp(playerid, Ip, 16);
foreach(new x : Player)
{
if(playerInfo[x][pTog][TOG_JOINLEAVEMESSAGE] || !IsPlayerLoggedIn(x)) continue;
if(playerInfo[x][pAdmin] < RANK_MODERATOR) SendClientMessageX(x, COLOR_GREY, "** %s hat den Server betreten **", GetPlayerNameEx(playerid));
else SendClientMessageX(x, COLOR_GREY, "** %s hat den Server betreten, IP: %s ** ", GetPlayerNameEx(playerid), Ip);
}
return 1;
}
// Hier ist nur Code, der ausgeführt wird, wenn playerid ein Bot ist.
new Ip[16];
GetPlayerIp(playerid, Ip, 16);
if(!serverInfo[sLocalhost] && IsPlayerNPC(playerid) && strcmp(serverInfo[serverIp], Ip, true) != 0)
{
new ipRange[4], playerIp[4];
sscanf(serverInfo[serverIp], "p<.>dddd", ipRange);
sscanf(Ip, "p<.>dddd", playerIp);
if(ipRange[0] == playerIp[0] && ipRange[1] == playerIp[1] && ipRange[2] == playerIp[2] && ipRange[3] == playerIp[3])
{
printf("[CONNECT] %s (%d) scheint ein Bot mit ähnlicher IP zu sein.", GetPlayerNameEx(playerid), playerid);
return 1;
}
printf("[CONNECT] %s (%d) scheint kein autorisierter Bot zu sein.", GetPlayerNameEx(playerid), playerid);
Kick(playerid);
}
return 1;
}
public OnServerCheckPlayerIp(playerid)
{
if(cache_num_rows()) playerInfo[playerid][pBanIp] = true;
GetPlayerName(playerid, GetPlayerNameEx(playerid), MAX_PLAYER_NAME);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(!IsPlayerNPC(playerid))
{
serverInfo[currentPlayers]--;
KillTimer(playerInfo[playerid][pPlayerTimer]);
}
if(playerInfo[playerid][pLoggedIn])
{
DestroyPlayerInfoBox(playerid);
}
if(IsPlayerInAnyVehicle(playerid) && IsPlayerDriver(playerid))
{
vehicleInfo[playerInfo[playerid][pLastVeh]][viDriver] = INVALID_PLAYER_ID;
}
if(playerInfo[playerid][pCuffedPerson] != INVALID_PLAYER_ID && playerInfo[playerInfo[playerid][pCuffedPerson]][pCuffed])
{
new pID = playerInfo[playerid][pCuffedPerson];
if(IsPlayerConnected(pID) && playerInfo[pID][pCuffed])
{
playerInfo[pID][pCuffed] = false;
TogglePlayerControllable(pID, true);
GameTextForPlayer(pID, "~g~Handschellen abgenommen", 2500, 3);
}
}
if(playerInfo[playerid][pTicketID] != INVALID_PLAYER_ID)
PlayerAcceptCopTicket(playerid);
if(playerInfo[playerid][pWorld])
{
ResetPlayerWeapons(playerid);
OnPlayerCommandPerformed(playerid, "/exit", 1);
}
if(playerInfo[playerid][pHouseRobber]) CancelHouseTresorRob(_, playerid, false);
if(playerInfo[playerid][pBankRobber]) KickPlayerAsBankRobber(playerid);
if(playerInfo[playerid][pTransporterRobber]) KickPlayerAsTransporterRobber(playerid);
if(playerInfo[playerid][pJobDuty]) OnPlayerCommandPerformed(playerid, "/duty",1);
if(playerInfo[playerid][pQuestActor] != INVALID_ACTOR_ID) actorInfo[playerInfo[playerid][pQuestActor]][acSpeak] = false;
if(playerInfo[playerid][pTuningGarage])
{
RemoveVehicleTuning(playerInfo[playerid][pLastVeh], playerInfo[playerid][pTuningGarage]);
RemovePlayerFromTuningGarage(playerid);
}
if(playerInfo[playerid][pActorRob] != INVALID_ACTOR_ID)
{
new actorid = playerInfo[playerid][pActorRob];
actorInfo[actorid][acLastRob] = gettime();
actorInfo[actorid][acRobState] = ROB_NONE;
actorInfo[actorid][acRobAnim] = true;
ApplyAnimation(actorid, "ped", "cower",2.1,0,1,1,1,1,1);
playerInfo[playerid][pActorRob] = INVALID_ACTOR_ID;
}
foreach(new slotid : SupportTickets)
{
ClosePlayerSupportTicket(playerid, slotid, reason, slotid);
}
if(playerInfo[playerid][pLastHit] + 15 > gettime() && playerInfo[playerid][pLastHitID] != INVALID_PLAYER_ID)
{
OnPlayerDeath(playerid, playerInfo[playerid][pLastHitID], 11);
}
if(reason != 0)
{
playerInfo[playerid][pDrugs] = 0;
}
OnServerSavePlayerData(playerid,false);
new str[128];
if(playerInfo[playerid][pIsSpectated])
{
format(str, 128, "[ SPECTATE ] %s %s hat sich ausgeloggt.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid));
foreach(new i : Player)
{
if(playerInfo[i][pSpectateID] != playerid) continue;
SendClientMessage(i, COLOR_GREY, str);
CancelSpectation(i);
}
}
foreach(new i : Player)
{
if(playerInfo[i][pQuestItem] == playerid && playerInfo[i][pQuestID] == QUEST_HITMAN)
{
CancelPlayerQuest(i, false);
format(str, 128, "[ MISSION ] Die Mission wurde abgebrochen. %s hat den Server verlassen.", GetPlayerNameEx(playerid));
SendClientMessage(i, COLOR_RED, str);
}
if(!playerInfo[i][pTog][TOG_JOINLEAVEMESSAGE] && IsPlayerLoggedIn(i))
{
format(str, 128, "** %s hat den Server verlassen (%s) **", GetPlayerNameEx(playerid), reason == 0 ? ("timeout / gamecrash") : (reason == 1 ? ("verlassen") : ("gekickt")));
SendClientMessage(i, COLOR_GREY, str);
}
}
switch(reason)
{
case 0: format(str,128,"%s\n[ Timeout / Gamecrash ]",GetPlayerNameEx(playerid));
case 1: format(str,128,"%s\n[ Verlassen ]",GetPlayerNameEx(playerid));
case 2: format(str,128,"%s\n[ Gekickt ]",GetPlayerNameEx(playerid));
}
new pickupid = GetFreePickupID(), wantedlvl = GetPlayerWantedLevel(playerid), vworld = GetPlayerVirtualWorld(playerid);
GetPlayerPos(playerid, pickupInfo[pickupid][piX], pickupInfo[pickupid][piY], pickupInfo[pickupid][piZ]);
pickupInfo[pickupid][piPickupID] = CreateDynamicPickup(1314, 1, pickupInfo[pickupid][piX], pickupInfo[pickupid][piY], pickupInfo[pickupid][piZ], vworld, GetPlayerInterior(playerid));
pickupInfo[pickupid][piLabelID] = CreateDynamic3DTextLabel(str, COLOR_GREY, pickupInfo[pickupid][piX], pickupInfo[pickupid][piY], pickupInfo[pickupid][piZ], 20.0, _,_,_,vworld);
pickupInfo[pickupid][piWanteds] = wantedlvl; // (reason == 2 ? 0 : wantedlvl)
pickupInfo[pickupid][piShowTime] = gettime() + 30;
pickupInfo[pickupid][piCreated] = true;
pickupInfo[pickupid][piTyp] = 1;
pickupInfo[pickupid][piUserid] = playerInfo[playerid][pSQLID];
Iter_Add(Pickup, pickupid);
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(playerInfo[playerid][pGroupIndex]))
{
format(str,128,"** Gruppenmitglied {FF0000}%s {2FD6C3}hat den Server verlassen %s. **",GetPlayerNameEx(playerid),(reason == 0 ? ("(Timeout / Gamecrash)") : (" ")));
SendGroupMessageToTog(playerInfo[playerid][pGroup],COLOR_CLANCHAT,str,TOG_GROUPJLMESSAGE);
groupInfo[playerInfo[playerid][pGroupIndex]][gActiveMember]--;
}
foreach(new i : Player)
for(new x = 0; x < MAX_FRIENDS; x++)
if(playerInfo[playerid][pSQLID] == playerInfo[i][pFriends][x] && playerInfo[playerid][pSQLID] && IsPlayerLoggedIn(i))
{
format(str, 128, "** Freund %s hat den Server verlassen. **", GetPlayerNameEx(playerid));
SendClientMessage(playerid, 0xD99B80FF, str);
}
return 1;
}
public OnPlayerSpawn(playerid)
{
AC_OnPlayerSpawn(playerid);
PreloadAnimations(playerid);
playerInfo[playerid][pCuffed] = 0;
playerInfo[playerid][pHandsUp] = false;
playerInfo[playerid][pDead] = false;
playerInfo[playerid][pShot] = false;
playerInfo[playerid][pLastHit] = 0;
playerInfo[playerid][pLastEquip] = 0;
playerInfo[playerid][pHasJetpack] = false;
if(playerInfo[playerid][pMask])
{
playerInfo[playerid][pMask] = false;
playerInfo[playerid][pShowHeadLabel] = -1;
GameTextForPlayer(playerid, "~r~Maske entfernt", 5000, 3);
foreach(new i : Player)
{
ShowPlayerNameTagForPlayer(i, playerid, true);
}
}
/*
for(new i = 0; i < 3; i++)
{
if(playerInfo[playerid][pAccessoirID][i])
{
RemovePlayerAttachedObject(playerid, i + 7);
SetPlayerAttachedObject(playerid, i + 7,playerInfo[playerid][pAccessoirID][i], 2, playerInfo[playerid][pAccessoirPosX][i],playerInfo[playerid][pAccessoirPosY][i],playerInfo[playerid][pAccessoirPosZ][i],playerInfo[playerid][pAccessoirRotX][i],playerInfo[playerid][pAccessoirRotY][i],playerInfo[playerid][pAccessoirRotZ][i],playerInfo[playerid][pAccessoirScaleX][i],playerInfo[playerid][pAccessoirScaleY][i],playerInfo[playerid][pAccessoirScaleZ][i]);
}
}
*/
switch(playerInfo[playerid][pWorld])
{
case WORLD_NONE:
{
//
}
case WORLD_DERBY:
{
SpawnPlayerInDerby(playerid);
return 1;
}
case WORLD_DUELL:
{
new index = playerInfo[playerid][pWorldIndex], loc = duellInfo[index][diLocation],ppos = (duellInfo[index][diPlayers][0] == playerid ? 0 : 1);
for(new i = 0; i < 11; i++)
{
if(duellInfo[index][diWeapon][i] == 0) continue;
GivePlayerWeapon(playerid, duellInfo[index][diWeapon][i], 5000, true);
}
SetPlayerPos(playerid, duellRoom[loc][drSpawnX][ppos], duellRoom[loc][drSpawnY][ppos], duellRoom[loc][drSpawnZ][ppos]);
SetPlayerFacingAngle(playerid, duellRoom[loc][drSpawnA][ppos]);
SetPlayerInterior(playerid, duellRoom[loc][drInterior]);
SetPlayerVirtualWorld(playerid, index + 55);
SetPlayerHealth(playerid, duellInfo[index][diHealth], 250);
SetPlayerArmour(playerid, duellInfo[index][diArmour]);
SetPlayerWorldBounds(playerid, duellRoom[loc][drZoneMaxX], duellRoom[loc][drZoneMinX], duellRoom[loc][drZoneMaxY], duellRoom[loc][drZoneMinY]);
return 1;
}
default:
{
new dIndex = playerInfo[playerid][pWorldIndex], dRand = random( dmArea[dIndex][dmMaxSpawns] );
for(new i = 0; i < 5; i++)
{
if(dmArea[ dIndex ][dmWeapons][i] == -1) break;
GivePlayerWeapon(playerid, dmArea[ dIndex ][dmWeapons][i], dmArea[ dIndex ][dmAmmos][i]);
}
SetPlayerArmour(playerid, 0.0);
SetPlayerHealth(playerid, 100.0);
SetPlayerInterior(playerid, dmArea[dIndex][dmInt]);
SetPlayerVirtualWorld(playerid, dIndex + 1);
SetPlayerPos(playerid, dmArea[dIndex][dmSpawnX][dRand], dmArea[dIndex][dmSpawnY][dRand], dmArea[dIndex][dmSpawnZ][dRand]);
SetPlayerFacingAngle(playerid, dmArea[dIndex][dmSpawnA][dRand]);
return 1;
}
}
playerInfo[playerid][pSpawnProtection] = gettime() + 10;
SetPlayerHealth(playerid, INFINITY);
if(!IsPlayerNPC(playerid) && playerInfo[playerid][pLoggedIn] && (playerInfo[playerid][pSkin] == 0 || playerInfo[playerid][pTeam] == 0))
{
SetPlayerTeamEx(playerid, TEAM_ZIVI);
SetSpawnInfo(playerid,NO_TEAM,skinInfo[1][0],-685.3075,939.5270,13.6328,90.1,-1,-1,-1,-1,-1,-1);
SetPlayerInSkinChangeMenu(playerid);
return 1;
}
if(IsPlayerNPC(playerid))
{
new bName[MAX_PLAYER_NAME];
GetPlayerName(playerid, bName, sizeof(bName));
if(!strcmp(bName, "securityguy", true))
{
serverInfo[BankTransporterDriver] = playerid;
SetPlayerSkin(playerid, 71);
}
if(!playerInfo[playerid][pIsNPC] && !serverInfo[sLocalhost])
{
new Ip[16];
GetPlayerIp(playerid, Ip, 16);
if(!strcmp(Ip, serverInfo[serverIp], true))
{
playerInfo[playerid][pIsNPC] = true;
}
else
{
new ipRange[4], playerIp[4];
sscanf(serverInfo[serverIp], "p<.>dddd", ipRange);
sscanf(Ip, "p<.>dddd", playerIp);
if(ipRange[0] == playerIp[0] && ipRange[1] == playerIp[1] && ipRange[2] == playerIp[2] && ipRange[3] == playerIp[3])
{
printf("[SPAWN] %s (%d) scheint ein Bot mit ähnlicher IP zu sein.", GetPlayerNameEx(playerid), playerid);
playerInfo[playerid][pIsNPC] = true;
return 1;
}
printf("[SPAWN] %s (%d) scheint kein autorisierter Bot zu sein.", GetPlayerNameEx(playerid), playerid);
Kick(playerid);
}
}
/*
if(!strcmp(bName, "xmasman", true))
{
SetPlayerSkin(playerid, 189);
SetPlayerAttachedObject(playerid, 0, 19065, 2, 0.120000, 0.040000, -0.003500, 0, 100, 100, 1.4, 1.4, 1.4);
}
*/
SetPlayerColor(playerid, 0xFFFFFF00);
return 1;
}
if(!playerInfo[playerid][pFirstSpawn])
{
playerInfo[playerid][pFirstSpawn] = 1;
if(playerInfo[playerid][pTeam])
{
playerInfo[playerid][pLevel] = GetPlayerLevelFromExp(playerInfo[playerid][pExp][playerInfo[playerid][pTeam]-1]);
SetPlayerScore(playerid, playerInfo[playerid][pLevel]);
}
if(playerInfo[playerid][pAdmin])
{
TextDrawShowForPlayer(playerid, TicketInfo);
}
TextDrawShowForPlayer(playerid, Datum);
TextDrawShowForPlayer(playerid, Uhrzeit[0]);
TextDrawShowForPlayer(playerid, Uhrzeit[1]);
TextDrawShowForPlayer(playerid, MainLine);
if(IsPlayerCop(playerid))
{
playerInfo[playerid][pCopRank] = GetCopRank(playerInfo[playerid][pLevel]);
SetPlayerTeam(playerid, 1);
}
else
{
SetPlayerTeam(playerid, NO_TEAM);
if(!playerInfo[playerid][pZiviTutorial])
{
playerInfo[playerid][pZiviTutorial] = true;
/*
SendClientMessageX(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] Hallo %s, da du neu bist, musst du das Zivilisten - Tutorial absolvieren,",GetPlayerNameEx(playerid));
SendClientMessage(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] um am Spielgeschehen teilnehmen zu können. Das Tutorial startet nun.");
playerInfo[playerid][pTutorialTime] = 0;
playerInfo[playerid][pTutorialStep] = 1;
*/
}
}
if(serverInfo[currentRespawnVehTime])
{
TextDrawShowForPlayer(playerid, CountdownTD);
}
if(!serverTog[TOG_DOUBLEEXP][stValue] || !serverTog[TOG_REDUCEDWAIT][stValue])
{
TextDrawShowForPlayer(playerid, InfoDoubleExp);
}
SetPlayerColor(playerid, 0xFFFFFF00);
//playerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
PlayerTextDrawShow(playerid, ZoneText[playerid]);
if(IsPlayerInAnyGroup(playerid))
{
if(groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_ZONE)
{
ShowPlayerGangZoneInfo(playerid,groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz]);
}
else if(groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ || groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_NORMAL)
{
ShowWarTextDraw(playerid, groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ);
}
}
}
if(IsPlayerInAnyGroup(playerid))
{
RefreshPlayerGangZones(playerid);
if(groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ)
{
GangZoneShowForPlayer(playerid, BusinessZone[groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz]],0x39B33B70);
GangZoneFlashForPlayer(playerid, BusinessZone[groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz]], 0x9C283870);
}
}
if(GetPlayerHighestLevel(playerid) < 2 && !playerInfo[playerid][pGroup] && !IsPlayerCop(playerid) && GetPlayerWantedLevel(playerid) == 0)
{
playerInfo[playerid][pNewbieProtection] = true;
}
else
{
playerInfo[playerid][pNewbieProtection] = false;
}
for(new i = 0; i < 8; i++)
{
if(!playerInfo[playerid][pWeapon][i] || playerInfo[playerid][pJailTime]) continue;
if(playerInfo[playerid][pNewbieProtection]) playerInfo[playerid][pNewbieProtection] = false;
GivePlayerWeapon(playerid, playerInfo[playerid][pWeapon][i], playerInfo[playerid][pAmmo][i]);
playerInfo[playerid][pWeapon][i] = 0;
playerInfo[playerid][pAmmo][i] = 0;
}
if(playerInfo[playerid][pJailTime])
{
new rand = playerInfo[playerid][pJailRoom];
Streamer_UpdateEx(playerid, JailSpawns[rand][0], JailSpawns[rand][1], JailSpawns[rand][2]);
SetPlayerPos(playerid, JailSpawns[rand][0], JailSpawns[rand][1], JailSpawns[rand][2]);
SetPlayerFacingAngle(playerid, JailSpawns[rand][3]);
SetPlayerInterior(playerid, 10);
SetPlayerVirtualWorld(playerid, serverInfo[currentSFPDVirtualWorld]);
SetPlayerHealth(playerid, INFINITY);
ShowPlayerHintLine(playerid, GetTimeString(playerInfo[playerid][pJailTime],3), playerInfo[playerid][pJailTime] * 1000);
ResetPlayerWeapons(playerid);
return 1;
}
foreach(new i : NoDmZone)
{
GangZoneShowForPlayer(playerid, nodmZone[i][ndmZone], 0xFFFFFF70);
}
if(playerInfo[playerid][pIsSpectator])
{
SetPlayerVirtualWorld(playerid, playerInfo[playerid][pSpecVirtualWorld]);
SetPlayerInterior(playerid, playerInfo[playerid][pSpecInterior]);
playerInfo[playerid][pHouseID] = playerInfo[playerid][pSpecHouse];
playerInfo[playerid][pEntranceID] = playerInfo[playerid][pSpecEntrance];
SetPlayerPos(playerid, playerInfo[playerid][pSpecX], playerInfo[playerid][pSpecY], playerInfo[playerid][pSpecZ]);
SetPlayerFacingAngle(playerid, playerInfo[playerid][pSpecA]);
if(playerInfo[playerid][pMoneyBag]) GivePlayerMoneyBag(playerid, _, playerInfo[playerid][pMoneyBagAmount], playerInfo[playerid][pMoneyBagExp], playerInfo[playerid][pMoneyBag], false);
playerInfo[playerid][pIsSpectator] = false;
SetPlayerHealth(playerid, playerInfo[playerid][pSpecHealth], 250.0);
SetPlayerArmour(playerid, playerInfo[playerid][pSpecArmour]);
return 1;
}
else if(IsPlayerInAnyGroup(playerid) && playerInfo[playerid][pSpawnChange] == SPAWN_GROUP)
{
new houseid = GetHouseSlotID(groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID]);
if(houseid != INVALID_HOUSE_ID)
{
EnterHouse(playerid, houseid);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Deine Gruppe hat derzeit kein Haus, wo Du spawnen könntest.");
}
}
else if(playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID && !IsPlayerCop(playerid) && playerInfo[playerid][pSpawnChange] == SPAWN_HOUSE)
{
new houseid = playerInfo[playerid][pHouseSlot];
if(houseid != INVALID_HOUSE_ID)
{
EnterHouse(playerid, houseid);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Du kannst nicht an deinem Haus spawnen, da scheinbar ein Fehler vorliegt.");
}
}
else if(playerInfo[playerid][pSpawnChange] == SPAWN_ZIVILV && !IsPlayerCop(playerid))
{
SetPlayerPos(playerid, 2634.1479,1824.3220,11.0234);
SetPlayerFacingAngle(playerid, 85.6127);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
else if(playerInfo[playerid][pSpawnChange] == SPAWN_FACTION && GetPlayerFaction(playerid))
{
new factionid = GetPlayerFaction(playerid);
SetPlayerPos(playerid, factionInfo[factionid][fiSpawnX], factionInfo[factionid][fiSpawnY], factionInfo[factionid][fiSpawnZ]);
SetPlayerFacingAngle(playerid, factionInfo[factionid][fiSpawnA]);
SetPlayerInterior(playerid, factionInfo[factionid][fiInterior]);
SetPlayerVirtualWorld(playerid, factionInfo[factionid][fiVirtualWorld]);
return 1;
}
new teamid = playerInfo[playerid][pTeam];
SetPlayerPos(playerid, teamInfo[teamid][tiPosX], teamInfo[teamid][tiPosY], teamInfo[teamid][tiPosZ]);
SetPlayerFacingAngle(playerid, teamInfo[teamid][tiPosA]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
foreach(new i : Player)
{
if(!playerInfo[i][pDamageLog]) continue;
SendClientMessageX(i, COLOR_WHITE, "playerid: %d (%s), issuerid: %d (%s), amount: %.1f, weaponid: %d, bodypart: %d",playerid, GetPlayerNameEx(playerid), issuerid,GetPlayerNameEx(issuerid), Float: amount, weaponid, bodypart);
}
if(playerInfo[playerid][pAdminDuty] && issuerid != INVALID_PLAYER_ID && !IsPlayerInAnyVehicle(issuerid))
{
new Float:Pos[3];
GetPlayerPos(issuerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(issuerid, Pos[0], Pos[1], Pos[2] + 2.0);
}
if(playerInfo[playerid][pWorld] && playerInfo[playerid][pWorld] != WORLD_DERBY && issuerid != INVALID_PLAYER_ID)
{
new smallstr[32 + 16];
format(smallstr,sizeof(smallstr),"-%.1f HP von %s",amount,GetPlayerNameEx(issuerid));
SetPlayerChatBubble(playerid, smallstr, 0x61CF68FF, 34.0, 3000);
playerInfo[playerid][pLastHit] = gettime();
}
if(IsPlayerInNoDmZone(playerid) && weaponid == 51 && issuerid == INVALID_PLAYER_ID)
{
ResetPlayerHealth(playerid);
}
if(weaponid == 50 && bodypart == 3)
{
if(issuerid != INVALID_PLAYER_ID)
{
new Float:health;
ResetPlayerHealth(playerid);
GetPlayerHealth(issuerid, health);
SetPlayerHealth(issuerid, health-amount);
}
else
{
new Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2] + 0.5);
}
}
AC_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
if(issuerid != INVALID_PLAYER_ID)
{
if(!IsPlayerInNoDmZone(playerid) && !IsPlayerInNoDmZone(issuerid))
{
playerInfo[playerid][pLastHit] = gettime();
playerInfo[playerid][pLastHitID] = issuerid;
}
if(playerInfo[issuerid][pNewbieProtection])
{
playerInfo[issuerid][pNewbieProtection] = false;
SendClientMessage(issuerid, COLOR_RED, "Da du einen Spieler verwundet hast, hast du deinen Newbieschutz bis zum nächsten Tot verloren.");
}
new bool:getDamaged = true;
//if(weaponid == 0 && IsPlayerInNoDmZone(playerid) || playerInfo[playerid][pHandsUp])
if(!HasPlayerGodMode(playerid) && ((!OnPlayerWeaponShot(issuerid, weaponid, BULLET_HIT_TYPE_PLAYER, playerid, 0, 0, 0) || IsPlayerCop(playerid) && IsPlayerCop(issuerid))))
{
new Float:health;
GetPlayerHealth(playerid, health);
if(health != 0.0)
{
getDamaged = false;
ResetPlayerHealth(playerid);
}
}
if(weaponid == 49 && IsPlayerInAnyVehicle(issuerid))
{
new hitid = GetVehicleDriver(GetPlayerVehicleID(issuerid));
if(hitid != INVALID_PLAYER_ID && !IsPlayerNPC(hitid))
{
new string[128];
playerInfo[hitid][pVehicleHit]++;
format(string,sizeof(string),"Anfahren ist verboten (%d / 5)",playerInfo[hitid][pVehicleHit]);
SendClientMessage(hitid, COLOR_RED, string);
GivePlayerHealth(playerid, amount);
if(playerInfo[hitid][pVehicleHit] == 5)
{
format(string,sizeof(string),"[ ADMIN ] %s %s wurde vom System gekickt, Grund: Anfahren (5 / 5)",GetPlayerTitle(hitid),GetPlayerNameEx(hitid));
SendClientMessageToAll(COLOR_RED, string);
KickEx(hitid);
}
}
}
else if(weaponid == 51 && playerInfo[playerid][pWorld] != WORLD_DUELL)
{
new string[128];
format(string,sizeof(string),"* %s hat gerade %s durch eine Explosion verletzt.",GetPlayerNameEx(issuerid),GetPlayerNameEx(playerid));
SendAdminMessage(COLOR_RED, string);
}
PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
if(IsPlayerCop(playerid) && !IsPlayerCop(issuerid) &&(playerInfo[issuerid][pLastWanted][0] + 30 < gettime() || playerInfo[issuerid][pWantedLvL] == 0))
{
if(!HasPlayerGodMode(playerid) && IsPlayerInNoDmZone(playerid) && playerInfo[issuerid][pWantedLvL] == 0)
{
ResetPlayerHealth(playerid);
GameTextForPlayer(issuerid, "~w~Cop ist in~n~der ~r~NoDM - Zone!", 1200, 4);
return 1;
}
playerInfo[issuerid][pLastWanted][0] = gettime();
GivePlayerWantedLevel(issuerid, WANTED_ATTACKCOP, true, playerid);
}
if(playerInfo[issuerid][pJailTime])
{
TogglePlayerControllable(issuerid, false);
SendClientMessage(issuerid, COLOR_RED, "Unterlasse das KnastDM (1 Min. gefreezt).");
SetTimerEx("UnfreezePlayer", 60000, false, "dd", issuerid,-1);
}
if(playerInfo[playerid][pWorld] == WORLD_NONE && getDamaged && playerInfo[issuerid][pTeam] == TEAM_SFPD)
{
playerInfo[playerid][pgetDamagedMax] += amount;
playerInfo[playerid][pgetDamaged][issuerid] += amount;
playerInfo[playerid][pDamageTime][issuerid] = gettime();
playerInfo[playerid][pDamageID][issuerid] = issuerid;
playerInfo[playerid][pDamageUnique][issuerid] = playerInfo[issuerid][pSQLID];
playerInfo[playerid][pDamageTeam][issuerid] = playerInfo[issuerid][pTeam];
}
}
return 1;
}
stock CreateDeadPickup(playerid, killerid,reason,vworld, time = 25)
{
new slotid = Iter_Free(DeathPickup), str[64];
Iter_Add(DeathPickup, slotid);
new hName[10];
strcat(hName, "Unbekannt");
if(killerid == INVALID_PLAYER_ID)
{
format(str, sizeof(str), "† %s †\n(Selbstmord)",(playerInfo[playerid][pMask] == true ? (hName[0]) : (GetPlayerNameEx(playerid))));
}
else
{
format(str, sizeof(str), "† %s †\nPeiniger: %s\n(%s)",GetPlayerNameExEx(playerid), GetPlayerNameExEx(killerid),GetWeaponName(reason));
}
GetPlayerPos(playerid, deathInfo[slotid][diPos][0],deathInfo[slotid][diPos][1],deathInfo[slotid][diPos][2]);
deathInfo[slotid][diPickupID] = CreateDynamicPickup(1254,1, deathInfo[slotid][diPos][0],deathInfo[slotid][diPos][1],deathInfo[slotid][diPos][2] - 0.5, vworld);
deathInfo[slotid][diLabelID] = CreateDynamic3DTextLabel(str,0xC1DBDBFF, deathInfo[slotid][diPos][0],deathInfo[slotid][diPos][1],deathInfo[slotid][diPos][2] - 0.5, 5.0, _, _, _, vworld);
deathInfo[slotid][diDeadTime] = gettime() + time;
}
public OnPlayerDeath(playerid, killerid, reason)
{
AC_OnPlayerDeath(playerid, killerid, reason);
if(!playerInfo[playerid][pLoggedIn] || acPlayer[playerid][acpToggleMessage][0]) return 1;
new vworld = GetPlayerVirtualWorld(playerid);
InsertDeathLog(playerInfo[playerid][pSQLID], (killerid == INVALID_PLAYER_ID ? -1 : playerInfo[killerid][pSQLID]), reason);
playerInfo[playerid][pLastHit] = 0;
playerInfo[playerid][pLastHitID] = INVALID_PLAYER_ID;
playerInfo[playerid][pEntranceID] = -1;
playerInfo[playerid][pHouseID] = -1;
if(playerInfo[playerid][pFactionDuty])
{
playerInfo[playerid][pFactionDuty] = false;
playerInfo[playerid][pShowHeadLabel] = -1;
playerInfo[playerid][pLastEquip] = 0;
SendClientMessage(playerid, COLOR_RED, "[ FRAKTION ] Du bist nicht mehr für deine Fraktion im Dienst.");
}
if(playerInfo[playerid][pDrugsUsed] >= 40)
{
SetPlayerWeather(playerid,serverInfo[weatherID]);
}
switch(playerInfo[playerid][pWorld])
{
case WORLD_NONE:
{
if(playerInfo[playerid][pDrugs])
{
SendClientMessageX(playerid, COLOR_RED, "[ INVENTAR ] Du hast %sg Drogen verloren.", FormatNumber(playerInfo[playerid][pDrugs]));
playerInfo[playerid][pDrugs] = 0;
}
playerInfo[playerid][pDrugsUsed] = 0;
CreateDeadPickup(playerid, killerid, reason, vworld);
CreateMoneyDrop(playerid);
}
case WORLD_DERBY:
{
}
case WORLD_DUELL:
{
if(killerid != INVALID_PLAYER_ID)
{
new index = playerInfo[killerid][pWorldIndex];
SetPlayerHealth(killerid, duellInfo[index][diHealth], 250);
SetPlayerArmour(killerid, duellInfo[index][diArmour]);
}
}
default:
{
if(playerInfo[playerid][pWorld] == WORLD_DUELL && killerid == INVALID_PLAYER_ID && duellInfo[playerInfo[playerid][pWorldIndex]][diPlayers][1] != INVALID_PLAYER_ID)
{
OnPlayerDeath(playerid, (duellInfo[playerInfo[playerid][pWorldIndex]][diPlayers][0] == playerid ? duellInfo[playerInfo[playerid][pWorldIndex]][diPlayers][1] : duellInfo[playerInfo[playerid][pWorldIndex]][diPlayers][1]), 0);
return 1;
}
if(killerid != INVALID_PLAYER_ID)
{
new index = SearchGroupIndex(groupInfo[GetPlayerGroupIndex(playerid)][gWar]);
SendClientMessageX(killerid, COLOR_YELLOW, "* Du hast %s getötet ( +1 EXP).",GetPlayerNameExEx(playerid));
GivePlayerExp(killerid, 1, _, "Kill");
GivePlayerMoney(killerid, 500, "Kill");
UpdateWarTextDraw(index, GetPlayerGroupIndex(playerid));
playerInfo[playerid][pKillStreak] = 0;
playerInfo[killerid][pKillStreak]++;
playerInfo[killerid][pKills][playerInfo[killerid][pWorld]]++;
playerInfo[playerid][pDeaths][playerInfo[killerid][pWorld]]++;
if(reason-22 >= 0)
{
playerInfo[playerid][pWeaponHit][reason-22]++;
playerInfo[playerid][pWeaponShot][reason-22]++;
}
playerInfo[killerid][pLastHitID] = INVALID_PLAYER_ID;
SendDeathMessageToPlayer(playerid, killerid, playerid, reason);
SendDeathMessageToPlayer(killerid, killerid, playerid, reason);
if(playerInfo[killerid][pKillStreak] % 3 == 0)
{
new string[128], Float:boost = float((playerInfo[killerid][pKillStreak] / 3)) * 15.0 + 100.0;
SetPlayerHealth(killerid, boost, 500.0);
format(string, sizeof(string), "[ KILL-STREAK ] %s hat einen %d-er Kill-Streak, Package: %.1f HP.",GetPlayerNameEx(killerid), playerInfo[killerid][pKillStreak], boost);
SendClientWorldMessage(playerInfo[killerid][pWorld], 0x99FFFFAA, string);
}
CreateDeadPickup(playerid, killerid, reason, vworld, 5);
}
return 1;
}
}
if(IsPlayerDonator(playerid) && random(100) < 40)
{
for(new i = 0; i < 8; i++)
{
GetPlayerWeaponData(playerid, i + 1, playerInfo[playerid][pWeapon][i], playerInfo[playerid][pAmmo][i]);
}
SendClientMessage(playerid, COLOR_DONATOR, "[ DONATOR ] Du erhälst deine Waffen nach dem Tod wieder.");
}
else
{
CreatePlayerWeaponPickup(playerid, vworld);
}
if(playerInfo[playerid][pWorld] == WORLD_NONE)
{
if(!GetPlayerAchievementStatus(playerid, ACHIEVE_DEATHKING) && playerInfo[playerid][pDeaths] >= 1000) GivePlayerAchievement(playerid, ACHIEVE_DEATHKING);
playerInfo[playerid][pDeaths][WORLD_NONE]++;
playerInfo[playerid][pDead] = true;
}
if(playerInfo[playerid][pActorRob] != INVALID_ACTOR_ID)
{
new actorid = playerInfo[playerid][pActorRob];
SendClientMessage(playerid, COLOR_RED, "Du bist während dem Ausrauben gestorben.");
actorInfo[actorid][acLastRob] = gettime();
actorInfo[actorid][acRobState] = ROB_NONE;
actorInfo[actorid][acRobAnim] = true;
ApplyActorAnimation(actorid , "ped", "cower",4.1,0,1,1,1,10000);
playerInfo[playerid][pActorRob] = INVALID_ACTOR_ID;
}
if(playerInfo[playerid][pHouseRobber]) CancelHouseTresorRob(_, playerid);
if(playerInfo[playerid][pBankRobber]) KickPlayerAsBankRobber(playerid);
if(playerInfo[playerid][pTransporterRobber]) KickPlayerAsTransporterRobber(playerid);
if(killerid != INVALID_PLAYER_ID)
{
if(!playerInfo[killerid][pLoggedIn]) return 1;
if(playerInfo[killerid][pQuestID] == QUEST_HITMAN && playerInfo[killerid][pQuestItem] == playerid)
{
CancelPlayerQuest(killerid, true);
}
if(!GetPlayerAchievementStatus(killerid, ACHIEVE_PRIVATE) && playerInfo[killerid][pKills] >= 10) GivePlayerAchievement(killerid, ACHIEVE_PRIVATE);
if(!GetPlayerAchievementStatus(killerid, ACHIEVE_CORPORAL) && playerInfo[killerid][pKills] >= 100) GivePlayerAchievement(killerid, ACHIEVE_CORPORAL);
if(!GetPlayerAchievementStatus(killerid, ACHIEVE_SERGEANT) && playerInfo[killerid][pKills] >= 1000) GivePlayerAchievement(killerid, ACHIEVE_SERGEANT);
if(!GetPlayerAchievementStatus(killerid, ACHIEVE_GENERALOFSA) && playerInfo[killerid][pKills] >= 10000) GivePlayerAchievement(killerid, ACHIEVE_GENERALOFSA);
if(reason-22 >= 0 && reason < 39)
{
playerInfo[playerid][pWeaponHit][reason-22]++;
playerInfo[playerid][pWeaponShot][reason-22]++;
}
playerInfo[killerid][pLastHitID] = INVALID_PLAYER_ID;
if(playerInfo[killerid][pWorld] == WORLD_NONE)
{
playerInfo[killerid][pKills][WORLD_NONE]++;
if(playerInfo[playerid][pContractValue] && GetPlayerFaction(playerid) == FACTION_HITMAN)
{
AddToEventBox(playerInfo[playerid][pSQLID], playerInfo[playerid][pContractValue], "Kopfgeld auf Hitman");
playerInfo[playerid][pContractValue] = 0;
new query[256];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_contract` (`userid`,`victimid`,`value`,`killed`,`date`) VALUES ('%d','%d','%d','1','%d')",playerInfo[playerid][pSQLID],playerInfo[playerid][pSQLID],playerInfo[playerid][pContractValue],gettime());
mysql_function_query(dbHandle, query, false, "", "");
}
if(playerInfo[playerid][pContractValue] && GetPlayerFaction(killerid) == FACTION_HITMAN && playerInfo[killerid][pFactionDuty])
{
new value = floatround(playerInfo[playerid][pContractValue] * 0.7);
AddToEventBox(0, floatround(playerInfo[playerid][pContractValue] * 0.3), "Kopfgeldzinsen");
new query[256];
format(query, 256, "* [ KOPFGELD ] %s hat %s erledigt und $%s kassiert.", GetPlayerNameEx(killerid),GetPlayerNameEx(playerid),FormatNumber(value));
SendFactionMessageToAll(FACTION_HITMAN, COLOR_FACTIONCHAT, query);
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_contract` (`userid`,`victimid`,`value`,`killed`,`date`) VALUES ('%d','%d','%d','1','%d')",playerInfo[killerid][pSQLID],playerInfo[playerid][pSQLID],playerInfo[playerid][pContractValue],gettime());
mysql_function_query(dbHandle, query, false, "", "");
GivePlayerMoney(killerid, value, "Kopfgeld");
playerInfo[playerid][pContractValue] = 0;
playerInfo[killerid][pContractKills]++;
SendClientMessage(playerid, COLOR_YELLOW, "[ INFO ] Du hattest Kopfgeld und wurdest von einem Mitglied der Hitman Agency exekutiert.");
}
}
if(!IsPlayerCop(playerid) && !IsPlayerCop(killerid) && IsPlayerAttachedObjectSlotUsed(playerid, 1))
{
new pickupid = GetFreePickupID();
GetPlayerPos(playerid, pickupInfo[pickupid][piX], pickupInfo[pickupid][piY], pickupInfo[pickupid][piZ]);
pickupInfo[pickupid][piPickupID] = CreateDynamicObject(1550, pickupInfo[pickupid][piX], pickupInfo[pickupid][piY], pickupInfo[pickupid][piZ], 0.00, 0.00, 0.00);
pickupInfo[pickupid][piLabelID] = CreateDynamic3DTextLabel("Geldbeutel\nDrücke ~k~~SNEAK_ABOUT~, um einen Geldbeutel aufzuheben.", COLOR_GREY, pickupInfo[pickupid][piX], pickupInfo[pickupid][piY], pickupInfo[pickupid][piZ], 20.0);
pickupInfo[pickupid][piWanteds] = 0;
pickupInfo[pickupid][piTyp] = 2;
pickupInfo[pickupid][piParams][0] = playerInfo[playerid][pMoneyBag];
pickupInfo[pickupid][piParams][1] = playerInfo[playerid][pMoneyBagExp];
pickupInfo[pickupid][piParams][2] = playerInfo[playerid][pMoneyBagAmount];
pickupInfo[pickupid][piShowTime] = gettime() + 30;
pickupInfo[pickupid][piUserid] = -1;
Iter_Add(Pickup, pickupid);
RemovePlayerAttachedObject(playerid, 1);
playerInfo[playerid][pMoneyBag] = 0;
playerInfo[playerid][pMoneyBagAmount] = 0;
playerInfo[playerid][pMoneyBagExp] = 0;
}
SendClientMessageX(killerid, COLOR_YELLOW, "* Du hast %s getötet ( +1 EXP).",GetPlayerNameExEx(playerid));
GivePlayerExp(killerid, 1, _, "Kill");
SaveAllServerData();
if(!IsPlayerCop(killerid))
{
new bizid = 0;
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(playerInfo[playerid][pGroupIndex]))
{
bizid = groupInfo[playerInfo[playerid][pGroupIndex]][gWarBiz];
}
if(!playerInfo[playerid][pGroup] || !IsValidGroupIndex(playerInfo[playerid][pGroupIndex]) ||
(groupInfo[playerInfo[playerid][pGroupIndex]][gWarTyp] != WAR_BIZ && !IsPlayerInArea(playerid, entranceInfo[bizid][eiEntranceX] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceX] + BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] + BIZFIGHTSIZE) &&
!IsPlayerInArea(killerid, entranceInfo[bizid][eiEntranceX] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceX] + BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] + BIZFIGHTSIZE) && GetPlayerGangZone(playerid) != groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz]) && groupInfo[playerInfo[playerid][pGroupIndex]][gWarTyp] != WAR_ZONE &&
playerInfo[killerid][pEntranceID] != bizid)
{
GivePlayerWantedLevel(killerid, WANTED_MURDER);
}
}
else if(IsPlayerCop(killerid) && !IsPlayerCop(playerid))
{
if(GetPlayerWantedLevel(playerid))
{
new string[128];
format(string,sizeof(string),"* Polizist %s hat Verbrecher %s festgenommen.",GetPlayerNameExEx(killerid),GetPlayerNameExEx(playerid));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
SetPlayerInJail(playerid, killerid);
}
}
if(playerInfo[killerid][pGroup] == playerInfo[playerid][pGroup] && playerInfo[playerid][pGroup] && !groupInfo[playerInfo[playerid][pGroupIndex]][gAllowDM] && playerInfo[playerid][pTeam] == playerInfo[killerid][pTeam] && !playerInfo[killerid][pFactionDuty] && !playerInfo[playerid][pFactionDuty])
{
new string[128];
playerInfo[killerid][pWarns][0]++;
GivePlayerMoney(killerid, -1000, "TeamDM");
if(playerInfo[killerid][pWarns][0] >= 3)
{
format(string,sizeof(string),"[ ADMIN ] %s %s wurde vom System gekickt, Grund: 3 Verwarnungen (Stufe 1)",GetPlayerTitle(killerid),GetPlayerNameEx(killerid));
SendClientMessageToAll(COLOR_RED, string);
KickEx(killerid);
}
else
{
format(string,sizeof(string),"[%d / 3] TeamDM wird nicht tolleriert. Bei 3 Verwarnungen wirst du gekickt.",playerInfo[killerid][pWarns][0]);
SendClientMessage(killerid, COLOR_RED, string);
}
return 1;
}
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(playerInfo[killerid][pGroupIndex]) && !IsPlayerCop(killerid) && !IsPlayerCop(playerid) && !playerInfo[killerid][pFactionDuty] && !playerInfo[playerid][pFactionDuty])
{
if(groupInfo[playerInfo[killerid][pGroupIndex]][gWar] == playerInfo[playerid][pGroup])
{
new bizid = groupInfo[playerInfo[playerid][pGroupIndex]][gWarBiz], gangzone = GetPlayerGangZone(playerid);
gangzone = gangzone == -1 ? GetPlayerGangZone(killerid) : gangzone;
if(groupInfo[playerInfo[playerid][pGroupIndex]][gWarTyp] == WAR_BIZ && !IsPlayerInArea(playerid, entranceInfo[bizid][eiEntranceX] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceX] + BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] + BIZFIGHTSIZE) &&
!IsPlayerInArea(killerid, entranceInfo[bizid][eiEntranceX] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] - BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceX] + BIZFIGHTSIZE,entranceInfo[bizid][eiEntranceY] + BIZFIGHTSIZE) && playerInfo[killerid][pEntranceID] != bizid) return 1;
if(groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_ZONE && gangzone != bizid) return 1;
groupInfo[playerInfo[killerid][pGroupIndex]][gWarKills]++;
new zonename[MAX_ZONE_NAME], str[128];
GetPlayer2DZone(killerid, zonename, MAX_ZONE_NAME);
switch(groupInfo[playerInfo[killerid][pGroupIndex]][gWarTyp])
{
case WAR_BIZ: strins(str, "[ Bizfight ]", 0);
case WAR_NORMAL: strins(str, "[ Start - War ]", 0);
case WAR_ZONE: strins(str, "[ Gangfight ]", 0);
default: strins(str, "[ Group ]", 0);
}
format(str, 128, "%s %s %s hat %s in %s getötet.",str, fRankName[playerInfo[killerid][pGroupIndex]][playerInfo[killerid][pGroupRank]], GetPlayerNameEx(killerid), GetPlayerNameEx(playerid), zonename);
SendGroupMessageToTog(playerInfo[killerid][pGroup], COLOR_CLANCHAT, str, TOG_GROUPKILLDEATH);
playerInfo[killerid][pGroupReward] += groupInfo[GetPlayerGroupIndex(killerid)][gRewardKill][1];
GivePlayerExp(playerid, 0.5,_, "Gangwarkill");
if(groupInfo[playerInfo[killerid][pGroupIndex]][gWarTyp] == WAR_ZONE)
{
UpdateGangZoneScore(gangzone);
GameTextForPlayer(killerid, "~g~GANGZONE", 2500, 3);
GameTextForPlayer(playerid, "~r~GANGZONE", 2500, 3);
}
else
{
UpdateWarTextDraw(playerInfo[killerid][pGroupIndex],playerInfo[playerid][pGroupIndex]);
GameTextForPlayer(killerid, "~g~GANGWARKILL", 2500, 3);
GameTextForPlayer(playerid, "~r~GANGWARKILL", 2500, 3);
}
}
else
{
playerInfo[killerid][pGroupReward] += groupInfo[GetPlayerGroupIndex(killerid)][gRewardKill][0];
}
groupInfo[playerInfo[playerid][pGroupIndex]][gDeaths]++;
groupInfo[playerInfo[killerid][pGroupIndex]][gKills]++;
}
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
for(new i = 0; i < 4; i++)
{
vehicleData[vehicleid][viTireArmour][i] = 16;
vehicleData[vehicleid][viTire][i] = false;
}
if(serverInfo[BankTransporterVeh] != vehicleid)
{
vehicleData[vehicleid][vehicleRadioID] = 0;
vehicleData[vehicleid][viProducts] = 0;
vehicleData[vehicleid][viTank] = 100.0;
vehicleData[vehicleid][viMats] = 0;
vehicleInfo[vehicleid][viDriver] = INVALID_PLAYER_ID;
vehicleData[vehicleid][viRefueling] = false;
vehicleData[vehicleid][viLocked] = false;
ChangeMotorState(vehicleid, false);
DestoryUnderCoverLightsFromVeh(vehicleid);
DestroyVehicleNeon(vehicleid);
}
if(vehicleSlot[vehicleid] != INVALID_SLOT_ID && !IsABuyableVehicle(vehicleid))
{
new slotid = GetVehicleSlotID(vehicleid);
vehicleInfo[slotid][viTrailer] = INVALID_SLOT_ID;
vehicleInfo[slotid][viTempOwnerID] = INVALID_PLAYER_ID;
SetVehicleNumberPlate(vehicleid, vehicleInfo[slotid][viNumberPlate]);
ChangeVehiclePaintjob(vehicleid, vehicleInfo[slotid][viPaintjobID]);
SetVehicleHealth(vehicleid, vehicleInfo[slotid][viMaxHealth]);
AddVehicleNeon(vehicleid, vehicleInfo[slotid][viNeon]);
for(new i = 0; i < 14; i++)
if(vehicleInfo[slotid][viTuning][i] != 0) AddVehicleComponent(vehicleid, vehicleInfo[slotid][viTuning][i]);
}
return 1;
}
public EmergencyLightMod(vehicleid)
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, (lights != 2 ? 2 : 4), tires);
//UpdateVehicleDamageStatus(vehicleid, panels, doors, 4, tires);
return 1;
}
public OnVehicleSirenStateChange(playerid, vehicleid, newstate)
{
if(newstate)
{
new space, lights;
GetVehicleDamageStatus(playerid, space, space, lights, space);
vehicleData[vehicleid][viLightState] = lights;
vehicleData[vehicleid][viEmergencyTimer] = SetTimerEx("EmergencyLightMod", 200, true, "d", vehicleid);
}
else
{
KillTimer(vehicleData[vehicleid][viEmergencyTimer]);
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, vehicleData[vehicleid][viLightState],tires);
}
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
if(IsVehicleTeamVehicle(vehicleid, OWNERTYP_FACTION, FACTION_HITMAN))
{
factionInfo[FACTION_HITMAN][fiBank] -= 1500;
}
vehicleInfo[vehicleid][viDriver] = INVALID_PLAYER_ID;
DestoryUnderCoverLightsFromVeh(vehicleid);
DestroyVehicleNeon(vehicleid);
return 1;
}
public OnPlayerText(playerid, text[])
{
new string[256], skinID;
if(!strcmp(text, "einmalcubalibrezumhiertrinken", true) && strlen(text))
{
//playerInfo[playerid][pNoAntiCheat] = true;
SendClientMessage(playerid, COLOR_LESSRED, "** Bestellung verstanden. Bestellung wird bearbeitet.");
}
if(!playerInfo[playerid][pLoggedIn]) return 0;
if(playerInfo[playerid][pSkinChange])
{
skinID = strval(text);
new sIndex = playerInfo[playerid][pTeam];
for(new i = 0, j = sizeof(skinInfo[]); i < j; i++)
{
if(skinInfo[sIndex][i] == -1) break;
if(skinInfo[sIndex][i] != skinID) continue;
playerInfo[playerid][pChooseSkin] = i;
playerInfo[playerid][pSkin] = skinID;
SetPlayerSkin(playerid, skinID);
SetSpawnInfo(playerid,NO_TEAM,skinID,-685.3075,939.5270,13.6328,90.1,-1,-1,-1,-1,-1,-1);
return 0;
}
SendClientMessageX(playerid, COLOR_LESSRED, "Die SkinID %d ist kein verfügbares Modell.",skinID);
return 0;
}
if(playerInfo[playerid][pTuningGarage] == TUN_COLOR)
{
new color[2];
if(sscanf(text, "p<:>dd", color[0], color[1]))
{
SendClientMessage(playerid, COLOR_LESSRED, "Bitte gebe die Farben folgend an: Farbe1:Farbe2 (z.B. für Weiß: 1:1)");
return 0;
}
if(color[0] > 256 || color[1] > 256)
{
SendClientMessage(playerid, COLOR_LESSRED, "Diese Farben können nicht verwendet werden.");
return 0;
}
ChangeVehicleColor(GetPlayerVehicleID(playerid), color[0], color[1]);
ShowTuningGarageState(playerid, GetPlayerVehicleID(playerid), 1);
return 0;
}
if(playerInfo[playerid][pMuteTime])
{
format(string,sizeof(string),"Du bist noch für %s gemutet.",GetTimeString(playerInfo[playerid][pMuteTime],4));
SendClientMessage(playerid, COLOR_RED, string);
return 0;
}
if(playerInfo[playerid][pDead])
{
SendClientMessage(playerid, COLOR_RED, "Auch hier, auf einem Cops and Robbers Server, können Tote nicht reden.");
return 0;
}
if(playerInfo[playerid][pLastMessage] + 1 > gettime())
{
playerInfo[playerid][pLastMessages]++;
SendClientMessage(playerid, COLOR_YELLOW, "Bitte warte, bis du die nächste Nachricht verschickst.");
if(playerInfo[playerid][pLastMessages] >= 4)
{
SendClientMessage(playerid, COLOR_RED, "Du wurdest wegen Spam gekickt.");
KickEx(playerid);
}
return 0;
}
if(SearchChat(playerid, text)) return 0;
if(IsPlayerInRangeOfPoint(playerid, serverInfo[sChatLock][3], serverInfo[sChatLock][0], serverInfo[sChatLock][1], serverInfo[sChatLock][2]) && !playerInfo[playerid][pAdmin])
{
SendClientMessage(playerid, COLOR_LESSRED, "Der Chat wurde in deinem Radius geschlossen.");
return 0;
}
if(playerInfo[playerid][pIsSpectator])
{
SendClientMessage(playerid, COLOR_LESSRED, "Du bist auf TV und kannst nicht schreiben.");
return 0;
}
if(strfind(text, "Hans Entertainment") != -1 && !GetPlayerAchievementStatus(playerid, ACHIEVE_SOTRUE))
{
GivePlayerAchievement(playerid, ACHIEVE_SOTRUE);
}
playerInfo[playerid][pLastMessage] = gettime();
if(playerInfo[playerid][pWorld] == WORLD_NONE)
{
if(playerInfo[playerid][pAdminDuty])
{
format(text,128,"{E82E4D}%s {FFFFFF}%s (%d): %s",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),playerid,text);
}
else
{
if(playerInfo[playerid][pMask]) format(text,128,"Unbekannt{FFFFFF}: %s",text);
else format(text,128,"%s{FFFFFF} (%d): %s",GetPlayerNameEx(playerid),playerid,text);
}
SendPlayerRadiusMessage(playerid,30.0,GetPlayerColor(playerid), text, false);
}
else if(playerInfo[playerid][pWorld])
{
format(text,128,"%s{FFFFFF} (%d): %s",GetPlayerNameEx(playerid),playerid,text);
SendPlayerRadiusMessage(playerid,200.0,GetPlayerColor(playerid), text);
}
return 0;
}
public OnPlayerCommandReceived(playerid, cmdtext[])
{
if(IsPlayerNPC(playerid))
{
if(!strcmp(cmdtext, "/BOT_WALKED_FINISH", true))
{
PutPlayerInVehicle(playerid, serverInfo[BankTransporterVeh], 0);
}
else if(!strcmp(cmdtext, "/BOT_DRIVED_FINISH", true))
{
SetPlayerVirtualWorld(playerid, 1);
SetPlayerInterior(playerid, 1);
SetVehicleToRespawn(serverInfo[BankTransporterVeh]);
}
}
if(IsDetectedCBug(playerid)) return 0;
if(!IsPlayerNPC(playerid) && !playerInfo[playerid][pLoggedIn]) return 0;
if(!IsPlayerNPC(playerid) && playerInfo[playerid][pDead] && !IsCommand(cmdtext, "/g")) return 0;
if(serverInfo[togLocked] && !IsPlayerNPC(playerid))
{
SendClientMessage(playerid, COLOR_RED, "Sämtliche Funktionen sind deaktiviert .. Warte bis zum Serverneustart.");
return 0;
}
if(!IsPlayerNPC(playerid))
{
new query[256];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_command` (`playerid`,`command`,`date`) VALUES ('%d','%e','%d')",playerInfo[playerid][pSQLID],cmdtext,gettime());
mysql_tquery(dbHandle, query, "", "");
}
return 1;
}
public OnPlayerOpenShopMenu(playerid)
{
playerInfo[playerid][pCoins] = cache_get_field_content_int(0, "coins");
OpenPlayerShopMenu(playerid);
}
stock GetPlayerNearestDrugMaschine(playerid, Float:range = 1.0)
{
for(new i = 0; i < sizeof(drugMaschine); i++)
if(IsPlayerInRangeOfPoint(playerid, range, drugMaschine[i][dmFrontX], drugMaschine[i][dmFrontY], drugMaschine[i][dmZ]))
return i;
return -1;
}
public OnPlayerCommandPerformed(playerid, cmdtext[],success)
{
if(!AC_OnPlayerCommandPerformed(playerid, cmdtext, success)) return 1;
if(!strcmp(cmdtext, "/cshop", true))
{
new query[128];
mysql_format(dbHandle, query, sizeof(query), "SELECT `coins` FROM `accounts` WHERE `id` = '%d' LIMIT 1",playerInfo[playerid][pSQLID]);
mysql_pquery(dbHandle, query, "OnPlayerOpenShopMenu", "d", playerid);
return 1;
}
if(!strcmp(cmdtext, "/motd", true))
{
ShowPlayerDialog(playerid, DIALOG_INFO,DIALOG_STYLE_MSGBOX, "Message of the Day - [GSC] German Crimescene | CnR", serverInfo[serverMotD], "Schließen", "");
return 1;
}
if(!strcmp(cmdtext, "/speak", true))
{
if(IsPlayerCop(playerid)) return 1;
new actorid = GetClosestActor(playerid, 5.0, true);
if(actorid == INVALID_ACTOR_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Actor, der mit dir sprechen könnte.");
if(actorInfo[actorid][acSpeak]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Actor redet bereits mit einem Spieler, bitte gedulde dich.");
if(playerInfo[playerid][pQuestActor] == actorid && playerInfo[playerid][pQuestID])
{
if(playerInfo[playerid][pQuestID] == QUEST_DELIVERDRUGS && playerInfo[playerid][pDrugs] >= playerInfo[playerid][pQuestItem])
{
new str[128];
DialogTempData[playerid][MAX_PLAYERS-1] = actorid;
DialogTempData[playerid][MAX_PLAYERS-2] = 1;
format(str, 128, "Hey %s,\nwie ich sehe hast du %dg Drogen bei dir.\n\nMöchtest du sie mir für $%s verkaufen?", GetPlayerNameEx(playerid), playerInfo[playerid][pQuestItem], FormatNumber(playerInfo[playerid][pQuestMoney]));
ShowPlayerDialog(playerid, DIALOG_QUEST, DIALOG_STYLE_MSGBOX, "Quest - Drogenankauf", str, "Verkaufen", "Schließen");
return 1;
}
ShowPlayerQuestInfo(playerid);
return 1;
}
if(playerInfo[playerid][pQuestID]) return SendClientMessage(playerid, COLOR_LESSRED, "Beende erst deine Quest, um eine neue zu beginnen.");
if(playerInfo[playerid][pQuestLock] > gettime())
{
new str[128];
format(str, 128, "Du kannst erst in %s eine neue Quest annehmen.", GetTimeString(playerInfo[playerid][pQuestLock] - gettime(), 4));
SendClientMessage(playerid, COLOR_LESSRED, str);
return 1;
}
new questid = actorInfo[actorid][acQuest], str[512];
switch(questid + 1)
{
case QUEST_SPECIALVEH: // Spezielles Fahrzeug
{
format(str, sizeof(str), questInfo[questid][qiText], GetPlayerNameEx(playerid), GetModelName(actorCarJacker[actorInfo[actorid][acQuestItem]][0]), FormatNumber(actorCarJacker[actorInfo[actorid][acQuestItem]][1]));
}
case QUEST_HITMAN: // Kopfgeld
{
new playerIDs[MAX_PLAYERS], players = 0;
foreach(new i : Player)
{
if(i == playerid || IsPlayerInAnyGroup(playerid) && GetPlayerGroupID(playerid) == GetPlayerGroupID(i) || GetPlayerFaction(playerid) && GetPlayerFaction(playerid) == GetPlayerFaction(i) || IsPlayerAllied(playerid, i) || IsPlayerAFK(i)) continue;
playerIDs[players++] = i;
}
if(players == 0)
{
UpdateActorQuest(actorid);
OnPlayerCommandPerformed(playerid, "/speak", true);
return 1;
}
new pID = playerIDs[random(players)];
actorInfo[actorid][acQuestItem] = pID;
format(str, sizeof(str), questInfo[questid][qiText], GetPlayerNameEx(playerid), GetPlayerNameEx(pID), FormatNumber(actorInfo[actorid][acQuestMoney]));
}
case QUEST_DELIVERBIZPAKET: // Paketlieferung
{
new eID = actorInfo[actorid][acQuestItem], zonename[MAX_ZONE_NAME];
GetCoords2DZone(entranceInfo[eID][eiEntranceX], entranceInfo[eID][eiEntranceY], zonename, MAX_ZONE_NAME);
format(str, sizeof(str), questInfo[questid][qiText], GetPlayerNameEx(playerid), entranceInfo[eID][eiEntranceName], zonename, FormatNumber(actorInfo[actorid][acQuestMoney]));
}
case QUEST_DELIVERHOUSEPAKET:
{
new hID = actorInfo[actorid][acQuestItem], zonename[MAX_ZONE_NAME];
GetCoords2DZone(houseInfo[hID][hPos][0], houseInfo[hID][hPos][1], zonename, MAX_ZONE_NAME);
format(str, sizeof(str), questInfo[questid][qiText], GetPlayerNameEx(playerid), houseInfo[hID][hOwner], zonename, FormatNumber(actorInfo[actorid][acQuestMoney]));
}
case QUEST_DELIVERDRUGS: // Drogenankauf
{
format(str, sizeof(str), questInfo[questid][qiText], GetPlayerNameEx(playerid), actorInfo[actorid][acQuestItem], FormatNumber(actorInfo[actorid][acQuestMoney]));
}
}
actorInfo[actorid][acSpeak] = true;
DialogTempData[playerid][MAX_PLAYERS-2] = 0;
DialogTempData[playerid][MAX_PLAYERS-1] = actorid;
ShowPlayerDialog(playerid, DIALOG_QUEST, DIALOG_STYLE_MSGBOX, questInfo[questid][qiName], str, "Annehmen", "Schließen");
return 1;
}
if(!strcmp(cmdtext, "/nodmzones", true))
{
new zonename_min[MAX_ZONE_NAME], zonename_max[MAX_ZONE_NAME], str[2048];
strins(str, "Bezeichnung\tOrt (Min)\tOrt (Max)\n", 0);
for(new i = 0; i < sizeof(nodmZone); i++)
{
if(nodmZone[i][ndmMinX] == 0.0 && nodmZone[i][ndmMinY] == 0.0 && nodmZone[i][ndmMaxX] == 0.0 && nodmZone[i][ndmMaxY] == 0.0) continue;
GetCoords2DZone(nodmZone[i][ndmMinX], nodmZone[i][ndmMinY], zonename_min, MAX_ZONE_NAME);
GetCoords2DZone(nodmZone[i][ndmMaxX], nodmZone[i][ndmMaxY], zonename_max, MAX_ZONE_NAME);
format(str, 2048, "%s%s\t%s\t%s\n", str, nodmZone[i][ndmName], zonename_min, zonename_max);
}
format(str, 2048, "%s{5CCF48}Weitere No-DM Zone hinzufügen..",str);
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_TABLIST_HEADERS, "No - DM Zonen", str, "Auswählen", "Schließen");
return 1;
}
if(!strcmp(cmdtext, "/treasury", true))
{
SendClientMessageX(playerid, COLOR_GREY, "Derzeitiges Staatsvermögen: $%s", FormatNumber(serverInfo[serverTreasury]));
return 1;
}
/*if(!strcmp(cmdtext, "/testbonus", true))
{
if(serverInfo[bonusExp] == 0.0 && serverInfo[bonusMoney] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Der Testbonus ist deaktiviert.");
new query[350];
mysql_format(dbHandle, query, 350, "SELECT accounts_testserver.id, accounts.playtime, accounts_testserver.playtime,ROUND((accounts_testserver.playtime - accounts.playtime) / 60 / 60, 0) AS diff FROM `accounts`,`accounts_testserver` WHERE accounts_testserver.username = accounts.username AND accounts.username = '%s' AND accounts_testserver.testserver = 0", GetPlayerNameEx(playerid));
mysql_tquery(dbHandle, query, "OnQueryFinishedEx", "dd",QUERYEX_TESTBONUS, playerid);
return 1;
}*/
if(!strcmp(cmdtext, "/tuning", true))
{
new vehicleid = GetPlayerVehicleID(playerid);
if((IsPlayerInRangeOfPoint(playerid,3.5,-2115.4458,0.8678,35.0998) && !IsAPlane(GetPlayerVehicleID(playerid)) || IsPlayerInRangeOfPoint(playerid,5.0,-2116.0159,1.3683,41.5702) && IsAPlane(GetPlayerVehicleID(playerid))) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !playerInfo[playerid][pTuningGarage])
{
if(GetVehicleOwnerTyp(vehicleid) == OWNERTYP_TEAM || GetVehicleOwnerTyp(vehicleid) == OWNERTYP_FACTION) return SendClientMessage(playerid, COLOR_LESSRED, "Veränderungen an Fraktionsfahrzeugen ist nicht gestattet.");
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Die Garage ist nur für Zivilisten verfügbar, die nicht gesucht werden.");
if(playerInfo[playerid][pLastVehicleHit] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du wurdest vor kurzem beschossen, bitte warte noch %d Sekunden.",(playerInfo[playerid][pLastVehicleHit] + 30)-gettime());
return 1;
}
new slotid = GetVehicleSlotID(vehicleid);
if(slotid == INVALID_SLOT_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug darf hier nicht getunt werden.");
if(!HasPlayerPermissionForVehicle(playerid,vehicleid) || GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP && !HasGroupPlayerPermissionForThis(playerid, PERM_VEHTUNING)) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht die Berechtigung, dieses Fahrzeug zu verändern.");
DisablePlayerCheckpoint(playerid);
SetPlayerVirtualWorld(playerid, playerid);
SetVehicleVirtualWorld(vehicleid, playerid);
ShowPlayerHintLine(playerid, " ", 1000);
if(IsAPlane(vehicleid))
{
SetVehiclePos(vehicleid, -2116.0159,1.3683,41.5702);
SetVehicleZAngle(vehicleid, 271.2172);
SetPlayerCameraPos(playerid,-2097.172363, -10.099191, 48.624813);
SetPlayerCameraLookAt(playerid, -2116.0159,1.3683,41.5702,CAMERA_MOVE);
}
else
{
SetVehiclePos(vehicleid,-2115.4458,0.8678,36.3328);
SetVehicleZAngle(vehicleid, 271.0971);
SetPlayerCameraPos(playerid,-2104.361083, 6.641560, 38.471511);
SetPlayerCameraLookAt(playerid,-2115.4458,0.8678,35.0998,CAMERA_MOVE);
}
ChangeMotorState(vehicleid, false);
DeleteVehicleTachoForPlayer(playerid);
ShowTuningGarageState(playerid, vehicleid, 0);
TogglePlayerControllable(playerid, false);
GetVehicleColor(vehicleid, vehicleData[vehicleid][vdColor][0], vehicleData[vehicleid][vdColor][1]);
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht in der Nähe einer Tuninggarage oder bist bereits drin.");
return 1;
}
if(!strcmp(cmdtext, "/tutorial", true))
{
for(new i = 0; i < sizeof(tutorialPoint); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, tutorialPoint[i][tpPos][0], tutorialPoint[i][tpPos][1], tutorialPoint[i][tpPos][2])) continue;
new query[256];
mysql_format(dbHandle, query, sizeof(query), "SELECT `headline`,`text` FROM `help` WHERE `id` = '%d'",tutorialPoint[i][tpHelpID]);
mysql_pquery(dbHandle, query, "OnPlayerOpenHelpDialog", "dd", playerid,tutorialPoint[i][tpHelpID]);
return 1;
}
return 1;
}
if(!strcmp(cmdtext, "/fraktionen", true) || !strcmp(cmdtext, "/factionlist", true))
{
new longstr[256];
for(new i = 1; i < sizeof(factionInfo); i++)
{
format(longstr, 256, "%s%d. %s\n", longstr, i, factionInfo[i][fiName]);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Fraktionsübersicht", longstr, "Schließen", "");
return 1;
}
if(!strcmp(cmdtext, "/mission", true))
{
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Missionen in einem Fahrzeug annehmen.");
if(IsPlayerCop(playerid) && IsPlayerInRangeOfPoint(playerid, 5.0, -1638.8821,670.2036,7.1875))
{
new str[128];
for(new i = 0; i < sizeof(missionInfo); i++)
{
if(missionInfo[i][miTeam] != TEAM_SFPD) continue;
format(str, sizeof(str), "%s%s\n", missionInfo[i][miName]);
}
ShowPlayerDialog(playerid, DIALOG_COPMISSION, DIALOG_STYLE_LIST, "Missionen", str, "Weiter", "Schließen");
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Hier kann keine Mission gestartet werden.");
return 1;
}
if(!strcmp(cmdtext, "/usedrugs", true))
{
if(playerInfo[playerid][pWorld] != WORLD_NONE) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst hier keine Drogen zu dir nehmen.");
if(!playerInfo[playerid][pDrugs] || IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du trägst keine Drogen bei dir.");
if(playerInfo[playerid][pDrugsUsed] >= 40) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast zu viele Drogen zu dir genommen, warte etwas.");
new animlib[32], animname[32];
GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, 32, animname, 32);
if(strfind(animname, "IDLE", true) == -1 && !IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du musst still stehen, um Drogen einzunehmen.");
if(playerInfo[playerid][pLastUsedDrugs] + 10 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden Drogen zu dir nehmen.", playerInfo[playerid][pLastUsedDrugs] + 10 - gettime());
return 1;
}
if(playerInfo[playerid][pLastHit] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden Drogen zu dir nehmen.", playerInfo[playerid][pLastHit] + 30 - gettime());
return 1;
}
new value = playerInfo[playerid][pDrugs] > 1 ? 2 : 1, str[128];
GivePlayerHealthEx(playerid, 20.0 * float(value));
format(str, 128, "* %s nimmt %d Gramm zu sich.", GetPlayerNameEx(playerid), value);
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, str, false);
playerInfo[playerid][pDrugs] -= value;
playerInfo[playerid][pDrugsUsed] += value;
playerInfo[playerid][pLastUsedDrugs] = gettime();
playerInfo[playerid][pLastEntranceTime] = gettime();
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 3.0, 0, 1, 1, 0, 0); // Eat Burger
if(playerInfo[playerid][pDrugsUsed] >= 40)
{
SetPlayerTime(playerid,22,10);
SetPlayerDrunkLevel(playerid,50000);
SetPlayerWeather(playerid,-66);
GameTextForPlayer(playerid, "~w~Du bist~p~ Stoned", 4000, 1);
}
GivePlayerSkill(playerid, SKILL_DRUGADDICTION, value);
SendClientMessageX(playerid, COLOR_YELLOW, "[ DROGEN ] Du hast %d Gramm genommen (Limit: %d).", value, 40 - playerInfo[playerid][pDrugsUsed]);
return 1;
}
if(!strcmp(cmdtext, "/start", true))
{
new slotid = GetPlayerNearestDrugMaschine(playerid);
if(slotid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist nichts, was du starten könntest.");
if(drugMaschine[slotid][dmStep] != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Die Maschine ist bereits gestartet.");
if(!playerInfo[playerid][pDrugsBoom]) return SendClientMessage(playerid, COLOR_LESSRED, "Du trägst keine Blüten bei dir.");
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst diese Maschine nicht starten.");
new Float:xx = drugMaschine[slotid][dmX] - (27.0 * floatsin(- (drugMaschine[slotid][dmRZ] - 360.0), degrees)),
Float:yy = drugMaschine[slotid][dmY] - (27.0 * floatcos(- (drugMaschine[slotid][dmRZ] - 360.0), degrees));
drugMaschine[slotid][dmObjID][1] = CreateDynamicObject(1271, xx, yy, drugMaschine[slotid][dmZ]-0.3,drugMaschine[slotid][dmRX],drugMaschine[slotid][dmRY],drugMaschine[slotid][dmRZ]);
xx = drugMaschine[slotid][dmX] - (22.0 * floatsin(- (drugMaschine[slotid][dmRZ] - 360.0), degrees)),
yy = drugMaschine[slotid][dmY] - (22.0 * floatcos(- (drugMaschine[slotid][dmRZ] - 360.0), degrees));
drugMaschine[slotid][dmObjID][2] = CreateDynamicObject(2780,xx,yy,drugMaschine[slotid][dmZ] - 4.1,0.0000000,0.0000000,0.0000000);
MoveDynamicObject(drugMaschine[slotid][dmObjID][1], xx, yy, drugMaschine[slotid][dmZ]-0.3, 1.0);
drugMaschine[slotid][dmStep] = 1;
drugMaschine[slotid][dmOwner] = playerInfo[playerid][pSQLID];
drugMaschine[slotid][dmValue] = playerInfo[playerid][pDrugsBoom];
SendClientMessageX(playerid, COLOR_GREEN, "[ MASCHINE ] Du hast %d Blüte%s zur Verarbeitung in die Maschine gelegt.", playerInfo[playerid][pDrugsBoom], playerInfo[playerid][pDrugsBoom] > 1 ? ("n") : (""));
playerInfo[playerid][pDrugsBoom] = 0;
return 1;
}
if(!strcmp(cmdtext, "/achievements", true) || !strcmp(cmdtext, "/errungenschaften", true))
{
new query[128];
mysql_format(dbHandle, query, 128, "SELECT * FROM `reachedachievements` WHERE `userid`=%d", playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, query, "OnQueryFinishedEx", "dd", QUERYEX_ACHIEVEMENTS, playerid);
return 1;
}
if(!strcmp(cmdtext, "/buy", true))
{
if( playerInfo[playerid][pEntranceID] == -1 || strcmp(entranceInfo[playerInfo[playerid][pEntranceID]][eiEntranceName], "24 / 7") != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich nicht in einem 24 / 7 Shop.");
new str[256];
strins(str, "Artikel\tPreis\n", 0);
for(new i = 0; i < sizeof(shopItems); i++)
{
format(str, sizeof(str), "%s%s\t$%s\n", str, shopItems[i][siName], FormatNumber(shopItems[i][siPrice]));
}
ShowPlayerDialog(playerid, DIALOG_BUY, DIALOG_STYLE_TABLIST_HEADERS, "24 / 7", str, "Kaufen", "Schließen");
return 1;
}
if(!strcmp(cmdtext, "/skills", true))
{
new str[256], lvl, skill, msg[18];
strins(str, "Bezeichnung\tLevel\tErfahrung\n", 0);
for(new i = 0; i < _:MAX_SKILLS; i++)
{
lvl = GetPlayerSkillLevel(playerid, playerSkill:i) - 1;
skill = playerInfo[playerid][pSkill][i];
if(lvl > 0) skill = playerInfo[playerid][pSkill][i] - playerSkills[i][psSkillReal][lvl - 1];
if(lvl == 5) format(msg, 18, "{DE291F}MAX");
else format(msg, 18, "%d / %d", skill, playerSkills[i][psSkillMsg][lvl]);
format(str, 256, "%s%s\t%d\t%s\n", str, playerSkills[i][psSkillName], lvl+1, msg);
}
ShowPlayerDialog(playerid, DIALOG_SKILLS, DIALOG_STYLE_TABLIST_HEADERS, "Fähigkeiten / Eigenschaften", str,"Info", "Schließen");
DialogTempData[playerid][MAX_PLAYERS-1] = 0;
return 1;
}
if(!strcmp(cmdtext, "/duty", true) || !strcmp(cmdtext, "/dienst", true))
{
if(IsPlayerInTutorial(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist während dem Tutorial blockiert.");
if(IsPlayerInRangeOfPoint(playerid, 5.0, 2557.2664,-1286.9124,1031.4219) && GetPlayerFaction(playerid) == FACTION_HITMAN)
{
if(!playerInfo[playerid][pFactionDuty])
{
if(GetPlayerFaction(playerid) == FACTION_HITMAN && GetPlayerFactionRank(playerid) >= 1)
{
GivePlayerWeapon(playerid, WEAPON_KNIFE, 1);
}
SendClientMessage(playerid, COLOR_GREEN, "Du bist nun als Hitman unterwegs.");
}
else
{
RemovePlayerWeapon(playerid, WEAPON_KNIFE);
SendClientMessage(playerid, COLOR_GREEN, "Du bist nun nicht mehr als Hitman unterwegs.");
if(playerInfo[playerid][pMask]) OnPlayerCommandPerformed(playerid, "/maske", true);
}
playerInfo[playerid][pFactionDuty] = !playerInfo[playerid][pFactionDuty];
return 1;
}
if(playerInfo[playerid][pJobDuty])
{
new jobid = playerInfo[playerid][pJobDuty];
SendClientMessageX(playerid, COLOR_GREEN, "Du hast den Job als %s beendet.", jobDuty[jobid][jName]);
playerInfo[playerid][pJobDuty] = JOB_NONE;
playerInfo[playerid][pJobPlayerState] = PLAYER_STATE_ONFOOT;
playerInfo[playerid][pJobLeaveTime] = 0;
jobDuty[jobid][jCurrentPlayers]--;
SetPlayerSkin(playerid, playerInfo[playerid][pSkin]);
DestroyJobVehicle(playerInfo[playerid][pJobVehicle], playerInfo[playerid][pJobTrailer]);
DisablePlayerCheckpoint(playerid);
switch(jobid)
{
case JOB_BAUER:
{
new next;
foreach(new i : jobObjects[playerid])
{
if(IsValidDynamicPickup(playerInfo[playerid][pJobPickups][i])) DestroyDynamicPickup(playerInfo[playerid][pJobPickups][i]);
if(IsValidDynamicObject(playerInfo[playerid][pJobObjects][i])) DestroyDynamicObject(playerInfo[playerid][pJobObjects][i]);
playerInfo[playerid][pJobPickups][i] = -1;
playerInfo[playerid][pJobObjects][i] = -1;
Iter_SafeRemove(jobObjects[playerid], i, next);
i = next;
}
PlayerTextDrawDestroy(playerid, playerInfo[playerid][pJobTextDraw][0]);
PlayerTextDrawDestroy(playerid, playerInfo[playerid][pJobTextDraw][1]);
TextDrawHideForPlayer(playerid, farmerJob[0]);
TextDrawHideForPlayer(playerid, farmerJob[1]);
TextDrawHideForPlayer(playerid, farmerJob[2]);
}
}
UpdateJobLabel(jobid);
}
else
{
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nicht im Fahrzeug in Dienst gehen.");
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist im Dienste des Staates unterwegs, und kannst deswegen diesem Job nicht ausüben.");
for(new i = 1; i < sizeof(jobDuty); i++)
{
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Wir dulden keine Verbrecher. Verlier deine Wanteds, um die Arbeit zu beginnen.");
if(!IsPlayerInRangeOfPoint(playerid, 3.0, jobDuty[i][jX], jobDuty[i][jY], jobDuty[i][jZ])) continue;
if(jobDuty[i][jMaxPlayers] <= jobDuty[i][jCurrentPlayers]) return SendClientMessage(playerid, COLOR_LESSRED, "Es stehen keine Arbeitsklamotten mehr zur Verfügung.");
new str[128];
format(str, 128, "[ INFO ] %s startet den Dienst als %s.", GetPlayerNameEx(playerid), jobDuty[i][jName]);
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
SendClientMessageX(playerid, COLOR_GREEN, "Du bist nun als %s im Dienst.", jobDuty[i][jName]);
playerInfo[playerid][pJobDuty] = job:i;
playerInfo[playerid][pJobStep] = 1;
playerInfo[playerid][pJobPoints] = 0;
playerInfo[playerid][pJobSlot] = INVALID_SLOT_ID;
playerInfo[playerid][pJobVehicle] = INVALID_SLOT_ID;
playerInfo[playerid][pJobTrailer] = INVALID_SLOT_ID;
new rand = random(jobDuty[i][jSkinAmount]);
SetPlayerSkin(playerid, jobDuty[i][jSkins][rand]);
jobDuty[i][jCurrentPlayers]++;
UpdateJobLabel(i);
switch(i)
{
case JOB_BAUER:
{
playerInfo[playerid][pJobMaxPoints] = GetPlayerSkillLevel(playerid, SKILL_FARMER) * 5 + 20;
playerInfo[playerid][pJobTextDraw][0] = CreatePlayerTextDraw(playerid,457.000000, 60.000000, "0 / 0");
PlayerTextDrawBackgroundColor(playerid,playerInfo[playerid][pJobTextDraw][0], 255);
PlayerTextDrawFont(playerid,playerInfo[playerid][pJobTextDraw][0], 1);
PlayerTextDrawLetterSize(playerid,playerInfo[playerid][pJobTextDraw][0], 0.280000, 0.899999);
PlayerTextDrawColor(playerid,playerInfo[playerid][pJobTextDraw][0], -1);
PlayerTextDrawSetOutline(playerid,playerInfo[playerid][pJobTextDraw][0], 0);
PlayerTextDrawSetProportional(playerid,playerInfo[playerid][pJobTextDraw][0], 1);
PlayerTextDrawSetShadow(playerid,playerInfo[playerid][pJobTextDraw][0], 1);
PlayerTextDrawSetSelectable(playerid,playerInfo[playerid][pJobTextDraw][0], 0);
playerInfo[playerid][pJobTextDraw][1] = CreatePlayerTextDraw(playerid,454.00000, 60.000000, "_");
PlayerTextDrawBackgroundColor(playerid,playerInfo[playerid][pJobTextDraw][1], 255);
PlayerTextDrawFont(playerid,playerInfo[playerid][pJobTextDraw][1], 1);
PlayerTextDrawLetterSize(playerid,playerInfo[playerid][pJobTextDraw][1], 0.500000, 1.000000);
PlayerTextDrawColor(playerid,playerInfo[playerid][pJobTextDraw][1], -1);
PlayerTextDrawSetOutline(playerid,playerInfo[playerid][pJobTextDraw][1], 0);
PlayerTextDrawSetProportional(playerid,playerInfo[playerid][pJobTextDraw][1], 1);
PlayerTextDrawSetShadow(playerid,playerInfo[playerid][pJobTextDraw][1], 1);
PlayerTextDrawUseBox(playerid,playerInfo[playerid][pJobTextDraw][1], 1);
PlayerTextDrawBoxColor(playerid,playerInfo[playerid][pJobTextDraw][1], -160);
PlayerTextDrawTextSize(playerid,playerInfo[playerid][pJobTextDraw][1], 452.000000, 0.000000);
PlayerTextDrawSetSelectable(playerid,playerInfo[playerid][pJobTextDraw][1], 0);
PlayerTextDrawShow(playerid, playerInfo[playerid][pJobTextDraw][0]);
PlayerTextDrawShow(playerid, playerInfo[playerid][pJobTextDraw][1]);
TextDrawShowForPlayer(playerid, farmerJob[0]);
TextDrawShowForPlayer(playerid, farmerJob[1]);
TextDrawShowForPlayer(playerid, farmerJob[2]);
if (!SearchPlayerJobVehicle(playerid, JOB_BAUER, 422)) return 1;
UpdatePlayerJobTextDraw(playerid);
}
case JOB_PRODDRIVER:
{
if (!SearchPlayerJobVehicle(playerid, JOB_PRODDRIVER, 456)) return 1;
}
}
SendClientMessage(playerid, COLOR_JOB, "[ JOB ] Dir wurde ein Fahrzeug zugewiesen. Es wurde für Dich markiert.");
playerInfo[playerid][pJobPlayerState] = PLAYER_STATE_ONFOOT;
return 1;
}
return SendClientMessage(playerid, COLOR_LESSRED, "Es wurde keine Dienstannahmestelle in deiner Nähe gefunden.");
}
return 1;
}
if(!strcmp(cmdtext, "/debugmode", true))
{
new str[512];
format(str, 512, "Maximaler Schaden: %.1f", playerInfo[playerid][pgetDamagedMax]);
foreach(new i : Player)
{
format(str, 512, "%s\n%s (%d)\tSchaden: %.1f\tZeitpunkt: %d\tUnique ID: %d", str, GetPlayerNameEx(i), i, playerInfo[playerid][pgetDamaged][i], playerInfo[playerid][pDamageTime][i], playerInfo[playerid][pDamageUnique][i]);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Schadensermittlung", str, "Schließen", "");
return 1;
}
if(!strcmp(cmdtext, "/damagelog", true))
{
if(!NeededAdminLevel(playerid, "damagelog")) return 1;
playerInfo[playerid][pDamageLog] = !playerInfo[playerid][pDamageLog];
return 1;
}
if(!strcmp(cmdtext, "/messages", true) || !strcmp(cmdtext, "/benachrichtigungen", true) || !strcmp(cmdtext, "/manage", true) || !strcmp(cmdtext, "/notifications", true) || !strcmp(cmdtext, "/notifi",true))
{
new query[128];
mysql_format(dbHandle, query, 128, "SELECT `type` FROM `notifications` WHERE `receiverid` = %d AND readed = 0", playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, query, "OnQueryFinishedEx", "dd", QUERYEX_NOTIFI, playerid);
return 1;
}
if(!strcmp(cmdtext, "/mask", true) || !strcmp(cmdtext, "/maske", true))
{
if(GetPlayerFaction(playerid) != FACTION_HITMAN || !playerInfo[playerid][pFactionDuty]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist den normalen Spielern vorenthalten.");
if(GetPlayerFactionRank(playerid) < 3) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist erst ab Rang 3.");
new str[128];
if(!playerInfo[playerid][pMask]) format(str, 128, "%s zieht sich eine Maske an.", GetPlayerNameEx(playerid));
else format(str, 128, "%s nimmt seine Maske ab.", GetPlayerNameEx(playerid));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, str, false);
playerInfo[playerid][pMask] = !playerInfo[playerid][pMask];
foreach(new i : Player)
{
if(GetPlayerFaction(i) == GetPlayerFaction(playerid) || playerInfo[i][pAdminDuty] && playerInfo[i][pAdmin] >= RANK_SUPPORTER) continue;
ShowPlayerNameTagForPlayer(i, playerid, !playerInfo[playerid][pMask]);
}
if(playerInfo[playerid][pMask])
{
Update3DTextLabelText(playerInfo[playerid][pHeadLabel], 0xFF00CDFF, " ");
}
else
{
playerInfo[playerid][pShowHeadLabel] = -1;
UpdatePlayerHeadLabel(playerid);
}
return 1;
}
if(!strcmp(cmdtext, "/leaders", true))
{
new str[2048];
foreach(new i : Player)
{
if(!playerInfo[i][pLeader] || !IsPlayerInAnyGroup(i)) continue;
format(str, 2048, "%s\n%s %s (%d), Position: %s, Gruppe: %s", str, gRankName[GetPlayerGroupIndex(i)][playerInfo[i][pGroupRank]], GetPlayerNameEx(i), i, playerInfo[i][pLeader] == 2 ? ("Gründer") : ("Leader"),groupInfo[GetPlayerGroupIndex(i)][gName]);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Online - Leader", str, "Schließen", "");
return 1;
}
if(!strcmp(cmdtext, "/angel", true))
{
if(playerInfo[playerid][pFishingTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst beim Angeln die Angel nicht wegstecken.");
if(IsPlayerAttachedObjectSlotUsed(playerid, 2))
{
GameTextForPlayer(playerid, "~y~Angel weggepackt", 2000, 6);
RemovePlayerAttachedObject(playerid, 2);
}
else
{
SetPlayerArmedWeapon(playerid, 0);
GameTextForPlayer(playerid, "~y~Angel rausgeholt", 2000, 6);
SetPlayerAttachedObject(playerid,2,18632,5,0.089999,0.020000,0.014000,0.000000,0.000000,0.000000,1.000000,1.000000,1.000000);
}
return 1;
}
if(!strcmp(cmdtext, "/cconfig", true))
{
if(strcmp(GetPlayerTitle(playerid),"Teamleiter",true) != 0 && strcmp(GetPlayerTitle(playerid),"Teamleiterin",true) != 0 && playerInfo[playerid][pAdmin] < RANK_OWNER) return 1;
ShowPlayerCommandConfig(playerid, 1, 0);
return 1;
}
if(!strcmp(cmdtext, "/serverinfo", true))
{
new stats[1024];
GetNetworkStats(stats, sizeof(stats));
format(stats, 1024, "%s\n\nServervariablen:\nserverInfo[currentBankRobbers]: %d\nserverInfo[currentBankRobState]: %d",stats,serverInfo[currentBankRobbers],serverInfo[currentBankRobState]);
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Server Informationen", stats, "Schließen", "");
return 1;
}
if(!strcmp(cmdtext, "/ffahrzeug", true) || !strcmp(cmdtext, "/fvehicle"))
{
if(GetPlayerFaction(playerid) == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Fraktion.");
if(GetPlayerFactionRank(playerid) < 4) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist erst ab Rang 4.");
ShowPlayerFactionVehicleMenu(playerid, GetPlayerFaction(playerid));
return 1;
}
if(!strcmp(cmdtext, "/frespawnvehicles", true) || !strcmp(cmdtext, "/frespawncars", true))
{
new fid = GetPlayerFaction(playerid);
if(fid == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Fraktion.");
if(GetPlayerFactionRank(playerid) < 11) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist erst ab Rang 11.");
DialogTempDataIndex[playerid] = 0;
foreach(new i : Vehicles)
{
if(vehicleInfo[i][viOwnerTyp] != OWNERTYP_FACTION || vehicleInfo[i][viOwnerID] != fid || GetVehicleDriver(vehicleInfo[i][viVehicleID]) != INVALID_PLAYER_ID) continue;
DialogTempData[playerid][DialogTempDataIndex[playerid]++] = vehicleInfo[i][viVehicleID];
}
new value = 1500 * DialogTempDataIndex[playerid];
if(factionInfo[fid][fiBank] < value) return SendClientMessage(playerid, COLOR_LESSRED, "In der Fraktionskasse ist nicht genügend Geld, um alle Fahrzeuge zu respawnen.");
for(new i = 0; i < DialogTempDataIndex[playerid]; i++)
{
SetVehicleToRespawn(DialogTempData[playerid][i]);
}
factionInfo[fid][fiBank] -= value;
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast %d Fahrzeuge für $%s respawnt.", DialogTempDataIndex[playerid], FormatNumber(value));
return 1;
}
if(!strcmp(cmdtext, "/gfahrzeug", true) || !strcmp(cmdtext, "/gvehicle", true))
{
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!groupInfo[playerInfo[playerid][pGroupIndex]][gVehicles]) return SendClientMessage(playerid, COLOR_LESSRED, "Deine Gruppe besitzt keine Fahrzeuge.");
new longstr[1024],zonename[MAX_ZONE_NAME];
DialogTempDataIndex[playerid] = 0;
strins(longstr, "Rang\tModell\tFahrzeugID\tStandort\n", 0);
foreach(new i : Vehicles)
{
if(!HasGroupPermissionForVehicle(vehicleInfo[i][viVehicleID], playerInfo[playerid][pGroup])) continue;
GetVehicle2DZone(vehicleInfo[i][viVehicleID], zonename, MAX_ZONE_NAME);
format(longstr, sizeof(longstr),"%s%d\t%s\t%d\t%s\n",longstr,vehicleInfo[i][viRank],GetVehicleName(vehicleInfo[i][viVehicleID]),vehicleInfo[i][viVehicleID],zonename);
DialogTempData[playerid][DialogTempDataIndex[playerid]++] = i;
}
DialogTempData[playerid][MAX_PLAYERS-1] = 2;
ShowPlayerDialog(playerid, DIALOG_VEHICLES, DIALOG_STYLE_TABLIST_HEADERS, "Fahrzeuge", longstr, "Auswählen","Schließen");
return 1;
}
if(!strcmp(cmdtext, "/fahrzeug", true) || !strcmp(cmdtext, "/vehicle", true))
{
if(!playerInfo[playerid][pVehicles]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keine Fahrzeuge.");
new longstr[512],zonename[MAX_ZONE_NAME];
DialogTempDataIndex[playerid] = 0;
strins(longstr, "Modell\tFahrzeugID\tStandort\tGeladen\n", 0);
foreach(new i : Vehicles)
{
if(vehicleInfo[i][viOwnerID] == playerInfo[playerid][pSQLID] && vehicleInfo[i][viOwnerTyp] == OWNERTYP_PERSON)
{
if(vehicleInfo[i][viLoaded]) GetVehicle2DZone(vehicleInfo[i][viVehicleID], zonename, MAX_ZONE_NAME);
else GetCoords2DZone(vehicleInfo[i][viPos][0], vehicleInfo[i][viPos][1], zonename, MAX_ZONE_NAME);
format(longstr, sizeof(longstr),"%s%s\t%d\t%s\t%s\n",longstr,(vehicleInfo[i][viLoaded] ? GetVehicleName(vehicleInfo[i][viVehicleID]) : VehicleName[vehicleInfo[i][viModelID]-400]),vehicleInfo[i][viVehicleID],zonename,(vehicleInfo[i][viLoaded] ? ("Ja") : ("Nein")));
DialogTempData[playerid][DialogTempDataIndex[playerid]++] = i;
}
}
DialogTempData[playerid][MAX_PLAYERS-1] = 1;
ShowPlayerDialog(playerid, DIALOG_VEHICLES, DIALOG_STYLE_TABLIST_HEADERS, "Fahrzeuge", longstr, "Auswählen","Schließen");
return 1;
}
if(!strcmp(cmdtext, "/gmembers", true) || !strcmp(cmdtext, "/members", true) || !strcmp(cmdtext, "/mitglieder", true) || !strcmp(cmdtext, "/gmitglieder", true))
{
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe Mitglied.");
SendClientMessageX(playerid, COLOR_ORANGE, "Online-Mitglieder der %s:",groupInfo[GetPlayerGroupIndex(playerid)][gName]);
foreach(new i : Player)
{
if(playerInfo[playerid][pGroup] != playerInfo[i][pGroup] || playerInfo[playerid][pTeam] != playerInfo[i][pTeam]) continue;
SendClientMessageX(playerid, COLOR_WHITE, "* %s (%d) %s (%d) %s",gRankName[GetPlayerGroupIndex(i)][playerInfo[i][pGroupRank]],playerInfo[i][pGroupRank],GetPlayerNameEx(i),i, (IsPlayerAFK(i) ? ("(AFK)") : (" ")));
}
return 1;
}
if(!strcmp(cmdtext, "/fmembers") || !strcmp(cmdtext, "/fmitglieder"))
{
if(GetPlayerFaction(playerid) == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Fraktion Mitglied.");
SendClientMessageX(playerid, COLOR_RED, "Online-Mitglieder der %s:", factionInfo[GetPlayerFaction(playerid)][fiName]);
new str[128];
foreach(new i : Player)
{
if(GetPlayerFaction(i) != GetPlayerFaction(playerid)) continue;
if(GetPlayerFaction(playerid) == FACTION_HITMAN) format(str, 128, "* %s (%d) %s (ID: %d) %s %s", fRankName[GetPlayerFaction(i)][GetPlayerFactionRank(i)],GetPlayerFactionRank(i),GetPlayerNameEx(i),i,(playerInfo[i][pFactionDuty] ? ("({FF0000}Hitman{FFFFFF})") : ("")),(IsPlayerAFK(i) ? ("(AFK)") : ("")));
else if(GetPlayerFaction(playerid) == FACTION_FBI) format(str, 128, "* %s (%d) %s (ID: %d) %s %s %s", fRankName[GetPlayerFaction(i)][GetPlayerFactionRank(i)],GetPlayerFactionRank(i),GetPlayerNameEx(i),i,(playerInfo[i][pFactionDuty] ? ("({1D16DB}S.W.A.T.{FFFFFF})") : ("")),(playerInfo[i][pFactionInstructor] ? ("({90C3D4}S.W.A.T. - Instructor{FFFFFF})") : ("")),(IsPlayerAFK(i) ? ("(AFK)") : ("")));
SendClientMessage(playerid, COLOR_WHITE, str);
}
return 1;
}
if(!strcmp(cmdtext, "/conquer",true) || !strcmp(cmdtext, "/startfight",true) || !strcmp(cmdtext, "/invade",true))
{
new gangzone = GetPlayerGangZone(playerid), groupid = playerInfo[playerid][pGroup];
if(!IsPlayerInAnyGroup(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist ist in keiner Gruppe Mitglied.");
if(gangzone == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keiner Gangfightzone.");
if(gangFightInfo[gangzone][gfProtectionTime] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Das Gebiet kann erst in %s wieder angegriffen werden.",GetTimeString(gangFightInfo[gangzone][gfProtectionTime]-gettime(),1));
return 1;
}
if(gangFightInfo[gangzone][gfActiveFight])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es läuft bereits ein Gangfight in dieser Zone zwischen %s und %s.", GetGroupName(gangFightInfo[gangzone][gfOwner]),GetGroupName(gangFightInfo[gangzone][gfAttacker]));
return 1;
}
if(gangFightInfo[gangzone][gfOwner] == groupid) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Gebiet gehört bereits deiner Gruppe.");
new fid = SearchGroupIndex(gangFightInfo[gangzone][gfOwner]);
if(groupInfo[fid][gWar])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist bereits in einen Krieg involviert.",groupInfo[fid][gName]);
return 1;
}
if(groupInfo[fid][gWarZoneLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Gruppe hat noch %s Schutz vor Angriffen.",GetTimeString(groupInfo[fid][gWarZoneLock]-gettime(),5));
return 1;
}
if(groupInfo[GetPlayerGroupIndex(playerid)][gWar]) return SendClientMessage(playerid, COLOR_LESSRED, "Ihr seid bereits in einen Krieg involviert.");
new famount = GetGroupMemberAmount(gangFightInfo[gangzone][gfOwner]),amount = GetGroupMemberAmount(GetPlayerGroupID(playerid)), string[128];
if(famount < NEEDED_CONQUERPLAYER)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden mindestens "#NEEDED_CONQUERPLAYER" Gegenspieler benötigt (Online: %d).",famount);
return 1;
}
if(amount < NEEDED_CONQUERPLAYER)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden mindestens "#NEEDED_CONQUERPLAYER" Mitspieler benötigt (Online: %d).",amount);
return 1;
}
gangFightInfo[gangzone][gfAttacker] = groupid;
gangFightInfo[gangzone][gfCtfID] = INVALID_PLAYER_ID;
gangFightInfo[gangzone][gfActiveFight] = true;
GangZoneFlashForAll(gangFightZone[gangzone], 0x9C283870);
new dIndex = SearchGroupIndex(gangFightInfo[gangzone][gfOwner]);
format(string,sizeof(string),"[ NEWS ] %s greift im Namen der Gruppe %s ein Gebiet von %s an.",GetPlayerNameEx(playerid),groupInfo[GetPlayerGroupIndex(playerid)][gName],groupInfo[dIndex][gName]);
SendClientMessageToAll(COLOR_ORANGE, string);
groupInfo[GetPlayerGroupIndex(playerid)][gWarTime] = 60;
groupInfo[dIndex][gWarTime] = 60;
groupInfo[GetPlayerGroupIndex(playerid)][gWarKills] = 0;
groupInfo[dIndex][gWarKills] = 0;
groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] = WAR_ZONE;
groupInfo[dIndex][gWarTyp] = WAR_ZONE;
groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz] = gangzone;
groupInfo[dIndex][gWarBiz] = gangzone;
groupInfo[GetPlayerGroupIndex(playerid)][gWar] = gangFightInfo[gangzone][gfOwner];
groupInfo[dIndex][gWar] = GetPlayerGroupID(playerid);
groupInfo[GetPlayerGroupIndex(playerid)][gWarIndex] = dIndex;
groupInfo[dIndex][gWarIndex] = GetPlayerGroupIndex(playerid);
InitPlayerGangZoneInfo(gangzone);
foreach(new i : Player)
{
if(playerInfo[i][pGroup] != groupid && playerInfo[i][pGroup] != gangFightInfo[gangzone][gfOwner]) continue;
ShowPlayerGangZoneInfo(i, gangzone);
}
return 1;
}
if(!strcmp(cmdtext, "/ctf", true))
{
new gangzone = GetPlayerGangZone(playerid),string[128];
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe Mitglied.");
if(gangzone == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keiner Gangfightzone.");
if(!gangFightInfo[gangzone][gfActiveFight]) return SendClientMessage(playerid, COLOR_LESSRED, "Es läuft kein Gangfight in dieser Zone.");
if(gangFightInfo[gangzone][gfOwner] != playerInfo[playerid][pGroup] && gangFightInfo[gangzone][gfAttacker] != playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du nimmst nicht an diesem Gangfight teil.");
if(gangFightInfo[gangzone][gfCtfID] != INVALID_PLAYER_ID)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Flagge wird bereits von %s eingenommen.",GetPlayerNameEx(gangFightInfo[gangzone][gfCtfID]));
return 1;
}
if(!IsPlayerInRangeOfPoint(playerid,5.0,gangfightZoneData[gangzone][gfCtfX],gangfightZoneData[gangzone][gfCtfY],gangfightZoneData[gangzone][gfCtfZ])) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht in der Nähe eines CTF-Punkts.");
if(IsAPlane(GetPlayerVehicleID(playerid)) || IsABoat(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst in diesem Fahrzeug keinen Flaggenpunkt einnehmen.");
gangFightInfo[gangzone][gfCtfID] = playerid;
gangFightInfo[gangzone][gfCtfTeam] = playerInfo[playerid][pGroup];
gangFightInfo[gangzone][gfCtfStart] = gettime();
format(string,sizeof(string),"%s nimmt für die Gruppe %s die Flagge ein.",GetPlayerNameEx(playerid),groupInfo[GetPlayerGroupIndex(playerid)][gName]);
SendGangFightMessage(COLOR_ORANGE, gangzone, string);
foreach(new i : Player)
{
if(!IsPlayerInGangFight(i, gangzone)) continue;
ShowPlayerCtfProgressbar(i, gangzone);
}
return 1;
}
if(!strcmp(cmdtext, "/bizfight", true))
{
new id = GetPlayerClosestBusiness(playerid);
if(!IsPlayerInAnyGroup(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe Mitglied.");
if(id == INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht in der Nähe eines Gebäudes.");
if(!entranceInfo[id][eiRobable]) return SendClientMessage(playerid, COLOR_LESSRED, "Von diesem Gebäude kann kein Schutzgeld erpresst werden.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gBizes] >= 13)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ihr seid bereits im Besitz von %d Gebäuden (Limit: 13).", groupInfo[playerInfo[playerid][pGroupIndex]][gBizes]);
return 1;
}
if(entranceInfo[id][eiBlackmailer] == 0)
{
new gIndex = playerInfo[playerid][pGroupIndex];
format(entranceInfo[id][eiBlackmailerName], 24, groupInfo[gIndex][gName]);
entranceInfo[id][eiBlackmailer] = groupInfo[gIndex][gSQLID];
entranceInfo[id][eiBlackmailerIndex] = gIndex;
entranceInfo[id][eiBlackMailerProtection] = 0;
groupInfo[gIndex][gWarBizLock] = 0;
groupInfo[gIndex][gBizes]++;
UpdateBusinessLabel(id);
new string[128];
format(string, sizeof(string), "Die Gruppe %s übernimmt das Business %s.",groupInfo[gIndex][gName],entranceInfo[id][eiEntranceName]);
SendGroupMessageToAll(GetPlayerGroupID(playerid),COLOR_CLANCHAT,string);
return 1;
}
if(entranceInfo[id][eiBlackMailerProtection] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Das Gebäude kann erst in %s wieder angegriffen werden.",GetTimeString(entranceInfo[id][eiBlackMailerProtection]-gettime(),1));
return 1;
}
if(entranceInfo[id][eiBlackmailer] == GetPlayerGroupID(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Eure Gruppe ist bereits der Schutzgelderpresser.");
new fid = SearchGroupIndex(entranceInfo[id][eiBlackmailer]);
if(groupInfo[fid][gWarBizLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Diese Gruppe hat noch %s Bizfight - Schutz.",GetTimeString(groupInfo[fid][gWarBizLock] - gettime(), 5));
return 1;
}
if(groupInfo[fid][gWar])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist bereits in einen Krieg involviert.",groupInfo[fid][gName]);
return 1;
}
if(groupInfo[GetPlayerGroupIndex(playerid)][gWar]) return SendClientMessage(playerid, COLOR_LESSRED, "Ihr seid bereits in einen Krieg involviert.");
new famount = GetGroupMemberAmount(entranceInfo[id][eiBlackmailer],true),amount = GetGroupMemberAmount(GetPlayerGroupID(playerid),true), string[128];
if(famount < NEEDED_BIZFIGHTPLAYER)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden mindestens %d Gegenspieler benötigt (Online: %d).",NEEDED_BIZFIGHTPLAYER,famount);
return 1;
}
if(amount < NEEDED_BIZFIGHTPLAYER)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden mindestens %d Mitspieler benötigt (Online: %d).",NEEDED_BIZFIGHTPLAYER,amount);
return 1;
}
groupInfo[fid][gWarBiz] = id;
groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz] = id;
groupInfo[fid][gWarTime] = 20;
groupInfo[GetPlayerGroupIndex(playerid)][gWarTime] = 20;
groupInfo[fid][gWarBizLock] = 0;
groupInfo[GetPlayerGroupIndex(playerid)][gWarBizLock] = 0;
groupInfo[fid][gWarTyp] = WAR_BIZ;
groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] = WAR_BIZ;
groupInfo[fid][gWar] = GetPlayerGroupID(playerid);
groupInfo[GetPlayerGroupIndex(playerid)][gWar] = entranceInfo[id][eiBlackmailer];
groupInfo[fid][gWarIndex] = GetPlayerGroupIndex(playerid);
groupInfo[GetPlayerGroupIndex(playerid)][gWarIndex] = fid;
groupInfo[fid][gWarKills] = 0;
groupInfo[GetPlayerGroupIndex(playerid)][gWarKills] = 0;
CreateWarTextDraw(GetPlayerGroupIndex(playerid),true);
CreateWarTextDraw(fid,true);
foreach(new i : Player)
{
if(GetPlayerGroupIndex(i) != fid && GetPlayerGroupIndex(i) != GetPlayerGroupIndex(playerid)) continue;
GangZoneShowForPlayer(i, BusinessZone[groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz]],0x39B33B70);
GangZoneFlashForPlayer(i, BusinessZone[groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz]], 0x9C283870);
}
format(string, sizeof(string), "Die Gruppe %s greift das Business %s unter der Macht von der Gruppe %s an.",groupInfo[GetPlayerGroupIndex(playerid)][gName],entranceInfo[id][eiEntranceName],groupInfo[fid][gName]);
SendGroupMessageToAll(GetPlayerGroupID(playerid),COLOR_CLANCHAT,string);
SendGroupMessageToAll(entranceInfo[id][eiBlackmailer],COLOR_CLANCHAT,string);
new zonename[32];
GetCoords2DZone(entranceInfo[id][eiEntranceX],entranceInfo[id][eiEntranceY], zonename, MAX_ZONE_NAME);
SendClientMessageToAllX(COLOR_ORANGE,"[ NEWS ] {FFFFFF}%s{D67520} hat gegen {FFFFFF}%s{D67520} einen Kampf um %s in %s gestartet.", groupInfo[GetPlayerGroupIndex(playerid)][gName],groupInfo[fid][gName],entranceInfo[id][eiEntranceName],zonename);
return 1;
}
if(!strcmp(cmdtext, "/wanteds", true))
{
if(GetPlayerFaction(playerid) != FACTION_FBI) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist den normalen Spielern vorenthalten.");
new str[2048], zonename[MAX_ZONE_NAME];
strins(str, "Gesuchter\tWantedlevel\tOrt\n" , 0);
foreach(new i : Player)
{
if(!GetPlayerWantedLevel(i)) continue;
GetPlayer2DZone(i, zonename, MAX_ZONE_NAME);
format(str, 2048, "%s{%06x}%s (%d)\t%d\t%s\n", str, GetPlayerWantedColor(i) >>> 8,GetPlayerNameEx(i),i, GetPlayerWantedLevel(i),zonename);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_TABLIST_HEADERS, "Gesuchten Liste", str, "Schließen", "");
return 1;
}
if(!strcmp(cmdtext, "/derbylist", true))
{
new longstr[256];
foreach(new i : Player)
{
if(playerInfo[i][pWorld] != WORLD_DERBY) continue;
format(longstr, sizeof(longstr), "%s{%06x}%s\n",longstr,GetPlayerColor(i) >>> 8,GetPlayerNameEx(i));
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Derby - Spielerliste",longstr,"Schließen","");
return 1;
}
if(!strcmp(cmdtext, "/mutelist", true))
{
new longstr[512];
foreach(new i : Player)
{
if(!playerInfo[i][pMuteTime]) continue;
format(longstr, sizeof(longstr), "%s%s - %s\n",longstr,GetPlayerNameEx(i),GetTimeString(playerInfo[i][pMuteTime],4));
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Sprechverbot",longstr,"Schließen","");
return 1;
}
if(!strcmp(cmdtext, "/exit", true))
{
if(playerInfo[playerid][pVisitRoom])
{
playerInfo[playerid][pVisitRoom] = false;
EnterHouse(playerid, playerInfo[playerid][pHouseID]);
return 1;
}
if(!playerInfo[playerid][pWorld]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Welt.");
if(playerInfo[playerid][pLastHit] + 3 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst die Arena erst in %d Sekunden verlassen.",(playerInfo[playerid][pLastHit]+ 3)-gettime());
return 1;
}
ResetPlayerWeapons(playerid);
if(playerInfo[playerid][pWorld] == WORLD_DERBY)
{
SetPlayerPos(playerid, -2050.6506,-407.7728,38.7344);
KickPlayerAsDerbyDriver(playerid, true);
}
else if(playerInfo[playerid][pWorld] != WORLD_DUELL)
{
if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte warte, bis du wieder spawnst.");
new string[128], wIndex = playerInfo[playerid][pWorldIndex];
format(string, sizeof(string), "[ ARENA ] %s hat die %s - Arena verlassen.",GetPlayerNameEx(playerid),dmArea[ playerInfo[playerid][pWorldIndex] ][dmAreaName]);
SendClientWorldMessage(dmArea[ playerInfo[playerid][pWorldIndex] ][dmID], 0x7B8AB5FF, string);
dmArea[playerInfo[playerid][pWorldIndex]][dmCurrentPlayers]--;
UpdateDmAreaLabel(playerInfo[playerid][pWorldIndex]);
SetPlayerPos(playerid, dmArea[wIndex][dmEntrance][0],dmArea[wIndex][dmEntrance][1],dmArea[wIndex][dmEntrance][2]);
SetPlayerFacingAngle(playerid, dmArea[wIndex][dmEntrance][3]);
}
else
{
new rIndex = playerInfo[playerid][pWorldIndex];
if(duellInfo[rIndex][diPlayers][0] == playerid)
{
if(duellInfo[rIndex][diPlayers][1] != INVALID_PLAYER_ID)
{
duellInfo[rIndex][diPlayers][0] = duellInfo[rIndex][diPlayers][1];
duellInfo[rIndex][diPlayers][1] = INVALID_PLAYER_ID;
SendClientMessageX(duellInfo[rIndex][diPlayers][0], COLOR_GREEN, "[ DUELL ] Du bist nun Besitzer des Raums. Raumpasswort: %d | Konfiguration: /cduell", duellInfo[rIndex][diPassword]);
}
else
{
duellInfo[rIndex][diPlayers][0] = INVALID_PLAYER_ID;
}
}
else
{
duellInfo[rIndex][diPlayers][1] = INVALID_PLAYER_ID;
}
duellInfo[ playerInfo[playerid][pWorldIndex] ][diCountPlayers]--;
SetPlayerWorldBounds(playerid, 20000.0000, -20000.0000, 20000.0000, -20000.0000);
SetPlayerPos(playerid, dmArea[5][dmEntrance][0],dmArea[5][dmEntrance][1],dmArea[5][dmEntrance][2]);
SetPlayerFacingAngle(playerid, dmArea[5][dmEntrance][3]);
}
playerInfo[playerid][pWorldIndex] = 0;
playerInfo[playerid][pWorld] = WORLD_NONE;
SetPlayerHealth(playerid, 100.0);
SetPlayerArmour(playerid, 0.0);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
for(new i = 0; i < 5; i++)
{
SendDeathMessageToPlayer(playerid, MAX_PLAYERS + 1, MAX_PLAYERS + 1, 0);
}
return 1;
}
if(!strcmp(cmdtext, "/derbyinfo", true))
{
if(serverInfo[togDerby]) return SendClientMessage(playerid, COLOR_LESSRED, "Das Derby ist derzeit ausgeschaltet.");
SendClientMessageX(playerid, COLOR_DARKPURPLE, "Map: %s, erstellt von %s. Spieler: %d / %d.",derbyList[derbyInfo[0][diCurrentDerby]-1],derbyInfo[0][diOwner],derbyInfo[0][diCurrentLifePlayers],derbyInfo[0][diCurrentPlayers]);
return 1;
}
if(!strcmp(cmdtext, "/derby", true))
{
if(!IsPlayerInRangeOfPoint(playerid,2.0,-2050.6506,-407.7728,38.7344)) return 1;
if(serverInfo[togDerby]) return SendClientMessage(playerid, COLOR_LESSRED, "Das Derby ist derzeit deaktiviert.");
if(playerInfo[playerid][pDerbyLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast noch %s Derbysperre.",GetTimeString(playerInfo[playerid][pDerbyLock]-gettime(),1));
return 1;
}
if(playerInfo[playerid][pLastHit] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden, das Derby betreten.",(playerInfo[playerid][pLastHit]+30)-gettime());
return 1;
}
if(playerInfo[playerid][pJailTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst im Gefängnis nicht das Derby betreten.");
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst mit Wanteds nicht in das Derby rein.");
if(playerInfo[playerid][pWorld] != WORLD_NONE) return SendClientMessage(playerid, COLOR_RED, "Du bist bereits in einer Welt.");
if(derbyInfo[0][diCurrentPlayers] >= derbyInfo[0][diMaxPlayers]) return SendClientMessage(playerid, COLOR_RED, "Die Derbyarena ist bereits voll.");
derbyInfo[0][diCurrentPlayers]++;
playerInfo[playerid][pWorld] = WORLD_DERBY;
playerInfo[playerid][pDerbySpectatorID] = INVALID_PLAYER_ID;
SetPlayerColor(playerid, PlayerColors[playerid]);
SendClientMessageX(playerid, COLOR_DARKPURPLE, "Map: %s, erstellt von %s.",derbyList[derbyInfo[0][diCurrentDerby]-1],derbyInfo[0][diOwner]);
CreatePlayerDerbyTextdraw(playerid);
if(derbyInfo[0][diStartProcess] < 2)
{
SpawnPlayerInDerby(playerid);
}
else
{
ShowPlayerSpectateDerbyPlayer(playerid);
}
PlayerTextDrawHide(playerid, ZoneText[playerid]);
TextDrawHideForPlayer(playerid, AdvertiseTD);
TextDrawShowForPlayer(playerid, DerbyText[0]);
return 1;
}
if(!strcmp(cmdtext, "/spawnchange",true))
{
new str[128];
format(str, 128, "%s%s%s%s%s%s",playerInfo[playerid][pTeam] == TEAM_ZIVI ? ("Zivilistenspawn SF") : ("Police Department SF"), playerInfo[playerid][pTeam] == TEAM_ZIVI ? ("\nZivilistenspawn LV") : (""), playerInfo[playerid][pGroup] ? ("\nBasis der Gruppe") : (""),playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID ? ("\nAm eigenen Haus") : (""),GetPlayerFaction(playerid) ? ("\nBasis der Fraktion") : (""));
ShowPlayerDialog(playerid,DIALOG_SPAWNCHANGE,DIALOG_STYLE_LIST,"Spawnauswahl",str,"Auswählen","Schließen");
return 1;
}
if(!strcmp(cmdtext, "/account", true))
{
ShowPlayerDialog(playerid, DIALOG_ACCOUNT, DIALOG_STYLE_LIST, "Benutzerkontrolle","Namen ändern\nPasswort ändern\nKampfstil ändern\nWaffenstatistik\nPrice - Book\nAccessoir\nEinstellbare Eigenschaften","Auswählen","Schließen");
return 1;
}//masterpw:pGWW5VXH58RGHMD9Cj3JDFU2
if(!strcmp(cmdtext, "/gruppe", true))
{
if(playerInfo[playerid][pTeam] != TEAM_ZIVI) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur im Team Zivilisten das Gruppenmenü öffnen.");
if(playerInfo[playerid][pGroup] == 0)
{
new houseslot = GetHouseSlotID(playerInfo[playerid][pHouseKey]);
if(GetFreeGroupID() == INVALID_GROUP_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Es können derzeit keine weiteren Gruppen erstellt werden.");
if(playerInfo[playerid][pHouseKey] == INVALID_HOUSE_ID || houseslot == INVALID_HOUSE_ID || playerInfo[playerid][pSQLID] != houseInfo[houseslot][hOwnerID]) return SendClientMessage(playerid, COLOR_LESSRED, "Du benötigst ein Haus, wo die Gruppe wohnen kann.");
if(!playerInfo[playerid][pGroup])
{
ShowPlayerDialog(playerid, DIALOG_GROUPCREATE, DIALOG_STYLE_INPUT, "Gruppe gründen","Um deine eigene Gruppe zu gründen brauchst du nicht nur einen Namen,\nsondern auch eine Grundbasis von "#NEEDED_MONEY_FOR_CREATINGGROUP" und Zivilisten Level "#NEEDED_LEVEL_FOR_CREATINGGROUP". Von diesem Geld werden $"#GROUP_STARTMONEY" Bearbeitungsgebühren abgezogen.\n\nBitte gebe deine gewünschte Gruppenbezeichnung ein:","Gründen","Abbrechen");
return 1;
}
}
else if(IsPlayerInAnyGroup(playerid))
{
DialogTempDataIndex[playerid] = 0;
new headline[32];
format(headline, 32, "{%06x}%s%s",colorArray[groupInfo[playerInfo[playerid][pGroupIndex]][gColor]][caColor] >>> 8, groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
ShowPlayerDialog(playerid, DIALOG_GROUP, DIALOG_STYLE_LIST, headline, "Informationen\nMitgliederverwaltung\nGruppenfahrzeuge respawnen\nEinstellungen\nVerhältnisse\nUpgrades\nVerlassen","Auswählen","Schließen");
}
return 1;
}
if(!strcmp(cmdtext, "/allegruppen",true) || !strcmp(cmdtext, "/allgroups",true))
{
new longstr[1024];
DialogTempDataIndex[playerid] = 0;
foreach(new i : Groups)
{
format(longstr,sizeof(longstr),"%s%s\n",longstr,groupInfo[i][gName]);
DialogTempData[playerid][DialogTempDataIndex[playerid]] = i;
DialogTempDataIndex[playerid]++;
}
if(DialogTempDataIndex[playerid])
{
DialogTempData[playerid][MAX_PLAYERS-1] = INVALID_SLOT_ID;
ShowPlayerDialog(playerid, DIALOG_GROUPLIST, DIALOG_STYLE_LIST, "Gruppenauflistung", longstr, "Info","Schließen");
}
else
{
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Gruppenauflistung", "Es gibt derzeit keine Gruppen.", "Schließen", "");
}
return 1;
}
if(!strcmp(cmdtext, "/tog", true))
{
new longstr[1024];
strins(longstr, "Bezeichnung\tStatus\n", 0);
for(new i = 0; i < MAX_TOGS; i++)
{
format(longstr,sizeof(longstr),"%s%s\t%s\n",longstr,togInfo[i][tTitle],(playerInfo[playerid][pTog][i] ? ("{B52846}Deaktiviert") : ("{6EB028}Aktiviert")));
}
ShowPlayerDialog(playerid, DIALOG_TOG, DIALOG_STYLE_TABLIST_HEADERS, "An- & Ausschaltbare Optionen",longstr,"Umschalten","Schließen");
return 1;
}
if(!strcmp(cmdtext, "/stog", true))
{
new longstr[1024];
strins(longstr, "Bezeichnung\tStatus\n", 0);
for(new i = 0; i < MAX_SERVERTOGS; i++)
{
format(longstr, sizeof(longstr), "%s%s\t%s\n", longstr, serverTog[i][stTitle], serverTog[i][stValue] ? ("{B52846}Deaktiviert") : ("{6EB028}Aktiviert"));
}
ShowPlayerDialog(playerid, DIALOG_SERVERTOG, DIALOG_STYLE_TABLIST_HEADERS, "Server Optionen", longstr, "Umschalten", "Schließen");
return 1;
}
if(!strcmp(cmdtext, "/fahrzeugradio",true) || !strcmp(cmdtext, "/carradio",true) || !strcmp(cmdtext, "/vehicleradio", true))
{
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Fahrzeug.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur als Fahrer des Fahrzeuges den Sender ändern.");
new longstr[256];
for(new i = 0; i < sizeof(radioCategory); i++)
{
format(longstr,sizeof(longstr),"%s%s\n",longstr,radioCategory[i]);
}
ShowPlayerDialog(playerid, DIALOG_RADIO, DIALOG_STYLE_LIST, "Senderauswahl",longstr,"Weiter","Schließen");
return 1;
}
if(!strcmp(cmdtext, "/contracts", true))
{
if(GetPlayerFaction(playerid) != FACTION_HITMAN) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Funktion ist den normalen Spielern vorenthalten.");
if(!playerInfo[playerid][pFactionDuty]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist zurzeit nicht als Hitman unterwegs oder kein Hitman.");
new longstr[512], zonename[MAX_ZONE_NAME], Float:x,Float:y,Float:z;
GetPlayerPos(playerid, x, y, z);
strins(longstr, "Kopfgeldträger\tKopfgeld\tAufenthalt\tEntfernung\n", 0);
foreach(new i : Player)
{
if(!playerInfo[i][pContractValue] || playerInfo[i][pAdminDuty] || playerInfo[i][pAFK]) continue;
GetPlayer2DZone(i, zonename, MAX_ZONE_NAME);
format(longstr,sizeof(longstr),"%s%s\t$%s\t%s\t%.1fm\n",longstr,GetPlayerNameEx(i),FormatNumber(playerInfo[i][pContractValue]),zonename,GetPlayerDistanceFromPoint(i, x, y, z));
DialogTempDataIndex[playerid]++;
}
if(DialogTempDataIndex[playerid] == 0)
{
format(longstr,sizeof(longstr),"Es existieren derzeit keine Aufträge.");
}
ShowPlayerDialog(playerid,DIALOG_INFO, DIALOG_STYLE_TABLIST_HEADERS,"Kopfgeldliste",longstr,"Schließen","");
return 1;
}
if(!strcmp(cmdtext, "/park", true) || !strcmp(cmdtext, "/parken", true))
{
new vehicleid = GetPlayerVehicleID(playerid), slotid = GetVehicleSlotID(vehicleid), Float:health;
if(!vehicleid) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Fahrzeug.");
if(slotid == INVALID_SLOT_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug ist nicht parkbar.");
if(IsPlayerInNoDmZone(playerid) && !playerInfo[playerid][pAdminDuty]) return SendClientMessage(playerid, COLOR_LESSRED, "Fahrzeuge können nicht in einer NoDM Zone geparkt werden.");
if(playerInfo[playerid][pTuningGarage]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dein Fahrzeug hier nicht parken.");
if(GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP && HasGroupPermissionForVehicle(vehicleid, playerInfo[playerid][pGroup]) && HasGroupPlayerPermissionForThis(playerid, PERM_VEHPARK) || IsPlayerOwnerFromVehicle(playerid, vehicleid) || playerInfo[playerid][pAdminDuty] && playerInfo[playerid][pAdmin] >= RANK_ADMIN)
{
new trailerid, vInfo[4], Float:fill = vehicleData[vehicleid][viTank];
GetVehicleDamageStatus(vehicleid, vInfo[0], vInfo[1], vInfo[2], vInfo[3]);
GetVehiclePos(vehicleid, vehicleInfo[slotid][viPos][0], vehicleInfo[slotid][viPos][1], vehicleInfo[slotid][viPos][2]);
GetVehicleZAngle(vehicleid, vehicleInfo[slotid][viPos][3]);
GetVehicleHealth(vehicleid, health);
if(IsTrailerAttachedToVehicle(vehicleid))
{
trailerid = GetVehicleTrailer(vehicleid);
}
DestroyVehicle(vehicleid);
vehicleid = CreateVehicle(vehicleInfo[slotid][viModelID], vehicleInfo[slotid][viPos][0],vehicleInfo[slotid][viPos][1],vehicleInfo[slotid][viPos][2],vehicleInfo[slotid][viPos][3],vehicleInfo[slotid][viColor][0],vehicleInfo[slotid][viColor][1],600);
ChangeVehiclePaintjob(vehicleid, vehicleInfo[slotid][viPaintjobID]);
SetVehicleNumberPlate(vehicleid, vehicleInfo[slotid][viNumberPlate]);
AddVehicleNeon(vehicleid, vehicleInfo[slotid][viNeon]);
vehicleInfo[vehicleid][viDriver] = playerid;
for(new i = 0; i < 14; i++)
if(vehicleInfo[slotid][viTuning][i] != 0) AddVehicleComponent(vehicleid, vehicleInfo[slotid][viTuning][i]);
SetVehicleHealth(vehicleid, health);
PutPlayerInVehicle(playerid, vehicleid, 0);
UpdateVehicleDamageStatus(vehicleid, vInfo[0], vInfo[1], vInfo[2], vInfo[3]);
ChangeMotorState(vehicleid, vehicleData[vehicleInfo[slotid][viVehicleID]][viMotor]);
if(vehicleid != vehicleInfo[slotid][viVehicleID])
{
vehicleSlot[vehicleInfo[slotid][viVehicleID]] = INVALID_SLOT_ID;
vehicleSlot[vehicleid] = slotid;
vehicleInfo[slotid][viVehicleID] = vehicleid;
}
vehicleData[vehicleid][viTank] = fill;
SendClientMessage(playerid, COLOR_GREEN, "* Das Fahrzeug wurde an dieser Position geparkt.");
if(trailerid)
{
slotid = GetVehicleSlotID(trailerid);
if(IsPlayerOwnerFromVehicle(playerid, trailerid) || HasGroupPermissionForVehicle(vehicleInfo[slotid][viVehicleID], playerInfo[playerid][pGroup]))
{
GetVehiclePos(trailerid, vehicleInfo[slotid][viPos][0], vehicleInfo[slotid][viPos][1], vehicleInfo[slotid][viPos][2]);
GetVehicleZAngle(trailerid, vehicleInfo[slotid][viPos][3]);
GetVehicleHealth(trailerid, health);
DestroyVehicle(trailerid);
trailerid = CreateVehicle(vehicleInfo[slotid][viModelID], vehicleInfo[slotid][viPos][0],vehicleInfo[slotid][viPos][1],vehicleInfo[slotid][viPos][2],vehicleInfo[slotid][viPos][3],vehicleInfo[slotid][viColor][0],vehicleInfo[slotid][viColor][1],-1);
SetVehicleHealth(trailerid, health);
if(trailerid != vehicleInfo[slotid][viVehicleID])
{
vehicleSlot[vehicleInfo[slotid][viVehicleID]] = INVALID_SLOT_ID;
vehicleSlot[trailerid] = slotid;
vehicleInfo[slotid][viVehicleID] = trailerid;
}
AttachTrailerToVehicle(vehicleid, trailerid);
SendClientMessage(playerid, COLOR_GREEN, "* Der Anhänger wurde an dieser Position geparkt.");
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast nicht die Berechtigung, diesen Anhänger umzuparken.");
}
}
SetTimerEx("DelayedFunction", 300, false, "dd", playerid, 1);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast nicht die Berechtigung, dieses Fahrzeug umzuparken.");
}
return 1;
}
if(!strcmp(cmdtext, "/carlock", true))
{
new vehicleid = GetClosestVehicle(playerid), slotid;
if(vehicleid == INVALID_VEHICLE_ID && !IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Fahrzeug, welches du aufschließen könntest.");
if(IsPlayerInAnyVehicle(playerid)) vehicleid = GetPlayerVehicleID(playerid);
slotid = GetVehicleSlotID(vehicleid);
if(slotid == INVALID_SLOT_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug ist mit /lock auf- & zuschließbar.");
if(HasPlayerPermissionForVehicle(playerid, vehicleid))
{
if(vehicleData[vehicleid][viLocked])
{
new str[32];
vehicleData[vehicleid][viLocked] = false;
format(str, 32, "~w~%s ~g~aufgeschlossen", GetVehicleName(vehicleid));
GameTextForPlayer(playerid, str, 5000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}
else
{
new str[32];
vehicleData[vehicleid][viLocked] = true;
format(str, 32, "~w~%s ~r~abgeschlossen", GetVehicleName(vehicleid));
GameTextForPlayer(playerid, str, 5000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
}
foreach(new i : Player)
{
SetVehicleParamsForPlayerEx(vehicleid,i, false, vehicleData[vehicleid][viLocked]);
}
}
return 1;
}
/*
if(!strcmp(cmdtext, "/xmas",true))
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 0))
{
RemovePlayerAttachedObject(playerid, 0);
SendClientMessage(playerid, COLOR_WHITE, "Du hast deine Weihnachtsmütze abgesetzt.");
}
else
{
SetPlayerAttachedObject(playerid, 0, 19065, 2, 0.120000, 0.040000, -0.003500, 0, 100, 100, 1.4, 1.4, 1.4);
SendClientMessage(playerid, COLOR_WHITE, "Du hast deine Weihnachtsmütze aufgesetzt.");
}
return 1;
}
*/
if(!strcmp(cmdtext, "/einmieten", true) || !strcmp(cmdtext, "/mieten", true) || !strcmp(cmdtext, "/rentroom", true) || !strcmp(cmdtext, "/rent"))
{
new houseid = GetClosestHouse(playerid), string[128];
if(playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits in einem Haus eingemietet oder besitzt eins.");
if(houseid == INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Haus.");
if(!houseInfo[houseid][hRent]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich bei diesem Haus nicht einmieten.");
if(GetPlayerMoney(playerid) < houseInfo[houseid][hRent]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genug Geld für die Miete.");
GivePlayerMoney(playerid, -houseInfo[houseid][hRent], "Miete");
houseInfo[houseid][hBank] += houseInfo[houseid][hRent];
playerInfo[playerid][pHouseKey] = houseInfo[houseid][hSQLID];
playerInfo[playerid][pHouseRent] = houseInfo[houseid][hRent];
format(string,sizeof(string),"Du hast die erste Miete von $%d gezahlt und bist nun im Haus eingemietet.",houseInfo[houseid][hRent]);
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
if(!strcmp(cmdtext, "/ausmieten", true) || !strcmp(cmdtext, "/unrentroom", true) || !strcmp(cmdtext, "/unrent", true))
{
new houseslot = playerInfo[playerid][pHouseSlot];
if(playerInfo[playerid][pHouseKey] == INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Haus eingemietet.");
if(houseslot != INVALID_HOUSE_ID && houseInfo[houseslot][hOwnerID] == playerInfo[playerid][pSQLID]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist Besitzer dieses Hauses, verkaufe das Haus mit /hausverkaufen.");
playerInfo[playerid][pHouseSlot] = INVALID_HOUSE_ID;
playerInfo[playerid][pHouseKey] = INVALID_HOUSE_ID;
playerInfo[playerid][pHouseRent] = 0;
SendClientMessage(playerid, COLOR_YELLOW, "Du bist nun obdachlos.");
return 1;
}
if(!strcmp(cmdtext, "/buybiz", true) || !strcmp(cmdtext, "/businesskaufen", true) || !strcmp(cmdtext, "/geschäftkaufen"))
{
new bizid = GetPlayerClosestBusiness(playerid), string[128];
if(playerInfo[playerid][pBizKey] != INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits im Besitz eines Businesses.");
if(bizid == INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Business.");
if(entranceInfo[bizid][eiOwnerID] != 0 || entranceInfo[bizid][eiPrice] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Business steht nicht zum Verkauf.");
if(GetPlayerHighestLevel(playerid) < entranceInfo[bizid][eiLevel]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht das nötige Level, um dir dieses Business kaufen zu können.");
if(GetPlayerMoney(playerid) < entranceInfo[bizid][eiPrice]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genug Geld, um dir dieses Business zu kaufen.");
GivePlayerMoney(playerid, -entranceInfo[bizid][eiPrice], "Businesskauf");
playerInfo[playerid][pBizKey] = entranceInfo[bizid][eiSQLID];
playerInfo[playerid][pBizSlot] = GetBizSlotID(playerInfo[playerid][pBizKey]);
format(string, sizeof(string), "Du hast das Business %s für $%s erworben, herzlichen Glückwunsch.", entranceInfo[bizid][eiEntranceName], FormatNumber(entranceInfo[bizid][eiPrice]));
SendClientMessage(playerid, COLOR_GREEN, string);
printf("%s hat ein Business für $%s gekauft (ID: %d)",GetPlayerNameEx(playerid),FormatNumber(entranceInfo[bizid][eiPrice]),entranceInfo[bizid][eiSQLID]);
mysql_format(dbHandle, string, sizeof(string),"UPDATE `accounts` SET `bizkey` = '%d' WHERE `id` = '%d'",playerInfo[playerid][pBizKey],playerInfo[playerid][pSQLID]);
mysql_function_query(dbHandle, string, true, "", "");
entranceInfo[bizid][eiOwnerID] = playerInfo[playerid][pSQLID];
format(entranceInfo[bizid][eiOwner],MAX_PLAYER_NAME,GetPlayerNameEx(playerid));
UpdateBusinessLabel(bizid);
return 1;
}
if(!strcmp(cmdtext, "/buyhouse", true) || !strcmp(cmdtext, "/hauskaufen", true))
{
new houseid = GetClosestHouse(playerid), string[128];
if(playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits in einem Haus eingemietet oder besitzt eins.");
if(houseid == INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Haus.");
if(houseInfo[houseid][hOwnerID] != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Haus steht nicht zum Verkauf.");
if(GetPlayerHighestLevel(playerid) < houseInfo[houseid][hLevel]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht das nötige Level, um dir dieses Haus kaufen zu können.");
if(GetPlayerMoney(playerid) < houseInfo[houseid][hPrice]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genug Geld, um dir dieses Haus zu kaufen.");
GivePlayerMoney(playerid, -houseInfo[houseid][hPrice], "Hauskauf");
playerInfo[playerid][pHouseKey] = houseInfo[houseid][hSQLID];
playerInfo[playerid][pHouseSlot] = GetHouseSlotID(playerInfo[playerid][pHouseKey]);
if(!GetPlayerAchievementStatus(playerid, ACHIEVE_FIRSTHOUSE)) GivePlayerAchievement(playerid, ACHIEVE_FIRSTHOUSE);
format(string,sizeof(string),"Du hast das Haus für $%s erworben, Herzlichen Glückwunsch.",FormatNumber(houseInfo[houseid][hPrice]));
SendClientMessage(playerid, COLOR_GREEN, string);
new str[128], zonename[MAX_ZONE_NAME];
GetCoords2DZone(houseInfo[houseid][hPos][0], houseInfo[houseid][hPos][1], zonename, MAX_ZONE_NAME);
format(str, 128, "[ INFO ] %s hat ein Haus in %s für $%s gekauft.", GetPlayerNameEx(playerid), zonename , FormatNumber(houseInfo[houseid][hPrice]));
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
InsertHouseLog(0, playerInfo[playerid][pSQLID], houseInfo[houseid][hSQLID], houseInfo[houseid][hPrice]);
mysql_format(dbHandle, string, sizeof(string),"UPDATE `accounts` SET `housekey` = '%d' WHERE `id` = '%d'",playerInfo[playerid][pHouseKey],playerInfo[playerid][pSQLID]);
mysql_function_query(dbHandle, string, true, "", "");
if(playerInfo[playerid][pLeader] == 2)
{
SendClientMessage(playerid, COLOR_YELLOW, "Deine Gruppe kann nun in dieser Immobilie spawnen.");
groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID] = houseInfo[houseid][hSQLID];
}
houseInfo[houseid][hTimestamp] = gettime();
houseInfo[houseid][hOwnerID] = playerInfo[playerid][pSQLID];
format(houseInfo[houseid][hOwner], MAX_PLAYER_NAME, GetPlayerNameEx(playerid));
UpdateHouse(houseid);
return 1;
}
if(!strcmp(cmdtext, "/sellhouse",true) || !strcmp(cmdtext, "/hausverkaufen", true))
{
Command_ReProcess(playerid, "/verkaufen Haus", false);
return 1;
}
if(!strcmp(cmdtext, "/tor",true) || !strcmp(cmdtext, "/gate") || !strcmp(cmdtext, "/mv"))
{
if(IsPlayerInRangeOfPoint(playerid,50.0,-1631.89001, 688.44666, 6.69082) && !GateState[1] && (IsPlayerCop(playerid) || playerInfo[playerid][pAdminDuty]))
{
GateState[1] = true;
MoveDynamicObject(SFPDGate[0],-1631.86084, 688.31818, 12.73574, 3.5);
SetTimerEx("OpenGate", 9000, false, "d", 1);
SendClientMessage(playerid, COLOR_YELLOW, "Du hast das SFPD - Tor geöffnet.");
}
return 1;
}
if(!strcmp(cmdtext, "/rmarker", true) || !strcmp(cmdtext, "/dmarker",true))
{
DisablePlayerCheckpoint(playerid);
return 1;
}
if(!strcmp(cmdtext, "/ausrüsten",true) || !strcmp(cmdtext, "/equip",true))
{
if(!IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Staatsbeamter.");
if(GetPlayerInterior(playerid) == 6 && IsPlayerInRangeOfPoint(playerid,20.0,316.4667,-170.2965,999.5938) || IsPlayerInRangeOfPoint(playerid, 10.0, 289.7004,187.6945,1007.1794))
{
SetPlayerArmour(playerid, 100.0);
SetPlayerHealth(playerid, 100.0);
if(playerInfo[playerid][pLastEquip] + 120 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du erhälst erst in %s neue Waffen.",GetTimeString(playerInfo[playerid][pLastEquip] + 120 - gettime(),4));
return 1;
}
GivePlayerWeapon(playerid, WEAPON_DEAGLE, 100);
GivePlayerWeapon(playerid, WEAPON_MP5, 700);
GivePlayerWeapon(playerid, WEAPON_SHOTGUN, 300);
playerInfo[playerid][pLastEquip] = gettime();
if(GetPlayerFaction(playerid) == FACTION_FBI)
{
GivePlayerWeapon(playerid, WEAPON_M4, 300);
GivePlayerWeapon(playerid, WEAPON_SNIPER, 50);
SendClientMessage(playerid, COLOR_WHITE, "Du hast erhalten: Desert Eagle (100 Schuss), MP5 (700 Schuss), Shotgun (300 Schuss), Sniper (50 Schuss), M4 (300 Schuss)");
}
else if(playerInfo[playerid][pLevel] >= 20)
{
GivePlayerWeapon(playerid, WEAPON_SNIPER, 50);
SendClientMessage(playerid, COLOR_WHITE, "Du hast erhalten: Desert Eagle (100 Schuss), MP5 (700 Schuss), Shotgun (300 Schuss), Sniper (50 Schuss)");
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Du hast erhalten: Desert Eagle (100 Schuss), MP5 (700 Schuss), Shotgun (300 Schuss)");
}
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Hier ist keine Waffenkammer zum Ausrüsten.");
return 1;
}
if(!strcmp(cmdtext, "/lock", true))
{
new vehicleid = GetPlayerVehicleID(playerid), slotid = GetVehicleSlotID(vehicleid);
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist nur als Fahrer eines Fahrzeuges möglich.");
if(IsABuyableVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist in diesem Fahrzeug nicht möglich.");
if(vehicleInfo[slotid][viOwnerTyp] == OWNERTYP_JOB && _:playerInfo[playerid][pJobDuty] != vehicleInfo[slotid][viOwnerID]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug ist nur mit Schlüssel verschließbar.");
if(vehicleData[vehicleid][viLocked])
{
vehicleData[vehicleid][viLocked] = false;
SendClientMessage(playerid, COLOR_YELLOW, "Du hast das Fahrzeug aufgeschlossen.");
}
else
{
vehicleData[vehicleid][viLocked] = true;
SendClientMessage(playerid, COLOR_YELLOW, "Du hast das Fahrzeug abgeschlossen.");
}
foreach(new i : Player)
{
SetVehicleParamsForPlayerEx(vehicleid,i, false, vehicleData[vehicleid][viLocked]);
}
return 1;
}
if(!strcmp(cmdtext, "/ah", true))
{
new fstring[MAX_TEAMRANKS + 1][512], newline[MAX_TEAMRANKS + 1] = {2, ...};
for(new i = 0, j = sizeof(commandInfo); i < j; i++)
{
new cRank = commandInfo[i][ciRank];
if(!cRank || cRank > playerInfo[playerid][pAdmin] || strfind(commandInfo[i][ciName],"_") != -1) continue;
new length = strlen(commandInfo[i][ciName]) + 1 + strlen(fstring[cRank]);
if(length > ((newline[cRank] * 120) - 120))
{
format(fstring[cRank], 512, "%s ; /%s",fstring[cRank],commandInfo[i][ciName]);
newline[cRank]++;
}
else
{
format(fstring[cRank], 512, "%s /%s",fstring[cRank], commandInfo[i][ciName]);
}
}
new str[5][128], msg[144], findstr;
for(new i = 1; i < playerInfo[playerid][pAdmin] + 1; i++)
{
findstr = strfind(fstring[i], ";", true);
if(findstr != -1)
{
sscanf(fstring[i], "p<;>s[128]s[128]s[128]s[128]", str[0], str[1], str[2], str[3], str[4]);
for(new x = 0; x < 5; x++)
{
if(!strlen(str[x])) continue;
format(msg, 144, "%s: %s", TeamRank[i], str[x]);
SendClientMessage(playerid, COLOR_GREY, msg);
}
}
else
{
format(msg, 144, "%s: %s", TeamRank[i], fstring[i]);
SendClientMessage(playerid, COLOR_GREY, msg);
}
}
if(IsPlayerEventMaster(playerid))
{
SendClientMessageX(playerid, COLOR_GREY, "%s: /event /sethp /setarmour /givegun /object /range", GetPlayerTitle(playerid));
}
return 1;
}
if(!strcmp(cmdtext, "/cmds", true) || !strcmp(cmdtext, "/commands", true) || !strcmp(cmdtext, "/befehle", true))
{
SendClientMessage(playerid, COLOR_GREY, "Allgemeine Befehle: /oldname /skills /notifi /fraktionen /treasury");
SendClientMessage(playerid, COLOR_GREY, "Allgemeine Befehle: /mutelist /derbylist /accept /ablehnen /irc /serverinfo /vertrag /leaders");
SendClientMessage(playerid, COLOR_GREY, "Allgemeine Befehle: /id /admins /dmarker /buygun /navi /pay /payday /pn /teamchange /account /showmoney");
SendClientMessage(playerid, COLOR_GREY, "Allgemeine Befehle: /verkaufen /tog /stog /rob /fahrzeugradio /contract /allegruppen /spawnchange /event");
SendClientMessage(playerid, COLOR_GREY, "Fahrzeug Befehle: /carlock /park /motor /fill /fahrzeug /eject");
if(playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID)
{
SendClientMessage(playerid, COLOR_GREY, "Haus Befehle: /hauskaufen /hausverkaufen /einmieten /ausmieten /hmanage /hsafe");
}
if(GetPlayerFaction(playerid))
{
SendClientMessage(playerid, COLOR_GREY, "Fraktions Befehle: /fbank /f /ffahrzeug /fmembers");
if(GetPlayerFactionRank(playerid) >= 11)
{
SendClientMessage(playerid, COLOR_GREY, "Fraktions Befehle: /finvite /funinivte /fgiverank /frespawncars");
}
if(GetPlayerFaction(playerid) == FACTION_HITMAN)
{
SendClientMessage(playerid, COLOR_GREY, "Hitman Befehle: /mask(e) /contracts /find");
}
else if(GetPlayerFaction(playerid) == FACTION_FBI)
{
SendClientMessage(playerid, COLOR_GREY, "FBI Befehle: /find /swat /swat (allow / disallow) /wanteds /swatlock /swatinstructor");
}
}
if(IsPlayerCop(playerid))
{
SendClientMessage(playerid, COLOR_GREY, "Staatsdiener Befehle: /equip /d /cuff /oarrest /tor /grab");
SendClientMessage(playerid, COLOR_GREY, "Staatsdiener Befehle: ~k~~CONVERSATION_YES~ um ein Ticket zu vergeben.");
if(GetPlayerLevelFromExp(playerInfo[playerid][pExp][TEAM_SFPD-1]) >= 15)
{
SendClientMessage(playerid, COLOR_GREY, "Staatsdiener Befehle: ~k~~VEHICLE_FIREWEAPON~ um ein Nagelband zu werfen (alle 2 Minuten).");
}
}
else if(playerInfo[playerid][pGroup])
{
SendClientMessage(playerid, COLOR_GREY, "Gruppen Befehle: /gruppe /invite /uninvite /giverank /einzahlen /auszahlen /g /gfahrzeug /gsafe | /heal");
SendClientMessage(playerid, COLOR_GREY, "Kriegs - Befehle: /kriegsstart | /invade (/conquer) /ctf");
}
return 1;
}
if(!strcmp(cmdtext, "/admins", true))
{
new string[128];
foreach(new i : Player)
{
if(!playerInfo[i][pAdmin]) continue;
format(string,sizeof(string),"* %s %s (%s) %s",GetPlayerTitle(i),GetPlayerNameEx(i),(playerInfo[i][pAdminDuty] ? ("im Dienst") : ("nicht im Dienst")),((IsPlayerAFK(i) || playerInfo[i][pIsSpectator]) ? ("(AFK)") : ("")));
SendClientMessage(playerid, COLOR_GREY, string);
}
return 1;
}
if(!strcmp(cmdtext, "/fill",true) || !strcmp(cmdtext, "/tanken", true))
{
new slotid = GetPlayerNearestGasStation(playerid, 7.5), vehicleid = GetPlayerVehicleID(playerid);
if(slotid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe besteht nicht die Möglichkeit, zu tanken.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_LESSRED,"Du kannst nur als Fahrer des Fahrzeuges tanken.");
new price = gasstationInfo[slotid][giLiterPrice] * (100 - floatround(vehicleData[vehicleid][viTank]));
if(price > GetPlayerMoney(playerid))
{
new string[128];
format(string,sizeof(string),"Eine Tankfüllung würde dich $%d kosten, welche du dir nicht leisten könntest.",price);
SendClientMessage(playerid, COLOR_LESSRED, string);
return 1;
}
new amount = floatround((100.0 - vehicleData[vehicleid][viTank]) * 0.08, floatround_ceil), bizid = GetPlayerClosestBusiness(playerid,20.0);
if(bizid != INVALID_BUSINESS_ID && entranceInfo[bizid][eiProds] < amount && entranceInfo[bizid][eiOwnerID] != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Die Tankstelle hat nicht genügend Produkte, um deinen Tank zu füllen.");
vehicleData[vehicleid][viRefueling] = true;
SetTimerEx("FillUp", 3000 + random(2000), 0, "ddd",price,vehicleid,playerid);
ChangeMotorState(vehicleid, false);
GameTextForPlayer(playerid, "Fahrzeug wird aufgetankt ..", 6000, 4);
return 1;
}
if(!strcmp(cmdtext, "/engine", true) || !strcmp(cmdtext, "/motor", true))
{
new vehicleid = GetPlayerVehicleID(playerid);
if(playerInfo[playerid][pWorld] != WORLD_NONE) return 1;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur als Fahrer den Motor an- und ausschalten.");
if(IsABuyableVehicle(vehicleid) || IsABicycle(vehicleid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug hat keinen Motor zum Starten.");
if(playerInfo[playerid][pTuningGarage]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Motor kann in der Tuninggarage nicht angemacht werden.");
if(vehicleData[vehicleid][viTank] == 0.0) return SendClientMessage(playerid, COLOR_LESSRED, "Der Motor kann ohne Kraftstoff nicht starten.");
if(!vehicleData[vehicleid][viMotor])
{
if(HasPlayerPermissionForVehicle(playerid, vehicleid))
{
if(vehicleData[vehicleid][viRefueling])
{
SendClientMessage(playerid, COLOR_YELLOW, "Du hast den Tankvorgang abgebrochen.");
vehicleData[vehicleid][viRefueling] = false;
}
if(playerInfo[playerid][pVehicleFueling])
{
SendClientMessage(playerid, COLOR_YELLOW, "Die Beladung deines Fahrzeuges wurde abgebrochen, die bisherigen (bezahlten) Materialien bleiben erhalten.");
CancelMatsProgress(playerid);
}
GameTextForPlayer(playerid,"~w~Motor ~g~angeschaltet",1500,4);
ChangeMotorState(vehicleid, true);
}
else
{
SendClientMessage(playerid, COLOR_LESSRED, "Du hast keinen Schlüssel für dieses Fahrzeug.");
}
}
else
{
GameTextForPlayer(playerid,"~w~Motor ~r~ausgeschaltet",1500,4);
ChangeMotorState(vehicleid, false);
}
return 1;
}
if(!strcmp(cmdtext, "/teamchange", true) || !strcmp(cmdtext, "/teamwechsel", true))
{
if(playerInfo[playerid][pLastHit] + 60 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst das Team erst in %s wechseln.",GetTimeString((playerInfo[playerid][pLastHit] + 60) - gettime(),3));
SendClientMessage(playerid, COLOR_LESSRED, string);
return 1;
}
if(IsPlayerInTutorial(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist während dem Tutorial blockiert.");
if(playerInfo[playerid][pWorld]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst in dieser Welt nicht dein Team wechseln.");
if(IsPlayerCop(playerid) && serverInfo[currentBankRobState]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst das Team nicht wechseln, wenn ein Bankraub am laufen ist.");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst in einem Fahrzeug nicht das Team wechseln.");
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst mit Wanteds nicht das Team wechseln.");
if(!playerInfo[playerid][pTeam]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Team.");
if(playerInfo[playerid][pJailTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Warte, bis du aus dem Gefängnis entlassen wirst.");
if(playerInfo[playerid][pFactionDuty]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist noch im Dienst deiner Fraktion. Melde dich vorher ab, um das Team zu wechseln (/duty oder /swat).");
if(serverTog[TOG_TEAMCHANGE][stValue]) return SendClientMessage(playerid, COLOR_LESSRED, "Die Teamchange Funktion wurde temporär von der Administration deaktiviert.");
if(playerInfo[playerid][pQuestID] != QUEST_NONE) return SendClientMessage(playerid, COLOR_LESSRED, "Beende erst deine Quest oder brech sie mit /quest cancel ab.");
if(playerInfo[playerid][pJobDuty]) OnPlayerCommandPerformed(playerid, "/duty", true);
SetPlayerInTeamChangeMenu(playerid);
return 1;
}
if(!strcmp(cmdtext, "/stats", true))
{
ShowStats(playerid, playerid);
return 1;
}
if(!strcmp(cmdtext, "/payday", true))
{
new longstr[512];
if(!playerInfo[playerid][pPayDayData][1]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hattest in der aktuellen Sitzung noch keinen Payday.");
format(longstr,sizeof(longstr),"%spayday\n---------------------\n\n{FFFFFF}Summe: +$%s\t\tEXP: +%d (%.1f / %.1f)",(playerInfo[playerid][pPayDayData][0] ? ("Neben") : ("Haupt")),FormatNumber(playerInfo[playerid][pPayDayData][1]),playerInfo[playerid][pPayDayData][2],GetPlayerExp(playerid),GetPlayerExpForLevel(playerInfo[playerid][pLevel]+1));
if(playerInfo[playerid][pPayDayData][3] && !IsPlayerCop(playerid))
{
format(longstr,sizeof(longstr),"%s\nDir wurde(n) %d Wanted(s) erlassen.",longstr,playerInfo[playerid][pPayDayData][3]);
}
if(playerInfo[playerid][pPayDayData][4] && IsPlayerInAnyGroup(playerid))
{
format(longstr, sizeof(longstr), "%s\nDu hast $%s als Belohnung für deine Aktivitäten in der Gruppe erhalten.",longstr, FormatNumber(playerInfo[playerid][pPayDayData][4]));
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Paydayinformationen",longstr,"Schließen","");
return 1;
}
if(!strcmp(cmdtext, "/heal", true))
{
if(!playerInfo[playerid][pGroup] || !IsValidGroupIndex(playerInfo[playerid][pGroupIndex])) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!groupInfo[playerInfo[playerid][pGroupIndex]][gUpgrade][GROUPUPGRADE_HEAL] && !IsPlayerHitmanAtBuyPoint(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe hat das Upgrade `Heal` noch nicht freigekauft.");
new nearhouseid = GetClosestHouse(playerid), interiorid = houseInfo[GetHouseSlotID(groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID])][hInteriorID];
if(playerInfo[playerid][pGroup] && (IsPlayerHitmanAtBuyPoint(playerid) || nearhouseid != INVALID_HOUSE_ID && houseInfo[nearhouseid][hSQLID] == groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID] || IsPlayerInRangeOfPoint(playerid, 10.0, interiorInfo[interiorid][iiPosX], interiorInfo[interiorid][iiPosY], interiorInfo[interiorid][iiPosZ]) && GetPlayerVirtualWorld(playerid) == groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID]))
{
if(playerInfo[playerid][pLastHit] + 25 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden etwas essen.",playerInfo[playerid][pLastHit] + 25 - gettime());
return 1;
}
new Float:health;
GetPlayerHealth(playerid, health);
if(health < 100)
{
new Float:givehealth = 100 - health, string[128];
if(GetPlayerMoney(playerid) < givehealth * 1) return SendClientMessage(playerid, COLOR_LESSRED, "Du besitzt nicht die benötigte Geldsumme.");
GivePlayerHealth(playerid, givehealth);
GivePlayerMoney(playerid, -floatround(givehealth) * 1, "HP");
format(string,sizeof(string),"* Du hast dich für $%d (+%.1f HP) geheilt.",floatround(givehealth) * 1, givehealth);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerPlaySound(playerid, SOUND_SHOP_BUY, 0.0,0.0,0.0);
}
}
return 1;
}
////// ANIMATIONEN //////
////// ----------- //////
if (strcmp("/animlist", cmdtext, true) == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"/handsup, /dance[1-4], /rap, /rap2, /rap3, /wankoff, /wank, /strip[1-7], /sexy[1-8], /bj[1-4], /cellin, /cellout, /lean, /piss, /follow");
SendClientMessage(playerid,COLOR_YELLOW,"/greet, /injured, /injured2, /hitch, /bitchslap, /cpr, /gsign1, /gsign2, /gsign3, /gsign4, /gsign5, /gift, /getup");
SendClientMessage(playerid,COLOR_YELLOW,"/chairsit, /stand, /slapped, /slapass, /drunk, /gwalk, /gwalk2, /mwalk, /fwalk, /celebrate, /celebrate2, /win, /win2");
SendClientMessage(playerid,COLOR_YELLOW,"/yes, /deal, /deal2, /thankyou, /invite1, /invite2, /sit, /scratch, /bomb, /getarrested, /laugh, /lookout, /robman");
SendClientMessage(playerid,COLOR_YELLOW,"/crossarms, /crossarms2, /crossarms3, /lay, /cover, /vomit, /eat, /wave, /crack, /crack2, /smokem, /smokef, /msit, /fsit");
SendClientMessage(playerid,COLOR_YELLOW,"/chat, /fucku, /taichi, /chairsit, /relax, /bat1, /bat2, /bat3, /bat4, /bat5, /nod, /cry1, /cry2, /chant, /carsmoke, /aim");
SendClientMessage(playerid,COLOR_YELLOW,"/gang1, /gang2, /gang3, /gang4, /gang5, /gang6, /gang7, /bed1, /bed2, /bed3, /bed4, /carsit, /carsit2, /stretch, /angry");
SendClientMessage(playerid,COLOR_YELLOW,"/kiss1, /kiss2, /kiss3, /kiss4, /kiss5, /kiss6, /kiss7, /kiss8, /exhausted, /ghand1, /ghand2, /ghand3, /ghand4, /ghand5");
SendClientMessage(playerid,COLOR_YELLOW,"/basket1, /basket2, /basket3, /basket4, /basket5, /basket6, /akick, /box, /cockgun");
SendClientMessage(playerid,COLOR_YELLOW,"/bar1, /bar2, /bar3, /bar4, /lay2, /liftup, /putdown, /die, /joint, /die2, /aim2");
SendClientMessage(playerid,COLOR_YELLOW,"/benddown, /checkout");
return 1;
}
if(playerInfo[playerid][pEatTime] + 5 > gettime() || playerInfo[playerid][pCuffed] || playerInfo[playerid][pHandsUp] || !GetPlayerControllable(playerid) || IsPlayerInAnyVehicle(playerid) || playerInfo[playerid][pLastUsedDrugs] + 5 > gettime()) return 1;
if(playerInfo[playerid][pFishingTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Während des Angelns sind keine Animationen möglich.");
else if(strcmp(cmdtext, "/handsup", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
return 1;
}
else if(!strcmp(cmdtext, "/bomb", true))
{
ApplyAnimation(playerid, "BOMBER", "BOM_PLANT_LOOP", 4.1, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext,"/stopanim",true) == 0)
{
ApplyAnimation(playerid, "CARRY", "crry_prtial", 2.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/dance", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
return 1;
}
else if(strcmp(cmdtext, "/dance2", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
return 1;
}
else if(strcmp(cmdtext, "/dance3", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
return 1;
}
else if(strcmp(cmdtext, "/dance4", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
return 1;
}
else if(strcmp(cmdtext, "/rap", true) == 0)
{
ApplyAnimation(playerid,"RAPPING","RAP_A_Loop",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/rap2", true) == 0)
{
ApplyAnimation(playerid,"RAPPING","RAP_B_Loop",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/rap3", true) == 0)
{
ApplyAnimation(playerid,"RAPPING","RAP_C_Loop",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/wankoff", true) == 0)
{
ApplyAnimation(playerid,"PAULNMAC","wank_in",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/wank", true) == 0)
{
ApplyAnimation(playerid,"PAULNMAC","wank_loop",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_A",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip2", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_B",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip3", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_C",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip4", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_D",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip5", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_E",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip6", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_F",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/strip7", true) == 0)
{
ApplyAnimation(playerid,"STRIP","strip_G",4.0,1,1,1,1,0);
return 1;
}
else if(strcmp(cmdtext, "/sexy", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKING_IDLEW",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy2", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKING_IDLEP",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy3", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKINGW",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy4", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKINGP",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy5", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKEDW",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy6", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKEDP",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy7", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKING_ENDW",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/sexy8", true) == 0)
{
ApplyAnimation(playerid,"SNM","SPANKING_ENDP",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/bj", true) == 0)
{
ApplyAnimation(playerid,"BLOWJOBZ","BJ_COUCH_START_P",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/bj2", true) == 0)
{
ApplyAnimation(playerid,"BLOWJOBZ","BJ_COUCH_START_W",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/bj3", true) == 0)
{
ApplyAnimation(playerid,"BLOWJOBZ","BJ_COUCH_LOOP_P",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/bj4", true) == 0)
{
ApplyAnimation(playerid,"BLOWJOBZ","BJ_COUCH_LOOP_W",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/cellin", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
return 1;
}
else if(strcmp(cmdtext, "/cellout", true) == 0)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
return 1;
}
else if(strcmp(cmdtext, "/lean", true) == 0)
{
ApplyAnimation(playerid,"GANGS","leanIDLE", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/piss", true) == 0)
{
SetPlayerSpecialAction(playerid, 68);
return 1;
}
else if(strcmp(cmdtext, "/follow", true) == 0)
{
ApplyAnimation(playerid,"WUZI","Wuzi_follow",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/greet", true) == 0)
{
ApplyAnimation(playerid,"WUZI","Wuzi_Greet_Wuzi",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/stand", true) == 0)
{
ApplyAnimation(playerid,"WUZI","Wuzi_stand_loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/injured2", true) == 0)
{
ApplyAnimation(playerid,"SWAT","gnstwall_injurd", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/hitch", true) == 0)
{
ApplyAnimation(playerid,"MISC","Hiker_Pose", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bitchslap", true) == 0)
{
ApplyAnimation(playerid,"MISC","bitchslap",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/cpr", true) == 0)
{
ApplyAnimation(playerid,"MEDIC","CPR", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/gsign1", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign1",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gsign2", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign2",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gsign3", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign3",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gsign4", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign4",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gsign5", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign5",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gift", true) == 0)
{
ApplyAnimation(playerid,"KISSING","gift_give",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/chairsit", true) == 0)
{
ApplyAnimation(playerid,"PED","SEAT_idle", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/injured", true) == 0) {
ApplyAnimation(playerid,"SWEET","Sweet_injuredloop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/slapped", true) == 0)
{
ApplyAnimation(playerid,"SWEET","ho_ass_slapped",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/slapass", true) == 0)
{
ApplyAnimation(playerid,"SWEET","sweet_ass_slap",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/drunk", true) == 0)
{
ApplyAnimation(playerid,"PED","WALK_DRUNK",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/skate", true) == 0)
{
ApplyAnimation(playerid,"SKATE","skate_run",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gwalk", true) == 0) {
ApplyAnimation(playerid,"PED","WALK_gang1",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/gwalk2", true) == 0)
{
ApplyAnimation(playerid,"PED","WALK_gang2",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/limp", true) == 0)
{
ApplyAnimation(playerid,"PED","WALK_old",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/eatsit", true) == 0)
{
ApplyAnimation(playerid,"FOOD","FF_Sit_Loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/celebrate", true) == 0)
{
ApplyAnimation(playerid,"benchpress","gym_bp_celebrate", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/win", true) == 0)
{
ApplyAnimation(playerid,"CASINO","cards_win", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/win2", true) == 0)
{
ApplyAnimation(playerid,"CASINO","Roulette_win", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/yes", true) == 0)
{
ApplyAnimation(playerid,"CLOTHES","CLO_Buy", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/deal2", true) == 0)
{
ApplyAnimation(playerid,"DEALER","DRUGS_BUY", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/thankyou", true) == 0)
{
ApplyAnimation(playerid,"FOOD","SHP_Thank", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/invite1", true) == 0)
{
ApplyAnimation(playerid,"GANGS","Invite_Yes",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/invite2", true) == 0)
{
ApplyAnimation(playerid,"GANGS","Invite_No",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/celebrate2", true) == 0)
{
ApplyAnimation(playerid,"GYMNASIUM","gym_tread_celebrate", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/sit", true) == 0)
{
ApplyAnimation(playerid,"INT_OFFICE","OFF_Sit_Type_Loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/scratch", true) == 0)
{
ApplyAnimation(playerid,"MISC","Scratchballs_01", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if (strcmp("/getarrested", cmdtext, true, 7) == 0)
{
ApplyAnimation(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1); // Gun Arrest
return 1;
}
else if (strcmp("/laugh", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh
return 1;
}
else if (strcmp("/lookout", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout
return 1;
}
else if (strcmp("/robman", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob
return 1;
}
else if (strcmp("/crossarms", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); // Arms crossed
return 1;
}
else if (strcmp("/crossarms2", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "DEALER", "DEALER_IDLE", 4.0, 0, 1, 1, 1, -1); // Arms crossed 2
return 1;
}
else if (strcmp("/crossarms3", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "DEALER", "DEALER_IDLE_01", 4.0, 0, 1, 1, 1, -1); // Arms crossed 3
return 1;
}
else if (strcmp("/lay", cmdtext, true, 6) == 0)
{
ApplyAnimation(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down
return 1;
}
else if (strcmp("/vomit", cmdtext, true) == 0)
{
ApplyAnimation(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit
return 1;
}
else if (strcmp("/eat", cmdtext, true) == 0) {
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
return 1;
}
else if (strcmp("/wave", cmdtext, true) == 0) {
ApplyAnimation(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave
return 1;
}
else if (strcmp("/deal", cmdtext, true) == 0) {
ApplyAnimation(playerid, "DEALER", "DEALER_DEAL", 3.0, 0, 0, 0, 0, 0); // Deal Drugs
return 1;
}
else if (strcmp("/crack", cmdtext, true, 6) == 0) {
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Dieing of Crack
return 1;
}
else if (strcmp("/smokem", cmdtext, true, 4) == 0) {
ApplyAnimation(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Smoke
return 1;
}
else if (strcmp("/smokef", cmdtext, true) == 0) {
ApplyAnimation(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Female Smoking
return 1;
}
else if (strcmp("/msit", cmdtext, true, 4) == 0) {
ApplyAnimation(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); // Male Sit
return 1;
}
else if (strcmp("/fsit", cmdtext, true, 4) == 0) {
ApplyAnimation(playerid,"BEACH", "ParkSit_W_loop", 4.0, 1, 0, 0, 0, 0); // Female Sit
return 1;
}
else if(strcmp(cmdtext, "/chat", true) == 0) {
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/fucku", true) == 0)
{
ApplyAnimation(playerid,"PED","fucku",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/taichi", true) == 0)
{
ApplyAnimation(playerid,"PARK","Tai_Chi_Loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/chairsit", true) == 0)
{
ApplyAnimation(playerid,"BAR","dnk_stndF_loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/relax", true) == 0)
{
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bat1", true) == 0)
{
ApplyAnimation(playerid,"BASEBALL","Bat_IDLE", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bat2", true) == 0)
{
ApplyAnimation(playerid,"BASEBALL","Bat_M", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bat3", true) == 0)
{
ApplyAnimation(playerid,"BASEBALL","BAT_PART", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bat4", true) == 0)
{
ApplyAnimation(playerid,"CRACK","Bbalbat_Idle_01", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bat5", true) == 0)
{
ApplyAnimation(playerid,"CRACK","Bbalbat_Idle_02", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/nod", true) == 0)
{
ApplyAnimation(playerid,"COP_AMBIENT","Coplook_nod",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang1", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkaa",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang2", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkba",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang3", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkca",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang4", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkcb",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang5", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkda",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang6", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkea",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/gang7", true) == 0)
{
ApplyAnimation(playerid,"GANGS","hndshkfa",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/cry1", true) == 0)
{
ApplyAnimation(playerid,"GRAVEYARD","mrnF_loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/cry2", true) == 0)
{
ApplyAnimation(playerid,"GRAVEYARD","mrnM_loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bed1", true) == 0)
{
ApplyAnimation(playerid,"INT_HOUSE","BED_In_L",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/bed2", true) == 0)
{
ApplyAnimation(playerid,"INT_HOUSE","BED_In_R",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/bed3", true) == 0)
{
ApplyAnimation(playerid,"INT_HOUSE","BED_Loop_L", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bed4", true) == 0)
{
ApplyAnimation(playerid,"INT_HOUSE","BED_Loop_R", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/kiss2", true) == 0)
{
ApplyAnimation(playerid,"BD_FIRE","Grlfrd_Kiss_03",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/kiss3", true) == 0)
{
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_01",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/kiss4", true) == 0)
{
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_02",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/kiss5", true) == 0)
{
ApplyAnimation(playerid,"KISSING","Grlfrd_Kiss_03",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/kiss6", true) == 0)
{
ApplyAnimation(playerid,"KISSING","Playa_Kiss_01",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/kiss7", true) == 0)
{
ApplyAnimation(playerid,"KISSING","Playa_Kiss_02",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/kiss8", true) == 0)
{
ApplyAnimation(playerid,"KISSING","Playa_Kiss_03",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/carsit", true) == 0)
{
ApplyAnimation(playerid,"CAR","Tap_hand", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/carsit2", true) == 0)
{
ApplyAnimation(playerid,"LOWRIDER","Sit_relaxed", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/fwalk", true) == 0)
{
ApplyAnimation(playerid,"ped","WOMAN_walksexy",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/mwalk", true) == 0)
{
ApplyAnimation(playerid,"ped","WALK_player",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/stretch", true) == 0)
{
ApplyAnimation(playerid,"PLAYIDLES","stretch",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/chant", true) == 0)
{
ApplyAnimation(playerid,"RIOT","RIOT_CHANT", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/angry", true) == 0)
{
ApplyAnimation(playerid,"RIOT","RIOT_ANGRY",4.0,0,0,0,0,0);
return 1;
}
else if (strcmp("/crack2", cmdtext, true, 6) == 0)
{
ApplyAnimation(playerid, "CRACK", "crckidle2", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/ghand1", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/ghand2", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign2LH",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/ghand3", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign3LH",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/ghand4", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign4LH",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/ghand5", true) == 0)
{
ApplyAnimation(playerid,"GHANDS","gsign5LH",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/exhausted", true) == 0)
{
ApplyAnimation(playerid,"FAT","IDLE_tired", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/carsmoke", true) == 0)
{
ApplyAnimation(playerid,"PED","Smoke_in_car", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/aim", true) == 0)
{
ApplyAnimation(playerid,"PED","gang_gunstand", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/getup", true) == 0)
{
ApplyAnimation(playerid,"PED","getup",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/basket1", true) == 0)
{
ApplyAnimation(playerid,"BSKTBALL","BBALL_def_loop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/basket2", true) == 0)
{
ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop", 4.0, 1, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/basket3", true) == 0)
{
ApplyAnimation(playerid,"BSKTBALL","BBALL_pickup",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/basket4", true) == 0)
{
ApplyAnimation(playerid,"BSKTBALL","BBALL_Jump_Shot",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/basket5", true) == 0)
{
ApplyAnimation(playerid,"BSKTBALL","BBALL_Dnk",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/basket6", true) == 0)
{
ApplyAnimation(playerid,"BSKTBALL","BBALL_run",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/akick", true) == 0)
{
ApplyAnimation(playerid,"FIGHT_E","FightKick",4.0,0,0,0,0,0);
return 1;
}
else if(strcmp(cmdtext, "/box", true) == 0)
{
ApplyAnimation(playerid,"GYMNASIUM","gym_shadowbox",4.1,1,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/cockgun", true) == 0)
{
ApplyAnimation(playerid, "SILENCED", "Silence_reload", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bar1", true) == 0)
{
ApplyAnimation(playerid, "BAR", "Barcustom_get", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bar2", true) == 0)
{
ApplyAnimation(playerid, "BAR", "Barcustom_order", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bar3", true) == 0)
{
ApplyAnimation(playerid, "BAR", "Barserve_give", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/bar4", true) == 0)
{
ApplyAnimation(playerid, "BAR", "Barserve_glass", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if (strcmp("/lay2", cmdtext, true, 6) == 0)
{
ApplyAnimation(playerid,"BEACH", "SitnWait_loop_W", 4.0, 1, 0, 0, 0, 0); // Lay down
return 1;
}
else if(strcmp(cmdtext, "/liftup", true) == 0)
{
ApplyAnimation(playerid, "CARRY", "liftup", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/putdown", true) == 0)
{
ApplyAnimation(playerid, "CARRY", "putdwn", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/joint", true) == 0)
{
ApplyAnimation(playerid,"GANGS","smkcig_prtl",4.0,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/die", true) == 0)
{
ApplyAnimation(playerid,"KNIFE","KILL_Knife_Ped_Die",4.1,0,1,1,1,1);
return 1;
}
else if(strcmp(cmdtext, "/shakehead", true) == 0)
{
ApplyAnimation(playerid, "MISC", "plyr_shkhead", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/shakehead", true) == 0)
{
ApplyAnimation(playerid, "MISC", "plyr_shkhead", 3.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/die2", true) == 0)
{
ApplyAnimation(playerid, "PARACHUTE", "FALL_skyDive_DIE", 4.0, 0, 1, 1, 1, -1);
return 1;
}
else if(strcmp(cmdtext, "/aim2", true) == 0)
{
ApplyAnimation(playerid, "SHOP", "SHP_Gun_Aim", 4.0, 0, 1, 1, 1, -1);
return 1;
}
else if(strcmp(cmdtext, "/benddown", true) == 0)
{
ApplyAnimation(playerid, "BAR", "Barserve_bottle", 4.0, 0, 0, 0, 0, 0);
return 1;
}
else if(strcmp(cmdtext, "/checkout", true) == 0)
{
ApplyAnimation(playerid, "GRAFFITI", "graffiti_Chkout", 4.0, 0, 0, 0, 0, 0);
return 1;
}
return success;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
AC_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(playerInfo[playerid][pWorld] == WORLD_DERBY && playerInfo[playerid][pDerbyVehicle] != INVALID_VEHICLE_ID && derbyInfo[0][diStartProcess] == 2)
{
KickPlayerAsDerbyDriver(playerid);
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
AC_OnPlayerStateChange(playerid, newstate, oldstate);
UpdateSpectator(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective;
vehicleInfo[vehicleid][viDriver] = playerid;
new slotid = GetVehicleSlotID(vehicleid);
if(IsABuyableVehicle(vehicleid) && !playerInfo[playerid][pAdminDuty])
{
new string[128];
format(string,sizeof(string),"Fahrzeugname: %s\nKaufpreis: $%s",GetVehicleName(vehicleid),FormatNumber(vehicleInfo[slotid][viPrice]));
ShowPlayerDialog(playerid, DIALOG_BUYVEH, DIALOG_STYLE_MSGBOX, "Fahrzeug kaufen (1 / 2)",string,"Weiter","Schließen");
return 1;
}
else if(slotid != INVALID_SLOT_ID && !playerInfo[playerid][pAdminDuty] && !HasPlayerPermissionForVehicle(playerid, vehicleid))
{
if(GetVehicleOwnerTyp(vehicleid) == OWNERTYP_TEAM)
{
new string[128];
format(string,sizeof(string),"Mit diesem Fahrzeug können nur Mitglieder des Teams %s ab Level %d fahren.",teamInfo[vehicleInfo[slotid][viOwnerID]][tiName],vehicleInfo[slotid][viRank]);
SendClientMessage(playerid, COLOR_YELLOW, string);
RemovePlayerFromVehicle(playerid);
return 1;
}
else if(GetVehicleOwnerTyp(vehicleid) == OWNERTYP_FACTION)
{
new string[128];
format(string,sizeof(string),"Mit diesem Fahrzeug können nur Mitglieder der Fraktion %s ab Rang %d fahren.",factionInfo[vehicleInfo[slotid][viOwnerID]][fiName],vehicleInfo[slotid][viRank]);
SendClientMessage(playerid, COLOR_YELLOW, string);
RemovePlayerFromVehicle(playerid);
return 1;
}
}
CreateVehicleTachoForPlayer(playerid);
GetVehiclePos(vehicleid,vehicleData[vehicleid][viCurrentPos][0],vehicleData[vehicleid][viCurrentPos][1],vehicleData[vehicleid][viCurrentPos][2]);
SetPlayerArmedWeapon(playerid, 0);
playerInfo[playerid][pLastVeh] = vehicleid;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
if(vehicleData[vehicleid][vehicleRadioID])
{
PlayAudioStreamForPlayer(playerid, vehicleRadio[vehicleData[vehicleid][vehicleRadioID] - 1][streamurl]);
}
if(GetVehicleMats(vehicleid) > 0)
{
SendClientMessageX(playerid, COLOR_GREEN, "Lagerraum: %d / %d Materialien.",GetVehicleMats(vehicleid),GetVehicleMatsCapacity(vehicleid));
}
if(IsABicycle(vehicleid) && HasPlayerPermissionForVehicle(playerid, vehicleid))
{
ChangeMotorState(vehicleid, true);
}
else if(!vehicleData[vehicleid][viMotor] && GetPlayerHighestLevel(playerid) < 3)
{
SendClientMessage(playerid, COLOR_YELLOW, "Du kannst den Motor mit /engine (/motor) oder der Taste N starten.");
}
if(!IsPlayerNPC(playerid) && IsPoliceVehicle(vehicleid))
{
if(playerInfo[playerid][pMission] == MISSION_PATROL)
{
playerInfo[playerid][pMissionTime] = 15;
playerInfo[playerid][pMissionStep] = 1;
playerInfo[playerid][pMissionRoute] = random(serverInfo[CountPatrolCPs]);
SendClientMessageX(playerid, COLOR_MISSION, "[ MISSION ] Du hast pro Checkpoint nur eine gewisse Zeit um ihn zu erreichen (Route: %d).", playerInfo[playerid][pMissionRoute]);
new id = playerInfo[playerid][pMissionRoute];
SetPlayerCheckpoint(playerid, patrolCheckpoints[id][pcX][0], patrolCheckpoints[id][pcY][0], patrolCheckpoints[id][pcZ][0], 3.0);
}
}
if(playerInfo[playerid][pQuestID] == QUEST_SPECIALVEH && GetVehicleModel(vehicleid) == actorCarJacker[playerInfo[playerid][pQuestItem]][0])
{
if(!IsPlayerOwnerFromVehicle(playerid, vehicleid) && !HasGroupPermissionForVehicle(vehicleid, playerInfo[playerid][pGroup]) && GetVehicleOwnerTyp(vehicleid) != OWNERTYP_JOB && GetVehicleOwnerTyp(vehicleid) != OWNERTYP_FACTION)
{
SendClientMessage(playerid, COLOR_YELLOW, "Hinweis: Das Fahrzeug wird derzeit gesucht. Gebe dieses Fahrzeug am Kran in San Fierro ab (Checkpoint gesetzt).");
SetPlayerCheckpoint(playerid, -1570.2537,97.8286,3.2560, 5.0);
}
}
if(playerInfo[playerid][pJobDuty] && vehicleInfo[slotid][viOwnerID] == _:playerInfo[playerid][pJobDuty] && vehicleInfo[slotid][viOwnerTyp] == OWNERTYP_JOB)
{
if(vehicleInfo[slotid][viTempOwnerID] == playerid)
{
vehicleData[vehicleid][viLocked] = true;
foreach(new i : Player)
{
SetVehicleParamsForPlayerEx(vehicleid,i, false, vehicleData[vehicleid][viLocked]);
}
}
playerInfo[playerid][pJobPlayerState] = PLAYER_STATE_DRIVER;
playerInfo[playerid][pJobLeaveTime] = 0;
switch(playerInfo[playerid][pJobDuty])
{
case JOB_BAUER:
{
if(playerInfo[playerid][pJobSlot] != INVALID_SLOT_ID && vehicleInfo[slotid][viTempOwnerID] == playerid)
{
if(playerInfo[playerid][pJobStep] == 1 || playerInfo[playerid][pJobStep] == 4)
{
SendClientMessage(playerid, COLOR_JOB, "[ JOB ] Koppel deinen Anhänger mit ~k~~VEHICLE_FIREWEAPON_ALT~ an.");
SendClientMessageX(playerid, COLOR_JOB,"[ JOB ] Dir wurde das Feld %d zugewiesen. Es wurde für Dich markiert.",playerInfo[playerid][pJobSlot] + 1);
SetPlayerCheckpoint(playerid, farmerZone[playerInfo[playerid][pJobSlot]][fzMinX], farmerZone[playerInfo[playerid][pJobSlot]][fzMinY], 129.0, 7.0);
if(playerInfo[playerid][pJobStep] == 4)
{
new Float:pos[3];
foreach(new i : jobObjects[playerid])
{
if(!IsValidDynamicObject(playerInfo[playerid][pJobObjects][i])) continue;
GetDynamicObjectPos(playerInfo[playerid][pJobObjects][i], pos[0], pos[1], pos[2]);
playerInfo[playerid][pJobPickups][i] = CreateDynamicPickup(1212,14, pos[0], pos[1], pos[2]);
}
}
playerInfo[playerid][pJobStep]++;
UpdatePlayerJobTextDraw(playerid);
}
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_LESSRED, "Dir wurde dieses Fahrzeug nicht zugewiesen.");
}
}
case JOB_PRODDRIVER:
{
SendClientMessageX(playerid, COLOR_GREEN,"Lagerraum: %d / 100 Produkte", vehicleData[vehicleid][viProducts]);
if(playerInfo[playerid][pJobStep] == 1)
{
SetPlayerCheckpoint(playerid, 134.4319,-285.1986,1.5781, 10.0);
SendClientMessage(playerid, COLOR_YELLOW, "[ JOB ] Fülle nun dein Yankee mit Waren, um diese dann an Geschäften");
SendClientMessage(playerid, COLOR_YELLOW, "[ JOB ] für ein Entgeld zu verkaufen. Eine Liste mit allen Geschäften");
SendClientMessage(playerid, COLOR_YELLOW, "[ JOB ] in San Andreas findest du unter /bizlist. Viel Erfolg!");
playerInfo[playerid][pJobStep] = 2;
}
}
}
}
}
else if(newstate == PLAYER_STATE_PASSENGER)
{
new Weapon[2];
GetPlayerWeaponData(playerid, 4, Weapon[0], Weapon[1]);
SetPlayerArmedWeapon(playerid, Weapon[0]);
}
else if(oldstate == PLAYER_STATE_PASSENGER || oldstate == PLAYER_STATE_DRIVER)
{
if(playerInfo[playerid][pTuningGarage])
{
SendClientMessage(playerid, COLOR_RED, "Du wurdest aus der Tuning - Garage rausgeworfen, weil du das Fahrzeug verlassen hast.");
RemoveVehicleTuning(playerInfo[playerid][pLastVeh], playerInfo[playerid][pTuningGarage]);
RemovePlayerFromTuningGarage(playerid);
return 1;
}
new lastvehid = playerInfo[playerid][pLastVeh];
if(playerInfo[playerid][pJobDuty] && vehicleInfo[GetVehicleSlotID(lastvehid)][viOwnerID] == _:playerInfo[playerid][pJobDuty] && vehicleInfo[GetVehicleSlotID(lastvehid)][viOwnerTyp] == OWNERTYP_JOB)
{
SendClientMessage(playerid, COLOR_RED, "[ JOB ] Steig in dein Fahrzeug innerhalb 60 Sekunden ein, oder du wirst gefeuert.");
playerInfo[playerid][pJobLeaveTime] = 60;
}
if(playerInfo[playerid][pMissionStep] && playerInfo[playerid][pMission] != INVALID_MISSION_ID)
{
CancelPlayerMission(playerid, 1);
}
if(IsABicycle(playerInfo[playerid][pLastVeh]) && HasPlayerPermissionForVehicle(playerid, playerInfo[playerid][pLastVeh]))
{
ChangeMotorState(playerInfo[playerid][pLastVeh], false);
}
if(newstate == PLAYER_STATE_ONFOOT && playerInfo[playerid][pCuffed])
{
new string[128];
GameTextForPlayer(playerid, "~g~Handschellen geknackt", 2500, 3);
format(string,sizeof(string),"Verbrecher %s hat seine Handschellen aufgeknackt.",GetPlayerNameEx(playerid));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
TogglePlayerControllable(playerid, true);
playerInfo[playerid][pCuffed] = 0;
}
if(vehicleData[playerInfo[playerid][pLastVeh]][vehicleRadioID])
{
StopAudioStreamForPlayer(playerid);
}
if(playerInfo[playerid][pVehicleFueling])
{
SendClientMessage(playerid, COLOR_YELLOW, "Die Beladung deines Fahrzeuges wurde abgebrochen, die bisherigen (bezahlten) Materialien bleiben erhalten.");
CancelMatsProgress(playerid);
}
vehicleData[playerInfo[playerid][pAttachTrailerID]][viAttached] = false;
playerInfo[playerid][pAttachTrailerID] = 0;
}
if(oldstate == PLAYER_STATE_DRIVER)
{
new vehicleid = playerInfo[playerid][pLastVeh],engine,lights,alarm,doors,bonnet,boot,objective;
DeleteVehicleTachoForPlayer(playerid);
vehicleInfo[playerInfo[playerid][pLastVeh]][viDriver] = INVALID_PLAYER_ID;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
if(vehicleData[vehicleid][viLocked] && GetVehicleOwnerTyp(vehicleid) != OWNERTYP_PERSON && !IsPlayerNPC(playerid))
{
vehicleData[vehicleid][viLocked] = false;
foreach(new i : Player)
{
SetVehicleParamsForPlayerEx(vehicleid,i, false, false);
}
}
DestoryUnderCoverLightsFromVeh(vehicleid);
if(playerInfo[playerid][pWorld] == WORLD_DERBY && playerInfo[playerid][pDerbyVehicle] != INVALID_VEHICLE_ID)
{
KickPlayerAsDerbyDriver(playerid);
}
}
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPlayerInRangeOfPoint(playerid,3.5,-2115.4458,0.8678,35.0998) && !GetPlayerVirtualWorld(playerid))
{
ShowPlayerHintLine(playerid, "~y~Druecke ~k~~SNEAK_ABOUT~, um die Tuninggarage zu betreten.", 2500);
return 1;
}
if(playerInfo[playerid][pQuestID] == QUEST_SPECIALVEH)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1570.2537,97.8286,3.2560) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(actorCarJacker[playerInfo[playerid][pQuestItem]][0] == GetVehicleModel(GetPlayerVehicleID(playerid)))
{
new Float:vehicleHealth, vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid, vehicleHealth);
if(vehicleHealth < 850) return SendClientMessage(playerid, COLOR_LESSRED, "Das Fahrzeug ist zu beschädigt. Repariere es, sonst kannst du es nicht verkaufen.");
playerInfo[playerid][pQuestMoney] = floatround(float(playerInfo[playerid][pQuestMoney]) * (vehicleHealth / 1000.0));
SetVehicleToRespawn(vehicleid);
CancelPlayerQuest(playerid, true);
}
}
}
if(playerInfo[playerid][pMission] == MISSION_PATROL)
{
new id = playerInfo[playerid][pMissionStep], routeid = playerInfo[playerid][pMissionRoute];
if(playerInfo[playerid][pMissionStep] >= patrolCheckpoints[routeid][pcCheckpoints])
{
CancelPlayerMission(playerid, 2);
return 1;
}
new str[18];
format(str, 18, "%d + ~g~%d", playerInfo[playerid][pMissionTime], patrolCheckpoints[routeid][pcTime][id]);
GameTextForPlayer(playerid, str, 3000, 6);
playerInfo[playerid][pMissionTime] += patrolCheckpoints[routeid][pcTime][id];
SetPlayerCheckpoint(playerid, patrolCheckpoints[routeid][pcX][id], patrolCheckpoints[routeid][pcY][id], patrolCheckpoints[routeid][pcZ][id], 3.0);
playerInfo[playerid][pMissionStep]++;
return 1;
}
if(playerInfo[playerid][pTutorialStep])
{
new step = playerInfo[playerid][pTutorialStep] - 2;
if(IsPlayerInRangeOfPoint(playerid, 4.0, tutorialInfo[step][tiPos][0], tutorialInfo[step][tiPos][1], tutorialInfo[step][tiPos][2]))
{
InterpolateCameraPos(playerid, tutorialInfo[step][tiCameraLookAt][0], tutorialInfo[step][tiCameraLookAt][1], tutorialInfo[step][tiCameraLookAt][2], tutorialInfo[step][tiCameraPos][0], tutorialInfo[step][tiCameraPos][1], tutorialInfo[step][tiCameraPos][2],5000,CAMERA_MOVE);
InterpolateCameraLookAt(playerid, tutorialInfo[step][tiCameraLookAt][0], tutorialInfo[step][tiCameraLookAt][1], tutorialInfo[step][tiCameraLookAt][2], tutorialInfo[step][tiCameraLookAt][0], tutorialInfo[step][tiCameraLookAt][1], tutorialInfo[step][tiCameraLookAt][2],5000,CAMERA_MOVE);
TextDrawShowForPlayer(playerid, tutorialTextDraw[step][0]);
TextDrawShowForPlayer(playerid, tutorialTextDraw[step][1]);
TextDrawShowForPlayer(playerid, tutorialTextDrawStatic[0]);
TextDrawShowForPlayer(playerid, tutorialTextDrawStatic[1]);
TogglePlayerControllable(playerid, false);
playerInfo[playerid][pSeeTutorial] = true;
playerInfo[playerid][pTutorialTime] = 0;
DisablePlayerCheckpoint(playerid);
return 1;
}
}
if(playerInfo[playerid][pJobDuty])
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1113.8020,-1117.4077,128.2656) && playerInfo[playerid][pJobStep] == 3 && playerInfo[playerid][pJobDuty] == JOB_BAUER)
{
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
GameTextForPlayer(playerid, "~r~Dein Pflug fehlt", 4000, 4);
return 1;
}
DestroyJobVehicle(playerInfo[playerid][pJobVehicle], playerInfo[playerid][pJobTrailer]);
SearchPlayerJobVehicle(playerid, JOB_BAUER, 531);
playerInfo[playerid][pJobStep] = 4;
SendClientMessage(playerid, COLOR_JOB, "[ JOB ] Für das weitere Verfahren (ernten) wurde dir ein neues Fahrzeug zugewiesen.");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1034.5833,-1174.8440,129.2188) && playerInfo[playerid][pJobStep] == 6 && playerInfo[playerid][pJobDuty] == JOB_BAUER)
{
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
GameTextForPlayer(playerid, "~w~Du kannst deine Ernte ~r~ohne Pflug~w~ nicht abgeben.", 4000, 4);
return 1;
}
new money = playerInfo[playerid][pJobMaxPoints] * serverInfo[plantPrice];
GivePlayerMoney(playerid, money, "Job: Farmer");
GivePlayerSkill(playerid, SKILL_FARMER);
GiveSiloValue(0, playerInfo[playerid][pJobMaxPoints]);
SendClientMessageX(playerid, COLOR_JOB, "[ JOB ] Die Abgabe war erfolgreich. {72C230}Deine Entlohnung beträgt: $%s",FormatNumber(money));
playerInfo[playerid][pJobPlayerState] = PLAYER_STATE_ONFOOT;
OnPlayerCommandPerformed(playerid, "/duty", true);
return 1;
}
}
DisablePlayerCheckpoint(playerid);
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(!playerInfo[playerid][pLoggedIn] && !IsPlayerNPC(playerid)) return 0;
return 1;
}
public OnDynamicObjectMoved(objectid)
{
new modelid = Streamer_GetIntData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_MODEL_ID);
if(modelid == 2004)
{
foreach(new i : Houses)
{
if(objectid != houseInfo[i][hDoorObj]) continue;
new playerid = houseInfo[i][hRobber], index = houseInfo[i][hInteriorID];
ClearAnimations(playerid);
SetPlayerPos(playerid, houseSafe[index][hsPlayer][0], houseSafe[index][hsPlayer][1], houseSafe[index][hsPlayer][2]);
SetPlayerFacingAngle(playerid, houseSafe[index][hsPlayer][3]);
ApplyAnimation(playerid, "ROB_BANK", "CAT_SAFE_ROB", 4.0, 1, 0, 0, 1, 0);
houseInfo[i][hRobStep] = 3;
playerInfo[playerid][pHouseRobTextDraw][0] = CreatePlayerTextDraw(playerid,250.000000, 154.000000, "_");
PlayerTextDrawBackgroundColor(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 255);
PlayerTextDrawFont(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawLetterSize(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 0.500000, 1.000000);
PlayerTextDrawColor(playerid,playerInfo[playerid][pHouseRobTextDraw][0], -1);
PlayerTextDrawSetOutline(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 0);
PlayerTextDrawSetProportional(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawSetShadow(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawUseBox(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawBoxColor(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 1487652704);
PlayerTextDrawTextSize(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 248.000000, 10.000000);
PlayerTextDrawShow(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
playerInfo[playerid][pHouseRobTextDraw][1] = CreatePlayerTextDraw(playerid,273.000000, 128.000000, "$0");
PlayerTextDrawBackgroundColor(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 255);
PlayerTextDrawFont(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 3);
PlayerTextDrawLetterSize(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 0.699999, 2.000000);
PlayerTextDrawColor(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 1422012671);
PlayerTextDrawSetOutline(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 0);
PlayerTextDrawSetProportional(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 1);
PlayerTextDrawSetShadow(playerid,playerInfo[playerid][pHouseRobTextDraw][1], 1);
PlayerTextDrawShow(playerid, playerInfo[playerid][pHouseRobTextDraw][1]);
TextDrawShowForPlayer(playerid, houseRob_Crack[1]);
TextDrawShowForPlayer(playerid, houseRob_Crack[2]);
for(new x = 0; x < 3; x++)
TextDrawShowForPlayer(playerid, houseRob_Rob[x]);
return 1;
}
}
for(new i = 0; i < sizeof(drugMaschine); i++)
{
if(drugMaschine[i][dmObjID][1] == objectid)
{
new Float:fPos[3];
if(drugMaschine[i][dmStep] < 3)
{
GetDynamicObjectPos(drugMaschine[i][dmObjID][1], fPos[0], fPos[1], fPos[2]);
DestroyDynamicObject(drugMaschine[i][dmObjID][1]);
drugMaschine[i][dmObjID][1] = INVALID_OBJECT_ID;
}
switch(drugMaschine[i][dmStep])
{
case 1:
{
drugMaschine[i][dmObjID][1] = CreateDynamicObject(675, fPos[0], fPos[1], fPos[2], 0.0,0.0,0.0);
new Float:xx = drugMaschine[i][dmX] - (14.0 * floatsin(- (drugMaschine[i][dmRZ] - 360.0), degrees)),
Float:yy = drugMaschine[i][dmY] - (14.0 * floatcos(- (drugMaschine[i][dmRZ] - 360.0), degrees));
MoveDynamicObject(drugMaschine[i][dmObjID][1], xx, yy, drugMaschine[i][dmZ], 0.3);
drugMaschine[i][dmObjID][3] = CreateDynamicObject(2780,xx,yy,drugMaschine[i][dmZ] - 4.1,drugMaschine[i][dmRX],drugMaschine[i][dmRY],drugMaschine[i][dmRZ]);
drugMaschine[i][dmStep] = 2;
}
case 2:
{
DestroyDynamicObject(drugMaschine[i][dmObjID][2]);
drugMaschine[i][dmObjID][1] = CreateDynamicObject(1279, fPos[0], fPos[1], fPos[2]-0.6, drugMaschine[i][dmRX],drugMaschine[i][dmRY],drugMaschine[i][dmRZ]);
new Float:xx = drugMaschine[i][dmX] - (9.0 * floatsin(- (drugMaschine[i][dmRZ] - 360.0), degrees)),
Float:yy = drugMaschine[i][dmY] - (9.0 * floatcos(- (drugMaschine[i][dmRZ] - 360.0), degrees));
MoveDynamicObject(drugMaschine[i][dmObjID][1], xx, yy, drugMaschine[i][dmZ]-0.6, 0.3);
drugMaschine[i][dmStep] = 3;
}
case 3:
{
new Float:x, Float:y, Float:z;
GetDynamicObjectPos(drugMaschine[i][dmObjID][3], x, y, z);
foreach(new playerid : Player)
{
if(!IsPlayerInRangeOfPoint(playerid, 15.0, x, y, z)) continue;
GameTextForPlayer(playerid, "~r~Drogen sind fertig~n~~w~(~k~~CONVERSATION_NO~)", 5000, 4);
PlayerPlaySound(playerid, SOUND_PART_MISSION_COMPLETE, x, y, z);
}
drugMaschine[i][dmEndTime] = gettime();
DestroyDynamicObject(drugMaschine[i][dmObjID][3]);
drugMaschine[i][dmStep] = 4;
}
}
}
}
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
{
//new i = index - 7;
if(response)
{
SendClientMessage(playerid, COLOR_GREEN, "Deine Anpassung wurde übernommen.");
playerInfo[playerid][pAccessoirPosX][ index - 7 ] = fOffsetX;
playerInfo[playerid][pAccessoirPosY][ index - 7 ] = fOffsetY;
playerInfo[playerid][pAccessoirPosZ][ index - 7 ] = fOffsetZ;
playerInfo[playerid][pAccessoirRotX][ index - 7 ] = fRotX;
playerInfo[playerid][pAccessoirRotY][ index - 7 ] = fRotY;
playerInfo[playerid][pAccessoirRotZ][ index - 7 ] = fRotZ;
//RemovePlayerAttachedObject(playerid, index);
//SetPlayerAttachedObject(playerid,index,playerInfo[playerid][pAccessoirID][i], 2, playerInfo[playerid][pAccessoirPosX][i],playerInfo[playerid][pAccessoirPosY][i],playerInfo[playerid][pAccessoirPosZ][i],playerInfo[playerid][pAccessoirRotX][i],playerInfo[playerid][pAccessoirRotY][i],playerInfo[playerid][pAccessoirRotZ][i],playerInfo[playerid][pAccessoirScaleX][i],playerInfo[playerid][pAccessoirScaleY][i],playerInfo[playerid][pAccessoirScaleZ][i]);
}
else
{
SendClientMessage(playerid, COLOR_LESSRED, "Deine Anpassung wurde nicht übernommen.");
//RemovePlayerAttachedObject(playerid, index);
//SetPlayerAttachedObject(playerid,index,playerInfo[playerid][pAccessoirID][i], 2, playerInfo[playerid][pAccessoirPosX][i],playerInfo[playerid][pAccessoirPosY][i],playerInfo[playerid][pAccessoirPosZ][i],playerInfo[playerid][pAccessoirRotX][i],playerInfo[playerid][pAccessoirRotY][i],playerInfo[playerid][pAccessoirRotZ][i],playerInfo[playerid][pAccessoirScaleX][i],playerInfo[playerid][pAccessoirScaleY][i],playerInfo[playerid][pAccessoirScaleZ][i]);
}
printf("OnPlayerEditAttachedObject(%d, %d, %d, %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f)",playerid, response, index, modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
return 1;
}
public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
if(response == EDIT_RESPONSE_FINAL)
{
printf("%f,%f,%f,%f,%f,%f",x,y,z,rx,ry,rz);
}
if(response != 2)
{
new slotid = IsASpecialObject(objectid);
if(slotid != -1)
{
SetDynamicObjectPos(objectid, x, y, z);
SetDynamicObjectRot(objectid, rx, ry, rz);
objectInfo[slotid][oiPos][0] = x; objectInfo[slotid][oiPos][1] = y; objectInfo[slotid][oiPos][2] = z;
objectInfo[slotid][oiPos][3] = rx; objectInfo[slotid][oiPos][4] = ry; objectInfo[slotid][oiPos][5] = rz;
}
}
return 1;
}
public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z)
{
new reason = DialogTempData[playerid][MAX_PLAYERS-2];
if(reason == 1)
{
if(IsASpecialObject(objectid) == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Dies ist kein administratives Objekt.");
EditDynamicObject(playerid, objectid);
}
else if(reason == 2)
{
new slotid = IsASpecialObject(objectid);
if(slotid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Dies ist kein administratives Objekt.");
DestroyDynamicObject(objectid);
objectInfo[slotid][oiObjID] = -1;
}
return 1;
}
public RespawnPickup(typ, Float:x,Float:y,Float:z, index, index2)
{
switch(typ)
{
case 1:
{
playerInfo[index][pJobPickups][index2] = CreateDynamicPickup(1212,14, x, y, z);
}
}
return 1;
}
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
if(pickupid == serverInfo[HitmanSkinChange])
{
if(GetPlayerFaction(playerid) != FACTION_HITMAN || GetPlayerFactionRank(playerid) < 1) return 1;
SetPlayerSkin(playerid, skinInfo[TEAM_ZIVI][random(270)]);
TogglePlayerControllable(playerid, true);
return 1;
}
if(playerInfo[playerid][pJobDuty] == JOB_BAUER && playerInfo[playerid][pJobStep] == 5)
{
new next, vehicleid = GetPlayerVehicleID(playerid);
foreach(new i : jobObjects[playerid])
{
if(playerInfo[playerid][pJobPickups][i] != pickupid) continue;
if(!IsTrailerAttachedToVehicle(vehicleid))
{
new Float:pos[3];
GetDynamicPickupPos(playerInfo[playerid][pJobPickups][i], pos[0], pos[1], pos[2]);
DestroyDynamicPickup(playerInfo[playerid][pJobPickups][i]);
SetTimerEx("RespawnPickup", 2000, false, "dfffdd", 1, pos[0], pos[1], pos[2], playerid, i);
return 1;
}
DestroyDynamicObject(playerInfo[playerid][pJobObjects][i]);
DestroyDynamicPickup(playerInfo[playerid][pJobPickups][i]);
playerInfo[playerid][pJobObjects][i] = -1;
playerInfo[playerid][pJobPickups][i] = -1;
playerInfo[playerid][pJobPoints]--;
UpdatePlayerJobTextDraw(playerid);
Iter_SafeRemove(jobObjects[playerid], i, next);
i = next;
break;
}
if(Iter_Count(jobObjects[playerid]) == 0)
{
playerInfo[playerid][pJobStep] = 6;
GameTextForPlayer(playerid, "~h~~y~Status: Ernte beendet", 5000, 4);
SendClientMessage(playerid, COLOR_JOB, "[ JOB ] Deine Ernte ist komplett. Fahre nun zum Abgabepunkt, um die Ernte abzugeben.");
SetPlayerCheckpoint(playerid, -1034.5833,-1174.8440,129.2188, 5.0);
}
return 1;
}
for(new p = 0; p < sizeof(serverInfo[ArrestPickup]); p++)
{
if(pickupid == serverInfo[ArrestPickup][p])
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER || !IsPlayerCop(playerid)) return 1;
new vehicleid = GetPlayerVehicleID(playerid), string[128];
foreach(new i : Player)
{
if(!GetPlayerWantedLevel(i) || !IsPlayerInVehicle(i, vehicleid)) continue;
format(string,sizeof(string),"* Polizist %s hat Verbrecher %s festgenommen.",GetPlayerNameEx(playerid),GetPlayerNameEx(i));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
SetPlayerInJail(i, playerid, 0);
}
return 1;
}
}
for(new i = 0, j = sizeof(repairPoints); i < j; i++)
{
if(pickupid == serverInfo[RepairPickup][i])
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER || (!IsPlayerCop(playerid) && repairPoints[i][0] == REPAIR_COP || !IsAPlane(GetPlayerVehicleID(playerid)) && repairPoints[i][0] == REPAIR_PLANE)) return 1;
new vehicleid = GetPlayerVehicleID(playerid);
RepairVehicle(vehicleid);
SetVehicleHealth(vehicleid, vehicleInfo[GetVehicleSlotID(vehicleid)][viMaxHealth]);
return 1;
}
}
for(new i = 0, j = sizeof(moneyDeposition); i < j; i++)
{
if(pickupid == MoneyDepositionPickup[i] && IsPlayerAttachedObjectSlotUsed(playerid, 1) && !IsPlayerCop(playerid))
{
SendClientMessageX(playerid, COLOR_YELLOW, "* In diesem Geldbeutel befanden sich $%s und %s EXP.", FormatNumber(playerInfo[playerid][pMoneyBagAmount]), FormatNumber(playerInfo[playerid][pMoneyBagExp]));
new str[128];
format(str, 128, "[ INFO ] %s hat seinen Raubzug erfolgreich beendet und $%s + %s EXP verdient.", GetPlayerNameEx(playerid), FormatNumber(playerInfo[playerid][pMoneyBagAmount]), FormatNumber(playerInfo[playerid][pMoneyBagExp]));
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
GivePlayerExp(playerid, playerInfo[playerid][pMoneyBagExp], _, "Geldbeutelabgabe");
GivePlayerMoney(playerid, playerInfo[playerid][pMoneyBagAmount], "Geldbeutelabgabe");
RemovePlayerAttachedObject(playerid, 1);
playerInfo[playerid][pMoneyBag] = 0;
playerInfo[playerid][pMoneyBagAmount] = 0;
playerInfo[playerid][pMoneyBagExp] = 0;
SaveAllServerData();
return 1;
}
}
for(new i = 0; i < serverInfo[currentEntrances]; i++)
{
if(playerInfo[playerid][pQuestID] == QUEST_DELIVERBIZPAKET && playerInfo[playerid][pQuestItem] == i)
{
CancelPlayerQuest(playerid, true);
}
if(pickupid == entrancePickup[i][0])
{
ShowPlayerHintLine(playerid, "~y~~k~~VEHICLE_ENTER_EXIT~, um das Gebaeude zu betreten", 3000);
return 1;
}
else if(pickupid == entrancePickup[i][1])
{
ShowPlayerHintLine(playerid, "~y~~k~~VEHICLE_ENTER_EXIT~, um das Gebaeude zu verlassen", 3000);
return 1;
}
}
foreach(new i : Houses)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, houseInfo[i][hPos][0], houseInfo[i][hPos][1], houseInfo[i][hPos][2])) continue;
if(playerInfo[playerid][pQuestID] == QUEST_DELIVERHOUSEPAKET && playerInfo[playerid][pQuestItem] == i)
{
CancelPlayerQuest(playerid, true);
return 1;
}
}
foreach(new i : MoneyDrop)
{
if(pickupid == moneyDrop[i][mpPickupID])
{
new str[84];
format(str, 84, "~g~Ereignis: ~w~Du hast ~y~~h~$%d~w~ von %s aufgehoben", moneyDrop[i][mpMoney], moneyDrop[i][mpName]);
ShowPlayerHintLine(playerid, str, 2500);
GivePlayerMoney(playerid, moneyDrop[i][mpPickupID],"Todespickup");
DestroyMoneyDrop(i, i);
break;
}
}
PickupPlayerWeaponPickup(playerid, pickupid);
return 1;
}
public OnEnterExitModShop(playerid,enterexit,interiorid)
{
AC_OnEnterExitModShop(playerid,enterexit,interiorid);
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
if(AC_OnVehicleMod(playerid, vehicleid, componentid)) return 0;
new slotid = GetVehicleSlotID(vehicleid);
if(slotid != INVALID_SLOT_ID)
{
if(HasPlayerPermissionForVehicle(playerid, vehicleid) && (GetVehicleOwnerTyp(vehicleid) == OWNERTYP_PERSON || GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP && HasGroupPlayerPermissionForThis(playerid, PERM_VEHTUNING)))
{
vehicleInfo[slotid][viTuning][GetVehicleComponentType(componentid)] = componentid;
return 1;
}
SetTimerEx("RemoveVehicleComponentEx", 300, false, "dd", vehicleid, componentid);
}
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
new slotid = GetVehicleSlotID(vehicleid);
if(slotid != INVALID_SLOT_ID)
{
if(HasPlayerPermissionForVehicle(playerid, vehicleid) && (GetVehicleOwnerTyp(vehicleid) == OWNERTYP_PERSON || GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP && HasGroupPlayerPermissionForThis(playerid, PERM_VEHTUNING)))
{
vehicleInfo[slotid][viPaintjobID] = paintjobid;
return 1;
}
SetTimerEx("ChangeVehiclePaintjobEx", 300, false, "dd", vehicleid, vehicleInfo[slotid][viPaintjobID]);
}
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
new slotid = GetVehicleSlotID(vehicleid);
if(slotid != INVALID_SLOT_ID)
{
if(HasPlayerPermissionForVehicle(playerid, vehicleid) && (GetVehicleOwnerTyp(vehicleid) == OWNERTYP_PERSON || GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP && HasGroupPlayerPermissionForThis(playerid, PERM_VEHTUNING)))
{
vehicleInfo[slotid][viColor][0] = color1;
vehicleInfo[slotid][viColor][1] = color2;
return 1;
}
SetTimerEx("ChangeVehicleColorEx", 300, false, "ddd", vehicleid, vehicleInfo[slotid][viColor][0],vehicleInfo[slotid][viColor][1]);
}
return 1;
}
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z)
{
if(vehicleid == serverInfo[BankTransporterVeh])
{
new Float:Pos[3];
GetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
SetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
return 0;
}
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
if(playerInfo[playerid][pIsSpectated])
{
foreach(new i : Player)
{
if(playerInfo[i][pSpectateID] != playerid) continue;
SetPlayerInterior(i, newinteriorid);
SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(playerid));
PlayerSpectatePlayer(i, playerid);
}
}
return 1;
}
public OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z)
{
if(!IsPlayerCop(playerid))
{
for(new i = 0, j = sizeof(atmInfo); i < j; i++)
{
if(objectid == atmInfo[i][aiObjKasseID])
{
if(CountTeamMember(TEAM_SFPD,false) < NEEDED_ATM_COPS)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden %d Cops benötigt, um einen ATM - Raub zu starten. Es sind %d Online.",NEEDED_ATM_COPS,CountTeamMember(TEAM_SFPD,false));
return 1;
}
atmInfo[i][aiLastHit] = gettime();
atmInfo[i][aiKasseHealth] -= GetWeaponDamageForObject(weaponid);
if(atmInfo[i][aiKasseHealth] <= 0.0)
{
DestroyDynamicObject(atmInfo[i][aiObjKasseID]);
atmInfo[i][aiObjKasseID] = -1;
}
break;
}
else if(objectid == atmInfo[i][aiObjTresorID] && atmInfo[i][aiTresorHealth] > 0.0)
{
if(CountTeamMember(TEAM_SFPD,false) < NEEDED_ATM_COPS)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden %d Cops benötigt, um einen ATM - Raub zu starten. Es sind %d Online.",NEEDED_ATM_COPS,CountTeamMember(TEAM_SFPD,false));
return 1;
}
new string[128];
atmInfo[i][aiLastHit] = gettime();
atmInfo[i][aiTresorHealth] -= (atmInfo[i][aiObjKasseID] == -1 ? GetWeaponDamageForObject(weaponid) : GetWeaponDamageForObject(weaponid) / 2.0);
format(string,sizeof(string),"[ {18A5B5}ATM{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das ATM-Menü zu öffnen\n\n{E38C29}Zustand: %.1f%%",(atmInfo[i][aiTresorHealth] / 350.0) * 100.0);
UpdateDynamic3DTextLabelText(atmInfo[i][aiLabelID], COLOR_WHITE, string);
if(atmInfo[i][aiTresorHealth] <= 325.0 && playerInfo[playerid][pLastWanted][2] + 180 < gettime())
{
playerInfo[playerid][pLastWanted][2] = gettime();
GivePlayerWantedLevel(playerid, WANTED_ATTACKATM, true);
playerInfo[playerid][pShot] = true;
if(!atmInfo[i][aiCopMessage])
{
new zonename[MAX_ZONE_NAME];
GetCoords2DZone(BankCounterPos[i][1],BankCounterPos[i][2], zonename, MAX_ZONE_NAME);
format(string,sizeof(string),"[ ZENTRALE ] {F71B1B}Ein Sensor eines ATMs in %s meldet Angriffe. Möglicher Raubversuch.",zonename);
SendTeamMessage(TEAM_SFPD, COLOR_YELLOW, string);
atmInfo[i][aiCopMessage] = true;
}
}
if(atmInfo[i][aiTresorHealth] <= 0.0)
{
if(atmInfo[i][aiKasseHealth] > 0.0)
{
atmInfo[i][aiKasseHealth] = 0.0;
DestroyDynamicObject(atmInfo[i][aiObjKasseID]);
atmInfo[i][aiObjKasseID] = -1;
}
DestroyDynamicObject(atmInfo[i][aiObjTresorID]);
atmInfo[i][aiObjTresorID] = CreateDynamicObject(1829,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3] - 0.1,BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6]);
UpdateDynamic3DTextLabelText(atmInfo[i][aiLabelID], COLOR_WHITE, "[ {18A5B5}ATM - Tresor{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um einen Geldbeutel aufzuheben\n\n{E38C29}Geldbeutel: 2 / 2");
atmInfo[i][aiOpenTresor] = gettime();
atmInfo[i][aiLastHit] = 0;
}
break;
}
}
}
return 1;
}
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new slotid = GetVehicleSlotID(vehicleid);
if(slotid != INVALID_SLOT_ID && vehicleInfo[slotid][viSafeWheels])
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 0);
}
return 1;
}
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
//if(!AC_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, fX, fY, fZ)) return 0;
if(playerInfo[playerid][pSpawnProtection] != -1 && hittype != BULLET_HIT_TYPE_NONE)
{
playerInfo[playerid][pSpawnProtection] = -1;
SetPlayerHealth(playerid, 100.0);
}
if(hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID && !IsPlayerAFK(hitid) && weaponid-22 >= 0 && weaponid < 36)
{
playerInfo[playerid][pWeaponHit][weaponid-22]++;
playerInfo[playerid][pWeaponShot][weaponid-22]++;
}
else if(hittype == BULLET_HIT_TYPE_NONE && weaponid-22 >= 0 && weaponid < 36)
{
playerInfo[playerid][pWeaponShot][weaponid-22]++;
}
if(playerInfo[playerid][pWorld] == WORLD_NONE)
{
if(hittype == BULLET_HIT_TYPE_PLAYER && !IsPlayerFightEnemy(playerid, hitid) && (!IsPlayerCop(playerid) && !IsPlayerCop(hitid)) && (IsPlayerInFight(hitid, WAR_BIZ) || IsPlayerInFight(playerid, WAR_BIZ)))
{
GameTextForPlayer(playerid, "~w~Spieler ist im~n~~r~BIZFIGHT!", 1200, 4);
return 0;
}
if(hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID && (playerInfo[hitid][pHandsUp] || !GetPlayerWantedLevel(playerid) && IsPlayerCop(hitid) || IsPlayerCop(playerid) && !playerInfo[hitid][pWantedLvL] || IsPlayerCop(hitid) && IsPlayerCop(playerid)))
{
if(IsPlayerCop(hitid) && !GetPlayerWantedLevel(playerid) && !IsPlayerCop(playerid) && IsPlayerInNoDmZone(hitid))
{
GameTextForPlayer(playerid, "~w~Cop ist in~n~der ~r~NoDM - Zone!", 1200, 4);
return 0;
}
if(!playerInfo[playerid][pWantedLvL] && IsPlayerCop(hitid) && !IsPlayerCop(playerid) && !IsPlayerInFight(playerid, WAR_BIZ))
{
playerInfo[playerid][pLastWanted][0] = gettime();
GivePlayerWantedLevel(playerid, WANTED_ATTACKCOP, true, hitid);
playerInfo[playerid][pShot] = true;
}
return 0;
}
if(hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID && (IsPlayerConnected(playerid) && IsPlayerInNoDmZone(playerid) || hittype == BULLET_HIT_TYPE_PLAYER && IsPlayerConnected(hitid) && IsPlayerInNoDmZone(hitid)))
{
if(IsPlayerConnected(hitid) && (IsPlayerCop(playerid) && GetPlayerWantedLevel(hitid) || GetPlayerWantedLevel(playerid) && IsPlayerCop(hitid))) return 1;
if(IsPlayerConnected(hitid) && playerInfo[hitid][pLastHit] + 10 > gettime()) return 1;
return 0;
}
if(hittype == BULLET_HIT_TYPE_VEHICLE && IsPlayerInNoDmZone(playerid))
{
new pID = GetVehicleDriver(hitid);
if(pID != INVALID_PLAYER_ID && (IsPlayerCop(playerid) && GetPlayerWantedLevel(pID) || GetPlayerWantedLevel(playerid) && IsPlayerCop(pID))) return 1;
return 0;
}
if(hittype == BULLET_HIT_TYPE_VEHICLE)
{
new pID = GetVehicleDriver(hitid);
if(pID != INVALID_PLAYER_ID && playerInfo[pID][pAdminDuty])
{
return 0;
}
new slotid = GetVehicleSlotID(hitid);
if(slotid != INVALID_SLOT_ID && vehicleInfo[slotid][viSafeWheels])
{
new Float:fSet[9];
GetVehicleModelInfo(GetVehicleModel(hitid), VEHICLE_MODEL_INFO_PETROLCAP,fSet[0], fSet[1], fSet[2]);
GetVehicleModelInfo(GetVehicleModel(hitid), VEHICLE_MODEL_INFO_WHEELSFRONT, fSet[3], fSet[4], fSet[5]);
GetVehicleModelInfo(GetVehicleModel(hitid), VEHICLE_MODEL_INFO_WHEELSREAR, fSet[6], fSet[7], fSet[8]);
if(fX >= fSet[6]-0.4 && fX <= fSet[6]+0.4 && fY >= fSet[7]-0.4 && fY <= fSet[7]+0.4 && fZ >= fSet[8]-0.4 && fZ <= fSet[8]+0.4)
{
return 0;
}
else if(fX >= fSet[3]-0.4 && fX <= fSet[3]+0.4 && fY >= fSet[4]-0.4 && fY <= fSet[4]+0.4 && fZ >= fSet[5]-0.4 && fZ <= fSet[5]+0.4)
{
return 0;
}
else if(fX >= fSet[6]-2.4 && fX <= fSet[6] && fY >= fSet[7]-0.4 && fY <= fSet[7]+0.4 && fZ >= fSet[8]-0.4 && fZ <= fSet[8]+0.4)
{
return 0;
}
else if(fX >= fSet[3]-2.4 && fX <= fSet[3] && fY >= fSet[4]-0.4 && fY <= fSet[4]+0.4 && fZ >= fSet[5]-0.4 && fZ <= fSet[5]+0.4)
{
return 0;
}
}
}
if(!IsPlayerCop(playerid) && hittype == BULLET_HIT_TYPE_VEHICLE)
{
new pID = GetVehicleDriver(hitid);
if(pID != INVALID_PLAYER_ID)
{
if(IsPlayerCop(pID) && (playerInfo[playerid][pLastWanted][0] + 30 < gettime() || playerInfo[playerid][pWantedLvL] == 0))
{
playerInfo[playerid][pLastWanted][0] = gettime();
GivePlayerWantedLevel(playerid, WANTED_ATTACKCOPVEH, true, pID);
}
playerInfo[pID][pLastVehicleHit] = gettime();
if(playerInfo[playerid][pNewbieProtection])
{
playerInfo[playerid][pNewbieProtection] = false;
SendClientMessage(playerid, COLOR_RED, "Da du ein Fahrzeug angegriffen hast, hast du deinen Newbieschutz bis zum nächsten Tot verloren.");
}
}
if(hitid == serverInfo[BankTransporterVeh] && IsPlayerInVehicle(serverInfo[BankTransporterDriver],serverInfo[BankTransporterVeh]) && !IsPlayerInRangeOfPoint(playerid, 15.0, -2440.8467,531.7496,30.0293))
{
new Float:fSet[9];
GetVehicleModelInfo(428, VEHICLE_MODEL_INFO_PETROLCAP,fSet[0], fSet[1], fSet[2]);
GetVehicleModelInfo(428, VEHICLE_MODEL_INFO_WHEELSFRONT, fSet[3], fSet[4], fSet[5]);
GetVehicleModelInfo(428, VEHICLE_MODEL_INFO_WHEELSREAR, fSet[6], fSet[7], fSet[8]);
if((playerInfo[playerid][pLastWanted][0] + 30 < gettime() || playerInfo[playerid][pWantedLvL] == 0))
{
playerInfo[playerid][pLastWanted][0] = gettime();
GivePlayerWantedLevel(playerid, WANTED_ATTACKCOPVEH, true);
}
if(fX >= fSet[6]-0.4 && fX <= fSet[6]+0.4 && fY >= fSet[7]-0.4 && fY <= fSet[7]+0.4 && fZ >= fSet[8]-0.4 && fZ <= fSet[8]+0.4)
{
SetVehicleTireStatus(hitid, 0);
}
else if(fX >= fSet[3]-0.4 && fX <= fSet[3]+0.4 && fY >= fSet[4]-0.4 && fY <= fSet[4]+0.4 && fZ >= fSet[5]-0.4 && fZ <= fSet[5]+0.4)
{
SetVehicleTireStatus(hitid, 1);
}
else if(fX >= fSet[6]-2.4 && fX <= fSet[6] && fY >= fSet[7]-0.4 && fY <= fSet[7]+0.4 && fZ >= fSet[8]-0.4 && fZ <= fSet[8]+0.4)
{
SetVehicleTireStatus(hitid, 2);
}
else if(fX >= fSet[3]-2.4 && fX <= fSet[3] && fY >= fSet[4]-0.4 && fY <= fSet[4]+0.4 && fZ >= fSet[5]-0.4 && fZ <= fSet[5]+0.4)
{
SetVehicleTireStatus(hitid, 3);
}
CheckBankTransporterWheels();
}
}
if(hittype == BULLET_HIT_TYPE_PLAYER && playerInfo[hitid][pNewbieProtection])
{
GameTextForPlayer(playerid, "~w~Spieler unter~n~~r~Newbieschutz", 1000, 4);
return 0;
}
if(IsPlayerCop(playerid) && hittype == BULLET_HIT_TYPE_PLAYER && GetPlayerWantedLevel(hitid) < 3 && !playerInfo[hitid][pShot] && GetPlayerWantedLevel(hitid))
{
GameTextForPlayer(playerid, "~w~Spieler unter~n~~y~Ticketschutz", 1000, 4);
return 0;
}
else if(IsPlayerCop(playerid) && hittype == BULLET_HIT_TYPE_VEHICLE)
{
new pID = GetVehicleDriver(hitid);
if(pID != INVALID_PLAYER_ID && GetPlayerWantedLevel(pID) < 3 && !playerInfo[pID][pShot] && GetPlayerWantedLevel(pID))
{
GameTextForPlayer(playerid, "~w~Spieler unter~n~~y~Ticketschutz", 1000, 4);
return 0;
}
if(pID != INVALID_PLAYER_ID && (!IsWantedVehicle(hitid) || IsPlayerCop(pID)))
{
return 0;
}
}
if((hittype == BULLET_HIT_TYPE_VEHICLE || hittype == BULLET_HIT_TYPE_PLAYER) && IsPlayerInAnyVehicle(playerid) && GetVehicleDriver(GetPlayerVehicleID(playerid)) == INVALID_PLAYER_ID)
{
return 0;
}
/*
if(hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID && !IsPlayerCop(playerid) && playerInfo[hitid][pGroup] && IsValidGroupIndex(GetPlayerGroupIndex(hitid)) && groupInfo[GetPlayerGroupIndex(hitid)][gWarTyp] == WAR_ZONE && GetPlayerGangZone(hitid) != groupInfo[GetPlayerGroupIndex(hitid)][gWarBiz])
{
if(!IsPlayerInGangFight(playerid, GetPlayerGangZone(hitid)))
{
GameTextForPlayer(playerid, "~w~Spieler ist im~n~~r~GANGFIGHT!", 1200, 4);
return 0;
}
}
*/
}
playerInfo[playerid][pShot] = true;
return 1;
}
stock IsWantedVehicle(vehicleid)
{
foreach(new i : Player)
{
if(!IsPlayerInVehicle(i, vehicleid) || !GetPlayerWantedLevel(i)) continue;
return true;
}
return false;
}
public ReducePlayerRobStep(playerid, houseid)
{
houseInfo[houseid][hRobPercent] -= 0.3 * houseInfo[houseid][hUpgrade][HOUSEUPGRADE_SAFE] + 0.3;
if(houseInfo[houseid][hRobPercent] <= 0) houseInfo[houseid][hRobPercent] = 0;
PlayerTextDrawTextSize(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 248.000000 + houseInfo[houseid][hRobPercent], 10.000000);
PlayerTextDrawHide(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
PlayerTextDrawShow(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
}
stock CancelHouseTresorRob(houseid = INVALID_HOUSE_ID, playerid = INVALID_PLAYER_ID, bool:msg = true)
{
if(playerid == INVALID_PLAYER_ID) playerid = houseInfo[houseid][hRobber];
if(houseid == INVALID_HOUSE_ID) houseid = playerInfo[playerid][pHouseRobIndex];
houseInfo[houseid][hRobStep] = 0;
houseInfo[houseid][hRobPercent] = 0.0;
houseInfo[houseid][hRobber] = INVALID_PLAYER_ID;
SetDynamicObjectPos(houseInfo[houseid][hDoorObj], houseSafe[ houseInfo[houseid][hInteriorID] ][hsDoorX],houseSafe[houseInfo[houseid][hInteriorID]][hsDoorY],houseSafe[houseInfo[houseid][hInteriorID]][hsZ]);
SetDynamicObjectRot(houseInfo[houseid][hDoorObj], houseSafe[ houseInfo[houseid][hInteriorID]][hsrX],houseSafe[houseInfo[houseid][hInteriorID]][hsrY],houseSafe[houseInfo[houseid][hInteriorID]][hsrZ]);
if(playerid != INVALID_PLAYER_ID)
{
ClearAnimations(playerid);
KillTimer(playerInfo[playerid][pHouseRobTimer]);
if(msg) SendClientMessage(playerid, COLOR_ROB, "[ ROB ] Der Raub wurde abgebrochen.");
playerInfo[playerid][pHouseRobTimer] = -1;
playerInfo[playerid][pHouseRobber] = false;
playerInfo[playerid][pHouseRobMaxAmount] = 0;
playerInfo[playerid][pHouseRobAmount] = 0;
playerInfo[playerid][pHouseRobIndex] = INVALID_HOUSE_ID;
playerInfo[playerid][pHouseRobCooldown] = gettime() + (serverTog[TOG_REDUCEDWAIT][stValue] ? (5400) : (2700));
for(new x = 0; x < 5; x++)
TextDrawHideForPlayer(playerid, houseRob_Crack[x]);
for(new x = 0; x < 3; x++)
TextDrawHideForPlayer(playerid, houseRob_Rob[x]);
for(new i = 0; i < 2; i++)
{
if(playerInfo[playerid][pHouseRobTextDraw][i] != PlayerText:INVALID_TEXT_DRAW)
{
PlayerTextDrawDestroy(playerid, playerInfo[playerid][pHouseRobTextDraw][i]);
playerInfo[playerid][pHouseRobTextDraw][i] = PlayerText:INVALID_TEXT_DRAW;
}
}
}
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
AC_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
if(serverInfo[togLocked]) return 1;
if(newkeys & KEY_SECONDARY_ATTACK && GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPosFindZ(playerid, x, y, z);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
playerInfo[playerid][pHasJetpack] = false;
SendClientMessage(playerid, COLOR_RED, "[ JETPACK ] Du hast das Jetpack verlassen.");
return 1;
}
if(newkeys & KEY_ACTION)
{
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsTrailerAttachedToVehicle(vehicleid))
{
if(playerInfo[playerid][pJobDuty])
{
DetachTrailerFromVehicle(vehicleid);
GameTextForPlayer(playerid, "~r~Abkoppeln ..", 3000, 5);
vehicleInfo[playerInfo[playerid][pJobTrailer]][viTrailer] = INVALID_SLOT_ID;
playerInfo[playerid][pJobTrailer] = INVALID_SLOT_ID;
}
}
else
{
if(playerInfo[playerid][pJobDuty] == JOB_BAUER && vehicleInfo[GetVehicleSlotID(vehicleid)][viOwnerID] == _:JOB_BAUER)
{
new Float:vX, Float:vY, Float:vZ, Float:vDistance = 10.0, vSlotID = INVALID_SLOT_ID, Float:tempDistance;
GetVehiclePos(GetPlayerVehicleID(playerid), vX, vY, vZ);
foreach(new i : Vehicles)
{
if((vehicleInfo[i][viModelID] != 610 && vehicleInfo[i][viModelID] != 611) && playerInfo[playerid][pJobDuty] == JOB_BAUER || vehicleInfo[i][viTrailer] != INVALID_SLOT_ID) continue;
tempDistance = GetVehicleDistanceFromPoint(vehicleInfo[i][viVehicleID], vX, vY, vZ);
if(tempDistance < vDistance)
{
vDistance = tempDistance;
vSlotID = i;
}
}
if(vSlotID != INVALID_SLOT_ID)
{
AttachTrailerToVehicle(vehicleInfo[vSlotID][viVehicleID], vehicleid);
GameTextForPlayer(playerid, "~g~Ankoppeln ..", 3000, 5);
playerInfo[playerid][pJobTrailer] = vSlotID;
vehicleInfo[vSlotID][viTrailer] = GetVehicleSlotID(vehicleid);
}
}
}
}
}
if(newkeys & KEY_SPRINT && playerInfo[playerid][pHouseRobber] && IsPlayerInAnyHouse(playerid))
{
new houseid = playerInfo[playerid][pHouseID];
if(houseInfo[houseid][hRobPercent] < 142 && houseInfo[houseid][hRobStep] == 1)
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, houseSafe[houseInfo[houseid][hInteriorID]][hsPlayer][0], houseSafe[houseInfo[houseid][hInteriorID]][hsPlayer][1], houseSafe[houseInfo[houseid][hInteriorID]][hsPlayer][2]))
{
CancelHouseTresorRob(playerInfo[playerid][pHouseRobIndex], playerid, true);
}
//houseInfo[houseid][hRobPercent] += 1.42;
houseInfo[houseid][hRobPercent] += 1.02 * GetPlayerSkillLevel(playerid, SKILL_HOUSEROBBER);
if(houseInfo[houseid][hRobPercent] >= 142)
{
houseInfo[houseid][hRobStep] = 2;
houseInfo[houseid][hRobPercent] = 142.0;
KillTimer(playerInfo[playerid][pHouseRobTimer]);
for(new x = 0; x < 5; x++)
TextDrawHideForPlayer(playerid, houseRob_Crack[x]);
new Float:pos[3], int = houseInfo[houseid][hInteriorID];
GetDynamicObjectPos(houseInfo[houseid][hDoorObj], pos[0], pos[1], pos[2]);
ClearAnimations(playerid);
ApplyAnimation(playerid, "ROB_BANK", "CAT_SAFE_OPEN", 4.0, 1, 1, 1, 1, 0, 1);
MoveDynamicObject(houseInfo[houseid][hDoorObj], pos[0], pos[1], pos[2]+0.01, 0.003, houseSafe[int][hsrX],houseSafe[int][hsrY],houseSafe[int][hsrZ]-90.0);
PlayerTextDrawDestroy(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
return 1;
}
PlayerTextDrawTextSize(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 248.000000 + houseInfo[houseid][hRobPercent], 10.000000);
PlayerTextDrawHide(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
PlayerTextDrawShow(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
}
}
if(newkeys & KEY_SPRINT)
{
if(playerInfo[playerid][pTuningGarage])
{
AddTuning(playerid, GetPlayerVehicleID(playerid), playerInfo[playerid][pTuningGarage]);
RemovePlayerFromTuningGarage(playerid);
return 1;
}
if(playerInfo[playerid][pAccesChange] && playerInfo[playerid][pSkinShop])
{
new id = playerInfo[playerid][pSkinShop];
RemovePlayerAttachedObject(playerid, GetAccesPlayerSlot(playerInfo[playerid][pChooseIndex]));
playerInfo[playerid][pSkinShop] = 0;
playerInfo[playerid][pChooseIndex] = 0;
playerInfo[playerid][pAccesChange] = false;
SetPlayerPos(playerid, accesChangePos[id][0], accesChangePos[id][1],accesChangePos[id][2]);
SetPlayerFacingAngle(playerid, accesChangePos[id][3]);
SetPlayerVirtualWorld(playerid, entranceInfo[playerInfo[playerid][pEntranceID]][eiSQLID]);
SetPlayerInterior(playerid, interiorInfo[entranceInfo[playerInfo[playerid][pEntranceID]][eiExitID]][iiInterior]);
TogglePlayerControllable(playerid, true);
SetCameraBehindPlayer(playerid);
TextDrawHideForPlayer(playerid, InfoAccChange);
}
}
if(newkeys & KEY_SECONDARY_ATTACK)
{
if(playerInfo[playerid][pTuningGarage])
{
RemoveVehicleTuning(GetPlayerVehicleID(playerid), playerInfo[playerid][pTuningGarage]);
RemovePlayerFromTuningGarage(playerid);
return 1;
}
else if(playerInfo[playerid][pHouseRobber])
{
CancelHouseTresorRob(_, playerid);
return true;
}
else if(playerInfo[playerid][pSkinChange])
{
new id = playerInfo[playerid][pSkinShop];
//SendClientMessageX(playerid, -1, "");
if(IsSkinTeamSkin(skinInfo[playerInfo[playerid][pTeam]][playerInfo[playerid][pChooseSkin]], TEAM_SFPD + 1) && playerInfo[playerid][pFaction][TEAM_SFPD-1] != FACTION_FBI) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Mitglied des F.B.I.'s.");
if(serverInfo[lockTeam][playerInfo[playerid][pTeam] - 1])
{
SendClientMessage(playerid, COLOR_LESSRED, "Dieses Team ist derzeit administrativ gesperrt, bitte wechsel zu einem anderen Team.");
return 1;
}
if(id)
{
playerInfo[playerid][pSkinChange] = false;
SetPlayerPos(playerid, skinChangePos[id][0], skinChangePos[id][1], skinChangePos[id][2]);
SetPlayerFacingAngle(playerid, skinChangePos[id][3]);
SetPlayerVirtualWorld(playerid, entranceInfo[playerInfo[playerid][pEntranceID]][eiSQLID]);
SetPlayerInterior(playerid, interiorInfo[entranceInfo[playerInfo[playerid][pEntranceID]][eiExitID]][iiInterior]);
TogglePlayerControllable(playerid, true);
SetCameraBehindPlayer(playerid);
TextDrawHideForPlayer(playerid, InfoSkinChange[0]);
TextDrawHideForPlayer(playerid, InfoSkinChange[2]);
playerInfo[playerid][pSkin] = skinInfo[playerInfo[playerid][pTeam]][playerInfo[playerid][pChooseSkin]];
SetPlayerSkin(playerid, playerInfo[playerid][pSkin]);
}
else if(id == 0)
{
GameTextForPlayer(playerid, " ", 1000, 6);
playerInfo[playerid][pSkin] = skinInfo[playerInfo[playerid][pTeam]][playerInfo[playerid][pChooseSkin]];
SetPlayerSkin(playerid, playerInfo[playerid][pSkin]);
playerInfo[playerid][pSkinChange] = false;
playerInfo[playerid][pChooseTeamStep] = 4;
TextDrawHideForPlayer(playerid, InfoSkinChange[0]);
TextDrawHideForPlayer(playerid, InfoSkinChange[1]);
SetCameraBehindPlayer(playerid);
SpawnPlayer(playerid);
}
return 1;
}
else if(playerInfo[playerid][pAccesChange] && playerInfo[playerid][pSkinShop])
{
new id = playerInfo[playerid][pSkinShop];
playerInfo[playerid][pAccesChange] = false;
SetPlayerPos(playerid, accesChangePos[id][0], accesChangePos[id][1],accesChangePos[id][2]);
SetPlayerFacingAngle(playerid, accesChangePos[id][3]);
SetPlayerVirtualWorld(playerid, entranceInfo[playerInfo[playerid][pEntranceID]][eiSQLID]);
SetPlayerInterior(playerid, interiorInfo[entranceInfo[playerInfo[playerid][pEntranceID]][eiExitID]][iiInterior]);
TogglePlayerControllable(playerid, true);
SetCameraBehindPlayer(playerid);
TextDrawHideForPlayer(playerid, InfoAccChange);
new slotid = GetAccesPlayerSlot(playerInfo[playerid][pChooseIndex]) - 7, index = playerInfo[playerid][pChooseIndex];
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast dir ein(e(n)) %s gekauft.",accesName[index]);
SendClientMessageX(playerid, COLOR_YELLOW, "Sollte das Accessoir nicht an den Skin passen, kannst du dieses unter /account - Accessoir > %s > Anpassen - anpassen.",accesName[index]);
playerInfo[playerid][pAccessoirID][slotid] = acces[index][playerInfo[playerid][pChooseSkin]];
playerInfo[playerid][pAccessoirPosX][slotid] = accesPos[index][0];
playerInfo[playerid][pAccessoirPosY][slotid] = accesPos[index][1];
playerInfo[playerid][pAccessoirPosZ][slotid] = accesPos[index][2];
playerInfo[playerid][pAccessoirRotX][slotid] = accesPos[index][3];
playerInfo[playerid][pAccessoirRotY][slotid] = accesPos[index][4];
playerInfo[playerid][pAccessoirRotZ][slotid] = accesPos[index][5];
playerInfo[playerid][pAccessoirScaleX][slotid] = accesPos[index][6];
playerInfo[playerid][pAccessoirScaleY][slotid] = accesPos[index][7];
playerInfo[playerid][pAccessoirScaleZ][slotid] = accesPos[index][8];
return 1;
}
for(new i = 0; i < serverInfo[currentEntrances]; i++)
{
if(IsPlayerInRangeOfPoint(playerid,1.25,entranceInfo[i][eiEntranceX],entranceInfo[i][eiEntranceY],entranceInfo[i][eiEntranceZ]))
{
if(strfind(entranceInfo[i][eiEntranceName], "Waffenlager") == -1)
{
if(playerInfo[playerid][pLastEntranceTime] + 5 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst erst in %d Sekunde(n) das Gebäude betreten.",(playerInfo[playerid][pLastEntranceTime] + 5) - gettime());
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
if(playerInfo[playerid][pLastHit] + 5 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst erst in %d Sekunde(n) das Gebäude betreten.",(playerInfo[playerid][pLastHit] + 5) - gettime());
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
}
if(entranceInfo[i][eiSQLID] == 61 && GetPlayerFaction(playerid) != FACTION_HITMAN || entranceInfo[i][eiSQLID] == 62 && !IsPlayerCop(playerid)) // Hitman Agency
return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keine Schlüssel für diese Tür.");
playerInfo[playerid][pLastEntranceTime] = gettime();
playerInfo[playerid][pEntranceID] = i;
new exitID = entranceInfo[i][eiExitID];
SetPlayerPos(playerid, interiorInfo[exitID][iiPosX],interiorInfo[exitID][iiPosY],interiorInfo[exitID][iiPosZ]);
SetPlayerFacingAngle(playerid, interiorInfo[exitID][iiPosA]);
SetPlayerVirtualWorld(playerid, entranceInfo[i][eiSQLID]);
SetPlayerInterior(playerid, interiorInfo[exitID][iiInterior]);
OnPlayerEnterEntrance(playerid, i);
if(interiorInfo[exitID][iiFreeze])
{
SetPlayerVirtualWorld(playerid, entranceInfo[i][eiSQLID] + 1);
TogglePlayerControllable(playerid, false);
SetTimerEx("UnfreezePlayer", 3000, false, "i", playerid, entranceInfo[i][eiSQLID]);
}
SetTimerEx("UpdateSpectator", 1000, false, "d", playerid);
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid,1.25,interiorInfo[entranceInfo[i][eiExitID]][iiPosX],interiorInfo[entranceInfo[i][eiExitID]][iiPosY],interiorInfo[entranceInfo[i][eiExitID]][iiPosZ]) && GetPlayerInterior(playerid) == interiorInfo[entranceInfo[i][eiExitID]][iiInterior] && GetPlayerVirtualWorld(playerid) == entranceInfo[i][eiSQLID])
{
if(strcmp(entranceInfo[i][eiEntranceName],"San Fierro PD Waffenlager") != 0)
{
if(playerInfo[playerid][pLastEntranceTime] + 5 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst erst in %d Sekunde(n) das Gebäude verlassen.",(playerInfo[playerid][pLastEntranceTime] + 5) - gettime());
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
if(playerInfo[playerid][pLastHit] + 5 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst erst in %d Sekunde(n) das Gebäude verlassen.",(playerInfo[playerid][pLastHit] + 5) - gettime());
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
}
playerInfo[playerid][pEntranceID] = -1;
playerInfo[playerid][pLastEntranceTime] = gettime();
SetPlayerPos(playerid, entranceInfo[i][eiEntranceX],entranceInfo[i][eiEntranceY],entranceInfo[i][eiEntranceZ]);
SetPlayerFacingAngle(playerid, entranceInfo[i][eiEntranceA]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
OnPlayerExitEntrance(playerid, i);
SetTimerEx("UpdateSpectator", 1000, false, "d", playerid);
return 1;
}
}
new houseid = GetClosestHouse(playerid), roomid;
if(houseid != INVALID_HOUSE_ID && IsPlayerInRangeOfPoint(playerid,1.5, houseInfo[houseid][hPos][0],houseInfo[houseid][hPos][1],houseInfo[houseid][hPos][2]))
{
new bool:allowed = playerInfo[playerid][pAdminDuty] || IsPlayerCop(playerid) || playerInfo[playerid][pHouseKey] == houseInfo[houseid][hSQLID] || playerInfo[playerid][pGroup] && groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID] == houseInfo[houseid][hSQLID];
if(allowed || !allowed && playerInfo[playerid][pShopItems][SHOPITEM_ENTRYTOOL] == 1)
{
if(!IsPlayerCop(playerid) && playerInfo[playerid][pWantedLvL] && GetCopIDInRangeOfPlayer(playerid, 30.0) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe befinden sich Cops, weswegen du dein Haus nicht betreten kannst.");
if(IsPlayerCop(playerid) && houseInfo[houseid][hOwnerID] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Haus steht zum Verkauf und kann deshalb nicht betreten werden.");
if(playerInfo[playerid][pLastEntranceTime] + 5 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst erst in %d Sekunde(n) das Haus betreten.",(playerInfo[playerid][pLastEntranceTime] + 5) - gettime());
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
if(playerInfo[playerid][pLastHit] + 30 > gettime())
{
new string[128];
format(string,sizeof(string),"Du kannst erst in %d Sekunde(n) das Haus betreten.",(playerInfo[playerid][pLastHit] + 30) - gettime());
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
if(!allowed && playerInfo[playerid][pShopItems][SHOPITEM_ENTRYTOOL] == 1)
{
SendClientMessage(playerid, COLOR_ROB, "[ ROB ] Du bist in das Haus eingebrochen.");
if(!IsPlayerDonator(playerid) && random(11) <= 7)
{
SendClientMessage(playerid, COLOR_RED, "[ ITEM ] Dein Item Einbruchswerkzeug ist kaputt gebrochen.");
playerInfo[playerid][pShopItems][SHOPITEM_ENTRYTOOL] = 0;
}
}
EnterHouse(playerid, houseid);
SetTimerEx("UpdateSpectator", 2000, false, "d", playerid);
return 1;
}
}
if(0 <= playerInfo[playerid][pHouseID] && playerInfo[playerid][pHouseID] < sizeof(houseInfo))
{
roomid = houseInfo[playerInfo[playerid][pHouseID]][hInteriorID];
}
if(roomid != INVALID_HOUSE_ID && IsPlayerInRangeOfPoint(playerid, 1.5, interiorInfo[roomid][iiPosX],interiorInfo[roomid][iiPosY],interiorInfo[roomid][iiPosZ]))
{
houseid = playerInfo[playerid][pHouseID];
if(houseid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte kontaktiere ein Teammitglied. Stichwort: Unbekannte Hauszuweisung");
SetPlayerPos(playerid, houseInfo[houseid][hPos][0],houseInfo[houseid][hPos][1],houseInfo[houseid][hPos][2]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
playerInfo[playerid][pHouseID] = -1;
SetTimerEx("UpdateSpectator", 2000, false, "d", playerid);
}
}
if(newkeys & KEY_WALK)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, -2050.6506,-407.7728,38.7344))
{
OnPlayerCommandPerformed(playerid, "/derby", true);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 1.5, -1075.8691,-1189.0864,129.2188))
{
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Ivan sagt: Ich stehe hier einfach nur so rum.");
new str[128];
format(str, 128, "Du möchtest gerne Blüten von mir kaufen? Der Ankaufpreis liegt bei: $%s\nWie viele Blüten möchtest du kaufen?", FormatNumber(BUY_PLANTPRICE));
ShowPlayerDialog(playerid, DIALOG_IVAN, DIALOG_STYLE_INPUT, "Ankauf von Blüten", str, "Kaufen", "Schließen");
return 1;
}
if(IsPlayerHitmanAtBuyPoint(playerid))
{
Command_ReProcess(playerid, "/buygun", false);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, -2475.8281,1547.4886,23.6484))
{
OpenPlayerFishMenu(playerid, 1);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid,2.0, -2079.5950,1381.1173,7.1016))
{
for(new i = 0; i < sizeof(SurpriseTD); i++)
TextDrawShowForPlayer(playerid, SurpriseTD[i]);
for(new i = 0; i < sizeof(SurpriseBox); i++)
TextDrawShowForPlayer(playerid, SurpriseBox[i]);
SelectTextDraw(playerid, 0x2FED4960);
playerInfo[playerid][pTextDrawMenu] = TDMENU_ADVENTCALENDER;
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 1.0, 246.3708,118.3636,1003.2188))
{
if(!GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht stellen, da du keine Wanteds hast.");
new string[64];
format(string,sizeof(string),"* Verbrecher %s wurde festgenommen.",GetPlayerNameEx(playerid));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
SetPlayerInJail(playerid, INVALID_PLAYER_ID, 0);
return 1;
}
if(IsPlayerInRangeOfPoint(playerid,3.5,serverInfo[BankTransporterPos][0],serverInfo[BankTransporterPos][1],serverInfo[BankTransporterPos][2]))
{
if(serverInfo[BankTransporterState] == ROB_START)
{
if(serverInfo[BankTransporterMoneyBags] && !IsPlayerCop(playerid))
{
new string[128];
if(GivePlayerMoneyBag(playerid, MONEYBAG_TRANSPORTER))
{
serverInfo[BankTransporterMoneyBags]--;
SendClientMessage(playerid, COLOR_YELLOW, "* Bringe den Geldbeutel schnellstmöglichst zu einem Geldabgabepunkt.");
GivePlayerWantedLevel(playerid, WANTED_STEALSTATE, true);
playerInfo[playerid][pRobbed][ROBTYPE_TRANSPORTER]++;
format(string, sizeof(string), "[ {D9C241}Transporterraub{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um einen Geldbeutel aufzuheben\n\n{E38C29}Geldbeutel: %d / 4",serverInfo[BankTransporterMoneyBags]);
UpdateDynamic3DTextLabelText(serverInfo[BankTransporterLabel], COLOR_WHITE, string);
new str[128];
format(str, 128, "[ INFO ] %s hat den Banktransporter in San Fierro erfolgreich beraubt.", GetPlayerNameEx(playerid));
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
if(!serverInfo[BankTransporterMoneyBags])
{
DestroyDynamic3DTextLabel(serverInfo[BankTransporterLabel]);
serverInfo[BankTransporterLabel] = Text3D:-1;
}
}
}
}
else if(!playerInfo[playerid][pTransporterRobber])
{
if(serverInfo[BankTransporterRobber] < NEEDED_TRANSPORTER_ROBBER)
{
serverInfo[BankTransporterRobber]++;
playerInfo[playerid][pTransporterRobber] = true;
}
if(serverInfo[BankTransporterRobber] >= NEEDED_TRANSPORTER_ROBBER)
{
foreach(new i : Player)
{
if(!playerInfo[i][pTransporterRobber]) continue;
GivePlayerWantedLevel(i, WANTED_ROBTRANSPORTER, true);
}
serverInfo[BankTransporterTimer] = 60 * 4;
serverInfo[BankTransporterState] = ROB_START;
}
foreach(new i : Player)
{
if(!IsPlayerInRangeOfPoint(i,15.0,serverInfo[BankTransporterPos][0],serverInfo[BankTransporterPos][1],serverInfo[BankTransporterPos][2]) || IsPlayerCop(i)) continue;
new str[24];
format(str, 24, "%d / %d Transportraeuber", serverInfo[BankTransporterRobber], NEEDED_TRANSPORTER_ROBBER);
GameTextForPlayer(i, str, 1250, 4);
}
}
}
if(IsPlayerInRangeOfPoint(playerid,1.5,222.0275,121.7605,999.0156))
{
if(playerInfo[playerid][pJailTime]) return 1;
if(playerInfo[playerid][pLawyerTime])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %s wieder eine Person ein Angebot unterstellen.",GetTimeString(playerInfo[playerid][pLawyerTime],4));
return 1;
}
new longstr[1024];
DialogTempDataIndex[playerid] = 0;
foreach(new i : Player)
{
if(!playerInfo[i][pJailTime] || playerInfo[i][pAdminJail]) continue;
format(longstr, sizeof(longstr),"%s%s - %s ($%s)\n",longstr,GetPlayerNameEx(i),GetTimeString(playerInfo[i][pJailTime],4),FormatNumber(floatround(((playerInfo[i][pJailTime] / 30) * 2500 + 2500) * 0.75)));
DialogTempData[playerid][DialogTempDataIndex[playerid]] = i;
DialogTempDataIndex[playerid]++;
}
if(DialogTempDataIndex[playerid])
ShowPlayerDialog(playerid,DIALOG_LAWYER, DIALOG_STYLE_LIST, "Inhaftierte Spieler", longstr, "Helfen", "Schließen");
else
ShowPlayerDialog(playerid,DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Inhaftierte Spieler", "Derzeit ist kein Spieler inhaftiert.", "Schließen", "");
return 1;
}
if(IsPlayerInRangeOfPoint(playerid, 1.5, 1388.7621,-992.3865,5651.8315) && !IsPlayerCop(playerid) && serverInfo[currentBankRobbers] < 4 && serverInfo[currentBankRobState] == 0 && !playerInfo[playerid][pBankRobber])
{
if(serverInfo[currentBankCoolDown] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Bank ist erst in %s wieder ausraubbar.",GetTimeString(serverInfo[currentBankCoolDown]-gettime(),3));
return 1;
}
if(CountTeamMember(TEAM_SFPD,false) < NEEDED_BANK_COPS)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es werden %d Cops benötigt, um einen Bankraub zu starten. Es sind %d Online.",NEEDED_BANK_COPS,CountTeamMember(TEAM_SFPD,false));
return 1;
}
if(serverInfo[currentBankRobbers] < NEEDED_BANK_ROBBER)
{
serverInfo[currentBankRobbers]++;
playerInfo[playerid][pBankRobber] = true;
}
if(serverInfo[currentBankRobbers] >= NEEDED_BANK_ROBBER)
{
serverInfo[currentBankRobState] = 1;
serverInfo[currentBankTimer] = BANKROBTIME_DRILL;
BankSachen[3] = CreateDynamicObject(341, 1388.82, -992.36, 5652.28, 4.32, 39.18, 92.88);
DestroyDynamic3DTextLabel(BankSachenLabel[0]);
foreach(new i : Player)
{
if(!playerInfo[i][pBankRobber]) continue;
GivePlayerWantedLevel(i, WANTED_ROBBANK, true);
}
SendTeamMessage(TEAM_SFPD, COLOR_YELLOW, "[ ZENTRALE ] {F71B1B}Es wurde ein stiller Alarm in der Bank aktiviert. Möglicher Banküberfall!");
}
foreach(new i : Player)
{
if(!IsPlayerInBank(i) || IsPlayerCop(i)) continue;
new str[24];
format(str, 24, "%d / 4 Bankraeuber", serverInfo[currentBankRobbers], NEEDED_BANK_ROBBER);
GameTextForPlayer(i, str, 1250, 4);
}
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 1.5, 1388.6259,-972.1985,5651.9512) && serverInfo[currentBankRobState] > 1 && serverInfo[currentBankRobState] < 6 && !IsPlayerCop(playerid))
{
if(serverInfo[currentActiveBankRobber] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Plastiksprengstoff wird bereits von einem Spieler befestigt.");
serverInfo[currentBankTimerID] = SetTimerEx("CreateC4ForBankRob",2000,false,"d",playerid);
serverInfo[currentActiveBankRobber] = playerid;
return 1;
}
else if(serverInfo[currentBankRobState] > 6 && !IsPlayerCop(playerid))
{
new Float:oPos[3];
for(new i = 9; i < 14; i++)
{
if(!IsValidDynamicObject(BankSachen[i])) continue;
GetDynamicObjectPos(BankSachen[i],oPos[0],oPos[1],oPos[2]);
if(IsPlayerInRangeOfPoint(playerid, 1.5, oPos[0],oPos[1],oPos[2]) && GivePlayerMoneyBag(playerid, MONEYBAG_BANK))
{
DestroyDynamicObject(BankSachen[i]);
SendClientMessage(playerid, COLOR_YELLOW, "* Bringe den Geldbeutel schnellstmöglichst zu einem Geldabgabepunkt.");
GivePlayerWantedLevel(playerid, WANTED_STEALSTATE, true);
playerInfo[playerid][pRobbed][ROBTYPE_BANK]++;
new str[128];
format(str, 128, "[ INFO ] %s hat die Bank in San Fierro erfolgreich beraubt.", GetPlayerNameEx(playerid));
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
BankSachen[i] = -1;
break;
}
}
return 1;
}
for(new i = 0; i < sizeof(eatInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid,1.25,eatInfo[i][eiPosX],eatInfo[i][eiPosY],eatInfo[i][eiPosZ]))
{
if(playerInfo[playerid][pLastHit] + 20 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden etwas essen.",playerInfo[playerid][pLastHit] + 20 - gettime());
return 1;
}
new Float:health, Float:maxhealth = 100.0;
GetPlayerHealth(playerid, health);
if(IsGroupOwnerFromZone(GetPlayerGroupID(playerid), 9) && i == 2)
{
maxhealth = 120.0;
}
if(health < maxhealth)
{
new Float:givehealth = maxhealth - health, string[128];
if(GetPlayerMoney(playerid) < givehealth * 1) return SendClientMessage(playerid, COLOR_LESSRED, "Du besitzt nicht die benötigte Geldsumme.");
GivePlayerHealth(playerid, givehealth, maxhealth);
GivePlayerMoney(playerid, -floatround(givehealth) * 1, "HP");
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0);
format(string,sizeof(string),"* Du hast dich für $%d (+%.1f HP) geheilt.",floatround(givehealth) * 1, givehealth);
SendClientMessage(playerid, COLOR_WHITE, string);
playerInfo[playerid][pEatTime] = gettime();
PlayerPlaySound(playerid, SOUND_SHOP_BUY, 0.0,0.0,0.0);
}
return 1;
}
}
for(new i = 0; i < sizeof(BankCounterPos); i++)
{
if(!IsPlayerInRangeOfPoint(playerid,1.25,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3])) continue;
if(atmInfo[i][aiTresorHealth] <= 0.0 && atmInfo[i][aiOpenTresor] && !IsPlayerCop(playerid))
{
if(atmInfo[i][aiMoneyBags] && GivePlayerMoneyBag(playerid, MONEYBAG_ATMROB))
{
atmInfo[i][aiMoneyBags]--;
SendClientMessage(playerid, COLOR_YELLOW, "* Bringe den Geldbeutel schnellstmöglichst zu einem Geldabgabepunkt.");
playerInfo[playerid][pRobbed][ROBTYPE_ATM]++;
new string[128];
format(string,sizeof(string),"[ {18A5B5}ATM - Tresor{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um einen Geldbeutel aufzuheben\n\n{E38C29}Geldbeutel: %d / 2",atmInfo[i][aiMoneyBags]);
UpdateDynamic3DTextLabelText(atmInfo[i][aiLabelID], COLOR_WHITE, string);
}
}
else
{
if(playerInfo[playerid][pDice] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst diese Funktion gerade nicht nutzen.");
OpenBankMenuForPlayer(playerid);
}
return 1;
}
for(new i = 1; i < sizeof(skinChangePos); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 1.5, skinChangePos[i][0], skinChangePos[i][1], skinChangePos[i][2])) continue;
if(gettime() < playerInfo[playerid][pLastHit] + 30)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden den Skin wechseln.",(gettime() + 30) - playerInfo[playerid][pLastHit]);
return 1;
}
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst deinen Skin nicht wechseln, wenn du Wanteds hast.");
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(GetPlayerGroupIndex(playerid)) && groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ && groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz] == playerInfo[playerid][pEntranceID]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kämpfst derzeit um diesen Skin-Laden, weswegen diese Funktion deaktiviert ist.");
SetPlayerInSkinChangeMenu(playerid, i);
return 1;
}
for(new i = 1; i < sizeof(accesChangePos); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 1.5, accesChangePos[i][0], accesChangePos[i][1], accesChangePos[i][2])) continue;
new a = 1;
if(a == 1) return SendClientMessage(playerid, COLOR_LESSRED, "Das System ist vorrübergehend deaktiviert.");
if(gettime() < playerInfo[playerid][pLastHit] + 30)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden deine Accessoires wechseln.",(gettime() + 30) - playerInfo[playerid][pLastHit]);
return 1;
}
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst deine Accessoirs nicht wechseln, wenn du Wanteds hast.");
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(GetPlayerGroupIndex(playerid)) && groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ && groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz] == playerInfo[playerid][pEntranceID]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kämpfst derzeit um diesen Skin-Laden, weswegen diese Funktion deaktiviert ist.");
new str[128];
for(new x = 0; x < sizeof(accesName); x++)
{
format(str, sizeof(str), "%s\n%s",str,accesName[x]);
}
ShowPlayerDialog(playerid, DIALOG_ACCESSOIRES, DIALOG_STYLE_LIST, "Accessoires",str,"Anprobieren","Schließen");
playerInfo[playerid][pSkinShop] = i;
return 1;
}
for(new i = 0; i < sizeof(dmArea); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 1.5, dmArea[i][dmEntrance][0],dmArea[i][dmEntrance][1],dmArea[i][dmEntrance][2])) continue;
if(playerInfo[playerid][pLastHit] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunden die Arena betreten.",(playerInfo[playerid][pLastHit]+30)-gettime());
return 1;
}
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst mit Wanteds keine Arena betreten.");
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Die DM - Arenen sind nur für Zivilisten.");
if(dmArea[i][dmCurrentPlayers] >= dmArea[i][dmMaxPlayers]) return SendClientMessage(playerid, COLOR_LESSRED, "Die Arena ist bereits voll.");
if(playerInfo[playerid][pWorld]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits in einer Welt.");
if(!strcmp(dmArea[i][dmAreaName], "Duell", true))
{
ShowPlayerDuellDialog(playerid, DIALOG_DUELL);
return 1;
}
playerInfo[playerid][pWorldIndex] = i;
playerInfo[playerid][pWorld] = dmArea[i][dmID];
new string[128];
format(string, sizeof(string), "[ ARENA ] %s hat die %s - Arena betreten.",GetPlayerNameEx(playerid),dmArea[i][dmAreaName]);
SendClientWorldMessage(dmArea[i][dmID], 0x7B8AB5FF, string);
dmArea[playerInfo[playerid][pWorldIndex]][dmCurrentPlayers]++;
UpdateDmAreaLabel(playerInfo[playerid][pWorldIndex]);
SpawnPlayer(playerid);
return 1;
}
if(serverInfo[eventSurpriseState] && GetPlayerInterior(playerid) == 0 && GetPlayerVirtualWorld(playerid) == 0)
{
for(new i = 0; i < MAX_SURPRISE; i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 3.5, surpriseInfo[i][siPos][0],surpriseInfo[i][siPos][1],surpriseInfo[i][siPos][2])) continue;
if(playerInfo[playerid][pReachedSurprised][i]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast dieses Geschenk bereits geöffnet.");
switch(random(5))
{
case 0:
{
SendClientMessage(playerid, COLOR_YELLOW, "Du hast 1 Coin erhalten.");
new query[256];
playerInfo[playerid][pCoins]++;
OnServerSavePlayerData(playerid);
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_surprise` (`playerid`,`surprise`,`amount`,`state`,`timestamp`) VALUES ('%d','Coins','%d','%d','%d','%d')",playerInfo[playerid][pSQLID],1, GetPlayerState(playerid),gettime());
mysql_tquery(dbHandle, query, "", "");
}
case 2:
{
new amount = 1 + random(2), query[256];
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %d Level-Up(s) erhalten.",amount);
GivePlayerExp(playerid, amount * 63, false, "Surprise");
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_surprise` (`playerid`,`surprise`,`amount`,`state`,`timestamp`) VALUES ('%d','Level-Ups','%d','%d','%d')",playerInfo[playerid][pSQLID],amount, GetPlayerState(playerid),gettime());
mysql_tquery(dbHandle, query, "", "");
}
case 3:
{
SendClientMessage(playerid, COLOR_YELLOW, "Du hast 1 Haupt - PayDay erhalten.");
PayDay(playerid, true);
}
default:
{
new amount = (7 + random(12)) * 1000, query[256];
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast $%d erhalten.",amount);
GivePlayerMoney(playerid, amount, "Surprise");
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_surprise` (`playerid`,`surprise`,`amount`,`state`,`timestamp`) VALUES ('%d','Money','%d','%d','%d')",playerInfo[playerid][pSQLID],amount, GetPlayerState(playerid),gettime());
mysql_tquery(dbHandle, query, "", "");
}
}
playerInfo[playerid][pReachedSurprised][i] = true;
new query[128];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `reachedsurprised` (`playerid`, `surpriseid`) VALUES (%d, %d)", playerInfo[playerid][pSQLID], i);
mysql_tquery(dbHandle, query, "", "");
break;
}
}
foreach(new i : Pickup)
{
if(pickupInfo[i][piTyp] != 2 || !IsPlayerInRangeOfPoint(playerid, 1.5, pickupInfo[i][piX], pickupInfo[i][piY], pickupInfo[i][piZ])) continue;
if(!IsPlayerCop(playerid))
{
if(pickupInfo[i][piParams][0] + playerInfo[playerid][pMoneyBag] > GetPlayerMaxBagAmount(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht so viel Platz, um diesen Geldbeutel aufzuheben.");
GivePlayerMoneyBag(playerid, _, pickupInfo[i][piParams][2],pickupInfo[i][piParams][1], pickupInfo[i][piParams][0], false);
}
new next;
DestroyDynamic3DTextLabel(pickupInfo[i][piLabelID]);
DestroyDynamicObject(pickupInfo[i][piPickupID]);
pickupInfo[i][piPickupID] = INVALID_OBJECT_ID;
Iter_SafeRemove(Pickup, i, next);
i = next;
break;
}
if(GetPlayerAnimationIndex(playerid) == 1189)
{
for(new i = 0; i < sizeof(ladderSpawn); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.5, ladderSpawn[i][UpSpawnX], ladderSpawn[i][UpSpawnY], ladderSpawn[i][UpSpawnZ]))
{
SetPlayerPos(playerid, ladderSpawn[i][UpSpawnX], ladderSpawn[i][UpSpawnY], ladderSpawn[i][UpSpawnZ]);
SetPlayerFacingAngle(playerid, ladderSpawn[i][UpSpawnA]);
TogglePlayerControllable(playerid, false);
SetCameraBehindPlayer(playerid);
SetTimerEx("MovePlayerCamera", 1000, false, "ddd", playerid, i, 1);
}
else if(IsPlayerInRangeOfPoint(playerid, 1.5, ladderSpawn[i][DownSpawnX], ladderSpawn[i][DownSpawnY], ladderSpawn[i][DownSpawnZ]))
{
SetPlayerPos(playerid, ladderSpawn[i][DownSpawnX], ladderSpawn[i][DownSpawnY], ladderSpawn[i][DownSpawnZ]);
SetPlayerFacingAngle(playerid, ladderSpawn[i][DownSpawnA]);
TogglePlayerControllable(playerid, false);
SetCameraBehindPlayer(playerid);
SetTimerEx("MovePlayerCamera", 1000, false, "ddd", playerid, i, 2);
}
}
}
}
if(newkeys & KEY_WALK)
{
if(IsPlayerInAnyHouse(playerid) && !IsPlayerCop(playerid) && !playerInfo[playerid][pVisitRoom])
{
if(playerInfo[playerid][pHouseRobCooldown] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %s wieder ein Haus ausrauben.", GetTimeString(playerInfo[playerid][pHouseRobCooldown] - gettime(), 5));
return 1;
}
if(GetPlayerMaxBagAmount(playerid) <= playerInfo[playerid][pMoneyBag]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keinen Platz mehr in deinem Geldbeutel.");
for(new i = 0; i < sizeof(houseSafe); i++)
{
if(!IsPlayerInRangeOfPoint(playerid, 1.0, houseSafe[i][hsPlayer][0], houseSafe[i][hsPlayer][1], houseSafe[i][hsPlayer][2])) continue;
if(playerInfo[playerid][pShopItems][SHOPITEM_PICKLOCK] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dir fehlt das Item Dietrich, um diese Funktion zu nutzen.");
new houseid = playerInfo[playerid][pHouseID],pID = GetPlayerIDFromSQLID(houseInfo[houseid][hOwnerID]);
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Tresor ist verriegelt und kann nicht ausgeraubt werden.");
if(houseInfo[houseid][hRobStep] != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Tresor wird bereits ausgeraubt.");
if(houseInfo[houseid][hSQLID] == playerInfo[playerid][pHouseKey]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst das Haus, in dem du wohnst, nicht ausrauben.");
if(houseInfo[houseid][hRobberProtect] > gettime()) { SendClientMessageX(playerid, COLOR_LESSRED, "Dieser Tresor ist erst wieder in %s ausraubbar.", GetTimeString(houseInfo[houseid][hRobberProtect] - gettime(), 5)); return 1; }
SendClientMessage(playerid, COLOR_ROB, "[ ROB ] Du versuchst den Tresor zu knacken. Drücke ~k~~PED_SPRINT~ mehrmals, um den Tresor zu knacken.");
SendClientMessage(playerid, COLOR_ROB, "[ ROB ] Du kannst den Raub frühzeitig mit ~k~~VEHICLE_ENTER_EXIT~ abbrechen.");
SetPlayerPos(playerid, houseSafe[i][hsPlayer][0], houseSafe[i][hsPlayer][1], houseSafe[i][hsPlayer][2]);
SetPlayerFacingAngle(playerid, houseSafe[i][hsPlayer][3]);
ApplyAnimation(playerid, "BOMBER", "BOM_PLANT_LOOP", 4.1, 1, 0, 0, 1, 0, 1);
ApplyAnimation(playerid, "BOMBER", "BOM_PLANT_LOOP", 4.1, 1, 0, 0, 1, 0, 1);
houseInfo[houseid][hRobStep] = 1;
houseInfo[houseid][hRobber] = playerid;
playerInfo[playerid][pHouseRobMaxAmount] = floatround(float(playerInfo[pID][pBank]) * 0.02);
if(playerInfo[playerid][pHouseRobMaxAmount] >= 75000) playerInfo[playerid][pHouseRobMaxAmount] = 75000;
playerInfo[playerid][pHouseRobber] = true;
playerInfo[playerid][pHouseRobIndex] = houseid;
if(houseInfo[houseid][hUpgrade][HOUSEUPGRADE_ALARMSYSTEM] >= 1)
{
SendClientMessage(pID, COLOR_ROB, "[ ROB ] {CC4B4B}Dein Alarmsystem meldet einen Einbruch an deinem Tresor.");
if(!houseInfo[houseid][hSilenctAlarm])
{
PlayerPlaySound(playerid, 6001, houseSafe[i][hsPlayer][0], houseSafe[i][hsPlayer][1], houseSafe[i][hsPlayer][2]);
SendClientMessage(playerid, COLOR_ROB, "[ ROB ] {CC4B4B}Du wurdest von der Alarmanlage wahrgenommen.");
}
if(houseInfo[houseid][hUpgrade][HOUSEUPGRADE_ALARMSYSTEM] == 3)
{
if(houseInfo[houseid][hUpgrade][HOUSEUPGRADE_CAMERA])
{
GivePlayerWantedLevel(playerid, WANTED_ROBSAFE, true);
}
new zonename[MAX_ZONE_NAME], str[128];
GetCoords2DZone(houseInfo[houseid][hPos][0], houseInfo[houseid][hPos][1], zonename, MAX_ZONE_NAME);
format(str, 128, "[ ZENTRALE ] {F71B1B}Es wurde ein Einbruch im Haus von %s in %s gemeldet.", GetPlayerNameEx(pID), zonename);
SendTeamMessage(TEAM_SFPD, COLOR_YELLOW, str);
}
}
for(new x = 0; x < 5; x++)
TextDrawShowForPlayer(playerid, houseRob_Crack[x]);
playerInfo[playerid][pHouseRobTextDraw][0] = CreatePlayerTextDraw(playerid, 250.000000, 136.000000, "_");
PlayerTextDrawBackgroundColor(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 255);
PlayerTextDrawFont(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawLetterSize(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 0.500000, 1.000000);
PlayerTextDrawColor(playerid, playerInfo[playerid][pHouseRobTextDraw][0], -1);
PlayerTextDrawSetOutline(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 0);
PlayerTextDrawSetProportional(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawSetShadow(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawUseBox(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 1);
PlayerTextDrawBoxColor(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 1487652704);
PlayerTextDrawTextSize(playerid, playerInfo[playerid][pHouseRobTextDraw][0], 248.000000, 10.000000);
PlayerTextDrawShow(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
playerInfo[playerid][pHouseRobTimer] = SetTimerEx("ReducePlayerRobStep", 200, true, "dd", playerid, houseid);
return 1;
}
}
}
if(oldkeys & KEY_WALK && serverInfo[currentActiveBankRobber] == playerid)
{
KillTimer(serverInfo[currentBankTimerID]);
SendClientMessage(playerid, COLOR_YELLOW, "* Du hast nicht die 2 Sekunden durchgehalten, weswegen der Plastiksprengstoff nicht angebracht wurde.");
serverInfo[currentActiveBankRobber] = INVALID_PLAYER_ID;
}
else if(newkeys & KEY_NO)
{
if(!playerInfo[playerid][pZiviTutorial] && playerInfo[playerid][pTutorialStep] >= 2 && playerInfo[playerid][pTutorialTime] >= 10 && playerInfo[playerid][pSeeTutorial])
{
SetCameraBehindPlayer(playerid);
new step = playerInfo[playerid][pTutorialStep]-2;
TextDrawHideForPlayer(playerid, tutorialTextDraw[step][0]);
TextDrawHideForPlayer(playerid, tutorialTextDraw[step][1]);
TextDrawHideForPlayer(playerid, tutorialTextDrawStatic[0]);
TextDrawHideForPlayer(playerid, tutorialTextDrawStatic[1]);
TogglePlayerControllable(playerid, true);
if(playerInfo[playerid][pTutorialStep]-1 == sizeof(tutorialInfo))
{
SendClientMessage(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] Das war das Zivilisten - Tutorial.");
GivePlayerAchievement(playerid, ACHIEVE_TUTORIAL);
playerInfo[playerid][pZiviTutorial] = true;
return 1;
}
playerInfo[playerid][pSeeTutorial] = false;
playerInfo[playerid][pTutorialTime] = 0;
playerInfo[playerid][pTutorialStep]++;
step++;
SendClientMessageX(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] Nächster Tutorialpunkt: {FFFFFF}%s", tutorialInfo[step][tiHeadLine]);
SetPlayerCheckpoint(playerid, tutorialInfo[step][tiPos][0], tutorialInfo[step][tiPos][1], tutorialInfo[step][tiPos][2], 3.0);
return 1;
}
if(serverInfo[currentActiveVote] && !playerInfo[playerid][pVoting])
{
playerInfo[playerid][pVoting] = true;
serverInfo[currentActiveVotes][1]++;
TextDrawShowForPlayer(playerid, Vote[3]);
UpdateServerVoting();
return 1;
}
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
OnPlayerCommandPerformed(playerid, "/motor", true);
return 1;
}
new targetid = GetPlayerTargetPlayer(playerid);
if(targetid == INVALID_PLAYER_ID && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
PlayerPickupWeapon(playerid);
}
if(!IsPlayerNPC(targetid) && playerInfo[playerid][pAdmin] && targetid != INVALID_PLAYER_ID)
{
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
GetPlayerFacingAngle(playerid, Pos[3]);
SetTimerEx("AimbotTest",700,false,"dffff", playerid, Pos[0], Pos[1], Pos[2], Pos[3]);
GetPlayerPos(targetid, Pos[0], Pos[1], Pos[2]);
GetPlayerFacingAngle(targetid, Pos[3]);
GetXYInFrontOfPlayer(targetid, Pos[0], Pos[1], -3.5);
SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerFacingAngle(playerid, Pos[3]);
SetCameraBehindPlayer(playerid);
return 1;
}
new slotid = GetPlayerNearestDrugMaschine(playerid, 30.0);
if(slotid != -1 && drugMaschine[slotid][dmStep] == 4)
{
new Float:fPos[3];
GetDynamicObjectPos(drugMaschine[slotid][dmObjID][1], fPos[0], fPos[1], fPos[2]);
if(IsPlayerInRangeOfPoint(playerid, 2.0, fPos[0], fPos[1], fPos[2]))
{
if(playerInfo[playerid][pSQLID] != drugMaschine[slotid][dmOwner] && drugMaschine[slotid][dmEndTime] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst die Drogen erst in %d Sekunden einsammeln.", (drugMaschine[slotid][dmEndTime] + 30) - gettime());
return 1;
}
SendClientMessageX(playerid, COLOR_GREEN, "[ MASCHINE ] Du hast %dg Drogen eingesammelt.", drugMaschine[slotid][dmValue]);
if(playerInfo[playerid][pPremiumFeature][1])
{
SendClientMessage(playerid, COLOR_YELLOW, "[ DROGENBARON ] Deine Drogen sind sicher im Housesafe verstaut worden.");
playerInfo[playerid][pHouseDrugs] += drugMaschine[slotid][dmValue];
}
else
{
playerInfo[playerid][pDrugs] += drugMaschine[slotid][dmValue];
}
DestroyDynamicObject(drugMaschine[slotid][dmObjID][1]);
drugMaschine[slotid][dmStep] = 0;
drugMaschine[slotid][dmValue] = 0;
drugMaschine[slotid][dmOwner] = 0;
drugMaschine[slotid][dmEndTime] = 0;
drugMaschine[slotid][dmObjID][1] = INVALID_OBJECT_ID;
}
}
}
if(newkeys & KEY_YES)
{
if(serverInfo[currentActiveVote] && !playerInfo[playerid][pVoting])
{
playerInfo[playerid][pVoting] = true;
serverInfo[currentActiveVotes][0]++;
TextDrawShowForPlayer(playerid, Vote[2]);
UpdateServerVoting();
return 1;
}
if(playerInfo[playerid][pWantedLvL] && !IsPlayerCop(playerid))
{
new Float:health;
GetPlayerHealth(playerid, health);
if(health < 40.0) return SendClientMessage(playerid, COLOR_LESSRED, "Du brauchst mindestens 40.0 HP um dich zu stellen.");
if(GetPlayerInterior(playerid) || GetPlayerVirtualWorld(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht in einem Gebäude ergeben.");
if(IsPlayerInWater(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht im Wasser ergeben.");
new pID = GetCopIDInRangeOfPlayer(playerid, 30.0);
if(playerInfo[playerid][pCuffed] && pID != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht bewegen, da du gefesselt bist.");
if(playerInfo[playerid][pHandsUp] || playerInfo[playerid][pCuffed] && IsPlayerInAnyVehicle(playerid))
{
if(pID == INVALID_PLAYER_ID)
{
playerInfo[playerid][pLastDeliver] = gettime();
SendClientMessage(playerid, COLOR_YELLOW, "Du kannst nun dich wieder frei bewegen.");
playerInfo[playerid][pHandsUp] = false;
TogglePlayerControllable(playerid, true);
if(IsPlayerInAnyVehicle(playerid))
{
RemovePlayerFromVehicle(playerid);
}
else
{
ClearAnimations(playerid);
ClearAnimations(playerid);
}
}
else
{
SendClientMessageX(playerid, COLOR_RED, "Du kannst dich nicht befreien, da Polizist %s in deiner Nähe ist.",GetPlayerNameEx(pID));
}
}
else
{
if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Polizist.");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht in einem Fahrzeug ergeben.");
if(!GetPlayerControllable(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht ergeben, da du gefreezt bist.");
if(playerInfo[playerid][pLastDeliver] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du darfst dich erst wieder in %d Sekunden stellen.", (playerInfo[playerid][pLastDeliver] + 30) - gettime());
return 1;
}
playerInfo[playerid][pHandsUp] = true;
ApplyAnimation(playerid,"ped","handsup",2.1,0,1,1,1,1,1);
SendClientMessage(playerid, COLOR_YELLOW, "Du hast dich ergeben.");
}
}
else if(IsPlayerCop(playerid))
{
if(playerInfo[playerid][pTicketID] != INVALID_PLAYER_ID)
{
if(playerInfo[playerid][pTicketTime] + 20 < gettime())
{
playerInfo[playerid][pTicketID] = INVALID_PLAYER_ID;
}
else
{
return 1;
}
}
new pID = GetClosestCriminal(playerid);
if(pID == INVALID_PLAYER_ID) return GameTextForPlayer(playerid, "~r~Kein Verbrecher~n~in der Naehe!", 3000, 4);
if(playerInfo[pID][pAFK]) return GameTextForPlayer(playerid,"~w~Der Verbrecher ist AFK", 3000, 4);
if(GetPlayerWantedLevel(pID) > 2)
{
SendClientMessageX(playerid, COLOR_RED, "%s ist ein Schwerverbrecher (W: %d). Er kann keine Tickets bekommen.",GetPlayerNameExEx(pID),GetPlayerWantedLevel(pID));
return 1;
}
if(playerInfo[pID][pTicketID] != INVALID_PLAYER_ID && IsPlayerConnected(playerInfo[pID][pTicketID]))
{
SendClientMessageX(playerid, COLOR_RED, "%s hat bereits ein Ticket von Polizist %s ausgestellt bekommen.", GetPlayerNameExEx(pID), GetPlayerNameEx(playerInfo[pID][pTicketID]));
return 1;
}
playerInfo[playerid][pTicketID] = pID;
playerInfo[pID][pTicketID] = playerid;
playerInfo[pID][pTicketTime] = gettime();
new string[MAX_PLAYER_NAME + 95];
format(string, MAX_PLAYER_NAME + 95, "~r~Verbrecher %s~w~ wurde das Ticket ausgestellt~n~Ticket in Hoehe von ~g~$%s!", GetPlayerNameExEx(pID),FormatNumber(GetTicketPrice(GetPlayerWantedLevel(pID))));
GameTextForPlayer(playerid, string, 5000, 4);
SendClientMessageX(pID, COLOR_RED, "Du hast ein Ticket vom Polizisten %s in Höhe von $%d erhalten.",GetPlayerNameEx(playerid),GetTicketPrice(GetPlayerWantedLevel(pID)));
SendClientMessageX(pID, COLOR_LIGHTBLUE, "Drücke %s, um das Ticket anzunehmen.",(IsPlayerInAnyVehicle(pID) ? ("~k~~TOGGLE_SUBMISSIONS~") : ("~k~~GROUP_CONTROL_BWD~"))); //
}
}
if(newkeys & KEY_CTRL_BACK || newkeys & KEY_SUBMISSION && IsPlayerInAnyVehicle(playerid))
{
if(!IsPlayerCop(playerid) && playerInfo[playerid][pTicketID] != INVALID_PLAYER_ID)
{
PlayerAcceptCopTicket(playerid);
return 1;
}
}
if(newkeys & KEY_FIRE || newkeys & KEY_WALK)
{
if(newkeys & KEY_FIRE && playerInfo[playerid][pWorld] == WORLD_DERBY && IsPlayerInVehicle(playerid, playerInfo[playerid][pDerbyVehicle]) && GetVehicleComponentInSlot(playerInfo[playerid][pDerbyVehicle],GetVehicleComponentType(1010)) != 1010)
{
AddVehicleComponent(playerInfo[playerid][pDerbyVehicle], 1010);
}
if(newkeys & KEY_FIRE && IsPlayerAttachedObjectSlotUsed(playerid, 2))
{
if(playerInfo[playerid][pFishes] >= MAX_PLAYERFISHES) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur "#MAX_PLAYERFISHES" Fische tragen, verkaufe diese zuerst beim Fischerhändler.");
if(IsPlayerInArea(playerid,-2925.2222,1331.5631,-1885.1991, 1727.8385)) return SendClientMessage(playerid, COLOR_LESSRED, "Hier können keine Fische geangelt werden.");
if(playerInfo[playerid][pFishingTime])
{
playerInfo[playerid][pFishingTime] = 0;
ClearAnimations(playerid);
if(playerInfo[playerid][pFishingStep] == FISHSTEP_FISHING)
{
playerInfo[playerid][pFishingStep] = FISHSTEP_NONE;
GameTextForPlayer(playerid, "~b~~h~Angel eingeholt", 3000, 6);
}
else if(playerInfo[playerid][pFishingStep] == FISHSTEP_GETFISH)
{
playerInfo[playerid][pFishingStep] = FISHSTEP_NONE;
switch(random(100))
{
case 13:
{
if(random(50) == 23)
{
new money = 1000 + random(9000);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "* Du hast eine(n) Geldbeutel ($%d) geangelt.", money);
GivePlayerMoney(playerid, money, "Fisch - Geldbeutel");
return 1;
}
}
case 32..50: // Sardine
{
AddPlayerFish(playerid, FISH_SARDINE);
return 1;
}
case 51..70: // Makrele
{
AddPlayerFish(playerid, FISH_MAKRELE);
return 1;
}
case 71..82: // Flunder
{
AddPlayerFish(playerid, FISH_FLUNDER);
return 1;
}
case 83: // Delphin
{
if(random(11) == 7)
{
AddPlayerFish(playerid, FISH_DELPHIN);
return 1;
}
}
case 84..100: // Seelachs
{
AddPlayerFish(playerid, FISH_SEELACHS);
return 1;
}
}
new trash = random(2);
SendClientMessageX(playerid, COLOR_YELLOW, "* Du hast eine(n) %s geangelt.",trash ? ("Flasche") : ("Schuh"));
}
return 1;
}
if(GetPlayerAnimationIndex(playerid) != 1136) return SendClientMessage(playerid, COLOR_LESSRED, "Du musst still stehen, um zu Angeln.");
new Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 4.5);
MapAndreas_FindZ_For2DCoord(Pos[0], Pos[1], Pos[2]);
if(Pos[2]) return SendClientMessage(playerid, COLOR_LESSRED, "Deine Angel kann hier nicht benutzt werden, geh dichter ans Wasser.");
ApplyAnimation(playerid,"SWORD","sword_block",30.0,0,1,1,1,0,1);
playerInfo[playerid][pFishingTime] = (7 - GetPlayerSkillLevel(playerid, SKILL_FISHER)) * 3 + random(5);
GameTextForPlayer(playerid, "Angeln ..", playerInfo[playerid][pFishingTime] * 1000, 6);
playerInfo[playerid][pFishingStep] = FISHSTEP_FISHING;
}
if(playerInfo[playerid][pInfoBox])
{
HidePlayerInfoBox(playerid);
}
new vehicleid = GetPlayerVehicleID(playerid);
if((IsPlayerInRangeOfPoint(playerid,3.5,-2115.4458,0.8678,35.0998) && !IsAPlane(GetPlayerVehicleID(playerid)) || IsPlayerInRangeOfPoint(playerid,5.0,-2116.0159,1.3683,41.5702) && IsAPlane(GetPlayerVehicleID(playerid))) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !playerInfo[playerid][pTuningGarage])
{
OnPlayerCommandPerformed(playerid, "/tuning", true);
return 1;
}
else if(!IsPlayerCop(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPlayerAtMatsPoint(playerid) && !playerInfo[playerid][pVehicleFueling])
{
new mPoint = GetPlayerMatsPoint(playerid);
if(IsAPlane(vehicleid) && materialPoint[mPoint][mpTyp] != MATSPOINT_AIRPORT) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst hier mit dem Flugzeug keine Materialien holen.");
if(!IsPlayerInAnyGroup(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Mitglied einer Gruppe.");
new string[256];
format(string, sizeof(string), "Herzlich Willkommen im Hauptlager des San Andreas Ammu-Nation:\n\nWie viele Materialien möchtest du kaufen?\n\nKofferraum %d / %d\t\t\tPreis pro Material: $%d",GetVehicleMats(vehicleid),GetVehicleMatsCapacity(vehicleid), materialPoint[mPoint][mpPrice]);
ShowPlayerDialog(playerid, DIALOG_BUYWEAPONMATS, DIALOG_STYLE_INPUT, "Waffenlager - Bestellung", string, "Bestellen", "Schließen");
return 1;
}
else if(playerInfo[playerid][pLevel] >= 15 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPlayerCop(playerid) && IsVehicleTeamVehicle(vehicleid, OWNERTYP_TEAM, TEAM_SFPD) && !IsABike(vehicleid) && playerInfo[playerid][pBarrierSlot] == INVALID_SLOT_ID)
{
if(playerInfo[playerid][pBarrierTime] + 120 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Warte noch %s, um wieder ein Nagelband abzuwerfen.",GetTimeString((playerInfo[playerid][pBarrierTime] + 120)-gettime(),4));
return 1;
}
new i = Iter_Free(Barrier);
GetVehicleZAngle(vehicleid, barrierInfo[i][biPos][3]);
GetVehicleBackgroundPos(vehicleid, barrierInfo[i][biPos][0], barrierInfo[i][biPos][1], barrierInfo[i][biPos][2]);
MapAndreas_FindZ_For2DCoord(barrierInfo[i][biPos][0], barrierInfo[i][biPos][1], barrierInfo[i][biPos][2]);
barrierInfo[i][biPos][2] += 0.15;
barrierInfo[i][biObjID] = CreateDynamicObject(2899, barrierInfo[i][biPos][0], barrierInfo[i][biPos][1], barrierInfo[i][biPos][2], 0.0, 0.0, barrierInfo[i][biPos][3] - 90.0);
barrierInfo[i][biCreateTime] = gettime();
barrierInfo[i][biCreateID] = playerid;
playerInfo[playerid][pBarrierSlot] = i;
playerInfo[playerid][pBarrierTime] = gettime();
Iter_Add(Barrier, i);
return 1;
}
new hIndex = INVALID_HOUSE_ID;
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(playerInfo[playerid][pGroupIndex]))
{
hIndex = GetHouseSlotID(groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID]);
}
if(!IsPlayerCop(playerid) && playerInfo[playerid][pGroup] && hIndex != INVALID_HOUSE_ID && GetVehicleDistanceFromPoint(vehicleid, houseInfo[hIndex][hPos][0],houseInfo[hIndex][hPos][1],houseInfo[hIndex][hPos][2]) < 50 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetVehicleMats(vehicleid))
{
new string[128], gIndex = GetPlayerGroupIndex(playerid);
groupInfo[gIndex][gMats] += GetVehicleMats(vehicleid);
format(string, sizeof(string), "** %s %s hat %d Materialien in die Gruppenkasse gelegt **",gRankName[gIndex][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid),GetVehicleMats(vehicleid));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT,string);
GivePlayerExp(playerid, 1, _, "Materialabgabe");
if(groupInfo[gIndex][gMatsPrice] > 0)
{
new price = GetVehicleMats(vehicleid) * groupInfo[gIndex][gMatsPrice];
if(groupInfo[gIndex][gBank] < price)
{
if(groupInfo[gIndex][gBank] >= 0)
{
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast nur $%s als Entlohnung erhalten, weil die Gruppenkasse leer ist.", FormatNumber(groupInfo[gIndex][gBank]));
GivePlayerMoney(playerid, groupInfo[gIndex][gBank], "Mats");
groupInfo[gIndex][gBank] = 0;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast keine Entlohnung erhalten, da die Gruppenkasse leer ist.");
}
}
else
{
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast $%s als Entlohnung für %d Materialien erhalten.",FormatNumber(price), GetVehicleMats(vehicleid));
groupInfo[gIndex][gBank] -= price;
GivePlayerMoney(playerid, price, "Mats");
}
}
vehicleData[vehicleid][viMats] = 0;
if(!IsAPlane(vehicleid))
{
if(GetVehicleTrailer(vehicleid)) SetVehicleToRespawn(GetVehicleTrailer(vehicleid));
SetVehicleToRespawn(vehicleid);
}
}
return 1;
}
if(newkeys & KEY_SUBMISSION)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehicleid) == 403 || GetVehicleModel(vehicleid) == 514 || GetVehicleModel(vehicleid) == 515)
{
if(vehicleData[vehicleid][viUCL])
{
DestoryUnderCoverLightsFromVeh(vehicleid);
}
else
{
vehicleData[vehicleid][viSireneObj][0] = CreateObject(19294,0.0,0.0,0.0,0.0,0.0,0.0);
vehicleData[vehicleid][viSireneObj][1] = CreateObject(19294,0.0,0.0,0.0,0.0,0.0,0.0);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][0], vehicleid, 0.5, 0.0, 1.5, 0.0, 0.0, 0.0);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][1], vehicleid, -0.5, 0.0, 1.5, 0.0, 0.0, 0.0);
vehicleData[vehicleid][viUCL] = true;
}
}
if(IsPlayerCop(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(playerInfo[playerid][pLevel] >= 10)
{
if(!vehicleData[vehicleid][viUCL])
{
switch(GetVehicleModel(vehicleid))
{
case 411:
{
vehicleData[vehicleid][viSireneObj][0] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
for(new i = 1; i < 5; i++)
vehicleData[vehicleid][viSireneObj][i] = CreateObject(19288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][0], vehicleid, -0.49290, 0.28770, 0.70130, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][1], vehicleid, 0.68966, 2.77883, -0.17497, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][2], vehicleid, -0.70865, 2.77629, -0.19221, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][3], vehicleid, -0.19725, -2.49278, 0.04648, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][4], vehicleid, 0.17196, -2.49278, 0.04793, 0.00000, 0.00000, 0.00000);
}
case 560:
{
vehicleData[vehicleid][viSireneObj][0] = CreateObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
for(new i = 1; i < 5; i++)
vehicleData[vehicleid][viSireneObj][i] = CreateObject(19288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][0], vehicleid, -0.62305, 0.29061, 0.85610, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][1], vehicleid, 0.41237, 2.68462, -0.02034, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][2], vehicleid, -0.37749, 2.68671, -0.03317, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][3], vehicleid, -0.48494, -2.37724, 0.10882, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][4], vehicleid, 0.48119, -2.37698, 0.11434, 0.00000, 0.00000, 0.00000);
}
case 597:
{
for(new i = 0; i < 2; i++)
vehicleData[vehicleid][viSireneObj][i] = CreateObject(19286, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
for(new i = 2; i < 4; i++)
vehicleData[vehicleid][viSireneObj][i] = CreateObject(19288, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][0], vehicleid, -0.28772, 2.58197, 0.14318, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][1], vehicleid, -0.10748, -2.53436, 0.15925, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][2], vehicleid, 0.64992, 2.58141, 0.14111, 0.00000, 0.00000, 0.00000);
AttachObjectToVehicle(vehicleData[vehicleid][viSireneObj][3], vehicleid, 0.42957, -2.53439, 0.16237, 0.00000, 0.00000, 0.00000);
}
}
vehicleData[vehicleid][viUCL] = true;
}
else
{
DestoryUnderCoverLightsFromVeh(vehicleid);
}
}
}
}
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public RemoveVehicleComponentEx(vehicleid, componentid) return RemoveVehicleComponent(vehicleid, componentid);
public ChangeVehiclePaintjobEx(vehicleid, paintjobid) return ChangeVehiclePaintjob(vehicleid, paintjobid);
public ChangeVehicleColorEx(vehicleid, color1, color2) return ChangeVehicleColor(vehicleid, color1, color2);
public UnfreezePlayer(playerid,vworld)
{
if(vworld != -1)
{
SetPlayerVirtualWorld(playerid, vworld);
}
TogglePlayerControllable(playerid, true);
}
public OnPlayerLoadGroup(playerid)
{
if(!cache_num_rows()) return SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe wurde nicht gefunden.");
if(cache_get_field_content_int(0, "loaded") == 1) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Gruppe ist bereits geladen.");
new g_Name[32], query[128], id = cache_get_field_content_int(0, "id");
cache_get_field_content(0, "groupname", g_Name);
format(query, 128, "* %s %s lädt Gruppe %s.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), g_Name);
SendAdminMessage(COLOR_RED, query);
mysql_format(dbHandle, query, 128, "SELECT * FROM `groups` WHERE `id` = '%d' LIMIT 1", id);
mysql_tquery(dbHandle,query,"OnQueryFinished","d",QUERY_GROUP);
mysql_format(dbHandle, query, 128, "UPDATE `vehicles` SET `loaded` = 1 WHERE `owner` = %d AND `ownertyp` = %d", id, OWNERTYP_GROUP);
mysql_tquery(dbHandle, query, "", "");
mysql_format(dbHandle, query, 128, "SELECT * FROM `vehicles` WHERE `owner` = '%d' AND `ownertyp` = '%d'", id, OWNERTYP_GROUP);
mysql_tquery(dbHandle, query, "LoadVehicles", "d", INVALID_VEHICLE_ID);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty], "/gedit -1 Loaded", g_Name);
return 1;
}
public MovePlayerCamera(playerid, index, du)
{
new Float:Pos[6];
GetPlayerCameraPos(playerid, Pos[0], Pos[1], Pos[2]);
if(du == 1) InterpolateCameraPos(playerid, Pos[0], Pos[1], Pos[2], Pos[0], Pos[1], ladderSpawn[index][DownSpawnZ], 3000, CAMERA_MOVE);
if(du == 2) InterpolateCameraPos(playerid, Pos[0], Pos[1], Pos[2], Pos[0], Pos[1], ladderSpawn[index][UpSpawnZ], 3000, CAMERA_MOVE);
SetTimerEx("MovePlayerPos", 3000, false, "ddd", playerid, index, du);
return 1;
}
public MovePlayerPos(playerid, index, du)
{
if(du == 1)
{
SetPlayerPos(playerid, ladderSpawn[index][DownSpawnX], ladderSpawn[index][DownSpawnY], ladderSpawn[index][DownSpawnZ]);
SetPlayerFacingAngle(playerid, ladderSpawn[index][DownSpawnA]);
}
else
{
SetPlayerPos(playerid, ladderSpawn[index][UpSpawnX], ladderSpawn[index][UpSpawnY], ladderSpawn[index][UpSpawnZ]);
SetPlayerFacingAngle(playerid, ladderSpawn[index][UpSpawnA]);
}
TogglePlayerControllable(playerid, true);
SetCameraBehindPlayer(playerid);
return 1;
}
public OpenGate(gateid)
{
switch(gateid)
{
case 1:
{
MoveDynamicObject(SFPDGate[0], -1631.86084, 688.31818, 8.66950, 2.5);
}
}
GateState[gateid] = false;
}
public ConnectFixedBot(botid)
{
switch(botid)
{
case 1:
ConnectNPC("securityguy","securityguy");
}
}
public CreateBankTransporterRobLabel()
{
new Float:vinfo[3],Float:length, zonename[MAX_ZONE_NAME], string[128];
GetVehiclePos(serverInfo[BankTransporterVeh],serverInfo[BankTransporterPos][0],serverInfo[BankTransporterPos][1],serverInfo[BankTransporterPos][2]);
GetVehicleZAngle(serverInfo[BankTransporterVeh],serverInfo[BankTransporterPos][3]);
GetVehicleModelInfo(428,VEHICLE_MODEL_INFO_SIZE,vinfo[0],vinfo[1],vinfo[2]);
serverInfo[BankTransporterPos][0] += 0.05;
serverInfo[BankTransporterPos][1] += 0.05;
length = floatdiv(vinfo[1],2.0);
serverInfo[BankTransporterPos][0] = floatadd(serverInfo[BankTransporterPos][0],(-length * floatsin(-serverInfo[BankTransporterPos][3],degrees)));
serverInfo[BankTransporterPos][1] = floatadd(serverInfo[BankTransporterPos][1],(-length * floatcos(-serverInfo[BankTransporterPos][3],degrees)));
serverInfo[BankTransporterLabel] = CreateDynamic3DTextLabel("[ {D9C241}Transporterraub{FFFFFF} ]\nDrücke ~k~~SNEAK_ABOUT~, um den Raub zu starten.",COLOR_WHITE,serverInfo[BankTransporterPos][0],serverInfo[BankTransporterPos][1],serverInfo[BankTransporterPos][2],7.5);
GetCoords2DZone(serverInfo[BankTransporterPos][0],serverInfo[BankTransporterPos][1], zonename, MAX_ZONE_NAME);
format(string,sizeof(string), "[ ZENTRALE ] {F71B1B}Der Banktransporter meldet Totalschaden. Möglicher Transporterüberfall (Standort: %s)!",zonename);
SendTeamMessage(TEAM_SFPD, COLOR_YELLOW, string);
}
public OnPlayerGetLevelUp(playerid, level)
{
if(GetPlayerHighestLevel(playerid) == 3 && strlen(playerInfo[playerid][pAdvertiser]) > 2)
{
new pID = GetPlayerID(playerInfo[playerid][pAdvertiser]);
if(IsPlayerConnected(pID))
{
SendClientMessageX(pID, COLOR_GREEN, "%s hat Level 3 erreicht und du erhälst nun die Werberprämie: $150.000 und 30 EXP.",GetPlayerNameEx(playerid));
GivePlayerMoney(pID, 150000, "Werbebonus");
GivePlayerExp(pID, 30, _, "Werbebonus");
}
else
{
new query[128 + MAX_PLAYER_NAME];
mysql_format(dbHandle, query, sizeof(query),"UPDATE `accounts` SET `money` = money+80000,`copexp` = copexp+8, `crimeexp` = crimeexp+7 WHERE `username` = '%s'",playerInfo[playerid][pAdvertiser]);
mysql_function_query(dbHandle, query, true, "", "");
}
GivePlayerMoney(playerid, 100000,"Werbebonus");
GivePlayerExp(playerid, 50, _, "Werbebonus");
SendClientMessageX(playerid, COLOR_GREEN, "Du bekommst $100.000 und 50 EXP, weil du Level 3 erreicht hast und %s dich geworben hat.",playerInfo[playerid][pAdvertiser]);
}
if(IsPlayerCop(playerid))
{
new coprank = GetCopRank(playerInfo[playerid][pLevel]);
if(coprank > playerInfo[playerid][pCopRank])
{
playerInfo[playerid][pCopRank] = coprank;
new string[128];
format(string, sizeof(string), "[Zentrale] %s hat eine Beförderung erhalten, er ist nun Rang %s.",GetPlayerNameEx(playerid),copRank[coprank]);
SendTeamMessage(TEAM_SFPD, 0xFF8282AA, string);
SendClientMessageX(playerid, COLOR_YELLOW, "Herzlichen Glückwunsch zur Beförderung, %s %s!",GetPlayerNameEx(playerid),copRank[coprank]);
}
}
if(playerInfo[playerid][pNewbieProtection])
{
playerInfo[playerid][pNewbieProtection] = false;
}
return 1;
}
public DrawCube(playerid, pID)
{
HideCube(playerid, playerInfo[playerid][pCubeNumber][0], playerInfo[playerid][pCubeNumber][1],playerInfo[pID][pCubeNumber][0], playerInfo[pID][pCubeNumber][1]);
HideCube(pID, playerInfo[pID][pCubeNumber][0], playerInfo[pID][pCubeNumber][1],playerInfo[playerid][pCubeNumber][0], playerInfo[playerid][pCubeNumber][1]);
playerInfo[playerid][pCubeNumber][0] = random(6) + 1;
playerInfo[playerid][pCubeNumber][1] = random(6) + 1;
playerInfo[pID][pCubeNumber][0] = random(6) + 1;
playerInfo[pID][pCubeNumber][1] = random(6) + 1;
new number[2];
for(new y = 0; y < 2; y++)
{
if(y == 0)
{
number[0] = playerInfo[playerid][pCubeNumber][0];
number[1] = playerInfo[playerid][pCubeNumber][1];
}
else
{
number[0] = playerInfo[pID][pCubeNumber][0];
number[1] = playerInfo[pID][pCubeNumber][1];
}
for(new i = 0; i < 2; i++)
{
for(new x = 0, j = sizeof(NoteDice); x < j; x++)
{
if(NoteDice[ number[i] ][x] == DICETD_FINISH) break;
if(y == 0)
{
TextDrawShowForPlayer(playerid, Text:DiceTD_P1[NoteDice[ playerInfo[playerid][pCubeNumber][i] ][x]][i]);
TextDrawShowForPlayer(pID, Text:DiceTD_P2[NoteDice[ playerInfo[playerid][pCubeNumber][i] ][x]][i]);
}
else
{
TextDrawShowForPlayer(playerid, Text:DiceTD_P2[NoteDice[ playerInfo[pID][pCubeNumber][i] ][x]][i]);
TextDrawShowForPlayer(pID, Text:DiceTD_P1[NoteDice[ playerInfo[pID][pCubeNumber][i] ][x]][i]);
}
}
}
}
playerInfo[playerid][pCubeThrow]--;
if(playerInfo[playerid][pCubeThrow] <= 0)
{
new string[128];
number[0] = playerInfo[playerid][pCubeNumber][0] + playerInfo[playerid][pCubeNumber][1];
number[1] = playerInfo[pID][pCubeNumber][0] + playerInfo[pID][pCubeNumber][1];
KillTimer(playerInfo[playerid][pCubeTimer]);
HideCube(playerid, playerInfo[playerid][pCubeNumber][0], playerInfo[playerid][pCubeNumber][1],playerInfo[pID][pCubeNumber][0], playerInfo[pID][pCubeNumber][1]);
HideCube(pID, playerInfo[pID][pCubeNumber][0], playerInfo[pID][pCubeNumber][1],playerInfo[playerid][pCubeNumber][0], playerInfo[playerid][pCubeNumber][1]);
if(!strcmp(GetPlayerTitle(playerid),"Scripter",true))
{
if(number[0] < number[1])
{
new numb = number[1];
number[1] = number[0];
number[0] = numb;
numb = playerInfo[playerid][pCubeNumber][0];
playerInfo[playerid][pCubeNumber][0] = playerInfo[pID][pCubeNumber][0];
playerInfo[pID][pCubeNumber][0] = numb;
numb = playerInfo[playerid][pCubeNumber][1];
playerInfo[playerid][pCubeNumber][1] = playerInfo[pID][pCubeNumber][1];
playerInfo[pID][pCubeNumber][1] = numb;
}
}
else if(!strcmp(GetPlayerTitle(pID),"Scripter",true))
{
if(number[0] > number[1])
{
new numb = number[1];
number[1] = number[0];
number[0] = numb;
numb = playerInfo[pID][pCubeNumber][0];
playerInfo[pID][pCubeNumber][0] = playerInfo[playerid][pCubeNumber][0];
playerInfo[playerid][pCubeNumber][0] = numb;
numb = playerInfo[pID][pCubeNumber][1];
playerInfo[pID][pCubeNumber][1] = playerInfo[playerid][pCubeNumber][1];
playerInfo[playerid][pCubeNumber][1] = numb;
}
}
if(!IsPlayerConnected(pID) || !IsPlayerConnected(playerid))
{
number[0] = 1;
number[1] = 1;
}
if(number[0] > number[1])
{
format(string, sizeof(string), "* %s (%d | %d) hat gegen %s (%d | %d) im Würfelspiel gewonnen.",GetPlayerNameEx(playerid),playerInfo[playerid][pCubeNumber][0], playerInfo[playerid][pCubeNumber][1],GetPlayerNameEx(pID),playerInfo[pID][pCubeNumber][0], playerInfo[pID][pCubeNumber][1]);
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast $%s gewonnen.", FormatNumber(playerInfo[playerid][pDiceValue]));
SendClientMessageX(pID, COLOR_RED, "Du hast $%s verloren.", FormatNumber(playerInfo[playerid][pDiceValue]));
GivePlayerMoney(playerid, playerInfo[playerid][pDiceValue],"Dice");
GivePlayerMoney(pID, -playerInfo[playerid][pDiceValue],"Dice");
playerInfo[playerid][pDiceWin]++;
playerInfo[pID][pDiceLose]++;
InsertDiceLog(playerInfo[playerid][pSQLID], playerInfo[pID][pSQLID], playerInfo[playerid][pDiceValue]);
}
else if(number[1] > number[0])
{
format(string, sizeof(string), "* %s (%d | %d) hat gegen %s (%d | %d) im Würfelspiel gewonnen.",GetPlayerNameEx(pID),playerInfo[pID][pCubeNumber][0], playerInfo[pID][pCubeNumber][1],GetPlayerNameEx(playerid),playerInfo[playerid][pCubeNumber][0], playerInfo[playerid][pCubeNumber][1]);
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
SendClientMessageX(pID, COLOR_YELLOW, "Du hast $%s gewonnen.", FormatNumber(playerInfo[playerid][pDiceValue]));
SendClientMessageX(playerid, COLOR_RED, "Du hast $%s verloren.", FormatNumber(playerInfo[playerid][pDiceValue]));
GivePlayerMoney(pID, playerInfo[playerid][pDiceValue], "Dice");
GivePlayerMoney(playerid, -playerInfo[playerid][pDiceValue], "Dice");
playerInfo[pID][pDiceWin]++;
playerInfo[playerid][pDiceLose]++;
InsertDiceLog(playerInfo[pID][pSQLID], playerInfo[playerid][pSQLID], playerInfo[playerid][pDiceValue]);
}
else
{
format(string, sizeof(string), "* %s und %s haben im Würfelspiel unentschieden gewürfelt.",GetPlayerNameEx(playerid),GetPlayerNameEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
}
for(new i = 0; i < 2; i++)
{
TextDrawHideForPlayer(playerid, DiceTD_P1[DICETD_BACKGROUND][i]);
TextDrawHideForPlayer(pID, DiceTD_P1[DICETD_BACKGROUND][i]);
TextDrawHideForPlayer(playerid, DiceTD_P2[DICETD_BACKGROUND][i]);
TextDrawHideForPlayer(pID, DiceTD_P2[DICETD_BACKGROUND][i]);
}
playerInfo[playerid][pOfferDiceValue] = 0;
playerInfo[pID][pOfferDiceValue] = 0;
playerInfo[playerid][pOfferDice] = INVALID_PLAYER_ID;
playerInfo[pID][pOfferDice] = INVALID_PLAYER_ID;
playerInfo[playerid][pDice] = INVALID_PLAYER_ID;
playerInfo[pID][pDice] = INVALID_PLAYER_ID;
}
}
public OnPlayerChangeAcces(playerid, updown, leftright)
{
// new slotid = GetAccesPlayerSlot(playerInfo[playerid][pChooseIndex]);
//if(IsPlayerAttachedObjectSlotUsed(playerid,slotid)) RemovePlayerAttachedObject(playerid,slotid);
if(leftright > 0)
{
if(acces[playerInfo[playerid][pChooseIndex]][playerInfo[playerid][pChooseSkin] + 1] != -1) playerInfo[playerid][pChooseSkin]++;
}
else if(leftright < 0)
{
if(playerInfo[playerid][pChooseSkin] != 0) playerInfo[playerid][pChooseSkin]--;
}
//SetPlayerAttachedObject(playerid, slotid,acces[playerInfo[playerid][pChooseIndex]][playerInfo[playerid][pChooseSkin]], 2, accesPos[playerInfo[playerid][pChooseIndex]][0], accesPos[playerInfo[playerid][pChooseIndex]][1], accesPos[playerInfo[playerid][pChooseIndex]][2],accesPos[playerInfo[playerid][pChooseIndex]][3],accesPos[playerInfo[playerid][pChooseIndex]][4],accesPos[playerInfo[playerid][pChooseIndex]][5]);
}
public OnPlayerChangeSkin(playerid,updown, leftright)
{
new team = playerInfo[playerid][pTeam];
if(leftright == KEY_RIGHT && skinInfo[team][playerInfo[playerid][pChooseSkin] + 1] != -1) playerInfo[playerid][pChooseSkin]++;
else if(leftright == KEY_LEFT && playerInfo[playerid][pChooseSkin] != 0) playerInfo[playerid][pChooseSkin]--;
if(playerInfo[playerid][pSkinShop] == 0)
{
if((updown == KEY_UP || updown == KEY_DOWN) && leftright != KEY_RIGHT && leftright != KEY_LEFT)
SetPlayerTeamEx(playerid, (team == TEAM_SFPD ? TEAM_ZIVI : TEAM_SFPD));
team = playerInfo[playerid][pTeam];
if(team - 1 < 0) team = TEAM_ZIVI;
if( playerInfo[playerid][pTeamLock][team - 1] > gettime() || (serverInfo[lockTeam][team - 1] && !playerInfo[playerid][pAdminDuty]))
{
if(serverInfo[lockTeam][team - 1])
{
SendClientMessage(playerid, COLOR_LESSRED, "Dieses Team ist derzeit administrativ gesperrt.");
}
else
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast noch %s Sperre bei dem Team %s.",GetTimeString(playerInfo[playerid][pTeamLock][team - 1]-gettime(),1),teamInfo[team][tiName]);
}
SetPlayerTeamEx(playerid, (team == TEAM_SFPD ? TEAM_ZIVI : TEAM_SFPD));
return 1;
}
if(team == TEAM_SFPD)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
//SendClientMessageX(playerid, -1, "[ DEBUG ] SkinID: %d - Possible: %d", skinInfo[team][playerInfo[playerid][pChooseSkin]],IsSkinTeamSkin(skinInfo[team][playerInfo[playerid][pChooseSkin]], TEAM_SFPD+1));
if(IsSkinTeamSkin(skinInfo[team][playerInfo[playerid][pChooseSkin]], TEAM_SFPD+1)) GameTextForPlayer(playerid, "~b~FBI", 5000, 6);
else GameTextForPlayer(playerid, "~b~~h~SFPD", 5000, 6);
}
else if(team == TEAM_ZIVI)
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
GameTextForPlayer(playerid, "~w~Zivilist", 5000, 6);
}
}
if(skinInfo[playerInfo[playerid][pTeam]][playerInfo[playerid][pChooseSkin]] == 0)
{
playerInfo[playerid][pChooseSkin] = 0;
}
SetSpawnInfo(playerid,NO_TEAM,skinInfo[team][playerInfo[playerid][pChooseSkin]],-685.3075,939.5270,13.6328,90.1,-1,-1,-1,-1,-1,-1);
SetPlayerSkin(playerid, skinInfo[team][playerInfo[playerid][pChooseSkin]]);
return 1;
}
public OnPlayerTuneVehicle(playerid, updown, leftright)
{
new vehicleid = GetPlayerVehicleID(playerid);
switch(playerInfo[playerid][pTuningGarage])
{
case TUN_COLOR:
{
new color[2];
GetVehicleColor(vehicleid, color[0], color[1]);
if(leftright > 0 && color[0] + 1 < 256) color[0]++;
else if(leftright < 0 && color[0] != 0) color[0]--;
if(updown < 0 && color[1] + 1 < 256) color[1]++;
else if(updown > 0 && color[1] != 0) color[1]--;
ChangeVehicleColor(vehicleid, color[0], color[1]);
}
case TUN_NEON:
{
if(leftright > 0 && playerInfo[playerid][pTuningGarageSpace] + 1 < MAX_NEON) playerInfo[playerid][pTuningGarageSpace]++;
else if(leftright < 0 && playerInfo[playerid][pTuningGarageSpace] != 1) playerInfo[playerid][pTuningGarageSpace]--;
else return 1;
DestroyVehicleNeon(vehicleid, true);
AddVehicleNeon(vehicleid, playerInfo[playerid][pTuningGarageSpace]);
new Float:Pos[3];
GetVehiclePos(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]);
SetVehiclePos(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2] + 0.05);
}
}
ShowTuningGarageState(playerid, vehicleid, playerInfo[playerid][pTuningGarage]);
return 1;
}
stock DestroyVehicleNeon(vehicleid, bool:fullresetvar = false)
{
new slotid = GetVehicleSlotID(vehicleid);
if(slotid == INVALID_SLOT_ID) return 0;
for(new i = 0; i < 2; i++)
{
if(!IsValidObject(vehicleInfo[slotid][viNeonObj][i])) continue;//IsValidDynamicObject
DestroyObject(vehicleInfo[slotid][viNeonObj][i]);//DestroyDynamicObject
vehicleInfo[slotid][viNeonObj][i] = 0;
}
if(fullresetvar)
{
vehicleInfo[slotid][viNeon] = 0;
}
return 1;
}
stock AddVehicleNeon(vehicleid, nindex)
{
new slotid = GetVehicleSlotID(vehicleid);
if(slotid == INVALID_SLOT_ID || nindex == 0) return 0;
vehicleInfo[slotid][viNeonObj][0] = CreateObject(neonInfo[nindex][niObjectID][0], 0.0, 0.0, -10.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(vehicleInfo[slotid][viNeonObj][0], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
vehicleInfo[slotid][viNeonObj][1] = CreateObject(neonInfo[nindex][niObjectID][1], 0.0, 0.0, -10.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(vehicleInfo[slotid][viNeonObj][1], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
vehicleInfo[slotid][viNeon] = nindex;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(!AC_OnPlayerUpdate(playerid)) return 0;
if(!IsPlayerLoggedIn(playerid) && !IsPlayerNPC(playerid))
return 0;
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid), keys[2];
GetPlayerKeys(playerid, keys[0], keys[1], keys[1]);
if(GetVehicleModel(vehicleid) == 520 && keys[0] & KEY_ACTION && !playerInfo[playerid][pAdminDuty])
{
return 0;
}
else if(playerInfo[playerid][pJobDuty] && playerInfo[playerid][pJobDuty] == JOB_BAUER && playerInfo[playerid][pJobVehicle] != INVALID_SLOT_ID && vehicleInfo [playerInfo[playerid][pJobVehicle]][viVehicleID] == vehicleid)
{
if(playerInfo[playerid][pJobSlot] != INVALID_SLOT_ID && IsVehicleInArea(vehicleid, farmerZone[ playerInfo[playerid][pJobSlot] ][fzMinX],farmerZone[ playerInfo[playerid][pJobSlot] ][fzMinY],farmerZone[ playerInfo[playerid][pJobSlot] ][fzMaxX],farmerZone[ playerInfo[playerid][pJobSlot] ][fzMaxY]) && GetVehicleSpeed(vehicleid) >= 20.0)
{
if(keys[0] & KEY_SPRINT)
{
static Float:vSpeed[3], Float:vDiv;
GetVehicleVelocity(vehicleid, vSpeed[0], vSpeed[1], vSpeed[2] );
vDiv = floatsqroot( ( vSpeed[0] * vSpeed[0] ) + ( vSpeed[1] * vSpeed[1] ) + ( vSpeed[2] * vSpeed[2] ) );
vSpeed[0] = ( vSpeed[0] / vDiv ) * 0.1;
vSpeed[1] = ( vSpeed[1] / vDiv ) * 0.1;
vSpeed[2] = ( vSpeed[2] / vDiv ) * 0.1;
SetVehicleVelocity(vehicleid, vSpeed[0], vSpeed[1], vSpeed[2] );
}
else if(keys[0] & KEY_JUMP)
{
SetVehicleVelocity(vehicleid, 0.0,0.0,0.0 );
}
}
}
}
new drunklevel = GetPlayerDrunkLevel(playerid);
if(drunklevel < 100)
{
SetPlayerDrunkLevel(playerid, 2000);
}
else
{
if (playerInfo[playerid][pDrunkLevel] != drunklevel)
{
new FPS = playerInfo[playerid][pDrunkLevel] - drunklevel;
if ((FPS > 0) && (FPS < 200))
{
playerInfo[playerid][pFps] = FPS;
}
playerInfo[playerid][pDrunkLevel] = drunklevel;
}
}
new tick = GetTickCount();
if(tick - playerInfo[playerid][pLastUpdateCall] > 2000)
{
playerInfo[playerid][pLastLag] = tick;
}
playerInfo[playerid][pLastUpdateCall] = tick;
playerInfo[playerid][pAFKCheckTime] = gettime();
acPlayer[playerid][acpPlayerState] = GetPlayerState(playerid);
if(playerInfo[playerid][pTuningGarage] || playerInfo[playerid][pSkinChange] || playerInfo[playerid][pWorld] == WORLD_DERBY || playerInfo[playerid][pAccesChange])
{
new key, updown, leftright;
GetPlayerKeys(playerid, key, updown, leftright);
if((playerInfo[playerid][oldKeyState][0] != leftright || playerInfo[playerid][oldKeyState][1] != updown))
{
if(leftright != 0 || updown != 0)
{
if(playerInfo[playerid][pSkinChange]) SetTimerEx("OnPlayerChangeSkin", 75, false, "ddd", playerid, updown, leftright);
else if(playerInfo[playerid][pTuningGarage]) SetTimerEx("OnPlayerTuneVehicle", 75, false, "ddd", playerid, updown, leftright);
else if(playerInfo[playerid][pDerbySpectatorID] != INVALID_PLAYER_ID) SetTimerEx("OnPlayerChangeSpectator", 75, false, "ddd", playerid, updown, leftright);
else if(playerInfo[playerid][pAccesChange]) SetTimerEx("OnPlayerChangeAcces", 75, false, "ddd", playerid, updown, leftright);
}
playerInfo[playerid][oldKeyState][0] = leftright;
playerInfo[playerid][oldKeyState][1] = updown;
}
}
// Anti - Cheat
if(GetPlayerWeapon(playerid) != acPlayer[playerid][acpLastWeapon] && IsPlayerLoggedIn(playerid) && IsPlayerSpawned(playerid))
{
OnPlayerChangeWeapon(playerid);
acPlayer[playerid][acpLastWeapon] = GetPlayerWeapon(playerid);
}
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
if(playerInfo[playerid][pMask] && (GetPlayerFaction(playerid) != GetPlayerFaction(forplayerid) || playerInfo[playerid][pAdminDuty] && playerInfo[playerid][pAdmin] < RANK_SUPPORTER))
{
ShowPlayerNameTagForPlayer(forplayerid, playerid, false);
}
return 1;
}
public OnActorStreamIn(actorid, forplayerid)
{
if(actorInfo[actorid][acRobAnim] && actorInfo[actorid][acRobState] == ROB_NONE && actorInfo[actorid][acLastRob] + 10 < gettime())
{
actorInfo[actorid][acRobAnim] = false;
ClearActorAnimations(actorid);
}
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, vehicleData[vehicleid][viMarker], vehicleData[vehicleid][viLocked]);
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnServerLoadGroupInfoForPlayer(playerid,groupid)
{
new longstr[512], gUsername[MAX_PLAYER_NAME], rows = cache_num_rows(), var;
format(longstr,sizeof(longstr),"Bezeichnung: {%06x}%s{A9C4E4} (SQLID: %d)\n\nVermögen:\nBank: $%s\t Materialien: %s\nBusinesse: %d\nDrogen: %s\n\nGruppenverwalter:\n",colorArray[groupInfo[groupid][gColor]][caColor] >>> 8, groupInfo[groupid][gName],groupInfo[groupid][gSQLID],FormatNumber(groupInfo[groupid][gBank]),FormatNumber(groupInfo[groupid][gMats]),groupInfo[groupid][gBizes],FormatNumber(groupInfo[groupid][gDrugs]));
for(new i = 0; i < rows; i++)
{
if(!cache_get_field_content_int(i, "leader")) continue;
cache_get_field_content(i, "username", gUsername, dbHandle);
if(!var) format(longstr, sizeof(longstr), "%s%s",longstr,gUsername);
else format(longstr,sizeof(longstr),"%s, %s",longstr,gUsername);
var++;
}
groupInfo[groupid][gMember] = rows;
new lockDate[3][32];
lockDate[0][0] = '/';
lockDate[1][0] = '/';
lockDate[2][0] = '/';
var = 0;
foreach(new i : Player)
{
if(playerInfo[i][pGroupIndex] != groupid || playerInfo[i][pGroup] == 0) continue;
var++;
}
if(groupInfo[groupid][gWarLock] > gettime()) lockDate[0] = GetDateFromTimestampEx(groupInfo[groupid][gWarLock]);
if(groupInfo[groupid][gWarBizLock] > gettime()) lockDate[1] = GetDateFromTimestampEx(groupInfo[groupid][gWarBizLock]);
if(groupInfo[groupid][gWarZoneLock] > gettime()) lockDate[2] = GetDateFromTimestampEx(groupInfo[groupid][gWarZoneLock]);
format(longstr,sizeof(longstr),"%s\n\nMitglieder: %d / %d (Online: %d), Fahrzeuge: %d / %d\n\nSchutz:\nStartwar\t%s\nBizfight\t\t%s\nGangfight\t%s",longstr,groupInfo[groupid][gMember],groupInfo[groupid][gMaxMember],var,groupInfo[groupid][gVehicles],GetGroupUpgrade(groupid, GROUPUPGRADE_VEHICLE), lockDate[0],lockDate[1],lockDate[2]);
ShowPlayerDialog(playerid, DIALOG_GROUPBACK, DIALOG_STYLE_MSGBOX, "Informationen", longstr, "Zurück", "");
return 1;
}
public OnServerLoadGroupMembers(playerid,groupid, startrow, endrow)
{
new rows = cache_num_rows(), gUsername[MAX_PLAYER_NAME], longstr[1024], grouprank;
endrow = (endrow == 0 ? rows : endrow);
DialogTempDataIndex[playerid] = 0;
printf("Player found: %d (pid: %d)", rows, playerid);
for(new i = startrow; i < rows; i++)
{
cache_get_field_content(i, "username", gUsername, dbHandle);
grouprank = cache_get_field_content_int(i, "grouprank");
format(longstr, sizeof(longstr),"%s[R: %d] %s %s (%s)\n",longstr,grouprank,gRankName[groupid][grouprank],gUsername,IsPlayerConnected(GetPlayerID(gUsername)) ? ("Online") : ("Offline"));
DialogTempData[playerid][DialogTempDataIndex[playerid]] = cache_get_field_content_int(i, "id");
DialogTempDataIndex[playerid]++;
if(endrow - i <= 1)
{
format(longstr,sizeof(longstr),"%s\nNächste Seite",longstr);
break;
}
}
groupInfo[groupid][gMember] = cache_num_rows();
ShowPlayerDialog(playerid, DIALOG_GROUPMEMBERS, DIALOG_STYLE_LIST, "Gruppenmitglieder", longstr, "Auswählen", "Zurück");
return 1;
}
public OnPlayerChangeName(playerid, newname[])
{
if(cache_num_rows())
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Fehler - Namensänderung","Dieser Name wird bereits verwendet.","Zurück","");
return 1;
}
if(GetPlayerMoney(playerid) < 2500000)
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Fehler - Namensänderung","Du besitzt keine $2.500.000 für eine Namensänderung.","Zurück","");
return 1;
}
if(strlen(newname) < 3 || strlen(newname) > 20)
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Fehler - Namensänderung","Dein Name muss mindestens 3 und maximal 20 Zeichen lang sein.","Zurück","");
return 1;
}
if(IsABadWordInString(newname) != -1)
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Fehler - Namensänderung","Dein Name enthält eine mögliche Beleidigung.","Zurück","");
return 1;
}
switch(SetPlayerName(playerid, newname))
{
case -1:
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Fehler - Namensänderung","Dieser Name entspricht nicht der SA:MP Norm","Zurück","");
return 1;
}
case 0:
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Fehler - Namensänderung","Dieser Name wird bereits verwendet.","Zurück","");
return 1;
}
}
new query[256],slotid;
mysql_format(dbHandle, query, sizeof(query),"UPDATE `accounts` SET `advertiser` = '%s' WHERE `advertiser` = '%s'",newname, GetPlayerNameEx(playerid));
mysql_function_query(dbHandle, query, true, "", "");
mysql_format(dbHandle, query, sizeof(query),"INSERT INTO `log_namechange` (`userid`,`newname`,`oldname`,`timestamp`) VALUES ('%d','%s','%s','%d')",playerInfo[playerid][pSQLID],newname, GetPlayerNameEx(playerid),gettime());
mysql_function_query(dbHandle, query, true, "", "");
foreach(new i : Player)
{
if(strcmp(playerInfo[i][pAdvertiser], GetPlayerNameEx(playerid), true) && strlen(playerInfo[i][pAdvertiser]) != 0) continue;
format(playerInfo[i][pAdvertiser],MAX_PLAYER_NAME, newname);
}
foreach(new i : Vehicles)
{
if(vehicleInfo[i][viOwnerID] != playerInfo[playerid][pSQLID]) continue;
format(vehicleInfo[i][viOwner],MAX_PLAYER_NAME, newname);
}
if(playerInfo[playerid][pGroup] && playerInfo[playerid][pLeader] == 2 && groupInfo[playerInfo[playerid][pGroupIndex]][gLeaderID] == playerInfo[playerid][pSQLID])
{
format(groupInfo[playerInfo[playerid][pGroupIndex]][gLeader],MAX_PLAYER_NAME, newname);
}
slotid = GetHouseSlotID(playerInfo[playerid][pHouseKey]);
if(slotid != INVALID_HOUSE_ID && playerInfo[playerid][pSQLID] == houseInfo[slotid][hOwnerID])
{
format(houseInfo[slotid][hOwner], MAX_PLAYER_NAME, GetPlayerNameEx(playerid));
UpdateHouse(slotid);
}
GivePlayerMoney(playerid, -2500000, "Namechange");
AddToEventBox(playerInfo[playerid][pSQLID], 2500000, "Namechange");
SendClientMessageToAllX(0x4CBAA1FF, "[ NAMECHANGE ] %s hat sich in %s umbenannt.",GetPlayerNameEx(playerid),newname);
GetPlayerName(playerid, GetPlayerNameEx(playerid), MAX_PLAYER_NAME);
GetPlayerName(playerid, playerInfo[playerid][pName], MAX_PLAYER_NAME);
OnServerSavePlayerData(playerid);
ShowPlayerDialog(playerid, DIALOG_CHANGENAMEINFO, DIALOG_STYLE_MSGBOX, "Erfolgreich - Namensänderung","Du hast erfolgreich deinen Namen für $2.500.000 geändert.","Zurück","");
return 1;
}
public ShowPlayerNotifications(playerid, id)
{
if(DialogTempData[playerid][MAX_PLAYERS-1] == playerInfo[playerid][pSQLID])
{
new text[256], regard[32], str[512];
cache_get_field_content(0, "text", text);
cache_get_field_content(0, "regard", regard);
switch(id)
{
case 1: FormatString(text, 30);
case 2,3: ReplaceChar(text, '^','\n');
}
DialogTempData[playerid][MAX_PLAYERS - 1] = cache_get_field_content_int(0, "id");
DialogTempData[playerid][MAX_PLAYERS - 2] = DIALOG_NOTIFI;
format(str, sizeof(str), "%s\t\t%s\n\n{FFFFFF}%s", regard,GetDateFromTimestampEx(cache_get_field_content_int(0, "date")), text);
switch(id)
{
case 1: ShowPlayerDialog(playerid, DIALOG_NOTIFI, DIALOG_STYLE_MSGBOX, "Private Nachricht", str, "Löschen", "Behalten");
case 2: ShowPlayerDialog(playerid, DIALOG_NOTIFI, DIALOG_STYLE_MSGBOX, "Sanktion", str, "Zurück", "");
case 3: ShowPlayerDialog(playerid, DIALOG_NOTIFI, DIALOG_STYLE_MSGBOX, "Benachrichtigung", str, "Zurück", "");
}
mysql_format(dbHandle, text,256, "UPDATE `notifications` SET `readed` = '1' WHERE `id` = '%d'", DialogTempData[playerid][MAX_PLAYERS - 1]);
mysql_tquery(dbHandle, text, "", "");
return 1;
}
else
{
new rows = cache_num_rows();
if(!rows)
{
SendClientMessage(playerid, COLOR_RED, "Du hast derzeit keine (neuen) Nachrichten.");
OnPlayerCommandPerformed(playerid, "/notifications", true);
return 1;
}
new regard[32], str[1024];
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "regard", regard);
format(str,sizeof(str), "%s%s%s\t%s\n",str, cache_get_field_content_int(i, "readed") == 1 ? ("{DBDBDB}") : ("{36B587}"), regard, GetDateFromTimestampEx(cache_get_field_content_int(i, "date")));
DialogTempData[playerid][i] = cache_get_field_content_int(i, "id");
}
ShowPlayerDialog(playerid, DIALOG_NOTIFI, DIALOG_STYLE_TABLIST, "Private Nachrichten", str, "Öffnen", "Zurück");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) //{D11B30}Fehler:{A9C4E4}
{
if(!AC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext)) return 1;
if(serverInfo[togLocked])
{
SendClientMessage(playerid, COLOR_RED, "Sämtliche Funktionen sind deaktiviert .. Warte bis zum Serverneustart.");
return 1;
}
if(dialogid == DIALOG_QUEST)
{
new actorid = DialogTempData[playerid][MAX_PLAYERS-1], questid = actorInfo[actorid][acQuest];
if(response)
{
if(DialogTempData[playerid][MAX_PLAYERS-2] == 1)
{
playerInfo[playerid][pDrugs] -= playerInfo[playerid][pQuestItem];
CancelPlayerQuest(playerid, true);
return 1;
}
playerInfo[playerid][pQuestID] = questid + 1;
playerInfo[playerid][pQuestItem] = actorInfo[actorid][acQuestItem];
playerInfo[playerid][pQuestMoney] = actorInfo[actorid][acQuestMoney];
playerInfo[playerid][pQuestActor] = actorid;
SendClientMessageX(playerid, COLOR_YELLOW, "[ Quest ] Du hast die Mission %s angenommen.", questInfo[questid][qiName]);
SendClientMessage(playerid, COLOR_YELLOW, "[ Quest ] Quest Abbrechen: /quest cancel | Beschreibung der Quest: /quest info");
UpdateActorQuest(actorid);
}
actorInfo[actorid][acSpeak] = false;
return 1;
}
if(dialogid == DIALOG_TUNING && response)
{
new vehicleid = GetPlayerVehicleID(playerid);
PlayerTextDrawSetString(playerid, InfoHeadLine[playerid], "Tuninggarage");
PlayerTextDrawShow(playerid, InfoHeadLine[playerid]);
PlayerTextDrawShow(playerid, InfoText[playerid][0]);
PlayerTextDrawShow(playerid, InfoText[playerid][1]);
TextDrawShowForPlayer(playerid, InfoHeadLineBox);
TextDrawShowForPlayer(playerid, InfoBox);
playerInfo[playerid][pInfoBox] = 3;
playerInfo[playerid][pTuningGarage] = listitem + 1;
ShowTuningGarageState(playerid, vehicleid, playerInfo[playerid][pTuningGarage]);
switch(playerInfo[playerid][pTuningGarage])
{
case TUN_COLOR:
{
SendClientMessage(playerid, COLOR_YELLOW, "Hinweis: Gebe die Farben im Chat ein, um die Farben direkt auszuwählen (Schema: 1:1 (für Weiß)).");
return 1;
}
case TUN_NEON:
{
new slotid = GetVehicleSlotID(vehicleid);
if(GetPlayerHighestLevel(playerid) >= 100 && vehicleInfo[slotid][viNeonObj][0] == 0)
{
AddVehicleNeon(vehicleid, 1);
SetPlayerCameraPos(playerid, -2120.834472, 5.085749, 36.682022);
SetPlayerCameraLookAt(playerid, -2116.973632, 2.240231, 35.269081);
return 1;
}
if(vehicleInfo[slotid][viNeonObj][0] != 0)
{
SendClientMessage(playerid, COLOR_LESSRED, "Lös zuerst deine Unterbodenbeleuchtung von deinem Fahrzeug, um dir eine neue zu kaufen.");
}
else if(GetPlayerHighestLevel(playerid) < 100)
{
SendClientMessage(playerid, COLOR_LESSRED, "Neon ist erst ab Level 100 verfügbar.");
}
}
case TUN_SAFEWHEELS:
{
new str[256], price = IsABike(vehicleid) ? tuningItems[TUN_SAFEWHEELS][tiPrice]+ 1500000 : tuningItems[TUN_SAFEWHEELS][tiPrice];
format(str, sizeof(str), "Schusssichere Reifen:\t$%s\nInformation: Durch die schusssicheren Reifen, können Feinde dir nicht mehr die Reifen kaputt schießen.\nAchtung: Die Reifen schützen nicht vor Nagelbändern oder eigener Dummeheit.\nMöchtest du diesen Artikel kaufen?",FormatNumber(price));
ShowPlayerDialog(playerid, DIALOG_VEHICLETUNING2, DIALOG_STYLE_MSGBOX, "Fahrzeug Tuning", str, "Kaufen", "Schließen");
return 1;
}
case TUN_VEHDL:
{
new slotid = GetVehicleSlotID(vehicleid);
if(vehicleInfo[slotid][viMaxHealth] >= 1200.0)
{
SendClientMessage(playerid, COLOR_LESSRED, "Das Fahrzeug kann keine weitere Panzerung tragen.");
}
else
{
new str[256], value = floatround((1200.0 - vehicleInfo[slotid][viMaxHealth]) / 50.0);
format(str, sizeof(str), "Panzerung %d / 4\tNächste Stufe: $%s\nDurch die Panzerung erhöht sich das FahrzeugDL dauerhaft um +50.0 DL.", 4 - value, FormatNumber((5 - value) * 300000));
ShowPlayerDialog(playerid, DIALOG_VEHICLETUNING2, DIALOG_STYLE_MSGBOX, "Fahrzeug Tuning", str, "Kaufen", "Schließen");
return 1;
}
}
case TUN_DELETE:
{
new str[256], slotid = GetVehicleSlotID(vehicleid);
format(str, sizeof(str), "Fahrzeug - Tuning entfernen:\t$%s\nUnterbodenbeleuchtung entfernen:\t$-", FormatNumber(floatround(float(vehicleInfo[slotid][viPrice]) * 0.1)));
ShowPlayerDialog(playerid, DIALOG_VEHICLETUNING2, DIALOG_STYLE_LIST, "Fahrzeug Tuning", str, "Auswählen", "Schließen");
return 1;
}
}
}
if(dialogid == DIALOG_MDC && response)
{
if(copComputer[listitem][ccLevel] > playerInfo[playerid][pLevel])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Diese Funktion ist erst ab Level %d verfügbar.", copComputer[listitem][ccLevel]);
return 1;
}
switch(listitem)
{
case 0:
{
new query[256];
mysql_format(dbHandle, query, 256, "SELECT * FROM `log_wanteds` WHERE `playerid` = %d AND active = 1", playerInfo[DialogTempData[playerid][MAX_PLAYERS-1]][pSQLID]);
mysql_tquery(dbHandle, query, "OnQueryFinishedEx", "dd", QUERYEX_PLAYERCRIMINALS, playerid);
}
}
return 1;
}
if(dialogid == DIALOG_MDCCURRENTCRIM)
{
OnPlayerClickPlayer(playerid, DialogTempData[playerid][MAX_PLAYERS-1], 0);
return 1;
}
if(dialogid == DIALOG_COPMISSION && response)
{
new id = listitem, str[1024];
if(playerInfo[playerid][pMissionCoolDown][id] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %s wieder diese Mission starten.", GetTimeString(playerInfo[playerid][pMissionCoolDown][id]-gettime(), 4));
OnPlayerCommandPerformed(playerid, "/mission", true);
return 1;
}
DialogTempData[playerid][MAX_PLAYERS - 1] = id;
format(str, 1045, "Missionsbezeichnung: %s\nEntlohnung: $%s und %.1f EXP\n\nBeschreibung:\n%s", missionInfo[id][miName], FormatNumber(missionInfo[id][miRewardMoney]), missionInfo[id][miRewardExp], missionInfo[id][miDesciption]);
ShowPlayerDialog(playerid, DIALOG_COPMISSION2, DIALOG_STYLE_MSGBOX, "Mission", str, "Starten", "Zurück");
return 1;
}
if(dialogid == DIALOG_COPMISSION2)
{
if(response)
{
new id = DialogTempData[playerid][MAX_PLAYERS - 1];
playerInfo[playerid][pMission] = id;
SendClientMessageX(playerid, COLOR_MISSION, "[ MISSION ] Du hast die Mission %s gestartet.", missionInfo[id][miName]);
switch(id)
{
case MISSION_PATROL:
{
SendClientMessage(playerid, COLOR_MISSION, "[ MISSION ] Steige in ein Polizeifahrzeug ein, um die Mission zu beginnen.");
}
}
}
else
{
OnPlayerCommandPerformed(playerid, "/mission", true);
}
return 1;
}
/*if(dialogid == DIALOG_ANTICHEAT)
{
ShowPlayerDialog(playerid, DIALOG_ANTICHEAT, DIALOG_STYLE_MSGBOX, "Anti - Cheat", "Es wird versucht, eine Anti - Cheat Verbindung aufzubauen..", "O.K.", "");
return 1;
}*/
if(dialogid == DIALOG_VARIABLECONFIG)
{
if(response)
{
if(DialogTempDataIndex[playerid] == 1)
{
new id = DialogTempData[playerid][MAX_PLAYERS - 1];
switch(id)
{
case 0:
{
new Float:value = floatstr(inputtext);
if(value < 0.0 || value > 1.0 || sscanf(inputtext, "f", serverInfo[ammoPercent]))
{
Command_ReProcess(playerid, "/variableconfig", false);
SendClientMessage(playerid, COLOR_RED, "Fehlerhafte Eingabe.");
return 1;
}
new str[128];
format(str, 128, "* %s %s hat %s auf %.2f gesetzt.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), variableConfig[id][vcName], floatstr(inputtext));
SendAdminMessage(COLOR_RED, str, RANK_ADMIN);
serverInfo[ammoPercent] = floatstr(inputtext);
}
case 1:
{
new str[128];
format(str, 128, "* %s %s hat %s auf $%s gesetzt.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), variableConfig[id][vcName], FormatNumber(strval(inputtext)));
SendAdminMessage(COLOR_RED, str, RANK_ADMIN);
serverInfo[siMinDrugPrice] = strval(inputtext);
}
case 2:
{
new str[128];
format(str, 128, "* %s %s hat %s auf $%s gesetzt.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), variableConfig[id][vcName], FormatNumber(strval(inputtext)));
SendAdminMessage(COLOR_RED, str, RANK_ADMIN);
serverInfo[siMaxDrugPrice] = strval(inputtext);
}
}
Command_ReProcess(playerid, "/variableconfig", false);
return 1;
}
ShowPlayerDialog(playerid, DIALOG_VARIABLECONFIG, DIALOG_STYLE_INPUT, variableConfig[listitem][vcName], variableConfig[listitem][vcDescription], "Ändern", "Schließen");
DialogTempDataIndex[playerid] = 1;
DialogTempData[playerid][MAX_PLAYERS - 1] = listitem;
}
return 1;
}
if(dialogid == DIALOG_BUYDRUGS)
{
if(response)
{
new pID = DialogTempData[playerid][MAX_PLAYERS - 1];
if(playerInfo[pID][pOfferDrugSellerID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat bereits ein offenes Drogenangebot.");
playerInfo[pID][pOfferDrugSellerID] = playerid;
playerInfo[pID][pOfferDrugPrice] = DialogTempData[playerid][MAX_PLAYERS - 2];
playerInfo[pID][pOfferDrugAmount] = DialogTempData[playerid][MAX_PLAYERS - 3];
SendClientMessageX(pID, COLOR_LIGHTBLUE, "* %s bietet dir %sg Drogen für $%s an ($%s pro Gramm).",GetPlayerNameEx(playerid), FormatNumber(playerInfo[pID][pOfferDrugAmount]), FormatNumber(playerInfo[pID][pOfferDrugAmount] * playerInfo[pID][pOfferDrugPrice]), FormatNumber(playerInfo[pID][pOfferDrugPrice]));
SendClientMessage(pID, COLOR_YELLOW, "Annehmen: /annehmen Drogen | Ablehnen: /ablehnen Drogen");
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast %s dein Angebot unterbreitet ($%s pro Gramm, $%s insgesamt).", GetPlayerNameEx(pID),FormatNumber(playerInfo[pID][pOfferDrugPrice]), FormatNumber(playerInfo[pID][pOfferDrugAmount] * playerInfo[pID][pOfferDrugPrice]));
return 1;
}
}
if(dialogid == DIALOG_FACTIONMEMBERS && response)
{
if(response)
{
if(strfind(inputtext, "Nächste Seite") != -1)
{
ShowPlayerFactionMemberMenu(playerid, DialogTempData[playerid][MAX_PLAYERS-1], DialogTempData[playerid][MAX_PLAYERS-2] + MAX_FACTIONMEMBER_ENTRIES);
return 1;
}
else if(strfind(inputtext, "Vorherige Seite") != -1)
{
ShowPlayerFactionMemberMenu(playerid, DialogTempData[playerid][MAX_PLAYERS-1], DialogTempData[playerid][MAX_PLAYERS-2] - MAX_FACTIONMEMBER_ENTRIES);
return 1;
}
DialogTempData[playerid][0] = DialogTempData[playerid][listitem];
DialogTempData[playerid][1] = DialogTempData[playerid][listitem + MAX_FACTIONMEMBER_ENTRIES];
ShowPlayerDialog(playerid, DIALOG_FACTIONMEMBERS2, DIALOG_STYLE_LIST, "Mitgliederverwaltung", "Rang ändern\nSpieler rauswerfen", "Weiter", "Schließen");
return 1;
}
}
if(dialogid == DIALOG_FACTIONMEMBERRANK)
{
if(response)
{
if(!IsNumeric(inputtext) || strval(inputtext) > 12 || strval(inputtext) < 0)
{
new str[128];
format(str, 128, "{D11B30}Fehler:{A9C4E4}%s ist kein gültiger Rang!\nDer Spieler hat derzeit den Rang %d.\nWelcher Rang soll dieser Spieler bekommen?", inputtext, DialogTempData[playerid][1]);
ShowPlayerDialog(playerid, DIALOG_FACTIONMEMBERRANK, DIALOG_STYLE_INPUT, "Rang setzen", str, "Setzen", "Zurück");
return 1;
}
new rank = strval(inputtext), pID = GetPlayerIDFromSQLID(DialogTempData[playerid][0]), fid = DialogTempData[playerid][MAX_PLAYERS-1], fteam = factionInfo[fid][fiTeam];
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(pID, COLOR_FACTIONCHAT, "[ %s ] Dir wurde Rang %d von %s %s gegeben.",factionInfo[fid][fiName], rank, GetPlayerTitle(playerid), GetPlayerNameEx(playerid));
SendClientMessageX(playerid, COLOR_YELLOW, "[ %s ] Du hast %s Rang %d gegeben.", factionInfo[fid][fiName], GetPlayerNameEx(pID), rank);
playerInfo[playerid][pFactionRank][fteam] = rank;
}
else
{
new query[256];
mysql_format(dbHandle, query, 256, "UPDATE `accounts` SET `%s` = %d WHERE `id` = %d",
fteam == TEAM_SFPD ? ("copfactionrank") : ("zivifactionrank") , rank, DialogTempData[playerid][0]);
mysql_tquery(dbHandle, query, "" , "");
SendClientMessageX(playerid, COLOR_YELLOW, "[ %s ] Du hast dem Spieler Rang %d gegeben.", factionInfo[fid][fiName], rank);
}
}
ShowPlayerFactionMemberMenu(playerid, DialogTempData[playerid][MAX_PLAYERS-1], 0);
return 1;
}
if(dialogid == DIALOG_FACTIONMEMBERS2 && response)
{
switch(listitem)
{
case 0:
{
new str[128];
format(str, 128, "Der Spieler hat derzeit den Rang %d.\nWelcher Rang soll dieser Spieler bekommen?", DialogTempData[playerid][1]);
ShowPlayerDialog(playerid, DIALOG_FACTIONMEMBERRANK, DIALOG_STYLE_INPUT,"Rang setzen", str, "Setzen", "Zurück");
}
case 1:
{
new pID = GetPlayerIDFromSQLID(DialogTempData[playerid][0]), fid = DialogTempData[playerid][MAX_PLAYERS-1], fteam = factionInfo[fid][fiTeam];
if(DialogTempData[playerid][1] >= 12) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst den Leader nicht rauswerfen (/makeleader).");
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(pID, COLOR_LESSRED, "[ %s ] Du wurdest von %s %s aus der Fraktion rausgeworfen.", factionInfo[fid][fiName], GetPlayerTitle(playerid), GetPlayerNameEx(playerid));
SendClientMessageX(playerid, COLOR_YELLOW, "[ %s ] Du hast %s aus der Fraktion rausgeworfen.", factionInfo[fid][fiName], GetPlayerNameEx(pID));
playerInfo[playerid][pFaction][fteam] = 0;
playerInfo[playerid][pFactionRank][fteam] = 0;
}
else
{
new query[256];
mysql_format(dbHandle, query, 256, "UPDATE `accounts` SET `%s` = 0,`%s` = 0 WHERE `id` = %d",
fteam == TEAM_SFPD ? ("copfactionrank") : ("zivifactionrank") ,
fteam == TEAM_SFPD ? ("copfaction") : ("zivifaction"),
DialogTempData[playerid][0]);
mysql_tquery(dbHandle, query, "" , "");
SendClientMessageX(playerid, COLOR_YELLOW, "[ FRAKTION ] Du hast den Spieler aus der Fraktion %s rausgeworfen.", factionInfo[fid][fiName]);
}
}
}
return 1;
}
if(dialogid == DIALOG_EDITFACTION && response)
{
switch(listitem)
{
case 0:
{
ShowPlayerFactionVehicleMenu(playerid, DialogTempData[playerid][MAX_PLAYERS-1]);
}
case 1:
{
ShowPlayerFactionMemberMenu(playerid, DialogTempData[playerid][MAX_PLAYERS-1],0);
}
case 2:
{
ShowPlayerFRankNameChangeMenu(playerid, DialogTempData[playerid][MAX_PLAYERS-1]);
}
case 3:
{
new longstr[128];
format(longstr, 128, "Derzeitiges Bankguthaben: $%s\nAuf welche Summe soll das Bankguthaben gesetzt werden?", FormatNumber(factionInfo[DialogTempData[playerid][MAX_PLAYERS-1]][fiBank]));
ShowPlayerDialog(playerid, DIALOG_FACTIONSETBANK, DIALOG_STYLE_INPUT, "Fraktionsbank setzen", longstr, "Setzen", "Schließen");
}
case 4:
{
new fid = DialogTempData[playerid][MAX_PLAYERS-1];
GetPlayerPos(playerid, factionInfo[fid][fiSpawnX], factionInfo[fid][fiSpawnY],factionInfo[fid][fiSpawnZ]);
GetPlayerFacingAngle(playerid, factionInfo[fid][fiSpawnA]);
factionInfo[fid][fiInterior] = GetPlayerInterior(playerid);
factionInfo[fid][fiVirtualWorld] = GetPlayerVirtualWorld(playerid);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast den Spawnpunkt der Fraktion %s auf deine Position gesetzt.", factionInfo[fid][fiName]);
}
}
return 1;
}
if(dialogid == DIALOG_FACTIONRANKS && response)
{
new longstr[256];
format(longstr,sizeof(longstr),"Derzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",listitem,fRankName[DialogTempData[playerid][MAX_PLAYERS-1]][listitem]);
ShowPlayerDialog(playerid, DIALOG_FACTIONRANKS2, DIALOG_STYLE_INPUT, "Fraktion Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
DialogTempData[playerid][0] = listitem;
return 1;
}
if(dialogid == DIALOG_FACTIONRANKS2)
{
new longstr[256], slotid = DialogTempData[playerid][MAX_PLAYERS - 1], item = DialogTempData[playerid][0];
if(response)
{
if(strlen(inputtext) > 30)
{
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Die Rangbezeichnung darf maximal 30 Zeichen haben.\nDerzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",item,fRankName[slotid][item]);
ShowPlayerDialog(playerid, DIALOG_FACTIONRANKS2, DIALOG_STYLE_INPUT, "Fraktion Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
if(strfind(inputtext, "{",true) != -1 || strfind(inputtext, "}",true) != -1 || strfind(inputtext, "|",true) != -1)
{
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Die Zeichen '{' & '}' sind nicht möglich.\nDerzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",item,fRankName[slotid][item]);
ShowPlayerDialog(playerid, DIALOG_FACTIONRANKS2, DIALOG_STYLE_INPUT, "Fraktion Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
format(longstr,sizeof(longstr),"[ FACTION ] %s hat die Rangbezeichnung von Rang %d von %s in %s umgeändert.",GetPlayerNameEx(playerid),item,fRankName[slotid][item],inputtext);
SendFactionMessageToAll(slotid, COLOR_FACTIONCHAT, longstr);
SendClientMessage(playerid, COLOR_FACTIONCHAT, longstr);
format(fRankName[slotid][item],MAX_RANK_NAME, inputtext);
new str[128];
format(str, 128, "rangnamechange %d %s", DialogTempData[playerid][MAX_PLAYERS-1], inputtext);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/editfac",str);
}
ShowPlayerFRankNameChangeMenu(playerid, slotid);
return 1;
}
if(dialogid == DIALOG_FACTIONSETBANK && response)
{
new value = strval(inputtext);
if(!IsNumeric(inputtext) || value < 0 || value > 2000000000)
{
new longstr[128];
format(longstr, 128, "{D11B30}Fehler:{A9C4E4}%s ist kein gültiger Betrag!\nDerzeitiges Bankguthaben: $%s\nAuf welche Summe soll das Bankguthaben gesetzt werden?", inputtext, FormatNumber(factionInfo[DialogTempData[playerid][MAX_PLAYERS-1]][fiBank]));
ShowPlayerDialog(playerid, DIALOG_FACTIONSETBANK, DIALOG_STYLE_INPUT, "Fraktionsbank setzen", longstr, "Setzen", "Schließen");
return 1;
}
SendClientMessageX(playerid, COLOR_LESSRED, "[ FRAKTION ] Du hast die Fraktionsbank auf $%s gesetzt (vorher: $%s)", FormatNumber(value), FormatNumber(factionInfo[DialogTempData[playerid][MAX_PLAYERS-1]][fiBank]));
factionInfo[DialogTempData[playerid][MAX_PLAYERS-1]][fiBank] = value;
new str[128];
format(str, 128, "Bank %d %d", DialogTempData[playerid][MAX_PLAYERS-1], value);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/editfac",str);
return 1;
}
if(dialogid == DIALOG_TICKET && response)
{
new slotid = DialogTempData[playerid][0] = DialogTempData[playerid][listitem], pID = GetPlayerID(supportTicket[slotid][stUserName]), longstr[512];
format(longstr, sizeof(longstr), "Spieler: %s (%s)\tDatum: %s\n\nTicketinhalt:\n%s",
supportTicket[slotid][stUserName], pID == INVALID_PLAYER_ID ? ("{D15F3D}Offline{A9C4E4}") : ("{47B553}Online{A9C4E4}"), GetDateFromTimestampEx(supportTicket[slotid][stDate]), supportTicket[slotid][stQuestion]);
ShowPlayerDialog(playerid, DIALOG_TICKET2, DIALOG_STYLE_MSGBOX, "Ticket Einzelübersicht", longstr, "Annehmen", "Zurück");
return 1;
}
if(dialogid == DIALOG_TICKET2)
{
if(response)
{
new slotid = DialogTempData[playerid][0], pID = GetPlayerID(supportTicket[slotid][stUserName]), str[256];
if(supportTicket[slotid][stState] != TICKET_OPEN && supportTicket[slotid][stState] != TICKET_RELEASE)
{
SendClientMessage(playerid, COLOR_YELLOW, "[ Support ] Das Ticket kann nicht mehr geöffnet werden.");
Command_ReProcess(playerid, "/ticketlist", false);
return 1;
}
if(pID == INVALID_PLAYER_ID)
{
SendClientMessageX(playerid, COLOR_ORANGE, "[ SUPPORT ] %s ist Offline. Du kannst ihm per '/sup %d' seine Frage beantworten (nur 1x Nachricht möglich).", supportTicket[slotid][stUserName]);
SendClientMessage(playerid, COLOR_ORANGE, "[ SUPPORT ] Danach wird das Ticket automatisch geschlossen und archiviert.");
supportTicket[slotid][stState] = TICKET_OFFEDIT;
}
else
{
supportTicket[slotid][stState] = TICKET_EDIT;
SendClientMessageX(pID,COLOR_LIGHTBLUE, "[ SUPPORT ] Dein Ticket wurde angenommen, du kannst nun per '/sup [Nachricht]' mit %s %s schreiben.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid));
SendClientMessage(pID,COLOR_LIGHTBLUE, "[ SUPPORT ] Du kannst das Ticket jederzeit mit /ct schließen.");
}
if(playerInfo[playerid][pSupportTicketID] == slotid)
{
SendClientMessage(playerid, COLOR_GREY, "Du hast ein Ticket angenommen, in welchem du bereits drin warst.");
playerInfo[playerid][pSupportTicketID] = INVALID_TICKET_ID;
}
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "[ SUPPORT ] Du bearbeitest nun das Ticket (%d) von %s (%d).",slotid, supportTicket[slotid][stUserName],pID);
format(str,sizeof(str),"* %s %s hat das Ticket von %s geöffnet.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),supportTicket[slotid][stUserName]);
SendAdminMessage(COLOR_GREEN, str, RANK_SUPPORTER);
supportTicket[slotid][stAdminID] = playerid;
supportTicket[slotid][stAdminSQLID] = playerInfo[playerid][pSQLID];
mysql_format(dbHandle, str, 256, "INSERT INTO `log_sup` (`playerid`,`adminid`,`question`,`createtime`,`opentime`) VALUES ('%d','%d','%e','%d','%d')", supportTicket[slotid][stUserSQLID], playerInfo[playerid][pSQLID], supportTicket[slotid][stQuestion],supportTicket[slotid][stDate],gettime());
mysql_tquery(dbHandle, str, "InsertInit", "dd", slotid, INSERTINIT_SUPPORT);
return 1;
}
Command_ReProcess(playerid, "/ticketlist", false);
return 1;
}
if(dialogid == DIALOG_IVAN && response)
{
if(serverInfo[siloCapacity][0] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Das Silo ist derzeit leer.");
new maxvalue = 23 + (GetPlayerSkillLevel(playerid, SKILL_IVAN) * 2);
if(!IsNumeric(inputtext) || strval(inputtext) < 1 || strval(inputtext) > maxvalue)
{
new str[256];
format(str, 256, "{D11B30}Fehler:{A9C4E4}Du kannst nur 1 - %d Blüten bei mir kaufen\nDu möchtest gerne Blüten von mir kaufen? Der Ankaufpreis liegt bei: $%s\nWie viele Blüten möchtest du kaufen?", maxvalue, FormatNumber(BUY_PLANTPRICE));
ShowPlayerDialog(playerid, DIALOG_IVAN, DIALOG_STYLE_INPUT, "Ankauf von Blüten", str, "Kaufen", "Schließen");
return 1;
}
new amount = strval(inputtext) , price = (BUY_PLANTPRICE * amount);
if(GetPlayerMoney(playerid) < price)
{
new str[256];
format(str, 256, "{D11B30}Fehler:{A9C4E4}Du hast nicht genügend Geld, um dir %d Blüten leisten zu können.\nDu möchtest gerne Blüten von mir kaufen? Der Ankaufpreis liegt bei: $%s\nWie viele Blüten möchtest du kaufen?", amount, FormatNumber(BUY_PLANTPRICE));
ShowPlayerDialog(playerid, DIALOG_IVAN, DIALOG_STYLE_INPUT, "Ankauf von Blüten", str, "Kaufen", "Schließen");
return 1;
}
if(playerInfo[playerid][pDrugsBoom] + amount > maxvalue)
{
new str[256];
format(str, 256, "{D11B30}Fehler:{A9C4E4}Du kannst maximal %d Blüten mit dir tragen.\nDu möchtest gerne Blüten von mir kaufen? Der Ankaufpreis liegt bei: $%s\nWie viele Blüten möchtest du kaufen?", maxvalue,FormatNumber(BUY_PLANTPRICE));
ShowPlayerDialog(playerid, DIALOG_IVAN, DIALOG_STYLE_INPUT, "Ankauf von Blüten", str, "Kaufen", "Schließen");
return 1;
}
if(amount > serverInfo[siloCapacity][0])
{
new str[256];
format(str, 256, "{D11B30}Fehler:{A9C4E4}Es befinden sich derzeit nur %d Blüten im Silo.\nDu möchtest gerne Blüten von mir kaufen? Der Ankaufpreis liegt bei: $%s\nWie viele Blüten möchtest du kaufen?", serverInfo[siloCapacity][0], FormatNumber(BUY_PLANTPRICE));
ShowPlayerDialog(playerid, DIALOG_IVAN, DIALOG_STYLE_INPUT, "Ankauf von Blüten", str, "Kaufen", "Schließen");
return 1;
}
SendClientMessageX(playerid, COLOR_GREEN, "[ IVAN ] Du hast %d Blüte%s für $%s gekauft.",amount, amount > 1 ? ("n") : (""), FormatNumber(price));
playerInfo[playerid][pDrugsBoom] += amount;
GiveSiloValue(0, -amount);
GivePlayerSkill(playerid, SKILL_IVAN, amount);
GivePlayerMoney(playerid, -price, "Drogenankauf Ivan");
return 1;
}
if(dialogid == DIALOG_ADDPLAYERFILE && response)
{
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_ADDPLAYERFILE, DIALOG_STYLE_INPUT, "Kommentar zur Spielerakte", "{D11B30}Fehler:{A9C4E4} Der Kommentar muss mindestens 3 Zeichen lang sein.\nWelchen Kommentar möchtest du zur Spielerakte hinzufügen:", "Senden", "Schließen");
InsertPunitiveLog(DialogTempData[playerid][MAX_PLAYERS-1],playerInfo[playerid][pSQLID], inputtext, PUNITIVE_COMMENT);
SendClientMessage(playerid, COLOR_GREEN, "[ PLAYERFILE ] Dein Eintrag wurde zur Spielerakte hinzugefügt.");
return 1;
}
if(dialogid == DIALOG_PLAYERFILE)
{
if(response)
{
if(DialogTempData[playerid][MAX_PLAYERS - 3] == 1)
{
DialogTempData[playerid][MAX_PLAYERS - 3] = 0;
ShowPlayerUserFileEx(playerid, DialogTempData[playerid][MAX_PLAYERS-1],DialogTempData[playerid][MAX_PLAYERS-2]);
return 1;
}
if(strfind(inputtext, "Nächste Seite") != -1)
{
ShowPlayerUserFileEx(playerid, DialogTempData[playerid][MAX_PLAYERS-1], DialogTempData[playerid][MAX_PLAYERS-2] + MAX_PLAYERFILE_ENTRIES);
return 1;
}
else if(strfind(inputtext, "Vorherige Seite") != -1)
{
ShowPlayerUserFileEx(playerid, DialogTempData[playerid][MAX_PLAYERS-1], DialogTempData[playerid][MAX_PLAYERS-2] - MAX_PLAYERFILE_ENTRIES);
return 1;
}
new query[256];
mysql_format(dbHandle, query, 256, "SELECT accounts.username, log_punitive.* FROM `accounts`,`log_punitive` WHERE log_punitive.id='%d' AND accounts.id = log_punitive.adminid LIMIT 1", DialogTempData[playerid][listitem]);
mysql_tquery(dbHandle, query, "OnQueryFinishedEx", "dd", QUERYEX_PLAYERFILE, playerid);
return 1;
}
DeletePVar(playerid, "UserFile_Name");
return 1;
}
if(dialogid == DIALOG_ACHIEVEMENTS && response)
{
if(DialogTempDataIndex[playerid])
{
new id = DialogTempData[playerid][listitem];
new desc[256], str[256 + 32];
format(desc, 256, achievementInfo[id][aiDescription]);
FormatString(desc, 35);
format(str, 256 + 32, "Beschreibung:\n%s", desc);
ShowPlayerDialog(playerid, DIALOG_ACHIEVEMENTS, DIALOG_STYLE_MSGBOX, achievementInfo[id][aiName], str, "Zurück", "");
DialogTempDataIndex[playerid] = 0;
}
else
{
OnPlayerCommandPerformed(playerid, "/achievements", false);
}
return 1;
}
if(dialogid == DIALOG_PRICEBOOK && response)
{
new success = GivePlayerMoneyEx(playerid, -2500, "Price - Book Zugriff");
switch(success)
{
case 0: return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genügend Geld, um dir den Pass zu kaufen.");
case 1: SendClientMessage(playerid, COLOR_GREEN, "Du hast dir einen 30 minütigen Pass für $2.500 gekauft.");
case 2: SendClientMessage(playerid, COLOR_GREEN, "Du hast dir einen 30 minütigen Pass für $2.500 gekauft (Bank).");
}
playerInfo[playerid][pPriceBookTime] = gettime() + 60 * 30;
ShowPlayerPriceBook(playerid);
}
if(dialogid == DIALOG_BUY && response)
{
new id = listitem;
Command_ReProcess(playerid, "/buy", false);
if(shopItems[id][siMaxAmount] <= playerInfo[playerid][pShopItems][id])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst diesen Artikel nur %d kaufen.", shopItems[id][siMaxAmount]);
return 1;
}
new bizid = playerInfo[playerid][pEntranceID];
if(bizid != -1 && entranceInfo[bizid][eiProds] < GetProductsForShopItem(id) && entranceInfo[bizid][eiOwnerID] != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Der Shop hat nicht genügend Produkte für dieses Produkt.");
new success = GivePlayerMoneyEx(playerid, -shopItems[id][siPrice], "Shop");
switch(success)
{
case 0: return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genügend Geld für diesen Artikel.");
case 1:
{
new str[128];
format(str, 128, "[ SHOP ] Du hast den Artikel %s für $%s gekauft.", shopItems[id][siName], FormatNumber(shopItems[id][siPrice]));
SendClientMessage(playerid, COLOR_GREEN, str);
}
case 2:
{
new str[128];
format(str, 128, "[ SHOP ] Du hast den Artikel %s für $%s gekauft (Bank).", shopItems[id][siName], FormatNumber(shopItems[id][siPrice]));
SendClientMessage(playerid, COLOR_GREEN, str);
}
}
switch(id)
{
case SHOPITEM_PRICEBOOK: SendClientMessage(playerid, COLOR_GREEN, "Das Price - Book wurde unter /account freigeschaltet.");
}
if(bizid != -1 && entranceInfo[bizid][eiOwnerID] != 0)
{
entranceInfo[bizid][eiBank] += shopItems[id][siPrice];
entranceInfo[bizid][eiProds] -= GetProductsForShopItem(id);
UpdateBusinessLabel(bizid);
}
PlayerPlaySound(playerid, SOUND_SHOP_BUY, 0.0,0.0,0.0);
playerInfo[playerid][pShopItems][id]++;
}
if(dialogid == DIALOG_HOUSECONFIG && response)
{
new houseid = playerInfo[playerid][pHouseSlot];
switch(listitem)
{
case 0:
{
if(houseInfo[houseid][hUpgrade][HOUSEUPGRADE_ALARMSYSTEM] >= 2) houseInfo[houseid][hSilenctAlarm] = !houseInfo[houseid][hSilenctAlarm];
else SendClientMessage(playerid, COLOR_LESSRED, "Du hast dieses Upgrade noch nicht freigeschaltet.");
}
}
ShowPlayerHouseConfigMenu(playerid, houseid);
return 1;
}
if(dialogid == DIALOG_HOUSEUPGRADE && response)
{
new id = DialogTempData[playerid][listitem];
if(houseUpgrade[id][huPrice] == 0)
{
SendClientMessage(playerid, COLOR_LESSRED, "Dieses Upgrade ist schon auf der maximalen Stufe.");
ShowPlayerHouseUpgradeMenu(playerid, playerInfo[playerid][pHouseSlot]);
return 1;
}
new str[512];
format(str, 512, "Bezeichnung: %s - Kosten: $%s\n\nBeschreibung: %s", houseUpgrade[id][huName], FormatNumber(houseUpgrade[id][huPrice]), houseUpgrade[id][huDescription]);
ShowPlayerDialog(playerid, DIALOG_HOUSEUPGRADE2, DIALOG_STYLE_MSGBOX, "Haus Upgrade", str, "Kaufen" , "Zurück");
DialogTempData[playerid][MAX_PLAYERS - 1] = id;
return 1;
}
if(dialogid == DIALOG_HOUSEUPGRADE2)
{
if(response)
{
new id = DialogTempData[playerid][MAX_PLAYERS - 1], houseid = playerInfo[playerid][pHouseSlot];
new success = GivePlayerMoneyEx(playerid, -houseUpgrade[id][huPrice], "House - Upgrade");
switch(success)
{
case 0: return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dir dieses Upgrade nicht leisten.");
case 1: SendClientMessageX(playerid, COLOR_GREEN ,"Du hast das Upgrade %s für $%s gekauft.", houseUpgrade[id][huName], FormatNumber(houseUpgrade[id][huPrice]));
case 2: SendClientMessageX(playerid, COLOR_GREEN ,"Du hast das Upgrade %s für $%s gekauft (Bank).", houseUpgrade[id][huName], FormatNumber(houseUpgrade[id][huPrice]));
}
houseInfo[houseid][hUpgrade][houseUpgrade[id][huID]]++;
}
ShowPlayerHouseUpgradeMenu(playerid, playerInfo[playerid][pHouseSlot]);
}
if(dialogid == DIALOG_OFFLINEPN && response)
{
new text[100];
GetPVarString(playerid, "msg_pn", text, sizeof(text));
InsertPrivateNotification(1, DialogTempData[playerid][MAX_PLAYERS - 1], playerInfo[playerid][pSQLID], GetPlayerNameEx(playerid),text);
SendClientMessage(playerid, COLOR_GREEN, "Nachricht wurde erfolgreich verschickt.");
return 1;
}
if(dialogid == DIALOG_SKILLS && response)
{
if(DialogTempData[playerid][MAX_PLAYERS-1] == 0)
{
new str[256];
format(str, 256, "Beschreibung:\n%s", playerSkills[listitem][psSkillDescription]);
ShowPlayerDialog(playerid, DIALOG_SKILLS, DIALOG_STYLE_MSGBOX, "Fähigkeiten", str, "Zurück", "");
DialogTempData[playerid][MAX_PLAYERS-1] = 1;
}
else if(DialogTempData[playerid][MAX_PLAYERS-1] == 1)
{
OnPlayerCommandPerformed(playerid, "/skills", true);
}
return 1;
}
if(dialogid == DIALOG_NOTIFI)
{
if(DialogTempData[playerid][MAX_PLAYERS - 2] == DIALOG_NOTIFI)
{
DialogTempData[playerid][MAX_PLAYERS - 2] = 0;
if(response && DialogTempDataIndex[playerid] == 1)
{
new query[128];
mysql_format(dbHandle, query, 128, "UPDATE `notifications` SET `deleted` = '1' WHERE `id` = '%d'", DialogTempData[playerid][MAX_PLAYERS - 1]);
mysql_tquery(dbHandle, query, "", "");
}
ShowPlayerNotificationsEx(playerid, DialogTempDataIndex[playerid], response && DialogTempDataIndex[playerid] == 1 ? DialogTempData[playerid][MAX_PLAYERS - 1] : -1);
return 1;
}
if(response)
{
DialogTempData[playerid][MAX_PLAYERS-1] = playerInfo[playerid][pSQLID];
new query[128];
mysql_format(dbHandle, query, 128, "SELECT * FROM `notifications` WHERE `id` = '%d'", DialogTempData[playerid][listitem]);
mysql_pquery(dbHandle, query, "ShowPlayerNotifications", "dd", playerid, DialogTempDataIndex[playerid]);
}
else
{
OnPlayerCommandPerformed(playerid, "/notifications", true);
}
return 1;
}
if(dialogid == DIALOG_NOTIFICATIONS && response)
{
ShowPlayerNotificationsEx(playerid, listitem + 1);
return 1;
}
if(dialogid == DIALOG_SEARCHEDGROUP && response)
{
SendClientMessageX(playerid, COLOR_GREY, "%s", inputtext);
return 1;
}
if(dialogid == DIALOG_DUELLCONFIG && response)
{
new rIndex = playerInfo[playerid][pWorldIndex];
switch(DialogTempData[playerid][MAX_PLAYERS - 1])
{
case 1: // Waffenkonfiguration
{
new slotid = GetWeaponSlot(DialogTempData[playerid][listitem]);
duellInfo[rIndex][diWeapon][slotid] = (duellInfo[rIndex][diWeapon][slotid] == DialogTempData[playerid][listitem] ? 0 : DialogTempData[playerid][listitem]);
ShowPlayerDuellWeaponConfig(playerid);
if(duellInfo[rIndex][diWeapon][slotid] != 0)
{
GivePlayerWeapon(playerid, duellInfo[rIndex][diWeapon][slotid], 5000, true);
GivePlayerWeapon(duellInfo[rIndex][diPlayers][1], duellInfo[rIndex][diWeapon][slotid], 5000, true);
}
}
case 2: // Kartenkonfiguration
{
duellInfo[rIndex][diLocation] = listitem;
ShowPlayerDuellLocationConfig(playerid);
SpawnPlayer(playerid);
SpawnPlayer(duellInfo[rIndex][diPlayers][1]);
}
}
return 1;
}
if(dialogid == DIALOG_DUELL && response)
{
new index = listitem;
switch(duellInfo[index][diCountPlayers])
{
case 0:
{
duellInfo[index][diPassword] = 10000 + random(89999);
SendClientMessageX(playerid, COLOR_GREEN, "Willkommen im Duellraum %d. Das Raumpasswort lautet: %d | Konfiguration: /cduell" ,index + 1, duellInfo[index][diPassword]);
playerInfo[playerid][pWorld] = WORLD_DUELL;
playerInfo[playerid][pWorldIndex] = index;
duellInfo[index][diPlayers][0] = playerid;
duellInfo[index][diCountPlayers]++;
SpawnPlayer(playerid);
}
case 1:
{
DialogTempData[playerid][MAX_PLAYERS - 1] = index;
ShowPlayerDialog(playerid, DIALOG_DUELLJOIN, DIALOG_STYLE_INPUT, "Duell - Beitreten", "Bitte gebe das Raumpasswort (Fünfstellige Zahl) ein:", "Beitreten", "Schließen");
}
default:
{
SendClientMessage(playerid, COLOR_LESSRED, "In diesem Duell sind bereits 2 Spieler.");
ShowPlayerDuellDialog(playerid, DIALOG_DUELL);
return 1;
}
}
return 1;
}
if(dialogid == DIALOG_DUELLJOIN && response)
{
new password = strval(inputtext), index = DialogTempData[playerid][MAX_PLAYERS - 1];
if(password != duellInfo[index][diPassword])
{
ShowPlayerDialog(playerid, DIALOG_DUELLJOIN, DIALOG_STYLE_INPUT, "Duell - Beitreten", "{D11B30}Fehler:{A9C4E4} Passwörter stimmen nicht überein.\n\nBitte gebe das Raumpasswort (Fünfstellige Zahl) ein:", "Beitreten", "Schließen");
return 1;
}
playerInfo[playerid][pWorld] = WORLD_DUELL;
playerInfo[playerid][pWorldIndex] = index;
duellInfo[index][diPlayers][1] = playerid;
duellInfo[index][diCountPlayers]++;
SpawnPlayer(playerid);
return 1;
}
if(dialogid == DIALOG_UNBANIP && response)
{
new id = DialogTempData[playerid][listitem], query[128];
mysql_format(dbHandle, query, 128, "DELETE FROM `iptable` WHERE `id` = '%d'", id);
mysql_pquery(dbHandle, query, "", "");
format(query,sizeof(query),"* %s %s hat die IP-Range %s entbannt.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),inputtext);
SendAdminMessage(COLOR_RED, query);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/unbanip",inputtext);
return 1;
}
if(dialogid == DIALOG_VEHICLETUNING2)
{
if(response)
{
new vehicleid = GetPlayerVehicleID(playerid) , slotid = GetVehicleSlotID(vehicleid);
switch(playerInfo[playerid][pTuningGarage])
{
case TUN_DELETE:
{
switch(listitem)
{
case 0:
{
for(new i = 0; i < 14; i++)
{
if(vehicleInfo[slotid][viTuning][i] != 0)
{
RemoveVehicleComponent(vehicleid, vehicleInfo[slotid][viTuning][i]);
vehicleInfo[slotid][viTuning][i] = 0;
}
}
SendClientMessage(playerid, COLOR_GREEN, "[ TUNING ] Du hast all' deine Tuningteile entfernt.");
}
case 1:
{
DestroyVehicleNeon(vehicleid, true);
SendClientMessage(playerid, COLOR_GREEN, "[ TUNING ] Du hast deine Unterbodenbeleuchtung abmontiert.");
}
}
}
case TUN_SAFEWHEELS, TUN_VEHDL:
{
AddTuning(playerid, GetPlayerVehicleID(playerid), playerInfo[playerid][pTuningGarage]);
}
}
}
RemovePlayerFromTuningGarage(playerid);
return 1;
}
if(dialogid == DIALOG_ACCESSOIRCONTROL)
{
if(response)
{
if(!DialogTempDataIndex[playerid]) return OnPlayerCommandPerformed(playerid, "/account",true);
DialogTempData[playerid][0] = DialogTempData[playerid][listitem];
ShowPlayerDialog(playerid,DIALOG_ACCESSOIRCONTROL2, DIALOG_STYLE_LIST, "Accessoiranpassung","Anpassen\nAn- oder Ausziehen\nLöschen","Auswählen","Zurück");
}
else
{
OnPlayerCommandPerformed(playerid, "/account",true);
}
return 1;
}
if(dialogid == DIALOG_FRIENDLIST)
{
if(DialogTempData[playerid][MAX_PLAYERS - 2] == 1)
{
if(response && !DialogTempData[playerid][MAX_PLAYERS - 1])
{
new string[128], uName[MAX_PLAYER_NAME];
sscanf(inputtext, "s[24]s[11]", uName, string);
DialogTempData[playerid][MAX_PLAYERS - 1] = DialogTempData[playerid][listitem];
format(string, 128, "Möchtest du die Freundschaft mit %s beenden?", uName);
ShowPlayerDialog(playerid, DIALOG_FRIENDLIST, DIALOG_STYLE_MSGBOX, "Freundschaftsanfrage", string, "Beenden", "Schließen");
SetPVarString(playerid, "deletefriendname", uName);
}
else if(response && DialogTempData[playerid][MAX_PLAYERS - 1])
{
new query[128];
mysql_format(dbHandle, query, 128, "DELETE FROM `friends` WHERE `id` = '%d'", DialogTempData[playerid][0]);
mysql_tquery(dbHandle, query, "OnQueryFinishedEx", "dd",QUERYEX_FRIENDS,playerid);
new uName[MAX_PLAYER_NAME];
GetPVarString(playerid, "deletefriendname", uName, MAX_PLAYER_NAME);
DeletePVar(playerid, "deletefriendname");
new pID = GetPlayerID(uName);
if(pID != INVALID_PLAYER_ID)
{
for(new i = 0; i < MAX_FRIENDS; i++)
{
if(pID != INVALID_PLAYER_ID && playerInfo[pID][pFriends][i] == playerInfo[playerid][pSQLID])
{
playerInfo[pID][pFriends][i] = 0;
}
else if(playerInfo[playerid][pFriends][i] == playerInfo[pID][pSQLID])
{
playerInfo[playerid][pFriends][i] = 0;
}
}
SendClientMessageX(pID, COLOR_YELLOW, "[ FRIENDS ] %s hat die Freundschaft mit Dir beendet.", GetPlayerNameEx(playerid));
}
SendClientMessageX(playerid, COLOR_YELLOW, "[ FRIENDS ] Du hast die Freundschaft mit %s beendet.", uName);
}
}
else if(DialogTempData[playerid][MAX_PLAYERS - 2] == 2)
{
if(response && !DialogTempData[playerid][MAX_PLAYERS - 1])
{
new id = DialogTempData[playerid][listitem];
DialogTempData[playerid][MAX_PLAYERS - 1] = id;
if(strfind(inputtext, "(Anfrage)", true) != -1)
{
new string[128], uName[MAX_PLAYER_NAME];
sscanf(inputtext, "s[24]s[11]", uName, string);
format(string, 128, "Möchtest du die Freundschaftsanfrage von %s{A9C4E4} annehmen?", uName);
ShowPlayerDialog(playerid, DIALOG_FRIENDLIST, DIALOG_STYLE_MSGBOX, "Freundschaftsanfrage", string, "Annehmen", "Ablehnen");
SetPVarString(playerid, "friendname", uName);
}
}
else if(DialogTempData[playerid][MAX_PLAYERS-1])
{
new query[256], uName[MAX_PLAYER_NAME + 16];
GetPVarString(playerid, "friendname", uName, MAX_PLAYER_NAME + 16);
DeletePVar(playerid, "friendname");
if(response)
{
mysql_format(dbHandle, query, 128, "UPDATE `friends` SET `request` = '0' WHERE `id` = '%d'", DialogTempData[playerid][MAX_PLAYERS - 1]);
mysql_tquery(dbHandle, query, "", "");
new bool:success = false;
for(new i = 0; i < MAX_FRIENDS; i++)
{
if(playerInfo[playerid][pFriends][i]) continue;
playerInfo[playerid][pFriends][i] = INVALID_PLAYER_ID;
success = true;
break;
}
if(success)
{
LoadPlayerFriends(playerid, false);
SendClientMessageX(playerid, COLOR_YELLOW, "[ FRIENDS ] Du hast die Freundschaftsanfrage von %s angenommen.", uName);
new pID = GetPlayerID(uName);
if(pID != INVALID_PLAYER_ID)
{
LoadPlayerFriends(pID, false);
SendClientMessageX(pID, COLOR_YELLOW, "[ FRIENDS ] %s hat deine Freundschaftsanfrage angenommen.", GetPlayerNameEx(playerid));
}
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Du hast bereits das Limit der Freundesliste erreicht.");
}
else
{
SendClientMessageX(playerid, COLOR_YELLOW, "[ FRIENDS ] Du hast die Freundschaftsanfrage von %s abgelehnt.", uName);
new pID = GetPlayerID(uName);
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(pID, COLOR_YELLOW, "[ FRIENDS ] %s hat deine Freundschaftsanfrage abgelehnt.", GetPlayerNameEx(playerid));
}
}
mysql_format(dbHandle, query, 128, "DELETE FROM `friends` WHERE `id` = '%d'", DialogTempData[playerid][MAX_PLAYERS - 1]);
mysql_tquery(dbHandle, query, "", "");
return 1;
}
}
return 1;
}
if(dialogid == DIALOG_ACCESSOIRCONTROL2)
{
if(response)
{
switch(listitem)
{
case 0:
{
EditAttachedObject(playerid, DialogTempData[playerid][0]+7);
SendClientMessage(playerid, COLOR_YELLOW, "Du kannst nun das Objekt anpassen, nutze dafür das angezeigte Tool.");
SendClientMessage(playerid, COLOR_YELLOW, "Drücke auf die Diskette um die Bearbeitung zu speichert, Drücke ESC um die Position zurückzusetzen.");
SendClientMessage(playerid, COLOR_YELLOW, "Drücke Leertaste, um deine Kamera frei zu bewegen.");
}
case 1:
{
new i = DialogTempData[playerid][0], str[128];
if(IsPlayerAttachedObjectSlotUsed(playerid, i + 7))
{
//RemovePlayerAttachedObject(playerid, i + 7);
}
else
{
//SetPlayerAttachedObject(playerid, i + 7,playerInfo[playerid][pAccessoirID][i], 2, playerInfo[playerid][pAccessoirPosX][i],playerInfo[playerid][pAccessoirPosY][i],playerInfo[playerid][pAccessoirPosZ][i],playerInfo[playerid][pAccessoirRotX][i],playerInfo[playerid][pAccessoirRotY][i],playerInfo[playerid][pAccessoirRotZ][i],playerInfo[playerid][pAccessoirScaleX][i],playerInfo[playerid][pAccessoirScaleY][i],playerInfo[playerid][pAccessoirScaleZ][i]);
}
DialogTempDataIndex[playerid] = 0;
for(i = 0; i < 3; i++)
{
if(!playerInfo[playerid][pAccessoirID][i]) continue;
new slottype = GetPlayerAccessoirsTyp(i);
format(str,sizeof(str),"%s",accesName[slottype]);
DialogTempData[playerid][DialogTempDataIndex[playerid]] = i;
DialogTempDataIndex[playerid]++;
}
ShowPlayerDialog(playerid, DIALOG_ACCESSOIRCONTROL, DIALOG_STYLE_LIST, "Accessoirbearbeitung",str,"Auswählen","Zurück");
}
case 2:
{
new slotid = DialogTempData[playerid][0];
playerInfo[playerid][pAccessoirID][slotid] = 0;
RemovePlayerAttachedObject(playerid, slotid+7);
SendClientMessage(playerid, COLOR_YELLOW, "Du hast das Objekt erfolgreich gelöscht.");
}
}
return 1;
}
else
{
}
}
if(dialogid == DIALOG_ACCESSOIRES)
{
if(!response)
{
playerInfo[playerid][pSkinShop] = 0;
return 1;
}
playerInfo[playerid][pAccesChange] = true;
playerInfo[playerid][pChooseIndex] = listitem;
playerInfo[playerid][pChooseSkin] = 0;
TextDrawShowForPlayer(playerid, InfoAccChange);
SetPlayerPos(playerid,199.9043,-157.6255,1000.5234);
SetPlayerFacingAngle(playerid, 210.0933);
SetPlayerInterior(playerid, 14);
SetPlayerVirtualWorld(playerid, playerid + 1);
SetPlayerCameraPos(playerid, 201.360900, -159.622268, 1001.375305);
SetPlayerCameraLookAt(playerid, 198.389328, -155.631729, 1000.880004);
TogglePlayerControllable(playerid, false);
//SetPlayerAttachedObject(playerid, GetAccesPlayerSlot(playerInfo[playerid][pChooseIndex]),acces[playerInfo[playerid][pChooseIndex]][0], 2, accesPos[playerInfo[playerid][pChooseIndex]][0], accesPos[playerInfo[playerid][pChooseIndex]][1], accesPos[playerInfo[playerid][pChooseIndex]][2],accesPos[playerInfo[playerid][pChooseIndex]][3],accesPos[playerInfo[playerid][pChooseIndex]][4],accesPos[playerInfo[playerid][pChooseIndex]][5]);
return 1;
}
if(dialogid == DIALOG_FISHMENU && response)
{
OpenPlayerFishMenu(playerid, 2);
}
if(dialogid == DIALOG_FISHMENU2)
{
if(response)
{
new id = DialogTempData[playerid][listitem], count = 0;
if(id == MAX_PLAYERFISHES)
{
for(new i = 0; i < MAX_PLAYERFISHES; i++)
{
if(!playerInfo[playerid][pFish][i]) continue;
SellPlayerFish(playerid, i);
count++;
}
if(count == MAX_PLAYERFISHES)
{
GivePlayerExp(playerid, 1, _, "Fischverkauf (Max)");
}
return 1;
}
else
{
SellPlayerFish(playerid, id);
}
}
else
{
OpenPlayerFishMenu(playerid, 1);
}
}
if(dialogid == DIALOG_ZONELIST && response)
{
if(listitem == 20)
{
OpenPlayerZoneList(playerid);
}
else
{
new id = DialogTempData[playerid][listitem];
OnUserWantToZone(playerid, id);
}
return 1;
}
if(dialogid == DIALOG_BIZLIST && response)
{
if(listitem == 20)
{
OpenPlayerBizList(playerid);
}
else
{
new id = DialogTempData[playerid][listitem];
OnUserWantToBusiness(playerid, id);
}
return 1;
}
if(dialogid == DIALOG_GROUPCOLOR && response)
{
if(listitem == 40)
{
OpenPlayerGroupColor(playerid);
return 1;
}
new id = DialogTempData[playerid][listitem], str[256];
if(groupInfo[GetPlayerGroupIndex(playerid)][gBuyedColor][id])
{
format(str, sizeof(str), "Ausgewählte Farbe: {%06x}%s{A9C4E4}\n\nDu hast die Farbe bereits gekauft. \nMöchtest du diese Farbe als Gruppenfarbe aktivieren?",colorArray[id][caColor] >>> 8,colorArray[id][caColorName]);
ShowPlayerDialog(playerid, DIALOG_GROUPCOLOR2, DIALOG_STYLE_MSGBOX, "Gruppenfarbe ändern", str, "Aktivieren", "Schließen");
}
else
{
format(str, sizeof(str), "Ausgewählte Farbe: {%06x}%s{A9C4E4}\n\nMöchtest du diese Farbe für $3.500.000 kaufen?\nHinweis: DIESE Farbe muss lediglich einmal gekauft werden.",colorArray[id][caColor] >>> 8,colorArray[id][caColorName]);
ShowPlayerDialog(playerid, DIALOG_GROUPCOLOR2, DIALOG_STYLE_MSGBOX, "Gruppenfarbe ändern", str, "Kaufen", "Schließen");
}
DialogTempData[playerid][MAX_PLAYERS - 1] = id;
}
if(dialogid == DIALOG_GROUPCOLOR2 && response)
{
new id = DialogTempData[playerid][MAX_PLAYERS - 1], string[128], gIndex = playerInfo[playerid][pGroupIndex];
if(groupInfo[gIndex][gBank] < 3500000 && !groupInfo[gIndex][gBuyedColor][id]) return SendClientMessage(playerid, COLOR_LESSRED, "Es befinden sich keine $3.500.000 in der Gruppenkasse.");
format(string, sizeof(string), "** Leader %s hat die Gruppenfarbe in %s geändert **",GetPlayerNameEx(playerid), colorArray[id][caColorName]);
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
if(!groupInfo[gIndex][gBuyedColor][id])
{
groupInfo[gIndex][gBank] -= 3500000;
groupInfo[gIndex][gBuyedColor][id] = true;
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup],"-/upgradecolor",colorArray[id][caColorName]);
mysql_format(dbHandle, string, 128, "INSERT INTO `groups_buyedcolor` (`groupid`, `colorid`, `date`) VALUES (%d,%d,%d)", groupInfo[gIndex][gSQLID], id, gettime());
mysql_pquery(dbHandle, string, "", "");
}
groupInfo[GetPlayerGroupIndex(playerid)][gColor] = id;
return 1;
}
if(dialogid == DIALOG_SHOP && response)
{
if(strfind(inputtext,":",true) != -1)
{
OpenPlayerShopMenu(playerid);
return 1;
}
new sIndex = strval(inputtext[0]) - 1, longstr[512];
format(longstr, sizeof(longstr), "Artikel-Nr: %d\nArtikel-Bezeichnung: %s\n\nArtikel-Beschreibung:\n%s\n\nMöchtest Du diesen Artikel für %d Coins kaufen?", sIndex + 1, shopItem[sIndex][siName], shopItem[sIndex][siDescription],shopItem[sIndex][siPrice]);
ShowPlayerDialog(playerid, DIALOG_SHOP2, DIALOG_STYLE_MSGBOX, "Artikel kaufen", longstr, "Kaufen","Zurück");
DialogTempData[playerid][MAX_PLAYERS - 1] = sIndex;
return 1;
}
if(dialogid == DIALOG_SHOP2)
{
if(response)
{
new id = DialogTempData[playerid][MAX_PLAYERS - 1];
if(playerInfo[playerid][pCoins] < shopItem[id][siPrice]) SendClientMessageX(playerid, COLOR_LESSRED, "Dir fehlen %d Coins, um dir diesen Artikel zu kaufen.", shopItem[id][siPrice] - playerInfo[playerid][pCoins]);
else
{
switch(shopItem[id][siID])
{
case SHOP_VIP30:
{
if(!IsPlayerDonator(playerid)) playerInfo[playerid][pDonator] = gettime(); // Derzeitiger Zeitpunkt, Addition folgt Zeile unter.
playerInfo[playerid][pDonator] += 60 * 60 * 24 * 30; // 30 Tage Donator
GivePlayerBankMoney(playerid, 125000, "Donator");
}
case SHOP_VIP10:
{
if(!IsPlayerDonator(playerid)) playerInfo[playerid][pDonator] = gettime(); // Derzeitiger Zeitpunkt, Addition folgt Zeile unter.
playerInfo[playerid][pDonator] += 60 * 60 * 24 * 10; // 30 Tage Donator
GivePlayerBankMoney(playerid, 125000, "Donator");
}
case SHOP_DEXP1,SHOP_DEXP3,SHOP_DEXP6:
{
if(playerInfo[playerid][pDoubleExp] < gettime()) playerInfo[playerid][pDoubleExp] = gettime();
if(shopItem[id][siID] == SHOP_DEXP1) playerInfo[playerid][pDoubleExp] += 60 * 60;
else if(shopItem[id][siID] == SHOP_DEXP3) playerInfo[playerid][pDoubleExp] += 60 * 60 * 3;
else if(shopItem[id][siID] == SHOP_DEXP6) playerInfo[playerid][pDoubleExp] += 60 * 60 * 6;
}
case SHOP_THAMMU:
{
if(playerInfo[playerid][pPremiumFeature][0]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast bereits diesen Vorteil freigeschaltet.");
playerInfo[playerid][pPremiumFeature][0] = true;
}
case SHOP_DRUGS:
{
if(playerInfo[playerid][pPremiumFeature][1]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast bereits diesen Vorteil freigeschaltet.");
playerInfo[playerid][pPremiumFeature][1] = true;
}
}
new query[128 + 32];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_shop` (`playerid`,`coins`,`item`,`timestamp`) VALUES ('%d','%d','%s','%d')", playerInfo[playerid][pSQLID], shopItem[id][siPrice], shopItem[id][siName],gettime());
mysql_tquery(dbHandle, query, "", "");
format(query, sizeof(query), "Du hast den Artikel %s gekauft für %d Coins gekauft.",shopItem[id][siName], shopItem[id][siPrice]);
SendClientMessage(playerid, COLOR_GREEN, query);
playerInfo[playerid][pCoins] -= shopItem[id][siPrice];
OnServerSavePlayerData(playerid);
}
}
else
{
OpenPlayerShopMenu(playerid);
}
}
if(dialogid == DIALOG_COMPACT)
{
if(playerInfo[playerid][pCompactID] != INVALID_PLAYER_ID)
{
if(response)
{
new query[256], cText[144];
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast den Vertrag von %s angenommen.", GetPlayerNameEx(playerInfo[playerid][pCompactID]));
SendClientMessageX(playerInfo[playerid][pCompactID], COLOR_YELLOW, "%s hat deinen Vertrag angenommen.", GetPlayerNameEx(playerid));
GetPVarString(playerid, "CompactText", cText, sizeof(cText));
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_compact` (`playerid1`,`playerid2`,`text`,`date`) VALUES ('%d','%d','%e','%d')",playerInfo[playerid][pSQLID], playerInfo[playerInfo[playerid][pCompactID]][pSQLID],cText, gettime());
mysql_function_query(dbHandle, query, false, "", "");
}
else
{
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast den Vertrag von %s abgelehnt.", GetPlayerNameEx(playerInfo[playerid][pCompactID]));
SendClientMessageX(playerInfo[playerid][pCompactID], COLOR_YELLOW, "%s hat deinen Vertrag abgelehnt.", GetPlayerNameEx(playerid));
}
playerInfo[ playerInfo[playerid][pCompactID] ][pCompactID] = INVALID_PLAYER_ID;
playerInfo[playerid][pCompactID] = INVALID_PLAYER_ID;
DialogTempData[playerid][MAX_PLAYERS - 1] = 0;
return 1;
}
else if(response)
{
if(!IsPlayerConnected(DialogTempData[playerid][MAX_PLAYERS - 1])) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist Offline.");
if(strlen(inputtext) < 5)
{
new string[128];
format(string, sizeof(string), "Du möchtest mit %s einen Vertrag schließen.\nWas soll dieser beinhalten?:",GetPlayerNameEx( DialogTempData[playerid][MAX_PLAYERS - 1] ));
ShowPlayerDialog(playerid, DIALOG_COMPACT, DIALOG_STYLE_INPUT, "Vertrag erstellen", string, "Schicken", "Schließen");
return 1;
}
SetPVarString(playerid, "CompactText", inputtext);
SetPVarString(DialogTempData[playerid][MAX_PLAYERS - 1], "CompactText", inputtext);
playerInfo[ DialogTempData[playerid][MAX_PLAYERS - 1] ][pCompactID] = playerid;
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %s einen Vertrag angeboten. Warte auf seine Reaktion.",GetPlayerNameEx( DialogTempData[playerid][MAX_PLAYERS - 1] ));
SendClientMessageX(DialogTempData[playerid][MAX_PLAYERS - 1], COLOR_YELLOW, "* %s bietet dir ein Vertrag an. /Vertrag um ihn dir anzuschauen.", GetPlayerNameEx( playerid ));
}
return 1;
}
if(dialogid == DIALOG_COMMANDCONFIG && response)
{
DialogTempData[playerid][MAX_PLAYERS - 2] = listitem;
ShowPlayerCommandConfig(playerid, 2, listitem);
return 1;
}
if(dialogid == DIALOG_COMMANDCONFIG2)
{
if(response)
{
new longstr[256], cRank = commandInfo [ DialogTempData[playerid][listitem] ][ ciRank ];
DialogTempData[playerid][MAX_PLAYERS - 1] = DialogTempData[playerid][listitem];
for(new i = 1; i < sizeof(TeamRank); i++)
{
format(longstr, sizeof(longstr), "%s\n{%s}Rang %d - %s",longstr ,((cRank < i + 1) ? ("42A63F") : ("AB262E")) ,i, TeamRank[i]);
}
ShowPlayerDialog(playerid, DIALOG_COMMANDCONFIG3, DIALOG_STYLE_LIST, "Befehlskonfiguration", longstr, "Auswählen", "Zurück");
}
else
{
ShowPlayerCommandConfig (playerid, 1, 0);
}
return 1;
}
if(dialogid == DIALOG_COMMANDCONFIG3)
{
new cIndex = DialogTempData[playerid][MAX_PLAYERS - 1];
if(response)
{
SendClientMessageX(playerid, COLOR_GREEN, "Den Befehl %s von %s auf %s gesetzt.",commandInfo[cIndex][ciName], TeamRank[ commandInfo[cIndex][ciRank] ], TeamRank[ listitem + 1 ]);
commandInfo[cIndex][ciRank] = listitem + 1;
new query[128];
mysql_format(dbHandle, query, sizeof(query), "UPDATE `commandconfig` SET `rank` = '%d' WHERE `id` = '%d'",commandInfo[cIndex][ciRank], commandInfo[cIndex][ciSQLID]);
mysql_function_query(dbHandle, query, false, "", "");
}
ShowPlayerCommandConfig(playerid, 2, DialogTempData[playerid][MAX_PLAYERS - 2]);
return 1;
}
if(dialogid == DIALOG_HOUSEINTERIOR && response)
{
if(houseInfo[ DialogTempData[playerid][MAX_PLAYERS-2] ] [ hInteriorSQLID ] == interiorInfo[DialogTempData[playerid][listitem]][iiSQLID])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist bereits dein Hausinterior.", interiorInfo[DialogTempData[playerid][listitem]][iiName]);
ShowPlayerHouseInteriorMenu(playerid, playerInfo[playerid][pHouseSlot]);
return 1;
}
DialogTempData[playerid][MAX_PLAYERS-1] = DialogTempData[playerid][listitem];
new str[64];
format(str, sizeof(str), "Besichtigung\nKaufen für $%s", FormatNumber(interiorInfo [ DialogTempData[playerid][listitem] ][ iiPrice ]));
ShowPlayerDialog(playerid, DIALOG_HOUSEINTERIOR2, DIALOG_STYLE_LIST, "Hausinterior", str, "Auswählen", "Zurück");
return 1;
}
if(dialogid == DIALOG_HOUSEINTERIOR2)
{
if(response)
{
new hrIndex = DialogTempData[playerid][MAX_PLAYERS-1];
switch(listitem)
{
case 0:
{
SetPlayerInterior(playerid, interiorInfo[hrIndex][iiInterior]);
SetPlayerPos(playerid, interiorInfo[hrIndex][iiPosX],interiorInfo[hrIndex][iiPosY],interiorInfo[hrIndex][iiPosZ]);
SetPlayerFacingAngle(playerid, interiorInfo[hrIndex][iiPosA]);
SetPlayerVirtualWorld(playerid, playerid + hrIndex + 999);
playerInfo[playerid][pVisitRoom] = true;
SendClientMessage(playerid, COLOR_YELLOW, "Hinweis: Du kannst die Besichtigung mit /exit beenden.");
}
case 1:
{
new houseid = DialogTempData[playerid][MAX_PLAYERS-2];
if(houseInfo[houseid][hRobber] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dein Haus wird gerade ausgeraubt. Dadurch kannst du diese Funktion nicht nutzen.");
new success = GivePlayerMoneyEx(playerid, -interiorInfo[hrIndex][iiPrice], "Haus-Interior"), hOldIndex = houseInfo[ houseid ][hInteriorID];
switch(success)
{
case 0:
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast weder auf der Bank noch auf der Hand $%s.",FormatNumber(interiorInfo[hrIndex][iiPrice]));
return 1;
}
case 1: SendClientMessageX(playerid, COLOR_GREEN, "Du hast das Interior %s für $%s gekauft.",interiorInfo[hrIndex][iiName] , FormatNumber(interiorInfo[hrIndex][iiPrice]));
case 2: SendClientMessageX(playerid, COLOR_GREEN, "Du hast das Interior %s für $%s (Bankkonto) gekauft.",interiorInfo[hrIndex][iiName] ,FormatNumber(interiorInfo[hrIndex][iiPrice]));
}
houseInfo[ houseid ][hInteriorID] = hrIndex;
houseInfo[ houseid ][hInteriorSQLID] = interiorInfo[hrIndex][iiSQLID];
if(IsValidDynamicObject(houseInfo[ houseid ][hDoorObj])) DestroyDynamicObject(houseInfo[ houseid ][hDoorObj]);
houseInfo[ houseid ][hDoorObj] = CreateDynamicObject(2004, houseSafe[hrIndex][hsDoorX],houseSafe[hrIndex][hsDoorY],houseSafe[hrIndex][hsZ],houseSafe[hrIndex][hsrX],houseSafe[hrIndex][hsrY],houseSafe[hrIndex][hsrZ],houseInfo[houseid][hSQLID], interiorInfo[hrIndex][iiInterior]); // Safe Tür vom Tresor.
if(playerInfo[playerid][pVisitRoom])
{
playerInfo[playerid][pVisitRoom] = false;
SpawnPlayer(playerid);
}
foreach(new i : Player)
{
if(houseInfo[houseid][hSQLID] != GetPlayerVirtualWorld(i) || !IsPlayerInRangeOfPoint(i, 10.0, interiorInfo[ hOldIndex ][iiPosX],interiorInfo[ hOldIndex ][iiPosY],interiorInfo[ hOldIndex ][iiPosZ])) continue;
SendClientMessage(i, COLOR_RED, "Du wurdest neugespawnt, da das Interior von diesem Haus geändert wurde.");
SpawnPlayer(i);
}
}
}
}
else
{
ShowPlayerHouseInteriorMenu(playerid, playerInfo[playerid][pHouseSlot]);
}
}
if(dialogid == DIALOG_IRCCREATE && response)
{
new slotid = Iter_Free(IRC);
if(slotid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Es wurde bereits das Limit der Channels erreicht.");
format(ircInfo[slotid][ircName],32,DialogTempData[playerid]);
format(ircInfo[slotid][ircPassword],32,"0");
ircInfo[slotid][ircMembers] ++;
Iter_Add(IRC, slotid);
new query[128];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `irc` (`name`, `owner`) VALUES ('%e','%e')", DialogTempData[playerid], GetPlayerNameEx(playerid));
mysql_tquery(dbHandle, query, "OnServerInitIrc", "dd", playerid, slotid);
return 1;
}
if(dialogid == DIALOG_OBJLIST && response)
{
new slotid = DialogTempData[playerid][listitem];
SetPlayerPos(playerid, objectInfo[slotid][oiPos][0], objectInfo[slotid][oiPos][1], objectInfo[slotid][oiPos][2] + 2.0);
SetPlayerFacingAngle(playerid, objectInfo[slotid][oiPos][3]);
SetPlayerInterior(playerid, objectInfo[slotid][oiInt]);
SetPlayerVirtualWorld(playerid, objectInfo[slotid][oiVirt]);
return 1;
}
if(dialogid == DIALOG_CHANGENAMEINFO)
{
OnPlayerCommandPerformed(playerid, "/account",true);
return 1;
}
if(dialogid == DIALOG_PORTADD && response)
{
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(strlen(inputtext) < 3)
{
new string[256];
format(string,sizeof(string),"{D11B30}Fehler:{A9C4E4} Die Bezeichnung muss mindestens 3 Zeichen lang sein.\n\nUm einen Teleportpunkt zu erstellen, musst du eine Bezeichnung angeben.\nDiese Bezeichnung wird dann unter /ports angezeigt.\nKoordinarten: X: %.5f Y: %.5f Z: %.5f",Pos[0],Pos[1],Pos[2]);
ShowPlayerDialog(playerid, DIALOG_PORTADD, DIALOG_STYLE_INPUT, "Teleporterstellung",string,"Erstellen","Abbrechen");
return 1;
}
new query[156];
GetPlayerFacingAngle(playerid, Pos[3]);
new i;
for(i = 0; i < sizeof(portInfo); i++)
{
if(strlen(portInfo[i][poName]) > 2) continue;
portInfo[i][poX] = Pos[0]; portInfo[i][poY] = Pos[1];
portInfo[i][poZ] = Pos[2]; portInfo[i][poA] = Pos[3];
portInfo[i][poVirt] = GetPlayerVirtualWorld(playerid);
portInfo[i][poInt] = GetPlayerInterior(playerid);
format(portInfo[i][poName],32,inputtext);
break;
}
mysql_format(dbHandle,query,sizeof(query),"INSERT INTO `teleports` (`name`,`x`,`y`,`z`,`a`,`int`,`virt`) VALUES ('%e','%.5f','%.5f','%.5f','%.5f','%d','%d')",inputtext,Pos[0],Pos[1],Pos[2],Pos[3],GetPlayerInterior(playerid),GetPlayerVirtualWorld(playerid));
mysql_function_query(dbHandle, query, false, "InsertInit", "dd", playerid, INSERTINIT_TELEPORT);
new string[128];
format(string,sizeof(string),"* %s %s hat %s zur Teleportliste hinzugefügt.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),inputtext);
SendAdminMessage(COLOR_RED, string);
return 1;
}
if(dialogid == DIALOG_PORTS && response)
{
new index;
if(DialogTempData[playerid][MAX_PLAYERS - 2] == 1)
{
index = listitem;
DialogTempData[playerid][MAX_PLAYERS - 2] = 2;
DialogTempData[playerid][MAX_PLAYERS - 1] = index;
new str[128];
format(str, 128, "Möchtest du wirklich den Teleportpunkt %s löschen?",portInfo[index][poName]);
ShowPlayerDialog(playerid, DIALOG_PORTS, DIALOG_STYLE_MSGBOX, "Teleportliste bearbeiten", str, "Löschen","Schließen");
return 1;
}
else if(DialogTempData[playerid][MAX_PLAYERS - 2] == 2)
{
index = DialogTempData[playerid][MAX_PLAYERS - 1];
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/ports_delete",portInfo[index][poName]);
new query[100];
mysql_format(dbHandle, query, 100, "DELETE FROM `teleports` WHERE `id` = '%d'",portInfo[index][poSQLID]);
mysql_tquery(dbHandle, query, "", "");
SendClientMessageX(playerid, COLOR_GREY, "Du hast erfolgreich den Teleportierungsport %s gelöscht.",portInfo[index][poName]);
strdel(portInfo[index][poName], 0, 32);
return 1;
}
index = DialogTempData[playerid][listitem];
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
SetVehiclePos(GetPlayerVehicleID(playerid), portInfo[index][poX],portInfo[index][poY],portInfo[index][poZ]);
SetVehicleZAngle(GetPlayerVehicleID(playerid), portInfo[index][poA]);
LinkVehicleToInterior(GetPlayerVehicleID(playerid),portInfo[index][poInt]);
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), portInfo[index][poVirt]);
}
else
{
SetPlayerPos(playerid, portInfo[index][poX],portInfo[index][poY],portInfo[index][poZ]);
SetPlayerFacingAngle(playerid, portInfo[index][poA]);
}
SetPlayerInterior(playerid, portInfo[index][poInt]);
SetPlayerVirtualWorld(playerid, portInfo[index][poVirt]);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/ports",inputtext);
SendClientMessageX(playerid, COLOR_GREY, "Du hast dich erfolgreich zum Teleportierungsport %s teleportiert.",portInfo[index][poName]);
}
if(dialogid == DIALOG_BUYWEAPONMATS && response && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new value = strval(inputtext), id = GetPlayerMatsPoint(playerid), vehicleid = GetPlayerVehicleID(playerid), price = value * materialPoint[id][mpPrice];
if(groupInfo[playerInfo[playerid][pGroupIndex]][gMatsMaxPrice] < materialPoint[id][mpPrice]) return SendClientMessage(playerid, COLOR_LESSRED, "Deine Gruppe möchte für diesen Preis keine Materialien kaufen.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gMatsMaxPrice] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Deine Gruppe möchte keine Materialien kaufen.");
new string[256];
if(!GetVehicleMatsCapacity(vehicleid))
format(string, sizeof(string), "{D11B30}Fehler:{A9C4E4} In deinem Fahrzeug ist kein Platz.\n\nHerzlich Willkommen im Hauptlager des San Andreas Ammu-Nation:\n\nWie viele Materialien möchtest du kaufen?\n\nKofferraum %d / %d\t\t\tPreis pro Material: $%d",GetVehicleMats(vehicleid),GetVehicleMatsCapacity(vehicleid),price);
else if(value <= 0)
format(string, sizeof(string), "{D11B30}Fehler:{A9C4E4} Du musst mindestens ein Material kaufen.\n\nHerzlich Willkommen im Hauptlager des San Andreas Ammu-Nation:\n\nWie viele Materialien möchtest du kaufen?\n\nKofferraum %d / %d\t\t\tPreis pro Material: $%d",GetVehicleMats(vehicleid),GetVehicleMatsCapacity(vehicleid),price);
else if(value + GetVehicleMats(vehicleid) > GetVehicleMatsCapacity(vehicleid))
format(string, sizeof(string), "{D11B30}Fehler:{A9C4E4} Dein Fahrzeug kann soviele Materialien nicht mehr tragen.\n\nHerzlich Willkommen im Hauptlager des San Andreas Ammu-Nation:\n\nWie viele Materialien möchtest du kaufen?\n\nKofferraum %d / %d\t\t\tPreis pro Material: $%d",GetVehicleMats(vehicleid),GetVehicleMatsCapacity(vehicleid),price);
else if(price > groupInfo[GetPlayerGroupIndex(playerid)][gBank])
format(string, sizeof(string), "{D11B30}Fehler:{A9C4E4} Auf dem Gruppenkonto ist nicht genügend Geld ($%d, benötigt: $%d).\n\nHerzlich Willkommen im Hauptlager des San Andreas Ammu-Nation:\n\nWie viele Materialien möchtest du kaufen?\n\nKofferraum %d / %d\t\t\tPreis pro Material: $%d",groupInfo[GetPlayerGroupIndex(playerid)][gBank],price,GetVehicleMats(vehicleid),GetVehicleMatsCapacity(vehicleid),price);
else
{
playerInfo[playerid][pVehicleFueling] = true;
ChangeMotorState(vehicleid, false);
TextDrawShowForPlayer(playerid, MaterialTD[0]);
TextDrawShowForPlayer(playerid, MaterialTD[1]);
MatsProgressbar[playerid][0] = CreatePlayerTextDraw(playerid,320.000000, 148.000000, "0 / 0");
PlayerTextDrawAlignment(playerid,MatsProgressbar[playerid][0], 2);
PlayerTextDrawBackgroundColor(playerid,MatsProgressbar[playerid][0], 255);
PlayerTextDrawFont(playerid,MatsProgressbar[playerid][0], 1);
PlayerTextDrawLetterSize(playerid,MatsProgressbar[playerid][0], 0.500000, 1.000000);
PlayerTextDrawColor(playerid,MatsProgressbar[playerid][0], -1);
PlayerTextDrawSetOutline(playerid,MatsProgressbar[playerid][0], 0);
PlayerTextDrawSetProportional(playerid,MatsProgressbar[playerid][0], 1);
PlayerTextDrawSetShadow(playerid,MatsProgressbar[playerid][0], 1);
MatsProgressbar[playerid][1] = CreatePlayerTextDraw(playerid,275.000000, 145.000000, "~n~_");
PlayerTextDrawBackgroundColor(playerid,MatsProgressbar[playerid][1], 255);
PlayerTextDrawFont(playerid,MatsProgressbar[playerid][1], 1);
PlayerTextDrawLetterSize(playerid,MatsProgressbar[playerid][1], 0.500000, 1.000000);
PlayerTextDrawColor(playerid,MatsProgressbar[playerid][1], -1);
PlayerTextDrawSetOutline(playerid,MatsProgressbar[playerid][1], 0);
PlayerTextDrawSetProportional(playerid,MatsProgressbar[playerid][1], 1);
PlayerTextDrawSetShadow(playerid,MatsProgressbar[playerid][1], 1);
PlayerTextDrawUseBox(playerid,MatsProgressbar[playerid][1], 1);
PlayerTextDrawBoxColor(playerid,MatsProgressbar[playerid][1], 396573280);
PlayerTextDrawTextSize(playerid,MatsProgressbar[playerid][1], 273.000000, -4.000000);
format(string, sizeof(string), "1 / %d",value);
PlayerTextDrawSetString(playerid, MatsProgressbar[playerid][0], string);
PlayerTextDrawShow(playerid, MatsProgressbar[playerid][0]);
PlayerTextDrawShow(playerid, MatsProgressbar[playerid][1]);
SetTimerEx("UpdateMatsProgressbar", 300, false, "dddd", playerid, materialPoint[id][mpPrice], 1, value);
return 1;
}
ShowPlayerDialog(playerid, DIALOG_BUYWEAPONMATS, DIALOG_STYLE_INPUT, "Waffenlager - Bestellung", string, "Bestellen", "Schließen");
return 1;
}
if(dialogid == DIALOG_LAWYER && response)
{
new pID = DialogTempData[playerid][listitem];
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(!playerInfo[pID][pJailTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht mehr im Gefängnis.");
if(playerInfo[pID][pOfferLawyerID] == playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat bereits ein Angebot von Dir erhalten.");
if(playerInfo[playerid][pLawyerTime])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %s wieder eine Person ein Angebot unterstellen.",GetTimeString(playerInfo[playerid][pLawyerTime],4));
return 1;
}
playerInfo[playerid][pOfferLawyerID] = pID;
playerInfo[pID][pOfferLawyerID] = playerid;
playerInfo[pID][pOfferLawyerMoney] = floatround(((playerInfo[pID][pJailTime] / 30) * 2500 + 2500) * 0.75);
SendClientMessageX(pID, COLOR_LIGHTBLUE, "Anwalt %s bietet dir an, dich für eine Kaution von $%s aus dem Knast zu holen.",GetPlayerNameEx(playerid),FormatNumber(playerInfo[pID][pOfferLawyerMoney]));
SendClientMessageX(pID, COLOR_YELLOW, "Zum Annehmen der Kaution: /annehmen Anwalt %s.",GetPlayerNameEx(playerid));
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast %s dein Angebot unterstellt. Warte auf eine Reaktion.",GetPlayerNameEx(pID));
return 1;
}
if(dialogid == DIALOG_CHANGENAME)
{
if(response)
{
new query[128];
mysql_format(dbHandle,query,sizeof(query),"SELECT `id` FROM `accounts` WHERE `username` = '%s' LIMIT 1",inputtext);
mysql_pquery(dbHandle, query, "OnPlayerChangeName","ds",playerid,inputtext);
return 1;
}
OnPlayerCommandPerformed(playerid, "/account",true);
return 1;
}
if(dialogid == DIALOG_CHANGEPASSWORD)
{
if(response)
{
if(DialogTempDataIndex[playerid] == 0)
{
if(!strcmp(playerInfo[playerid][pEMail], inputtext, true) && strlen(inputtext))
{
DialogTempDataIndex[playerid]++;
ShowPlayerDialog(playerid, DIALOG_CHANGEPASSWORD, DIALOG_STYLE_INPUT, "Passwortänderung","Die angegebene E-Mail stimmt mit der Account E-Mail überein.\nBitte gebe nun dein neues Passwort ein:","Ändern", "Zurück");
return 1;
}
new mail[32], str[256];
strcat(mail, playerInfo[playerid][pEMail]);
GradeEMail(mail);
format(str, 256, "Tipp: %s\nIm folgenden wirst du aufgefordert, deine E-Mail zur Bestätigung deiner Identität anzugeben.\nDabei ist die E-Mail Adresse gemeint, welche bei der Registration angegeben wurde:", mail);
ShowPlayerDialog(playerid, DIALOG_CHANGEPASSWORD, DIALOG_STYLE_INPUT, "Passwortänderung", str, "Ändern", "Zurück");
return 1;
}
if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, DIALOG_CHANGEPASSWORD, DIALOG_STYLE_INPUT, "Passwortänderung","Fehler: Das Passwort muss mindestens 6 Zeichen lang sein.\nDie angegebene E-Mail stimmt mit der Account E-Mail überein.\nBitte gebe nun dein neues Passwort ein:","Ändern", "Zurück");
new salt[16], str[512];
strcat(str, inputtext);
WP_Hash(str, 129, str);
strmid(salt,str,0,sizeof(salt));
strcat(str, salt);
WP_Hash(playerInfo[playerid][pKey], 129, str);
format(playerInfo[playerid][pSalt], 32, salt);
format(str,sizeof(str),"UPDATE `accounts` SET `password` = '%s',`salt` = '%s',`hashed` = '1' WHERE `id` = '%d'",playerInfo[playerid][pKey],playerInfo[playerid][pSalt],playerInfo[playerid][pSQLID]);
mysql_function_query(dbHandle, str, true, "", "");
if(strlen(inputtext) < 6)
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration (1 / 4)","{D11B30}Fehler:{A9C4E4} Das Passwort muss mindestens 6 Zeichen haben.\n\nBitte gebe zur späteren Verifizierung deiner Person ein Passwort ein:","Regstrieren","Verlassen");
return 1;
}
}
OnPlayerCommandPerformed(playerid, "/account",true);
return 1;
}
if(dialogid == DIALOG_ACCOUNT && response)
{
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Namensänderung","Du bist dabei, dich umzubenennen. Dieser Schritt kostet dich einmalig $2.500.000.\nDer Name muss den SA:MP - Norm entsprechen und darf zu keinem Regelverstoß führen.\n\nWie soll dein neuer Name lauten?:","Ändern","Zurück");
}
case 1: // Passwort ändern
{
DialogTempDataIndex[playerid] = 0;
ShowPlayerDialog(playerid, DIALOG_CHANGEPASSWORD, DIALOG_STYLE_INPUT, "Passwortänderung", "Im folgenden wirst du aufgefordert, deine E-Mail zur Bestätigung deiner Identität anzugeben.\nDabei ist die E-Mail Adresse gemeint, welche bei der Registration angegeben wurde:","Weiter","Zurück");
}
case 2:
{
new longstr[256];
for(new i = 0; i < sizeof(fightingStyle); i++)
{
format(longstr, sizeof(longstr), "%s%s%s Kampfstil ($ %d)\n",longstr,(playerInfo[playerid][pBuyedFightingStyle][i] ? ("{42A63F}") : ("{AB262E}")),fightingStyle[i][fsName], fightingStyle[i][fsPrice]);
}
ShowPlayerDialog(playerid, DIALOG_CHANGEFIGHTINGSTYLE, DIALOG_STYLE_LIST, "Kampfstil ändern", longstr, "Ändern", "Schließen");
}
case 3: // Waffenstatistik
{
new longstr[1024 + 512];
format(longstr,sizeof(longstr),"Waffe\tSchüsse getroffen / Schüsse insgesamt\tZielgenauigkeit\tKills\n");
for(new i = 22; i < (22 + 17) -1; i++)
{
if(IsABadWeapon(i) || i == 22 || i == 23 || i == 26 || i == 27 || i == 28 ||i == 32) continue;
format(longstr,sizeof(longstr),"%s\t%s\t%d / %d\t%d%%\t%d\n",longstr,GetWeaponName(i),playerInfo[playerid][pWeaponHit][i-22],playerInfo[playerid][pWeaponShot][i-22],floatround(floatdivEx(float(playerInfo[playerid][pWeaponHit][i-22]), float(playerInfo[playerid][pWeaponShot][i-22])) * 100.0, floatround_round),0);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_TABLIST_HEADERS, "Waffenstatistik",longstr,"Schließen","");
}
case 4: // Price - Book
{
if(!playerInfo[playerid][pShopItems][SHOPITEM_PRICEBOOK])
{
SendClientMessage(playerid, COLOR_LESSRED, "Du hast diese Funktion noch nicht freigeschaltet (kaufbar im 24 / 7).");
OnPlayerCommandPerformed(playerid, "/account",true);
return 1;
}
if(playerInfo[playerid][pPriceBookTime] == 0 || gettime() > playerInfo[playerid][pPriceBookTime])
{
ShowPlayerDialog(playerid, DIALOG_PRICEBOOK, DIALOG_STYLE_MSGBOX, "Price - Book", "Du hast derzeit keinen Zugriff auf das Price - Book.\nUm Zugang zu erhalten, musst du dir einen 30 - minütigen Pass für $2.500 kaufen.\nMöchtest du diesen Pass erwerben?", "Kaufen", "Schließen");
return 1;
}
ShowPlayerPriceBook(playerid);
}
case 5: // Accessoir
{
new string[128];
DialogTempDataIndex[playerid] = 0;
for(new i = 0; i < 3; i++)
{
if(!playerInfo[playerid][pAccessoirID][i]) continue;
new slottype = GetPlayerAccessoirsTyp(playerInfo[playerid][pAccessoirID][i]);
format(string,sizeof(string),"%s\n%s",string,accesName[slottype]);
DialogTempData[playerid][DialogTempDataIndex[playerid]] = i;
DialogTempDataIndex[playerid]++;
}
if(!DialogTempDataIndex[playerid]) format(string,sizeof(string),"Du hast keine Accessoirs, die du anpassen könntest.");
ShowPlayerDialog(playerid, DIALOG_ACCESSOIRCONTROL, DIALOG_STYLE_LIST, "Accessoirbearbeitung",string,"Auswählen","Zurück");
}
case 6: //Einstellbare Eigenschaften
{
OnPlayerCommandPerformed(playerid, "/tog", true);
}
}
return 1;
}
if(dialogid == DIALOG_CHANGEFIGHTINGSTYLE && response)
{
if(!playerInfo[playerid][pBuyedFightingStyle][listitem])
{
if(GetPlayerMoney(playerid) < fightingStyle[listitem][fsPrice])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Dir fehlen $%s, um dir den %s Kampfstil zu kaufen.",FormatNumber(fightingStyle[listitem][fsPrice]-GetPlayerMoney(playerid)),fightingStyle[listitem][fsName]);
return 1;
}
playerInfo[playerid][pBuyedFightingStyle][listitem] = true;
GivePlayerMoney(playerid, -fightingStyle[listitem][fsPrice], "Kampfstil");
SendClientMessageX(playerid, COLOR_GREEN, "Du hast dir den %s Kampfstil für $%s gekauft.",fightingStyle[listitem][fsName],FormatNumber(fightingStyle[listitem][fsPrice]));
}
playerInfo[playerid][pFightingStyle] = fightingStyle[listitem][fsID];
SetPlayerFightingStyle(playerid, fightingStyle[listitem][fsID]);
SendClientMessageX(playerid, COLOR_YELLOW, "Dein Kampfstil ist nun %s.",fightingStyle[listitem][fsName]);
return 1;
}
if(dialogid == DIALOG_GROUPCHANGEWEAPONPRICE && response)
{
new longstr[265];
format(longstr, sizeof(longstr), "Derzeitiger Waffenpreis: $%d, Regulärer Preis: $%d.\n\nWie viel sollen deine Gruppenmitglieder für eine %s mit %d Schuss zahlen:",GetGroupPriceForWeapon(playerInfo[playerid][pGroupIndex], ammunationInfo[listitem][aiWeaponID]),ammunationInfo[listitem][aiWeaponPrice],GetWeaponName(ammunationInfo[listitem][aiWeaponID]),ammunationInfo[listitem][aiWeaponAmmo]);
ShowPlayerDialog(playerid, DIALOG_GROUPCHANGEWEAPONPRICE2, DIALOG_STYLE_INPUT, "Gruppe Waffenpreise", longstr, "Setzen", "Zurück");
DialogTempData[playerid][MAX_PLAYERS-1] = listitem;
return 1;
}
if(dialogid == DIALOG_GROUPCHANGEWEAPONPRICE2)
{
if(response)
{
new value = strval(inputtext);
if(value < 0 || value > 100000) SendClientMessage(playerid, COLOR_LESSRED, "Die Waffenpreise müssen zwischen $0 - $100000 liegen.");
else
{
new weaponid = ammunationInfo[DialogTempData[playerid][MAX_PLAYERS-1]][aiWeaponID], string[128], gIndex = playerInfo[playerid][pGroupIndex];
groupInfo[gIndex][gWeaponPrice][weaponid] = value;
format(string, sizeof(string), "** %s %s hat den Waffenpreis der Waffe %s auf $%d gesetzt **",gRankName[gIndex][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid),GetWeaponName(weaponid),value);
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT,string);
mysql_format(dbHandle, string, sizeof(string), "UPDATE `groups_weapons` SET `weaponprice` = %d WHERE `groupid` = %d AND `weaponid` = %d", value, groupInfo[gIndex][gSQLID], weaponid);
mysql_pquery(dbHandle, string, "", "");
}
}
ShowPlayerGroupWeaponPriceMenu(playerid, playerInfo[playerid][pGroupIndex]);
}
if(dialogid == DIALOG_GROUPRENAME && response)
{
new id = playerInfo[playerid][pGroupIndex];
if(groupInfo[id][gBank] < 1200000)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Deiner Gruppe fehlen $%s in der Gruppenkasse.",FormatNumber(1200000 - groupInfo[id][gBank]));
return 1;
}
if(strlen(inputtext) > MAX_GROUPNAME_LENGTH || strlen(inputtext) < 4)
{
ShowPlayerDialog(playerid, DIALOG_GROUPRENAME, DIALOG_STYLE_INPUT, "Gruppenbezeichnung ändern", "{D11B30}Fehler:{A9C4E4} Limit der Länge: 4 - "#MAX_GROUPNAME_LENGTH" Zeichen.\nDu hast dich für den Schritt entschieden, deine Gruppe umzunennen.\nDieser Schritt wird dich eine Gebühr in Höhe von $1.200.000 kosten.\n\nWie soll deine Gruppe heißen?", "Ändern", "Zurück");
return 1;
}
if(strfind(inputtext, "{",true) != -1 || strfind(inputtext, "}",true) != -1 || strfind(inputtext, "'",true) != -1)
{
ShowPlayerDialog(playerid, DIALOG_GROUPRENAME, DIALOG_STYLE_INPUT, "Gruppenbezeichnung ändern", "{D11B30}Fehler:{A9C4E4} Die Zeichen ' ' ', '{' und '}' sind nicht möglich.\nDu hast dich für den Schritt entschieden, deine Gruppe umzunennen.\nDieser Schritt wird dich eine Gebühr in Höhe von $1.200.000 kosten.\n\nWie soll deine Gruppe heißen?", "Ändern", "Zurück");
return 1;
}
new string[128];
groupInfo[id][gBank] -= 1200000;
format(groupInfo[id][gName],MAX_GROUPNAME_LENGTH,inputtext);
format(string,sizeof(string),"** Ihr repräsentiert absofort die Gruppe unter dem Namen %s **",inputtext);
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT,string);
UpdateHouse(GetHouseSlotID(groupInfo[id][gBaseID]));
mysql_format(dbHandle, string, sizeof(string),"UPDATE `groups` SET `groupname` = '%s' WHERE `id` = '%d'",groupInfo[id][gName],groupInfo[id][gSQLID]);
mysql_function_query(dbHandle, string, true, "", "");
}
if(dialogid == DIALOG_GROUPLIST && response)
{
DialogTempData[playerid][0] = DialogTempData[playerid][listitem];
ShowPlayerGroupChooseMenu(playerid, DialogTempData[playerid][0]);
return 1;
}
if(dialogid == DIALOG_GROUPLIST2)
{
if(response)
{
switch(listitem)
{
case 0:
{
new query[128];
mysql_format(dbHandle, query, sizeof(query),"SELECT `username`,`leader` FROM `accounts` WHERE `group` = '%d'",groupInfo[DialogTempData[playerid][0]][gSQLID]);
mysql_pquery(dbHandle, query, "OnServerLoadGroupInfoForPlayer", "dd", playerid, DialogTempData[playerid][0]);
}
case 1:
{
if(IsPlayerInAnyGroup(playerid) && HasGroupPlayerPermissionForThis(playerid, PERM_ALLIANCE))
{
ShowPlayerAllianceMenu(playerid, playerInfo[playerid][pGroupIndex],DialogTempData[playerid][0]);
}
}
case 2:
{
if(playerInfo[playerid][pAdmin] == RANK_OWNER)
{
new id = DialogTempData[playerid][0];
SendClientMessageX(playerid, COLOR_GREEN, "Du hast die Gruppe %s von %s deaktiviert.",groupInfo[id][gName],groupInfo[id][gLeader]);
DeletePlayerGroup(playerid, INVALID_PLAYER_ID, id);
OnPlayerCommandPerformed(playerid, "/allegruppen",1);
}
}
}
}
else
{
OnPlayerCommandPerformed(playerid, "/allegruppen",1);
}
return 1;
}
if(dialogid == DIALOG_GROUPALLIANCE)
{
if(response)
{
DialogTempData[playerid][0] = DialogTempData[playerid][listitem];
ShowPlayerAllianceMenu(playerid, playerInfo[playerid][pGroupIndex],DialogTempData[playerid][0]);
}
else
{
OnPlayerCommandPerformed(playerid, "/gruppe",1);
}
return 1;
}
if(dialogid == DIALOG_GROUPCHOOSEALLIANCE)
{
if(response)
{
new newalliance;
switch(listitem)
{
case 0: newalliance = ALLIANCE_ALLIED;
case 1: newalliance = ALLIANCE_NORMAL;
case 2: newalliance = ALLIANCE_HOSTILE;
}
new gIndex = playerInfo[playerid][pGroupIndex], oldalliance = GroupAlliance[gIndex][DialogTempData[playerid][0]];
if(gIndex == DialogTempData[playerid][0]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst die Beziehung mit dir selbst nicht ändern.");
if(newalliance != GroupAlliance[gIndex][DialogTempData[playerid][0]] && DialogTempData[playerid][0] != gIndex && HasGroupPlayerPermissionForThis(playerid,PERM_ALLIANCE))
{
if(newalliance == ALLIANCE_ALLIED) newalliance = ALLIANCE_REQUESTALLIED;
else if(newalliance == ALLIANCE_NORMAL && oldalliance == ALLIANCE_HOSTILE) newalliance = ALLIANCE_REQUESTNORMAL;
if(oldalliance == ALLIANCE_HOSTILE && newalliance == ALLIANCE_REQUESTALLIED)
{
SendClientMessage(playerid, COLOR_LESSRED, "Ein Bündnis ist nur möglich, wenn ein Waffenstillstand herrscht.");
ShowPlayerAllianceMenu(playerid, playerInfo[playerid][pGroupIndex],DialogTempData[playerid][0]);
return 1;
}
GroupAlliance[gIndex][DialogTempData[playerid][0]] = newalliance;
GroupAlliance[DialogTempData[playerid][0]][gIndex] = newalliance;
switch(newalliance)
{
case ALLIANCE_NORMAL, ALLIANCE_REQUESTNORMAL:
{
if(oldalliance == ALLIANCE_HOSTILE)
{
new string[128];
format(string,sizeof(string),"%s hat eine Anfrage für einen Waffenstillstand gestellt.",groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
SendGroupMessageToAll(groupInfo[DialogTempData[playerid][0]][gSQLID],COLOR_CLANCHAT, string);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast eine Anfrage zum Waffenstillstand an die Gruppe %s geschickt.",groupInfo[DialogTempData[playerid][0]][gName]);
format(string,sizeof(string),"/annehmen Verhältnis %s - /ablehnen Verhältnis %s",GetPlayerNameEx(playerid),GetPlayerNameEx(playerid));
SendGroupMessageToAll(groupInfo[DialogTempData[playerid][0]][gSQLID],COLOR_LIGHTBLUE, string, PERM_ALLIANCE);
ShowPlayerAllianceMenu(playerid, playerInfo[playerid][pGroupIndex],DialogTempData[playerid][0]);
return 1;
}
new string[128];
format(string,sizeof(string),"Das Verhältnis von %s und %s ist nun neutral.",groupInfo[DialogTempData[playerid][0]][gName],groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
SendGroupMessageToAll(groupInfo[DialogTempData[playerid][0]][gSQLID],COLOR_CLANCHAT, string);
SendGroupMessageToAll(groupInfo[playerInfo[playerid][pGroupIndex]][gSQLID],COLOR_CLANCHAT, string);
}
case ALLIANCE_HOSTILE:
{
new string[128];
format(string,sizeof(string),"Das Verhältnis von %s und %s ist nun verfeindet.",groupInfo[DialogTempData[playerid][0]][gName],groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
SendGroupMessageToAll(groupInfo[DialogTempData[playerid][0]][gSQLID],COLOR_CLANCHAT, string);
SendGroupMessageToAll(groupInfo[playerInfo[playerid][pGroupIndex]][gSQLID],COLOR_CLANCHAT, string);
}
case ALLIANCE_REQUESTALLIED:
{
new string[128];
format(string,sizeof(string),"%s hat eine Anfrage für ein Bündnis gestellt.",groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
SendGroupMessageToAll(groupInfo[DialogTempData[playerid][0]][gSQLID],COLOR_CLANCHAT, string);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast eine Bündnisanfrage an die Gruppe %s geschickt.",groupInfo[DialogTempData[playerid][0]][gName]);
format(string,sizeof(string),"/annehmen Verhältnis %s - /ablehnen Verhältnis %s",GetPlayerNameEx(playerid),GetPlayerNameEx(playerid));
SendGroupMessageToAll(groupInfo[DialogTempData[playerid][0]][gSQLID],COLOR_LIGHTBLUE, string, PERM_ALLIANCE);
}
}
}
UpdateAlliance(DialogTempData[playerid][0], playerInfo[playerid][pGroupIndex], newalliance);
ShowPlayerAllianceMenu(playerid, playerInfo[playerid][pGroupIndex],DialogTempData[playerid][0]);
}
else
{
if(DialogTempData[playerid][MAX_PLAYERS-1] == INVALID_GROUP_ID)
{
DialogTempData[playerid][MAX_PLAYERS-1] = 0;
ShowPlayerAllGroupAlliance(playerid, playerInfo[playerid][pGroupIndex]);
}
else if(DialogTempData[playerid][MAX_PLAYERS-1] == INVALID_SLOT_ID)
{
ShowPlayerGroupChooseMenu(playerid, DialogTempData[playerid][0]);
}
}
return 1;
}
if(dialogid == DIALOG_RADIO && response && IsPlayerInAnyVehicle(playerid))
{
new longstr[256];
DialogTempDataIndex[playerid] = 0;
if(listitem == sizeof(radioCategory) - 1)
{
StopRadioForVehicle(GetPlayerVehicleID(playerid));
OnPlayerCommandPerformed(playerid, "/vehicleradio", 1);
return 1;
}
for(new i = 0; i < sizeof(vehicleRadio); i++)
{
if(listitem != vehicleRadio[i][streamcategory]) continue;
format(longstr,sizeof(longstr),"%s%s\n",longstr,vehicleRadio[i][streamname]);
DialogTempData[playerid][DialogTempDataIndex[playerid]] = i;
DialogTempDataIndex[playerid]++;
}
ShowPlayerDialog(playerid, DIALOG_RADIO2, DIALOG_STYLE_LIST, "Senderauswahl", longstr, "Spielen","Zurück");
return 1;
}
if(dialogid == DIALOG_TIMEDIALOG && playerInfo[playerid][pTimeDialog] > gettime())
{
new smallstr[8];
valstr(smallstr, playerInfo[playerid][pTimeDialog] - gettime());
ShowPlayerDialog(playerid, DIALOG_TIMEDIALOG, DIALOG_STYLE_MSGBOX, playerInfo[playerid][pTimeDialogHeadLine], playerInfo[playerid][pTimeDialogMainText], smallstr, "");
return 1;
}
if(dialogid == DIALOG_RADIO2 && IsPlayerInAnyVehicle(playerid))
{
if(response)
{
PlayRadioForVehicle(GetPlayerVehicleID(playerid), DialogTempData[playerid][listitem]);
}
else
{
OnPlayerCommandPerformed(playerid, "/vehicleradio", 1);
}
}
if(dialogid == DIALOG_TOG && response)
{
playerInfo[playerid][pTog][listitem] = !playerInfo[playerid][pTog][listitem];
OnPlayerCommandPerformed(playerid, "/tog", 1);
return 1;
}
if(dialogid == DIALOG_SERVERTOG && response)
{
switch(listitem)
{
case TOG_OOC:
{
Command_ReProcess(playerid, "/otog", false);
}
case TOG_DOUBLEEXP:
{
if(playerInfo[playerid][pAdmin] < RANK_OWNER)
{
SendClientMessageX(playerid,COLOR_LESSRED,"Dieser Befehl ist erst ab Rang %s.",TeamRank[ RANK_OWNER ]);
return 1;
}
serverTog[TOG_DOUBLEEXP][stValue] = (serverTog[TOG_DOUBLEEXP][stValue] ? false : true);
UpdateEventLabel();
SendClientMessageToAllX(COLOR_GREEN, "[EVENT] %s %s hat das Event Double EXP %s.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),(serverTog[TOG_DOUBLEEXP][stValue] ? ("gestoppt") : ("gestartet")));
}
case TOG_TEAMCHANGE:
{
if(playerInfo[playerid][pAdmin] < RANK_OWNER)
{
SendClientMessageX(playerid,COLOR_LESSRED,"Dieser Befehl ist erst ab Rang %s.",TeamRank[ RANK_OWNER ]);
return 1;
}
serverTog[TOG_TEAMCHANGE][stValue] = (serverTog[TOG_TEAMCHANGE][stValue] ? false : true);
new str[128];
format(str, 128, "[ADMIN] %s %s hat den Befehl zum Teamchange %s.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), (serverTog[TOG_TEAMCHANGE][stValue] ? ("geblockt") : ("freigegeben")));
SendClientMessageToAll(COLOR_RED, str);
}
case TOG_REDUCEDWAIT:
{
if(playerInfo[playerid][pAdmin] < RANK_OWNER)
{
SendClientMessageX(playerid,COLOR_LESSRED,"Dieser Befehl ist erst ab Rang %s.",TeamRank[ RANK_OWNER ]);
return 1;
}
serverTog[TOG_REDUCEDWAIT][stValue] = (serverTog[TOG_REDUCEDWAIT][stValue] ? false : true);
UpdateEventLabel();
new str[128];
format(str, 128, "[EVENT] %s %s hat das Event Reduzierte Wartezeit %s.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), (serverTog[TOG_REDUCEDWAIT][stValue] ? ("gestoppt") : ("gestartet")));
SendClientMessageToAll(COLOR_GREEN, str);
}
case TOG_REGISTER:
{
Command_ReProcess(playerid, "/rtog", false);
}
}
return 1;
}
if(dialogid == DIALOG_BANKMENU && response)
{
new string[128];
switch(listitem)
{
case 0:
{
format(string,sizeof(string),"Kontostand: $%s\nWie viel Geld möchtest du auf dein Bankkonto einzahlen?",FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU0, DIALOG_STYLE_INPUT, "Bank - Einzahlen",string,"Einzahlen","Schließen");
}
case 1:
{
format(string,sizeof(string),"Kontostand: $%s\nWie viel Geld möchtest du von deinem Bankkonto abheben?",FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU1, DIALOG_STYLE_INPUT, "Bank - Abheben",string,"Abheben","Schließen");
}
case 2:
{
format(string, sizeof(string), "Kontostand: $%s\nWie viel möchtest du überweisen?", FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
DialogTempData[playerid][MAX_PLAYERS -1] = 0;
}
case 3:
{
format(string,sizeof(string),"Kontostand: $%s",FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKBACK, DIALOG_STYLE_MSGBOX, "Bank - Kontostand",string,"Zurück","");
}
}
}
if(dialogid == DIALOG_BANKMENU2 && response)
{
new string[256];
switch(DialogTempData[playerid][MAX_PLAYERS -1])
{
case 0:
{
new cash = strval(inputtext);
if(strlen(inputtext) < 0 || strlen(inputtext) > 10 || cash < 1 || cash > playerInfo[playerid][pBank])
{
format(string, sizeof(string), "Fehler: Die Summe muss zwischen $1 - $%s sein.\n\nKontostand: $%s\nWie viel möchtest du überweisen?", FormatNumber(playerInfo[playerid][pBank]),FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
return 1;
}
DialogTempData[playerid][MAX_PLAYERS -2] = cash;
format(string, sizeof(string), "Summe: $%s\nWas ist der Grund für die Überweisung von $%s? :", FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]), FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
DialogTempData[playerid][MAX_PLAYERS -1]++;
}
case 1:
{
if(strlen(inputtext) < 0 || strlen(inputtext) > 32)
{
format(string, sizeof(string), "Summe: $%s\nWas ist der Grund für die Überweisung in Höhe von $%s? :", FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]), FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
return 1;
}
SetPVarString(playerid, "transfername", inputtext);
format(string, sizeof(string), "Summe: $%s\nAn wen sollen $%s überwiesen werden? (Vollständiger Name!):", FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]),FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
DialogTempData[playerid][MAX_PLAYERS -1]++;
}
case 2:
{
if(strlen(inputtext) < 0)
{
format(string, sizeof(string), "Summe: $%s\nAn wen sollen $%s überwiesen werden? (Vollständiger Name!):", FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]), FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
return 1;
}
new value = DialogTempData[playerid][MAX_PLAYERS - 2];
if(playerInfo[playerid][pBank] < value)
{
format(string, sizeof(string), "Fehler: Du besitzt keine $%s auf deinem Bankkonto.", FormatNumber(value));
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Bank - Überweisung", string, "Schließen", "");
return 1;
}
if(!strcmp(inputtext,"Event",true))
{
GivePlayerBankMoney(playerid, -value, "Eventkasse");
AddToEventBox(playerInfo[playerid][pSQLID], value, "Eventkasse");
SendClientMessageX(playerid, COLOR_YELLOW, "[ BANK ] Du hast $%s an die Eventkasse überwiesen.",FormatNumber(value));
return 1;
}
new pID, pHandle = IsPlayerOnline(inputtext, true, pID);
if(!pHandle)
{
format(string, sizeof(string), "Fehler: Der Benutzer %s existiert nicht.\n\nSumme: $%s\nAn wen sollen $%s überwiesen werden? (Vollständiger Name!):", inputtext, FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]), FormatNumber(DialogTempData[playerid][MAX_PLAYERS -2]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU2, DIALOG_STYLE_INPUT, "Bank - Überweisung", string, "Weiter", "Schließen");
return 1;
}
GivePlayerBankMoney(playerid, -value, "Transfer");
if(pHandle == 1) SendClientMessageX(playerid, COLOR_YELLOW, "[ BANK ] Du hast %s $%s überwiesen.", GetPlayerNameEx(pID), FormatNumber(value));
else SendClientMessageX(playerid, COLOR_YELLOW, "[ BANK ] Du hast %s $%s überwiesen.",inputtext, FormatNumber(value));
GetPVarString(playerid, "transfername", string, sizeof(string));
if(value > 2000000)
{
new str[144];
if(pHandle == 1) format(str, 144, "* %s hat an %s $%s überwiesen, Grund: %s", GetPlayerNameEx(playerid),GetPlayerNameEx(pID), FormatNumber(value),string);
else format(str, 144, "* %s hat an %s $%s überwiesen, Grund: %s", GetPlayerNameEx(playerid),inputtext, FormatNumber(value),string);
SendAdminMessage(COLOR_RED, str, RANK_SUPPORTER2);
}
if(pHandle == 1)
{
GivePlayerBankMoney(pID, value, "Transfer");
SendClientMessageX(pID, COLOR_YELLOW, "[ BANK ] %s hat Dir $%s überwiesen.",GetPlayerNameEx(playerid), FormatNumber(value));
mysql_format(dbHandle, string,sizeof(string), "INSERT INTO `log_pay` (`userid`,`payid`,`paymoney`,`timestamp`,`reason`) VALUES ('%d','%d','%d','%d','%e')",playerInfo[playerid][pSQLID],playerInfo[pID][pSQLID],value,gettime(),string);
mysql_function_query(dbHandle, string, true, "", "");
return 1;
}
else if(pHandle == 2)
{
mysql_format(dbHandle, string,sizeof(string), "INSERT INTO `log_pay` (`userid`,`payid`,`paymoney`,`timestamp`,`reason`) VALUES ('%d','%d','%d','%d','%e')",playerInfo[playerid][pSQLID],pID,value,gettime(),string);
mysql_function_query(dbHandle, string, true, "", "");
mysql_format(dbHandle, string, sizeof(string), "INSERT INTO `log_money` (`playerid`,`value`,`reason`,`date`) VALUES ('%d','%d','%e','%d')", pID, value, "Transfer",gettime());
mysql_tquery(dbHandle, string, "", "");
mysql_format(dbHandle, string, sizeof(string), "UPDATE `accounts` SET `bank` = bank+%d WHERE `id` = '%d'",value, pID);
mysql_function_query(dbHandle, string, false, "", "");
return 1;
}
}
}
return 1;
}
if(dialogid == DIALOG_BANKMENU0 && response)
{
new cash = strval(inputtext), string[128];
if(strlen(inputtext) < 0 || strlen(inputtext) > 10 || cash <= 0)
{
format(string,sizeof(string),"Kontostand: $%s\nWie viel Geld möchtest du auf dein Bankkonto einzahlen?",FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU0, DIALOG_STYLE_INPUT,"Bank - Einzahlen",string,"Einzahlen","Schließen");
return 1;
}
if(GetPlayerMoney(playerid) < cash)
{
format(string,sizeof(string),"{D11B30}Fehler:{A9C4E4} Du hast nur $%s auf der Hand.\nKontostand: $%s\nWie viel Geld möchtest du auf dein Bankkonto einzahlen?",FormatNumber(GetPlayerMoney(playerid)),FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU0, DIALOG_STYLE_INPUT,"Bank - Einzahlen",string,"Einzahlen","Schließen");
return 1;
}
GivePlayerBankMoney(playerid, cash, "Bank");
GivePlayerMoney(playerid, -cash, "Bank");
format(string,sizeof(string),"* Du hast $%s auf dein Bankkonto eingezahlt. Neuer Stand: $%s",FormatNumber(cash), FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKBACK,DIALOG_STYLE_MSGBOX,"Bank - Aktion erfolgreich",string, "Zurück", "");
return 1;
}
if(dialogid == DIALOG_BANKMENU1 && response)
{
new cash = strval(inputtext), string[128];
if(strlen(inputtext) < 0 || strlen(inputtext) > 10 || cash <= 0)
{
format(string,sizeof(string),"Kontostand: $%s\nWie viel Geld möchtest du von deinem Bankkonto abheben?",FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU1,DIALOG_STYLE_INPUT,"Bank - Abheben",string,"Einzahlen","Schließen");
return 1;
}
if(playerInfo[playerid][pBank] < cash)
{
format(string,sizeof(string),"{D11B30}Fehler:{A9C4E4} Du hast nur $%s auf deinem Bankkonto.\nKontostand: $%s\nWie viel Geld möchtest du von deinem Bankkonto abheben?",FormatNumber(playerInfo[playerid][pBank]),FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKMENU1, DIALOG_STYLE_INPUT,"Bank - Abheben",string,"Einzahlen","Schließen");
return 1;
}
GivePlayerBankMoney(playerid, -cash, "Bank");
GivePlayerMoney(playerid, cash, "Bank");
format(string,sizeof(string),"* Du hast $%s von deinem Bankkonto abgehoben. Neuer Stand: $%s",FormatNumber(cash), FormatNumber(playerInfo[playerid][pBank]));
ShowPlayerDialog(playerid, DIALOG_BANKBACK,DIALOG_STYLE_MSGBOX,"Bank - Aktion erfolgreich",string, "Zurück", "");
return 1;
}
if(dialogid == DIALOG_BANKBACK)
{
OpenBankMenuForPlayer(playerid);
}
if(dialogid == DIALOG_VEHICLES && response)
{
DialogTempData[playerid][0] = DialogTempData[playerid][listitem];
OpenPlayerVehicleOptionMenu(playerid);
return 1;
}
if(dialogid == DIALOG_VEHICLESELL)
{
if(response)
{
new slotid = DialogTempData[playerid][0];
if(!GetVehicleModel(vehicleInfo[slotid][viVehicleID]))
{
CreateSlotVehicle(slotid);
vehicleInfo[slotid][viLoaded] = true;
}
new price = floatround(vehicleInfo[slotid][viPrice] * SELL_VEHICLE_PERCENTAGE), vehicleid = vehicleInfo[slotid][viVehicleID];
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug %s für $%s verkauft.",GetVehicleName(vehicleid),FormatNumber(price));
if(GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP)
{
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] += price;
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/verkaufen Fahrzeug", GetVehicleName(vehicleid));
}
else
{
GivePlayerMoney(playerid, price, "Fahrzeugverkauf");
InsertVehicleLog(playerInfo[playerid][pSQLID], 0, price, vehicleInfo[slotid][viSQLID], vehicleInfo[slotid][viModelID]);
}
ClearVehicleSlot(slotid, true);
Iter_Remove(Vehicles, slotid);
}
else
{
OpenPlayerVehicleOptionMenu(playerid);
}
return 1;
}
if(dialogid == DIALOG_VEHICLES2)
{
if(response)
{
new slotid = DialogTempData[playerid][0];
if(vehicleInfo[DialogTempData[playerid][0]][viOwnerTyp] == OWNERTYP_FACTION && listitem == 2) listitem = 3; // Statt verkaufen, soll es respawnt werden.
switch(listitem)
{
case 0:
{
OpenPlayerVehicleOptionMenu(playerid);
}
case 1: // suchen
{
new Float:Pos[3], zonename[MAX_ZONE_NAME];
if(!GetVehicleModel(vehicleInfo[slotid][viVehicleID])) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug existiert nicht auf der Karte.");
GetVehiclePos(vehicleInfo[slotid][viVehicleID], Pos[0], Pos[1], Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0], Pos[1], Pos[2], 3.5);
GetCoords2DZone(Pos[0], Pos[1], zonename, MAX_ZONE_NAME);
SendClientMessageX(playerid, COLOR_YELLOW, "Checkpoint in %s gesetzt, Standort von deine(m / r) %s (Checkpoint löschen: /rmarker).",zonename,GetVehicleName(vehicleInfo[slotid][viVehicleID]));
return 1;
}
case 2: // verkaufen
{
if(GetVehicleOwnerTyp(vehicleInfo[slotid][viVehicleID]) == OWNERTYP_GROUP && !HasGroupPlayerPermissionForThis(playerid,PERM_VEHDEAL))
{
SendClientMessageX(playerid,COLOR_LESSRED, "Diese Funktion ist in deiner Gruppe erst ab Rang %d.",groupInfo[GetPlayerGroupIndex(playerid)][gPermission][PERM_VEHDEAL]);
return 1;
}
new price = floatround(vehicleInfo[slotid][viPrice] * SELL_VEHICLE_PERCENTAGE), str[128];
format(str, 128, "Bist du Dir sicher, dass du wirklich das Fahrzeug %s für $%s verkaufen möchtest?", VehicleName[vehicleInfo[slotid][viModelID]-400], FormatNumber(price));
ShowPlayerDialog(playerid, DIALOG_VEHICLESELL, DIALOG_STYLE_MSGBOX, "Fahrzeug verkaufen?", str, "Verkaufen", "Zurück");
}
case 3: // respawnen
{
if(GetVehicleOwnerTyp(vehicleInfo[slotid][viVehicleID]) == OWNERTYP_GROUP && !HasGroupPlayerPermissionForThis(playerid,PERM_VEHCONTROL)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst Fahrzeuge nicht respawnen.");
if(!GetVehicleModel(vehicleInfo[slotid][viVehicleID])) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug existiert nicht auf der Karte.");
new pID = GetVehicleDriver(vehicleInfo[slotid][viVehicleID]);
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Das Fahrzeug kann nicht respawnt werden, da %s im Fahrzeug sitzt.",GetPlayerNameEx(pID));
return 1;
}
if(GetVehicleOwnerTyp(vehicleInfo[slotid][viVehicleID]) == OWNERTYP_GROUP)
{
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] -= 1500;
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "Fahrzeug respawnen","1.500");
}
else if(GetVehicleOwnerTyp(vehicleInfo[slotid][viVehicleID]) == OWNERTYP_FACTION)
{
factionInfo[vehicleInfo[slotid][viOwnerID]][fiBank] -= 1500;
}
else
{
new success = GivePlayerMoneyEx(playerid, -1500, "Fahrzeug respawn");
switch(success)
{
case 0: return SendClientMessage(playerid, COLOR_LESSRED, "Du hast weder auf der Bank noch auf der Hand $1500.");
case 1: SendClientMessageX(playerid, COLOR_GREEN, "Du hast $1500 bezahlt, um dein(e) %s zu respawnen.",GetVehicleName(vehicleInfo[slotid][viVehicleID]));
case 2: SendClientMessageX(playerid, COLOR_GREEN, "Du hast $1500 von deinem Bankkonto bezahlt, um dein(e) %s zu respawnen.",GetVehicleName(vehicleInfo[slotid][viVehicleID]));
}
}
SendClientMessage(playerid, COLOR_YELLOW, "Fahrzeug wurde respawnt.");
SetVehicleToRespawn(vehicleInfo[slotid][viVehicleID]);
}
case 4: // Gruppe = Rang setzen | Spieler = Fahrzeug laden / entladen
{
if(vehicleInfo[slotid][viOwnerTyp] == OWNERTYP_GROUP && HasGroupPlayerPermissionForThis(playerid,PERM_VEHCONTROL))
{
new string[128];
format(string,sizeof(string),"Derzeit ist dieses Fahrzeug fahrbar ab Rang %d.\nAb welchen Rang soll dieses Fahrzeug absofort fahrbar sein:",vehicleInfo[slotid][viRank]);
ShowPlayerDialog(playerid, DIALOG_VEHICLESETRANK, DIALOG_STYLE_INPUT, "Fahrzeug Aktion",string,"Setzen","Schließen");
}
else if(vehicleInfo[slotid][viOwnerTyp] == OWNERTYP_PERSON)
{
if(!vehicleInfo[slotid][viLoaded])
{
if(playerInfo[playerid][pCreatedVehicles] < GetPlayerMaxVehicles(playerid))
{
CreateSlotVehicle(slotid);
vehicleInfo[slotid][viLoaded] = true;
playerInfo[playerid][pCreatedVehicles]++;
SendClientMessage(playerid, COLOR_GREEN, "Das Fahrzeug wurde geladen.");
}
else
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst nur %d Fahrzeuge gleichzeitig laden. Entlade vorher Fahrzeuge, um neue zu laden.",GetPlayerMaxVehicles(playerid));
}
}
else
{
new pID = GetVehicleDriver(vehicleInfo[slotid][viVehicleID]);
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Das Fahrzeug kann nicht entladen werden, da %s im Fahrzeug sitzt.",GetPlayerNameEx(pID));
return 1;
}
DestroySlotVehicle(slotid);
vehicleInfo[slotid][viLoaded] = false;
playerInfo[playerid][pCreatedVehicles]--;
SendClientMessage(playerid, COLOR_YELLOW, "Das Fahrzeug wurde entladen.");
}
OpenPlayerVehicleOptionMenu(playerid);
}
}
case 5: // Nummernschild vergeben
{
if(GetVehicleOwnerTyp(vehicleInfo[slotid][viVehicleID]) == OWNERTYP_GROUP && !HasGroupPlayerPermissionForThis(playerid,PERM_VEHLABEL))
{
SendClientMessageX(playerid,COLOR_LESSRED, "Diese Funktion ist in deiner Gruppe erst ab Rang %d.",groupInfo[GetPlayerGroupIndex(playerid)][gPermission][PERM_VEHLABEL]);
return 1;
}
new string[256];
format(string,sizeof(string), "Derzeitiges Nummernschild: %s\n\nFolgende Vorgaben muss das Nummernschild erfüllen:\n\t°Keine Beleidigung\n\t°Zwischen 1 - 9 Zeichen\n\nEingabe:",vehicleInfo[slotid][viNumberPlate]);
ShowPlayerDialog(playerid, DIALOG_VEHICLENUMBERPLATE, DIALOG_STYLE_INPUT, "Fahrzeug Aktion", string, "Ändern", "Schließen");
}
}
}
else
{
if(DialogTempData[playerid][MAX_PLAYERS-1] == 1)
OnPlayerCommandPerformed(playerid, "/fahrzeug", 1);
else if(DialogTempData[playerid][MAX_PLAYERS-1] == 2)
OnPlayerCommandPerformed(playerid, "/gfahrzeug", 1);
}
return 1;
}
if(dialogid == DIALOG_VEHICLENUMBERPLATE && response)
{
new slotid = DialogTempData[playerid][0];
if(strlen(inputtext) < 1 || strlen(inputtext) > 9)
{
new space[32], length = strlen(inputtext), strf[2];
strcat(space, inputtext);
do
{
strf[0] = strfind(space, "{",true);
strf[1] = strfind(space, "}", true);
if(strf[0] != -1 || strf[1] != -1)
{
strdel(space, strf[0], strf[1] + 1);
length -= (strf[1] - strf[0]) + 1;
}
}
while(strf[0] != -1 || strf[1] != -1);
if(strlen(inputtext) < 1 || length > 9)
{
new string[256];
format(string,sizeof(string), "Derzeitiges Nummernschild: %s\n\nFolgende Vorgaben muss das Nummernschild erfüllen: \t°Keine Beleidigung\n°Zwischen 1 - 9 Zeichen\n\nEingabe:",vehicleInfo[slotid][viNumberPlate]);
ShowPlayerDialog(playerid, DIALOG_VEHICLENUMBERPLATE, DIALOG_STYLE_INPUT, "Fahrzeug Aktion", string, "Ändern", "Schließen");
return 1;
}
}
if(IsABoat(vehicleInfo[slotid][viVehicleID]) || IsAPlane(vehicleInfo[slotid][viVehicleID]))
{
SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug hat kein Nummernschild.");
return 1;
}
if(SearchChat(playerid, inputtext)) return 1;
format(vehicleInfo[slotid][viNumberPlate],32, inputtext);
SetVehicleNumberPlate(vehicleInfo[slotid][viVehicleID], inputtext);
SendClientMessageX(playerid, COLOR_YELLOW, "Nummernschild in %s geändert.",inputtext);
if(GetVehicleDriver(vehicleInfo[slotid][viVehicleID]) == INVALID_PLAYER_ID)
{
RespawnVeh(vehicleInfo[slotid][viVehicleID]);
}
else
{
SendClientMessage(playerid, COLOR_LESSRED, "Das Nummernschild wird nach einem Respawn aktualisiert.");
}
return 1;
}
if(dialogid == DIALOG_VEHICLESETRANK && response)
{
new rank = strval(inputtext);
if(!IsNumeric(inputtext) || rank > MAX_RANKS-1 || rank < 1)
{
new string[128];
format(string,sizeof(string),"{D11B30}Fehler:{A9C4E4} Ungültiger Rang (1 - %d)!\nDerzeit ist dieses Fahrzeug fahrbar ab Rang %d.\nAb welchen Rang soll dieses Fahrzeug absofort fahrbar sein:",vehicleInfo[DialogTempData[playerid][0]][viRank],MAX_RANKS-1);
ShowPlayerDialog(playerid, DIALOG_VEHICLESETRANK, DIALOG_STYLE_INPUT, "Fahrzeug Aktion",string,"Setzen","Schließen");
return 1;
}
vehicleInfo[DialogTempData[playerid][0]][viRank] = rank;
OnPlayerCommandPerformed(playerid, "/gfahrzeug", 1);
return 1;
}
if(dialogid == DIALOG_BUYVEH && IsPlayerInAnyVehicle(playerid))
{
if(response)
{
new string[128];
if(IsPlayerInAnyGroup(playerid) && HasGroupPlayerPermissionForThis(playerid,PERM_VEHDEAL)) format(string,sizeof(string),"Verwendungszweck:\n\tFür %s\n\tFür %s",GetPlayerNameEx(playerid),groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
else format(string,sizeof(string),"Verwendungszweck:\n\tFür %s",GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_BUYVEH2, DIALOG_STYLE_LIST, "Fahrzeug kaufen (2 / 2)",string,"Kaufen","Schließen");
}
else
{
if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
}
}
return 1;
}
if(dialogid == DIALOG_BUYVEH2 && response && IsPlayerInAnyVehicle(playerid))
{
new vehicleid , slotid;
if(playerInfo[playerid][pAttachTrailerID])
{
vehicleid = playerInfo[playerid][pAttachTrailerID];
slotid = GetVehicleSlotID(vehicleid);
}
else
{
vehicleid = GetPlayerVehicleID(playerid);
slotid = GetVehicleSlotID(vehicleid);
}
new vt = GetPlayerVehicleTrader(playerid), sp = GetVehiclePossibleSpawnPosition(vehicleid, vt);
if(vt == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte melde dich bei einem Teammitglied, Stichwort: Unbekanntes Autohaus.");
if(sp == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte melde dich bei einem Teammitglied, Stichwort: Unbekannter Autohausspawn.");
switch(listitem)
{
case 0:
{
new string[128];
if(playerInfo[playerid][pLeader]) format(string,sizeof(string),"Verwendungszweck:\n\tFür %s\n\tFür %s",GetPlayerNameEx(playerid),groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
else format(string,sizeof(string),"Verwendungszweck:\n\tFür %s",GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_BUYVEH2, DIALOG_STYLE_LIST, "Fahrzeug kaufen (2 / 2)",string,"Kaufen","Schließen");
return 1;
}
case 1:
{
if(vehicleInfo[slotid][viOption] == 1) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug ist nicht für den Privatgebrauch geeignet.");
if(playerInfo[playerid][pVehicles] >= GetPlayerMaxVehicles(playerid))
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du darfst maximal %d Fahrzeuge besitzen.",GetPlayerMaxVehicles(playerid));
return 1;
}
new success = GivePlayerMoneyEx(playerid, -vehicleInfo[slotid][viPrice], "Fahrzeugkauf");
switch(success)
{
case 0:
{
SendClientMessageX(playerid, COLOR_RED, "Du hast auf der Bank als auch auf der Hand keine $%s für das Fahrzeug.",FormatNumber(vehicleInfo[slotid][viPrice]));
return 1;
}
case 1: SendClientMessageX(playerid, COLOR_GREEN, "Du hast dir für $%s ein(e) %s gekauft.",FormatNumber(vehicleInfo[slotid][viPrice]),GetVehicleName(vehicleid));
case 2: SendClientMessageX(playerid, COLOR_GREEN, "Du hast dir für $%s (Bankkonto) ein(e) %s gekauft.",FormatNumber(vehicleInfo[slotid][viPrice]),GetVehicleName(vehicleid));
}
playerInfo[playerid][pVehicles]++;
if(!GetPlayerAchievementStatus(playerid, ACHIEVE_FIRSTVEH)) GivePlayerAchievement(playerid, ACHIEVE_FIRSTVEH);
}
case 2:
{
if(groupInfo[playerInfo[playerid][pGroupIndex]][gVehicles] >= GetGroupUpgrade(playerInfo[playerid][pGroupIndex], GROUPUPGRADE_VEHICLE))
{
SendClientMessageX(playerid, COLOR_LESSRED, "Deine Gruppe darf maximal %d Fahrzeuge besitzen.",GetGroupUpgrade(playerInfo[playerid][pGroupIndex], GROUPUPGRADE_VEHICLE));
return 1;
}
if(groupInfo[playerInfo[playerid][pGroupIndex]][gBank] >= vehicleInfo[slotid][viPrice])
{
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] -= vehicleInfo[slotid][viPrice];
SendClientMessageX(playerid, COLOR_GREEN, "Du hast für $%s ein(e) %s gekauft.",FormatNumber(vehicleInfo[slotid][viPrice]),GetVehicleName(vehicleid));
}
else
{
SendClientMessageX(playerid, COLOR_RED, "Es fehlen $%s in der Gruppenkasse, um dieses Fahrzeug kaufen zu können.",FormatNumber(vehicleInfo[slotid][viPrice]-groupInfo[playerInfo[playerid][pGroupIndex]][gBank]));
return 1;
}
new string[128];
format(string,sizeof(string),"** %s %s hat das Fahrzeugmodell %s zum Fuhrpark der Gruppe hinzugefügt. **",gRankName[playerInfo[playerid][pGroupIndex]][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid),GetVehicleName(vehicleid));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/kaufen Fahrzeug", GetVehicleName(vehicleid));
}
}
vehicleTrader[vt][vtBank] += vehicleInfo[slotid][viPrice];
new Float:Pos[4];
Pos[0] = vehicleTraderSpawns[vt][vtsX][sp];
Pos[1] = vehicleTraderSpawns[vt][vtsY][sp];
Pos[2] = vehicleTraderSpawns[vt][vtsZ][sp];
Pos[3] = vehicleTraderSpawns[vt][vtsA][sp];
CreatePersonalVehicle(GetVehicleModel(vehicleid),Pos[0],Pos[1],Pos[2],Pos[3],1,1,3,vehicleInfo[slotid][viPrice],listitem == 1 ? OWNERTYP_PERSON : OWNERTYP_GROUP, listitem == 1 ? playerInfo[playerid][pSQLID] : playerInfo[playerid][pGroup],_,0,1,vehicleInfo[slotid][viOption]);
SetPlayerCheckpoint(playerid, Pos[0],Pos[1],Pos[2], 3.5);
if(IsTrailerAttachedToVehicle(vehicleid))
{
DetachTrailerFromVehicle(vehicleid);
}
return 1;
}
if(dialogid == DIALOG_SPAWNCHANGE && response)
{
if(!strcmp(inputtext, "Police Department SF") || !strcmp(inputtext, "Zivilistenspawn SF")) playerInfo[playerid][pSpawnChange] = SPAWN_TEAM;
else if(!strcmp(inputtext, "Zivilistenspawn LV")) playerInfo[playerid][pSpawnChange] = SPAWN_ZIVILV;
else if(!strcmp(inputtext, "Basis der Gruppe", true)) playerInfo[playerid][pSpawnChange] = SPAWN_GROUP;
else if(!strcmp(inputtext, "Am eigenen Haus", true)) playerInfo[playerid][pSpawnChange] = SPAWN_HOUSE;
else if(!strcmp(inputtext, "Basis der Fraktion", true)) playerInfo[playerid][pSpawnChange] = SPAWN_FACTION;
else playerInfo[playerid][pSpawnChange] = listitem;
SendClientMessage(playerid, COLOR_YELLOW, "Dein Spawnpunkt wurde geändert.");
return 1;
}
if(dialogid == DIALOG_GROUPMEMBERS)
{
if(response && playerInfo[playerid][pLeader])
{
if(listitem == 25)
{
new query[256];
mysql_format(dbHandle, query, sizeof(query),"SELECT `id`,`username`,`grouprank` FROM `accounts` WHERE `group` = '%d' ORDER by `grouprank` DESC",playerInfo[playerid][pGroup]);
mysql_pquery(dbHandle, query, "OnServerLoadGroupMembers", "dddd", playerid, playerInfo[playerid][pGroupIndex], 25, 50);
}
DialogTempData[playerid][0] = DialogTempData[playerid][listitem];
ShowPlayerDialog(playerid, DIALOG_GROUPMEMBERS2, DIALOG_STYLE_LIST, "Gruppenmitglieder", "Spielerinformationen\nSpieler rauswerfen", "Bestätigen", "Schließen");
}
else
{
OnPlayerCommandPerformed(playerid, "/gruppe",1);
return 1;
}
return 1;
}
if(dialogid == DIALOG_GROUPMEMBERS2 && response)
{
switch(listitem)
{
case 0:
{
new query[256];
mysql_format(dbHandle, query, 256, "SELECT `username`,`grouprank`,`grouptimestamp`,`groupcharity`,`groupcharitydiff`,`lastlogout` FROM `accounts` WHERE `id` = '%d'",DialogTempData[playerid][0]);
mysql_pquery(dbHandle, query, "OnServerLoadMemberInfo", "d", playerid);
}
case 1:
{
new query[156], pID = GetPlayerIDFromSQLID(DialogTempData[playerid][0]);
if(IsPlayerConnected(pID))
{
format(query, sizeof(query), "/rauswerfen %d",pID);
Command_ReProcess(playerid, query, false);
}
else
{
SendClientMessage(playerid, COLOR_GREEN, "Der Spieler wurde erfolgreich aus der Gruppe geworfen.");
mysql_format(dbHandle, query, sizeof(query),"UPDATE `accounts` SET `group` = '0',`grouprank` = '0',`leader` = '0' WHERE `id` = '%d' AND `Leader` < 2 AND `grouprank` <= '%d'",DialogTempData[playerid][0],playerInfo[playerid][pGroupRank]);
mysql_function_query(dbHandle, query, false, "","");
}
mysql_format(dbHandle, query, sizeof(query),"SELECT `id`,`username`,`grouprank` FROM `accounts` WHERE `group` = '%d' ORDER by `grouprank` DESC",playerInfo[playerid][pGroup]);
mysql_pquery(dbHandle, query, "OnServerLoadGroupMembers", "dddd", playerid, playerInfo[playerid][pGroupIndex], 0, 25);
}
}
}
if(dialogid == DIALOG_GROUPRESPAWNCARS)
{
if(response && DialogTempDataIndex[playerid])
{
new price = DialogTempDataIndex[playerid] * 1500;
if(groupInfo[playerInfo[playerid][pGroupIndex]][gBank] < price)
{
new string[128];
format(string,sizeof(string),"Es befinden sich keine $%d in der Gruppenbank.",price);
SendClientMessage(playerid, COLOR_LESSRED, string);
return 1;
}
for(new i = 0; i < DialogTempDataIndex[playerid]; i++)
{
if(vehicleData[DialogTempData[playerid][i]][viAttached]) continue;
SetVehicleToRespawn(vehicleInfo[DialogTempData[playerid][i]][viVehicleID]);
}
new string[128];
format(string,sizeof(string),"* Du hast für $%d %d Gruppenfahrzeuge respawnt.",price,(price / 1500));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] -= price;
DialogTempDataIndex[playerid] = 0;
return 1;
}
OnPlayerCommandPerformed(playerid, "/gruppe",1);
return 1;
}
if(dialogid == DIALOG_GROUP && response)
{
new slotid = playerInfo[playerid][pGroupIndex];
switch(listitem)
{
case 0: // Informationen
{
new query[128];
mysql_format(dbHandle, query, sizeof(query),"SELECT `username`,`leader` FROM `accounts` WHERE `group` = '%d'",playerInfo[playerid][pGroup]);
mysql_pquery(dbHandle, query, "OnServerLoadGroupInfoForPlayer", "dd", playerid, slotid);
}
case 1:
{
new query[256];
mysql_format(dbHandle, query, sizeof(query),"SELECT `id`,`username`,`grouprank` FROM `accounts` WHERE `group` = '%d' ORDER by `grouprank` DESC",playerInfo[playerid][pGroup]);
mysql_pquery(dbHandle, query, "OnServerLoadGroupMembers", "dddd", playerid, slotid, 0, 25);
}
case 2: // Gruppenfahrzeuge respawnen
{
if(!HasGroupPlayerPermissionForThis(playerid,PERM_VEHCONTROL))
{
SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Fahrzeuge respawnen.");
OnPlayerCommandPerformed(playerid, "/gruppe",1);
return 1;
}
DialogTempDataIndex[playerid] = 0;
foreach(new i : Vehicles)
{
if(!HasGroupPermissionForVehicle(vehicleInfo[i][viVehicleID], playerInfo[playerid][pGroup]) || GetVehicleDriver(vehicleInfo[i][viVehicleID]) != INVALID_PLAYER_ID) continue;
DialogTempData[playerid][DialogTempDataIndex[playerid]] = i;
DialogTempDataIndex[playerid]++;
}
if(!DialogTempDataIndex[playerid])
{
ShowPlayerDialog(playerid, DIALOG_GROUPRESPAWNCARS, DIALOG_STYLE_MSGBOX, "Gruppenfahrzeuge", "Es existieren keine Gruppenfahrzeuge, die respawnt werden könnten.","Zurück","");
return 1;
}
new string[128];
format(string,sizeof(string),"Möchtest du für $%d alle fahrerlose Gruppenfahrzeuge respawnen?",DialogTempDataIndex[playerid] * 1500);
ShowPlayerDialog(playerid, DIALOG_GROUPRESPAWNCARS, DIALOG_STYLE_MSGBOX, "Gruppenfahrzeuge", string, "Respawn", "Zurück");
return 1;
}
case 3: // Einstellungen
{
ShowPlayerGroupConfigMenu(playerid, slotid);
}
case 4: // Verhältnisse
{
DialogTempData[playerid][MAX_PLAYERS-1] = INVALID_GROUP_ID;
ShowPlayerAllGroupAlliance(playerid, playerInfo[playerid][pGroupIndex]);
}
case 5: // Upgrade
{
ShowPlayerGangUpdateMenu(playerid, slotid);
}
case 6: // Verlassen
{
if(playerInfo[playerid][pLeader] == 2)
{
ShowPlayerDialog(playerid, DIALOG_GROUPLEAVE, DIALOG_STYLE_MSGBOX, "Gruppe verlassen", "Bist Du sicher, dass Du die Gruppe verlassen und somit die Gruppe auflösen willst?\nDu erhälst lediglich das Gruppenvermögen.","Verlassen","Abbrechen");
}
else
{
ShowPlayerDialog(playerid, DIALOG_GROUPLEAVE, DIALOG_STYLE_MSGBOX, "Gruppe verlassen", "Bist Du sicher, dass Du die Gruppe verlassen willst?","Verlassen","Abbrechen");
}
return 1;
}
}
return 1;
}
if(dialogid == DIALOG_GROUPUPGRADE)
{
if(response && playerInfo[playerid][pLeader])
{
new gIndex = playerInfo[playerid][pGroupIndex];
if(strfind(inputtext, "Waffen freischalten", true) != -1)
{
ShowPlayerGroupPossibleWeapons(playerid, gIndex);
return 1;
}
if(strfind(inputtext, "Farben freischalten und ändern", true) != -1)
{
DialogTempData[playerid][MAX_PLAYERS - 1] = 0;
OpenPlayerGroupColor(playerid);
return 1;
}
new gItem = DialogTempData[playerid][listitem], buyable = DialogTempData[playerid][100 + listitem];
if(buyable)
{
if(groupInfo[gIndex][gBank] < groupUpgradeItems[gItem][guPrice])
{
SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe hat nicht genügend Geld, um dieses Upgrade freizuschalten.");
}
else if(groupInfo[gIndex][gExp] < groupUpgradeItems[gItem][guExp])
{
SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe hat nicht genügend EXP, um dieses Upgrade freizuschalten.");
}
else
{
switch(listitem)
{
case GROUPUPGRADE_MEMBER:
{
groupInfo[gIndex][gMaxMember] += groupUpgradeItems[gItem][guValue];
}
}
groupInfo[gIndex][gUpgrade][listitem] += 1;
groupInfo[gIndex][gBank] -= groupUpgradeItems[gItem][guPrice];
new string[128];
format(string,sizeof(string),"** %s %s hat das Upgrade %s freigeschaltet. **",gRankName[gIndex][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid), groupUpgradeItems[gItem][guName]);
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
}
}
ShowPlayerGangUpdateMenu(playerid, gIndex);
return 1;
}
OnPlayerCommandPerformed(playerid, "/gruppe",1);
return 1;
}
if(dialogid == DIALOG_GROUPWEAPONS && response)
{
new slotid = playerInfo[playerid][pGroupIndex];
if(groupInfo[slotid][gBank] < ammunationInfo[listitem][aiGroupWeaponPrice])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Der Gruppe fehlen $%s, um die Waffe freizuschalten.",FormatNumber(ammunationInfo[listitem][aiGroupWeaponPrice] - groupInfo[slotid][gBank]));
ShowPlayerGroupPossibleWeapons(playerid, slotid);
return 1;
}
if(groupInfo[slotid][gExp] < ammunationInfo[listitem][aiGroupExp])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Der Gruppe fehlen %s EXP, um die Waffe freizuschalten.",FormatNumber(floatround(ammunationInfo[listitem][aiGroupExp] - groupInfo[slotid][gExp])));
ShowPlayerGroupPossibleWeapons(playerid, slotid);
return 1;
}
if(!groupInfo[slotid][gWeaponActivated][ammunationInfo[listitem][aiWeaponID]])
{
groupInfo[slotid][gWeaponActivated][ammunationInfo[listitem][aiWeaponID]] = true;
groupInfo[slotid][gBank] -= ammunationInfo[listitem][aiGroupWeaponPrice];
new string[128];
format(string,sizeof(string),"** %s %s hat die Waffe %s freigeschaltet. **",gRankName[slotid][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid), GetWeaponName(ammunationInfo[listitem][aiWeaponID]));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
new str[128];
mysql_format(dbHandle, str, 128, "INSERT INTO `groups_weapons` (`groupid`,`weaponid`,`weaponprice`,`date`) VALUES (%d,%d,%d,%d)", groupInfo[slotid][gSQLID], ammunationInfo[listitem][aiWeaponID], ammunationInfo[listitem][aiWeaponPrice],gettime());
mysql_pquery(dbHandle, str, "", "");
format(str, sizeof(str), "Dialog (Buy Weaponupgrade [%d])",ammunationInfo[listitem][aiWeaponID]);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "-/groupupgrade", str);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Die Waffe wurde bereits freigeschaltet.");
}
ShowPlayerGroupPossibleWeapons(playerid, slotid);
}
if(dialogid == DIALOG_GROUPCOMMANDRANK && response)
{
new string[MAX_RANKS * 12];
DialogTempData[playerid][0] = listitem;
for(new i = 1; i < MAX_RANKS; i++)
{
format(string, sizeof(string), "%s\nab Rang %d",string,i);
}
ShowPlayerDialog(playerid, DIALOG_GROUPCOMMANDSETRANK, DIALOG_STYLE_LIST, "Rang auswählen",string,"Ändern","Zurück");
}
if(dialogid == DIALOG_GROUPCOMMANDSETRANK)
{
if(response)
{
groupInfo[playerInfo[playerid][pGroupIndex]][gPermission][DialogTempData[playerid][0]] = listitem + 1;
}
ShowPlayerGroupPermissions(playerid, playerInfo[playerid][pGroupIndex]);
}
if(dialogid == DIALOG_GROUPMOTD)
{
if(response)
{
if(strlen(inputtext) > 95) return ShowPlayerDialog(playerid, DIALOG_GROUPMOTD, DIALOG_STYLE_MSGBOX, "Gruppe MotD", "{D11B30}Fehler:{A9C4E4} Maximal 95 Zeichen.\n\nWie soll die neue Message of the Day für deine Gruppe lauten?:", "Ändern","Zurück");
if(SearchChat(playerid, inputtext)) return true;
format(groupInfo[GetPlayerGroupIndex(playerid)][gMotD],100, inputtext);
SendClientMessageX(playerid, COLOR_YELLOW, "MotD geändert: %s ",inputtext);
return 1;
}
else
{
ShowPlayerGroupConfigMenu(playerid, GetPlayerGroupIndex(playerid));
}
return 1;
}
if(dialogid == DIALOG_GROUPCONFIG)
{
if(response)
{
new slotid = playerInfo[playerid][pGroupIndex];
if(playerInfo[playerid][pLeader])
{
switch(listitem)
{
case 0: // TeamDM tollerieren
{
if(groupInfo[slotid][gAllowDM]) groupInfo[slotid][gAllowDM] = false;
else groupInfo[slotid][gAllowDM] = true;
}
case 1: // MotD ändern
{
ShowPlayerDialog(playerid, DIALOG_GROUPMOTD, DIALOG_STYLE_INPUT, "Gruppe MotD", "Wie soll die neue Message of the Day für deine Gruppe lauten?:", "Ändern","Zurück");
return 1;
}
case 2: // Waffenpreise
{
ShowPlayerGroupWeaponPriceMenu(playerid, playerInfo[playerid][pGroupIndex]);
return 1;
}
case 3:
{
if(playerInfo[playerid][pLeader] == 2) ShowPlayerGroupPermissions(playerid, playerInfo[playerid][pGroupIndex]);
else SendClientMessage(playerid, COLOR_LESSRED, "Diese Funktion ist nur für den Gründer.");
return 1;
}
case 4:
{
ShowPlayerGRankNameChangeMenu(playerid, slotid);
return 1;
}
case 5:
{
if(playerInfo[playerid][pLeader] == 2)
{
ShowPlayerDialog(playerid, DIALOG_GROUPRENAME, DIALOG_STYLE_INPUT, "Gruppenbezeichnung ändern","Du hast dich für den Schritt entschieden, deine Gruppe umzunennen.\nDieser Schritt wird dich eine Gebühr in Höhe von $1.200.000 kosten.\n\nWie soll deine Gruppe heißen?","Ändern","Schließen");
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Diese Funktion ist nur für den Gründer.");
}
case 6:
{
ShowPlayerGroupDrugsMenu(playerid, slotid);
return 1;
}
case 7:
{
ShowPlayerGroupOtherMenu(playerid, slotid);
return 1;
}
}
}
else SendClientMessage(playerid, COLOR_RED, "Die Einstellungen können nur vom Gruppenleader geändert werden.");
ShowPlayerGroupConfigMenu(playerid, slotid);
}
else
{
OnPlayerCommandPerformed(playerid, "/gruppe",1);
}
}
if(dialogid == DIALOG_GROUPDRUGS)
{
if(response)
{
if(DialogTempData[playerid][0] == -1)
{
new longstr[256];
format(longstr, sizeof(longstr), "Derzeitige Tagesauszahlung für Rang %d beträgt %sg Drogen.\nDie folgende Zahl gibt an, wie viel ein Spieler pro Tag auszahlen kann (0 = unendlich):", listitem + 1, FormatNumber(gDrugsAmount[playerInfo[playerid][pGroupIndex]][listitem + 1]));
ShowPlayerDialog(playerid, DIALOG_GROUPDRUGS, DIALOG_STYLE_INPUT, "Gruppe Drogenbrechtigungen", longstr, "Ändern", "Zurück");
DialogTempData[playerid][0] = listitem;
return 1;
}
else
{
new amount = strval(inputtext), rank = DialogTempData[playerid][0] + 1;
if(amount < 0 || amount > 100000)
{
new longstr[256];
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Die Grammanzahl muss zwischen 0 - 100.000 liegen.\nDerzeitige Tagesauszahlung für Rang %d beträgt %sg Drogen.\nDie folgende Zahl gibt an, wie viel ein Spieler pro Tag auszahlen kann (0 = unendlich):",rank, FormatNumber(gDrugsAmount[playerInfo[playerid][pGroupIndex]][rank]));
ShowPlayerDialog(playerid, DIALOG_GROUPDRUGS, DIALOG_STYLE_INPUT, "Gruppe Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
gDrugsAmount[playerInfo[playerid][pGroupIndex]][rank] = amount;
SendClientMessageX(playerid, COLOR_CLANCHAT, "Du hast die auszahlbare Grammanzahl von Rang %d auf %sg gesetzt.", rank, FormatNumber(amount));
}
}
else
{
ShowPlayerGroupConfigMenu(playerid,playerInfo[playerid][pGroupIndex]);
return 1;
}
if(DialogTempData[playerid][0] != -1) ShowPlayerGroupDrugsMenu(playerid, playerInfo[playerid][pGroupIndex]);
return 1;
}
if(dialogid == DIALOG_GROUPOTHER)
{
if(response)
{
if(DialogTempData[playerid][0] == -1)
{
new longstr[512];
switch(listitem)
{
case 0:
{
format(longstr, sizeof(longstr), "Derzeitige Entlohnung pro Material: $%s.\n\nWie hoch soll die Entlohnung der Materialien - Fahrer pro Material sein?:",FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gMatsPrice]));
}
case 1:
{
format(longstr, sizeof(longstr), "Derzeitiger Max Materialkaufpreis: $%s\n\nWie hoch soll der maximale Preis sein, für welchen deine Mitglieder Material einkaufen können?", FormatNumber(groupInfo[playerInfo[playerid][pGroupIndex]][gMatsMaxPrice]));
}
case 2:
{
format(longstr, sizeof(longstr), "Derzeitiger Ankaufspreis pro Gramm: $%s.\n\nWie hoch soll der Ankaufspreis von Drogen pro Gramm sein?:",FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gDrugsBuyPrice]));
}
case 3:
{
format(longstr, sizeof(longstr), "Derzeitiger Verkaufspreis pro Gramm: $%s.\n\nWie hoch soll der Verkaufspreis von Drogen pro Gramm sein?:",FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gDrugsSellPrice]));
}
case 4:
{
format(longstr, sizeof(longstr), "Derzeitige Belohnung pro Kill: $%s.\n\nDie Beiträge werden zusammen addiert und am Payday aus der\nGruppenkasse ausgezahlt. Sollte kein Geld in der Gruppenkasse sein\nerfolgt die Auszahlung nach Aufstockung der Gruppenkasse.\n\nWie hoch soll die Belohnung pro Kill sein?", FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gRewardKill][0]));
}
case 5:
{
format(longstr, sizeof(longstr), "Derzeitige Belohnung pro Wettbewerbs-Kill: $%s.\n\nDie Beiträge werden zusammen addiert und am Payday aus der\nGruppenkasse ausgezahlt. Sollte kein Geld in der Gruppenkasse sein\nerfolgt die Auszahlung nach Aufstockung der Gruppenkasse.\n\nWie hoch soll die Belohnung pro Wettbewerbs-Kill sein?", FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gRewardKill][1]));
}
}
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Sonstiges", longstr, "Ändern", "Zurück");
DialogTempData[playerid][0] = listitem;
return 1;
}
new price = strval(inputtext);
switch(DialogTempData[playerid][0])
{
case 0:
{
if(price < 0 || price > 50000)
{
new longstr[256];
format(longstr,sizeof(longstr), "{D11B30}Fehler:{A9C4E4} Die Entlohnung muss zwischen $0 - $50.000 sein.\nDerzeitige Entlohnung pro Material: $%d.\n\nWie hoch soll die Entlohnung der Materialien - Fahrer pro Material sein?:",groupInfo[GetPlayerGroupIndex(playerid)][gMatsPrice]);
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Gruppe Trucker Entlohnung", longstr, "Ändern","Zurück");
return 1;
}
new string[128];
format(string,sizeof(string),"%s hat die Entlohnung pro Material auf $%s gesetzt.",GetPlayerNameEx(playerid),FormatNumber(price));
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, string);
groupInfo[playerInfo[playerid][pGroupIndex]][gMatsPrice] = price;
}
case 1:
{
if(price < 0 || price > 2000)
{
new longstr[256];
format(longstr,sizeof(longstr), "{D11B30}Fehler:{A9C4E4} Der maximale Kaufpreis muss zwischen $0 - $2.000 sein.\nDerzeitiger Max Materialkaufpreis: $%s\n\nWie hoch soll der maximale Preis sein, für welchen deine Mitglieder Material einkaufen können?",groupInfo[GetPlayerGroupIndex(playerid)][gMatsMaxPrice]);
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Gruppe Trucker Entlohnung", longstr, "Ändern","Zurück");
return 1;
}
new string[128];
format(string,sizeof(string),"%s hat den maximalen Kaufpreis pro Material auf $%s gesetzt.",GetPlayerNameEx(playerid),FormatNumber(price));
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, string);
groupInfo[playerInfo[playerid][pGroupIndex]][gMatsMaxPrice] = price;
}
case 2:
{
if(price < 0 || price > 5000)
{
new longstr[256];
format(longstr,sizeof(longstr), "{D11B30}Fehler:{A9C4E4} Der Ankaufspreis muss zwischen $0 - $5.000 sein.\nDerzeitiger Ankaufspreis pro Gramm: $%s.\n\nWie hoch soll der Ankaufspreis von Drogen pro Gramm sein?:",groupInfo[GetPlayerGroupIndex(playerid)][gDrugsBuyPrice]);
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Gruppe Trucker Entlohnung", longstr, "Ändern","Zurück");
return 1;
}
new string[128];
format(string,sizeof(string),"%s hat den Ankaufspreis pro Gramm auf $%s gesetzt.",GetPlayerNameEx(playerid),FormatNumber(price));
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, string);
groupInfo[playerInfo[playerid][pGroupIndex]][gDrugsBuyPrice] = price;
}
case 3:
{
if(price < 0 || price > 5000)
{
new longstr[256];
format(longstr,sizeof(longstr), "{D11B30}Fehler:{A9C4E4} Der Verkaufspreis muss zwischen $0 - $5.000 sein.\nDerzeitiger Verkaufspreis pro Gramm: $%s.\n\nWie hoch soll der Verkaufspreis von Drogen pro Gramm sein?:",groupInfo[GetPlayerGroupIndex(playerid)][gDrugsSellPrice]);
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Gruppe Trucker Entlohnung", longstr, "Ändern","Zurück");
return 1;
}
new string[128];
format(string,sizeof(string),"%s hat den Verkaufspreis pro Gramm auf $%s gesetzt.",GetPlayerNameEx(playerid),FormatNumber(price));
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, string);
groupInfo[playerInfo[playerid][pGroupIndex]][gDrugsSellPrice] = price;
}
case 4:
{
if(price < 0 || price > 1000)
{
new longstr[512];
format(longstr, sizeof(longstr), "{D11B30}Fehler:{A9C4E4} Die Belohnung muss zwischen $0 - $1.000 sein.\nDerzeitige Belohnung pro Kill: $%s.\n\nDie Beiträge werden zusammen addiert und am Payday aus der\nGruppenkasse ausgezahlt. Sollte kein Geld in der Gruppenkasse sein\nerfolgt die Auszahlung nach Aufstockung der Gruppenkasse.\n\nWie hoch soll die Belohnung pro Kill sein?", FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gRewardKill][0]));
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Sonstiges", longstr, "Ändern", "Schließen");
}
groupInfo[GetPlayerGroupIndex(playerid)][gRewardKill][0] = price;
new string[128];
format(string, sizeof(string), "** Leader %s hat die Belohnung pro Kill auf $%s gesetzt. **",GetPlayerNameEx(playerid), FormatNumber(price));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
}
case 5:
{
if(price < 0 || price > 1000)
{
new longstr[512];
format(longstr, sizeof(longstr), "{D11B30}Fehler:{A9C4E4} Die Belohnung muss zwischen $0 - $1.000 sein.\nDerzeitige Belohnung pro Wettbewerbs-Kill: $%s.\n\nDie Beiträge werden zusammen addiert und am Payday aus der\nGruppenkasse ausgezahlt. Sollte kein Geld in der Gruppenkasse sein\nerfolgt die Auszahlung nach Aufstockung der Gruppenkasse.\n\nWie hoch soll die Belohnung pro Wettbewerbs-Kill sein?", FormatNumber(groupInfo[GetPlayerGroupIndex(playerid)][gRewardKill][1]));
ShowPlayerDialog(playerid, DIALOG_GROUPOTHER, DIALOG_STYLE_INPUT, "Sonstiges", longstr, "Ändern", "Schließen");
}
groupInfo[GetPlayerGroupIndex(playerid)][gRewardKill][1] = price;
new string[128];
format(string, sizeof(string), "** Leader %s hat die Belohnung pro Wettbewerbs-Kill auf $%s gesetzt. **",GetPlayerNameEx(playerid), FormatNumber(price));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
}
}
ShowPlayerGroupOtherMenu(playerid, playerInfo[playerid][pGroupIndex]);
return 1;
}
if(DialogTempData[playerid][0] == -1) ShowPlayerGroupConfigMenu(playerid, playerInfo[playerid][pGroupIndex]);
else ShowPlayerGroupOtherMenu(playerid, playerInfo[playerid][pGroupIndex]);
return 1;
}
if(dialogid == DIALOG_GROUPRANKS && response)
{
new longstr[256];
format(longstr,sizeof(longstr),"Derzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",listitem + 1,gRankName[playerInfo[playerid][pGroupIndex]][listitem + 1]);
ShowPlayerDialog(playerid, DIALOG_GROUPRANKS2, DIALOG_STYLE_INPUT, "Gruppe Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
DialogTempData[playerid][0] = listitem;
return 1;
}
if(dialogid == DIALOG_GROUPRANKS2)
{
new longstr[256], slotid = playerInfo[playerid][pGroupIndex], item = DialogTempData[playerid][0];
if(response)
{
if(strlen(inputtext) > 30)
{
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Die Rangbezeichnung darf maximal 30 Zeichen haben.\nDerzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",item+1,gRankName[slotid][item + 1]);
ShowPlayerDialog(playerid, DIALOG_GROUPRANKS2, DIALOG_STYLE_INPUT, "Gruppe Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
if(strfind(inputtext, "{",true) != -1 || strfind(inputtext, "}",true) != -1 || strfind(inputtext, "|",true) != -1)
{
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Die Zeichen '{' & '}' sind nicht möglich.\nDerzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",item+1,gRankName[slotid][item + 1]);
ShowPlayerDialog(playerid, DIALOG_GROUPRANKS2, DIALOG_STYLE_INPUT, "Gruppe Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
if(strlen(inputtext) == 0)
{
if(item + 2 != MAX_RANKS && strlen(gRankName[slotid][item + 2]) != 0)
{
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Der Rang %d muss zuerst deaktiviert werden, um Rang %d deaktivieren zu können.\nDerzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",item+2,item+1,item+1,gRankName[slotid][item + 1]);
ShowPlayerDialog(playerid, DIALOG_GROUPRANKS2, DIALOG_STYLE_INPUT, "Gruppe Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
else if(item + 1 < 4)
{
format(longstr,sizeof(longstr),"{D11B30}Fehler:{A9C4E4} Die Ränge 1 - 4 können nicht deaktiviert werden.\nDerzeitige Bezeichnung für Rang %d: %s\n\nDu möchtest scheinbar die derzeitige Rangbezeichnung ändern,\ngebe nun die neue Rangbezeichnung ein:",item+2,item+1,item+1,gRankName[slotid][item + 1]);
ShowPlayerDialog(playerid, DIALOG_GROUPRANKS2, DIALOG_STYLE_INPUT, "Gruppe Rangbezeichnung(en)", longstr, "Ändern", "Zurück");
return 1;
}
}
format(longstr,sizeof(longstr),"%s hat die Rangbezeichnung von Rang %d von %s in %s umgeändert.",GetPlayerNameEx(playerid),item + 1,gRankName[slotid][item + 1],inputtext);
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, longstr);
format(gRankName[slotid][item + 1],MAX_RANK_NAME, inputtext);
for(new i = MAX_RANKS - 1; i != 0; i--)
{
if(strlen(gRankName[slotid][i]) == 0) continue;
groupInfo[slotid][gHighestRank] = i;
break;
}
foreach(new i : Player)
{
if(playerInfo[i][pGroupIndex] != slotid || !playerInfo[i][pLeader]) continue;
if(playerInfo[i][pLeader] == 2) playerInfo[i][pGroupRank] = groupInfo[slotid][gHighestRank];
else playerInfo[i][pGroupRank] = groupInfo[slotid][gHighestRank] - 1;
}
mysql_format(dbHandle, longstr, sizeof(longstr), "UPDATE `accounts` SET `grouprank` = '%d' WHERE `group` = '%d' AND `leader` > '0'",groupInfo[slotid][gHighestRank], playerInfo[playerid][pGroup]);
mysql_tquery(dbHandle, longstr, "", "");
}
strdel(longstr, 0, sizeof(longstr));
ShowPlayerGRankNameChangeMenu(playerid, slotid);
}
if(dialogid == DIALOG_GROUPLEAVE && response)
{
if(!playerInfo[playerid][pGroup]) return 1;
if(playerInfo[playerid][pLeader] == 2)
{
InsertGroupLog(playerInfo[playerid][pSQLID], playerInfo[playerid][pGroup],"-/deletegroup", "Dialog");
DeletePlayerGroup(playerid, playerid, playerInfo[playerid][pGroupIndex]);
}
else
{
new string[128];
format(string,sizeof(string),"** {FF0000}%s {2FD6C3}hat die Gruppe verlassen. **",GetPlayerNameEx(playerid));
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "-/leavegroup", "Dialog");
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
groupInfo[playerInfo[playerid][pGroupIndex]][gMember]--;
}
playerInfo[playerid][pGroupRank] = 0; playerInfo[playerid][pGroup] = 0;
playerInfo[playerid][pGroupIndex] = 0; playerInfo[playerid][pLeader] = 0;
return 1;
}
if(dialogid == DIALOG_GROUPBACK)
{
if(DialogTempDataIndex[playerid])
{
ShowPlayerGroupChooseMenu(playerid, DialogTempData[playerid][0]);
}
else
{
OnPlayerCommandPerformed(playerid, "/gruppe",1);
}
return 1;
}
if(dialogid == DIALOG_GROUPCREATE && response)
{
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur als Zivilist eine Gruppe gründen.");
if(GetPlayerMoney(playerid) < NEEDED_MONEY_FOR_CREATINGGROUP) return SendClientMessage(playerid, COLOR_LESSRED, "Du benötigst $"#NEEDED_MONEY_FOR_CREATINGGROUP", um dir eine Gruppe zu gründen.");
if(playerInfo[playerid][pLevel] < NEEDED_LEVEL_FOR_CREATINGGROUP) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Zivilist Level "#NEEDED_LEVEL_FOR_CREATINGGROUP".");
if(strlen(inputtext) > MAX_GROUPNAME_LENGTH || strlen(inputtext) < MIN_GROUPNAME_LENGTH)
{
SendClientMessage(playerid, COLOR_LESSRED, "Der Gruppenname darf nur zwischen "#MIN_GROUPNAME_LENGTH" - "#MAX_GROUPNAME_LENGTH" Zeichen lang sein.");
ShowPlayerDialog(playerid, DIALOG_GROUPCREATE, DIALOG_STYLE_INPUT, "Gruppe gründen","Um deine eigene Gruppe zu gründen brauchst du nicht nur einen Namen,\nsondern auch eine Grundbasis von $"#NEEDED_MONEY_FOR_CREATINGGROUP" und Zivilisten Level "#NEEDED_LEVEL_FOR_CREATINGGROUP".\nVon diesem Geld werden $"#GROUP_STARTMONEY" Bearbeitungsgebühren abgezogen.\n\nBitte gebe deine gewünschte Gruppenbezeichnung ein:","Gründen","Abbrechen");
return 1;
}
if(strfind(inputtext, "~",false) != -1 || strfind(inputtext, "{",false) != -1 || strfind(inputtext, "}",false) != -1)
{
SendClientMessage(playerid, COLOR_LESSRED, "Fehler: Die Zeichen '~' , '{' & '}' sind ungültig.");
ShowPlayerDialog(playerid, DIALOG_GROUPCREATE, DIALOG_STYLE_INPUT, "Gruppe gründen","Um deine eigene Gruppe zu gründen brauchst du nicht nur einen Namen,\nsondern auch eine Grundbasis von $"#NEEDED_MONEY_FOR_CREATINGGROUP" und Zivilisten Level "#NEEDED_LEVEL_FOR_CREATINGGROUP".\nVon diesem Geld werden $"#GROUP_STARTMONEY" Bearbeitungsgebühren abgezogen.\n\nBitte gebe deine gewünschte Gruppenbezeichnung ein:","Gründen","Abbrechen");
return 1;
}
new query[128];
mysql_real_escape_string(inputtext, inputtext, dbHandle, 32);
mysql_format(dbHandle, query, sizeof(query),"SELECT `id` FROM `groups` WHERE `groupname` = '%s' LIMIT 1",inputtext);
mysql_pquery(dbHandle, query, "OnServerCheckGroupNameAvailable", "ds", playerid, inputtext);
}
if(dialogid == DIALOG_NAVI && response)
{
new str[512];
DialogTempDataIndex[playerid] = 0;
switch(DialogTempData[playerid][MAX_PLAYERS - 2])
{
case 1:
{
if(naviCategory[DialogTempData[playerid][listitem]][ncSQLID] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Kategorie wurde noch nicht vollständig initialisiert.");
DialogTempData[playerid][MAX_PLAYERS - 3] = DialogTempData[playerid][listitem];
new Float:nx, Float:ny, Float:nz;
GetPlayerPos(playerid, nx, ny, nz);
format(str, 128, "Kategorie: %s\nWie soll der Navigationspunkt lauten?\nKoordinaten: X: %.5f Y: %.5f Z: %.5f", naviCategory[DialogTempData[playerid][MAX_PLAYERS - 3]][ncName], nx, ny, nz);
ShowPlayerDialog(playerid, DIALOG_NAVI, DIALOG_STYLE_INPUT, "Navigationsoberfläche", str, "Erstellen", "Schließen");
DialogTempData[playerid][MAX_PLAYERS - 2] = 2;
return 1;
}
case 2:
{
new id = Iter_Free(Navigation);
if(id == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Es können keine weiteren Navigationspunkte hinzugefügt werden.");
Iter_Add(Navigation, id);
InitializeNavigationORM(id);
format(navigationInfo[id][niName], 32, inputtext);
GetPlayerPos(playerid, navigationInfo[id][niPosX], navigationInfo[id][niPosY], navigationInfo[id][niPosZ]);
navigationInfo[id][niCategory] = naviCategory[DialogTempData[playerid][MAX_PLAYERS - 3]][ncSQLID];
orm_insert(navigationInfo[id][niORMID], "InsertInit", "dd", id, INSERTINIT_NAVI);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "[ NAVI ] Navigationspunkt %s erstellt. Mitglied der Kategorie %s.", navigationInfo[id][niName], naviCategory[DialogTempData[playerid][MAX_PLAYERS - 3]][ncName]);
return 1;
}
case 3:
{
new id = Iter_Free(NavigationCategory);
if(id == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Es können keine weiteren Navigationskategorien hinzugefügt werden.");
Iter_Add(NavigationCategory, id);
InitializeNaviCategoryORM(id);
format(naviCategory[id][ncName], 32, inputtext);
orm_insert(naviCategory[id][ncORMID], "InsertInit", "dd", id, INSERTINIT_NAVICATEGORY);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "[ NAVI ] Kategorie %s erstellt.", naviCategory[id][ncName]);
return 1;
}
case 4:
{
new id = DialogTempData[playerid][listitem];
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "[ NAVI ] Kategorie %s gelöscht.", naviCategory[id][ncName]);
Iter_Remove(NavigationCategory, id);
orm_delete(naviCategory[id][ncORMID], true);
return 1;
}
}
new id = DialogTempData[playerid][listitem];
if(naviCategory[id][ncName][0] == '%')
{
new zonename[MAX_ZONE_NAME], naviName[32];
strmid(naviName, naviCategory[id][ncName], 1, strlen(naviCategory[id][ncName]));
DialogTempData[playerid][MAX_PLAYERS - 7] = 1;
for(new i = 0; i < serverInfo[currentEntrances]; i++)
{
if(strcmp(entranceInfo[i][eiEntranceName], naviName, true) != 0) continue;
GetCoords2DZone(entranceInfo[i][eiEntranceX], entranceInfo[i][eiEntranceY], zonename, MAX_ZONE_NAME);
format(str, 512, "%s%d) %s in %s\n", str, DialogTempDataIndex[playerid] + 1, entranceInfo[i][eiEntranceName], zonename);
DialogTempData[playerid][DialogTempDataIndex[playerid]++] = i;
}
}
else
{
DialogTempData[playerid][MAX_PLAYERS - 7] = 0;
foreach(new i : Navigation)
{
if(naviCategory[id][ncSQLID] != navigationInfo[i][niCategory]) continue;
format(str, 512, "%s%d) %s\n",str,DialogTempDataIndex[playerid] + 1, navigationInfo[i][niName]);
DialogTempData[playerid][DialogTempDataIndex[playerid]++] = i;
}
}
ShowPlayerDialog(playerid, DIALOG_NAVI2, DIALOG_STYLE_LIST, "Navigationsoberfläche", str, "Wählen", "Zurück");
return 1;
}
else if(dialogid == DIALOG_NAVI2)
{
if(response)
{
new id = DialogTempData[playerid][listitem];
if(DialogTempData[playerid][MAX_PLAYERS - 2] == 5)
{
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "[ NAVI ] Navigationspunkt %s gelöscht.", navigationInfo[id][niName]);
Iter_Remove(Navigation, id);
orm_delete(navigationInfo[id][niORMID], true);
return 1;
}
if(DialogTempData[playerid][MAX_PLAYERS - 7] == 1)
{
new zonename[MAX_ZONE_NAME];
GetCoords2DZone(entranceInfo[id][eiEntranceX], entranceInfo[id][eiEntranceY], zonename, MAX_ZONE_NAME);
SendClientMessageX(playerid, COLOR_LIGHTGREEN, "[ NAVI ] Zielpunkt gesetzt: %s in %s",entranceInfo[id][eiEntranceName],zonename);
if(playerInfo[playerid][pAdminDuty] && playerInfo[playerid][pAdmin] >= RANK_ADMIN)
{
SetPlayerPos(playerid, entranceInfo[id][eiEntranceX], entranceInfo[id][eiEntranceY], entranceInfo[id][eiEntranceZ]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
}
else
{
SetPlayerCheckpoint(playerid, entranceInfo[id][eiEntranceX], entranceInfo[id][eiEntranceY], entranceInfo[id][eiEntranceZ], 3.0);
}
}
else
{
SendClientMessageX(playerid, COLOR_LIGHTGREEN, "[ NAVI ] Zielpunkt gesetzt: {FFFFFF}%s", navigationInfo[id][niName]);
if(playerInfo[playerid][pAdminDuty] && playerInfo[playerid][pAdmin] >= RANK_ADMIN)
{
SetPlayerPos(playerid, navigationInfo[id][niPosX], navigationInfo[id][niPosY], navigationInfo[id][niPosZ]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
}
else
{
SetPlayerCheckpoint(playerid, navigationInfo[id][niPosX], navigationInfo[id][niPosY], navigationInfo[id][niPosZ],3.0);
}
}
}
else
{
Command_ReProcess(playerid, "/navi", false);
}
return 1;
}
else if(dialogid == DIALOG_BUYGUN && response)
{
if(listitem)
{
new id = listitem-1;
BuyPlayerWeapon(playerid,ammunationInfo[id][aiWeaponID],1);
}
else
{
if(playerInfo[playerid][pLastHit] + 30 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst in %d Sekunde(n) dir eine Rüstung kaufen.",(playerInfo[playerid][pLastHit] + 30) - gettime());
return 1;
}
BuyPlayerWeapon(playerid, 0, 1);
}
Command_ReProcess(playerid, "/buygun", false);
}
else if(dialogid == DIALOG_LOGIN)
{
if(response)
{
OnServerLoadPlayerData(playerid, inputtext);
new query[128];
mysql_format(dbHandle, query, sizeof(query), "SELECT * FROM `accounts` WHERE `id` = '%d'",DialogTempData[playerid][MAX_PLAYERS-1]);
mysql_pquery(dbHandle, query, "OnServerLoadPlayerData", "ds", playerid, inputtext);
}
else
{
Kick(playerid);
}
}
else if(dialogid == DIALOG_REGISTER)
{
if(response)
{
new index = IsABadWordInString(GetPlayerNameEx(playerid));
if(index != -1)
{
SendClientMessageX(playerid, COLOR_RED, "In deinem Namen ist das Badword %s enthalten, weswegen du dich nicht registrieren kannst.",badWords[index][bwWord]);
KickEx(playerid);
return 1;
}
if(strlen(inputtext) < 6)
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration (1 / 4)","{D11B30}Fehler:{A9C4E4} Das Passwort muss mindestens 6 Zeichen haben.\n\nBitte gebe zur späteren Verifizierung deiner Person ein Passwort ein:","Regstrieren","Verlassen");
return 1;
}
format(playerInfo[playerid][pKey],128, inputtext);
ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_INPUT, "Registration (2 / 4)","Bitte gebe nun den Namen von der Person, von der du geworben wurdest.\nSolltest du keinen Namen angeben wollen / können, drücke einfach auf 'Weiter'.","Weiter","Schließen");
}
else
{
Kick(playerid);
}
}
else if(dialogid == DIALOG_REGISTER2)
{
if(response)
{
new query[128];
mysql_real_escape_string(inputtext, inputtext, dbHandle, MAX_PLAYER_NAME);
mysql_format(dbHandle, query, sizeof(query),"SELECT `id` FROM `accounts` WHERE `username` = '%s' LIMIT 1",inputtext);
mysql_pquery(dbHandle, query, "OnServerCheckAccountExistsForAD","ds",playerid,inputtext);
playerInfo[playerid][pLoginKickTime] = gettime();
}
else
{
Kick(playerid);
}
}
else if(dialogid == DIALOG_REGISTER3)
{
if(response)
{
SendClientMessage(playerid, COLOR_YELLOW, "Du hast das Regelwerk akzeptiert.");
ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_INPUT, "Registration (4 / 4)","Bitte gib nun deine E-Mail Adresse an: \n(Hinweis: Diese wird für die Passwort vergessen? - Funktion benötigt)","Weiter","Schließen");
playerInfo[playerid][pLoginKickTime] = gettime();
return 1;
}
KickEx(playerid);
return 1;
}
else if(dialogid == DIALOG_REGISTER4)
{
if(response)
{
if(strfind(inputtext,".", true) != -1 && strfind(inputtext,"@", true) != -1 && strlen(inputtext) > 5)
{
new spacestr[512], salt[16];
WP_Hash(spacestr, 129, playerInfo[playerid][pKey]);
strmid(salt,spacestr,0,sizeof(salt));
strcat(spacestr, salt);
WP_Hash(playerInfo[playerid][pKey], 129, spacestr);
format(playerInfo[playerid][pSalt], 32, salt);
mysql_format(dbHandle, spacestr, sizeof(spacestr),"INSERT INTO `accounts` (`username`,`password`,`salt`,`email`,`regtime`,`ignoreip`) VALUES ('%s','%s','%s','%s','%d','%d')",GetPlayerNameEx(playerid),playerInfo[playerid][pKey],playerInfo[playerid][pSalt],inputtext,gettime(),playerInfo[playerid][pIgnoreIp]);
mysql_function_query(dbHandle, spacestr, true, "InsertInit", "dd",playerid,INSERTINIT_REGISTERACCOUNT);
format(playerInfo[playerid][pEMail], 32, inputtext);
SetPlayerScore(playerid, playerInfo[playerid][pLevel]);
SpawnPlayer(playerid);
SetPlayerTeamEx(playerid, TEAM_ZIVI);
playerInfo[playerid][pLevel] = GetPlayerLevelFromExp(playerInfo[playerid][pExp][playerInfo[playerid][pTeam]-1]);
SetPlayerInSkinChangeMenu(playerid);
new county[128];
GetPlayerCountry(playerid, county, sizeof(county));
format(spacestr,512, "* %s %s hat sich registriert (Land: %s).",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),county);
SendAdminMessage(COLOR_ORANGE, spacestr, RANK_SUPPORTER);
ShowPlayerPossibleMultiAccount(playerid, INVALID_PLAYER_ID);
GivePlayerAchievement(playerid, ACHIEVE_WELCOME, true);
OnServerLoadPlayerData(playerid, " ", true);
playerInfo[playerid][pLoginKickTime] = gettime();
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER4, DIALOG_STYLE_INPUT, "Registration (4 / 4)","{D11B30}Fehler:{A9C4E4} Bitte gebe eine E-Mail mit gültigem Format ein.\n\nBitte gib nun deine E-Mail Adresse an: \n{D11B30}(Hinweis: Diese wird für die Passwort vergessen? - Funktion benötigt)","Weiter","Schließen");
}
}
else
{
Kick(playerid);
}
}
return 1;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
return 1;
}
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
/*
if(playerInfo[playerid][pTextDrawMenu])
{
for(new i = 0, j = sizeof(SurpriseTD); i < j; i++)
{
if(clickedid != SurpriseTD[i]) continue;
CancelSelectTextDraw(playerid);
new day;
getdate(_, _, day);
if(day != i + 1)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Sorry, du bist leider zu %s für diese Tür.", (day > i + 1) ? ("spät") : ("früh"));
return 1;
}
if(playerInfo[playerid][pReachedCalender][day]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast bereits die Adventstür für den heutigen Tag geöffnet.");
if(playerInfo[playerid][pDayPlayTime] < 60 * 60)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst die Adventstür erst in %s öffnen.",GetTimeString(60*60-playerInfo[playerid][pDayPlayTime],4));
return 1;
}
new rand = 0;
switch(random(6))
{
case 1:
{
new vID[10] = {486, 525, 531, 539, 571, 572, 574 ,520, 423, 588};
rand = random(sizeof(vID));
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast ein(e) %s für 7 Tage aus dem Adventskalender erhalten.", VehicleName[vID[rand]-400]);
switch(random(3))
{
case 0:
{
CreatePersonalVehicle(vID[rand],-2025.5283,1326.6460,7.3302,178.5940,1,1,3,1,GetPlayerNameEx(playerid),0,1,0,2,_,gettime() + 60*60*24*7);
SetPlayerCheckpoint(playerid, -2025.5283,1326.6460,7.3302, 3.5);
}
case 1:
{
CreatePersonalVehicle(vID[rand],-2036.9410,1326.7124,7.3899,179.5516,1,1,3,1,GetPlayerNameEx(playerid),0,1,0,2,_,gettime() + 60*60*24*7);
SetPlayerCheckpoint(playerid, -2036.9410,1326.7124,7.3899, 3.5);
}
default:
{
CreatePersonalVehicle(vID[rand],-2051.6123,1326.3969,7.2630,182.4602,1,1,3,1,GetPlayerNameEx(playerid),0,1,0,2,_,gettime() + 60*60*24*7);
SetPlayerCheckpoint(playerid, -2051.6123,1326.3969,7.2630, 3.5);
}
}
}
case 2:
{
rand = playerInfo[playerid][pLevel] > 250 ? (2185 * 250 + (((playerInfo[playerid][pLevel]-250) * 1637))) : (playerInfo[playerid][pLevel] * 2185);
GivePlayerMoney(playerid, rand, "Adventskalender");
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast $%d aus dem Adventskalender erhalten.", rand);
}
case 3:
{
playerInfo[playerid][pMaxVehicles]++;
SendClientMessage(playerid, COLOR_YELLOW, "Du hast einen weiteren Fahrzeugslot aus dem Adventskalender erhalten.");
}
case 4:
{
if(!playerInfo[playerid][pDoubleExp]) playerInfo[playerid][pDoubleExp] = gettime();
playerInfo[playerid][pDoubleExp] += (60 * 45);
SendClientMessage(playerid, COLOR_YELLOW, "Du hast 45 Minuten Double-Exp aus dem Adventskalender erhalten.");
}
default:
{
rand = random(7) + 4;
GivePlayerExp(playerid, rand * 63, false);
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %d Level aus dem Adventskalender erhalten.", rand);
}
}
playerInfo[playerid][pReachedCalender][day] = true;
return 1;
}
}*/
if(clickedid == Text:INVALID_TEXT_DRAW)
{
switch(playerInfo[playerid][pTextDrawMenu])
{
case TDMENU_ADVENTCALENDER:
{
for(new x = 0; x < sizeof(SurpriseTD); x++) TextDrawHideForPlayer(playerid, SurpriseTD[x]);
for(new x = 0; x < sizeof(SurpriseBox); x++) TextDrawHideForPlayer(playerid, SurpriseBox[x]);
}
default:
{
}
}
playerInfo[playerid][pTextDrawMenu] = TDMENU_NONE;
}
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
return 1;
}
stock SetPlayerInSkinChangeMenu(playerid, skinshop = 0)
{
new skin = GetPlayerSkin(playerid);
playerInfo[playerid][pSkinChange] = true;
playerInfo[playerid][pSkinShop] = skinshop;
TogglePlayerControllable(playerid, false);
TextDrawShowForPlayer(playerid, InfoSkinChange[0]);
new sIndex = playerInfo[playerid][pTeam];
if(skinshop)
{
TextDrawShowForPlayer(playerid, InfoSkinChange[2]);
playerInfo[playerid][pChooseSkin] = 0;
for(new i = 0, length = sizeof(skinInfo[]); i < length; i++)
{
if(skinInfo[sIndex][i] == -1) break;
if(skinInfo[sIndex][i] != skin) continue;
playerInfo[playerid][pChooseSkin] = i;
break;
}
SetSpawnInfo(playerid,NO_TEAM,skinInfo[sIndex][playerInfo[playerid][pChooseSkin]],-685.3075,939.5270,13.6328,90.1,-1,-1,-1,-1,-1,-1);
SetPlayerSkin(playerid, skinInfo[sIndex][playerInfo[playerid][pChooseSkin]]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, playerid);
SetPlayerPos(playerid, -685.3075,939.5270,13.6328);
SetPlayerFacingAngle(playerid, 90.1);
SetPlayerCameraPos(playerid,-689.3728,939.5563,13.8);
SetPlayerCameraLookAt(playerid,-685.3075,939.5270,13.6328);
}
else
{
TextDrawShowForPlayer(playerid, InfoSkinChange[1]);
SetSpawnInfo(playerid,NO_TEAM,skinInfo[sIndex][0],-685.3075,939.5270,13.6328,90.1,-1,-1,-1,-1,-1,-1);
SetPlayerSkin(playerid, skinInfo[sIndex][0]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, playerid);
SetPlayerPos(playerid, -685.3075,939.5270,13.6328);
SetPlayerFacingAngle(playerid, 90.1);
SetPlayerCameraPos(playerid,-689.3728,939.5563,13.8);
SetPlayerCameraLookAt(playerid,-685.3075,939.5270,13.6328);
}
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
if(IsPlayerCop(playerid))
{
if(IsPlayerCop(clickedplayerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist Cop.");
new str[64], mainstr[256];
format(str, 64, "MDC: %s", GetPlayerNameEx(clickedplayerid));
strins(mainstr, "Bezeichnung\tab Level\n", 0);
for(new i = 0; i < sizeof(copComputer); i++)
{
format(mainstr, sizeof(mainstr), "%s%s\tLv %d\n", mainstr, copComputer[i][ccName], copComputer[i][ccLevel]);
}
ShowPlayerDialog(playerid, DIALOG_MDC, DIALOG_STYLE_TABLIST_HEADERS, str, mainstr, "Auswählen", "Schließen");
DialogTempData[playerid][MAX_PLAYERS - 1] = clickedplayerid;
}
return 1;
}
public OnServerCheckAccountExists(playerid)
{
ClearPlayerChat(playerid);
PlayerLoginTextDraw(playerid, true);
switch(orm_errno(playerInfo[playerid][pORMID]))
{
case ERROR_OK:
{
new str[352];
mysql_format(dbHandle, str, 352, "SELECT username, log_punitive.* FROM `log_punitive` LEFT JOIN accounts ON accounts.id = log_punitive.adminid WHERE log_punitive.playerid = %d AND log_punitive.active = 1 AND log_punitive.typ LIKE '%%Ban%%' ORDER BY log_punitive.date DESC LIMIT 3", playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, str, "OnServerCheckAccountBanState", "d", playerid);
format(str, 352, "Benutzername: {7AB8CC}%s{A9C4E4} \t\t Letzter Besuch: {7AB8CC}%s{A9C4E4}\n\nWir freuen uns, Dich wieder zu sehen. Gebe bitte nun \nfolgend, zur Verifizierung deiner Person, das Benutzerpasswort ein:",GetPlayerNameEx(playerid), GetDateFromTimestampEx(playerInfo[playerid][pLastLogout]));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", str,"Login","Verlassen");
playerInfo[playerid][pLoginKickTime] = gettime();
}
case ERROR_NO_DATA:
{
if(IsNumeric(GetPlayerNameEx(playerid)))
{
SendClientMessage(playerid, COLOR_RED, "Der Name darf nicht nur aus Zahlen bestehen, sondern muss mindestens ein Buchstaben enthalten.");
KickEx(playerid);
return 1;
}
if(serverTog[TOG_REGISTER][stValue])
{
SendClientMessage(playerid, COLOR_RED, "Die Registration ist derzeit deaktiviert, bitte versuche es später nocheinmal.");
KickEx(playerid);
return 1;
}
new country[54];
GetPlayerCountry(playerid, country, sizeof(country));
if(strcmp(country, "Germany", true) != 0 && strcmp(country, "Austria", true) != 0 && strcmp(country, "Switzerland", true) != 0 && strcmp(country, "Unknown", true) != 0 || playerInfo[playerid][pBanIp])
{
new query[128];
mysql_format(dbHandle, query, sizeof(query), "SELECT `id` FROM `ipwhitelist` WHERE `username` = '%e' LIMIT 1", GetPlayerNameEx(playerid));
mysql_pquery(dbHandle, query, "OnServerCheckIpWhitelist", "d", playerid);
return 1;
}
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration (1 / 4)","Bitte gebe zur späteren Verifizierung deiner Person ein Passwort ein:","Regstrieren","Verlassen");
}
}
return 1;
}
public OnServerCheckAccountBanState(playerid)
{
new rows = cache_num_rows();
if(!rows) return 1;
new ban_admin[MAX_PLAYER_NAME],
ban_reason[32],
ban_time;
for(new i = 0; i < rows; i++)
{
ban_time = cache_get_field_content_int(i, "time");
if(ban_time != -1 && ban_time < gettime())
{
new query[128];
mysql_format(dbHandle, query, 128, "UPDATE `log_punitive` SET `active` = 0 WHERE `id` = %d", cache_get_field_content_int(i, "id"));
mysql_tquery(dbHandle, query, "", "");
continue;
}
cache_get_field_content(i, "reason", ban_reason, 32);
cache_get_field_content(i, "username", ban_admin, MAX_PLAYER_NAME);
new longstr[512];
format(longstr,sizeof(longstr), "Sehr geehrte(r) %s,\nSie wurden wegen einem Verstoß gegen das [GSC] German Crimescene | CnR Regelwerk gesperrt.\nSollten Sie zu unrecht gesperrt worden sein, so haben sie die Möglichkeit einen\nEntbannungsantrag im [GSC] German Crimescene | CnR Forum zu erstellen.\nBitte erstellen sie einen Screenshot von diesem Dialog!\n\n\n",GetPlayerNameEx(playerid));
format(longstr,sizeof(longstr), "%sDauer: %s\nSperrgrund: %s\nAusführendes Teammitglied: %s",longstr,(ban_time == -1 ? ("Permanent") : GetTimeString(ban_time-gettime(),1)), ban_reason,ban_admin);
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Sie wurden gesperrt!", longstr, "Schließen", "");
KickEx(playerid);
break;
}
return 1;
}
public OnServerCheckAccountExistsForAD(playerid,playername[])
{
if(!strlen(playername))
{
SendClientMessage(playerid, COLOR_YELLOW, "Du hast Niemanden als Werber angegeben.");
}
else if(!cache_num_rows())
{
ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_INPUT, "Registration (2 / 4)","{D11B30}Fehler:{A9C4E4} Der Spieler existiert nicht in unserer Datenbank!\nBitte gebe nun den Namen von der Person, von der du geworben wurdest.\nSolltest du keinen Namen angeben wollen / können, drücke einfach auf 'Weiter'.","Weiter","Schließen");
return 1;
}
else
{
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %s als Werber angegeben.",playername);
strins(playerInfo[playerid][pAdvertiser],playername,0,MAX_PLAYER_NAME);
}
ShowPlayerDialog(playerid, DIALOG_REGISTER3, DIALOG_STYLE_MSGBOX, "Registration (3 / 4)","In unserem Forum (forum.german-crimescene.de) ist unser Regelwerk zu finden.\nNavigiere: Neuigkeiten & Informationen -> Regelwerk -> Server - Regelwerk\n\nHiermit bestätige Ich, dass ich das Regelwerk gelesen habe.\nSämtliche Verletzungen gegen dieses können Konsequenzen mit sich tragen.\n\nAkzeptierst du das Regelwerk?","Akzeptieren","Ablehnen");
return 1;
}
public OnServerAddPlayerToWhiteList(senderid, setname[])
{
if(cache_affected_rows())
{
new string[128];
format(string, sizeof(string), "* %s %s hat %s auf die Login-Whitelist gesetzt.",GetPlayerTitle(senderid), GetPlayerNameEx(senderid), setname);
SendAdminMessage(COLOR_RED, string);
return 1;
}
SendClientMessage(senderid, COLOR_LESSRED, "Dieser Spieler existiert nicht oder ist bereits auf der Whitelist.");
return 1;
}
public OnServerCheckIpWhitelist(playerid)
{
if(cache_num_rows())
{
SendClientMessage(playerid, COLOR_YELLOW, "Du stehst auf der Ip - Whitelist. Dein Account wurde nun verbunden.");
playerInfo[playerid][pIgnoreIp] = true;
new query[128];
mysql_format(dbHandle, query, sizeof(query), "DELETE FROM `ipwhitelist` WHERE `id` = '%d'",cache_get_field_content_int(0, "id"));
mysql_tquery(dbHandle, query, "", "");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration (1 / 4)","Bitte gebe zur späteren Verifizierung deiner Person ein Passwort ein:","Registieren","Verlassen");
}
else
{
if(playerInfo[playerid][pBanIp]) SendClientMessage(playerid, COLOR_RED, "Dein Account ist nicht in der Lage, zu verbinden (banned).");
else SendClientMessage(playerid, COLOR_RED, "Auf unserem Server sind nur IPs aus Deutschland, Österreich und der Schweiz erlaubt.");
KickEx(playerid);
}
return 1;
}
public OnServerLoadMemberInfo(playerid)
{
new str[512], p_Name[MAX_PLAYER_NAME];
cache_get_field_content(0, "username", p_Name);
format(str, sizeof(str), "Spielerinformationen zum Spieler %s\n\nMitglied seit: %s \t Zuletzt Online: %s \t Gruppenrang: %d\nGespendet: $%d\t Gespendet Diff: $%d",
p_Name,GetDateFromTimestamp(cache_get_field_content_int(0, "grouptimestamp")), GetDateFromTimestamp(cache_get_field_content_int(0, "lastlogout")),cache_get_field_content_int(0, "grouprank"), cache_get_field_content_int(0, "groupcharity"), cache_get_field_content_int(0, "groupcharitydiff"));
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Spielerinformation", str, "Schließen", "");
return 1;
}
public OnPlayerOpenHelpDialog(playerid, id)
{
if(!cache_num_rows())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es existiert kein Artikel mit der Artikel-Nr. %d.",id);
return 1;
}
new str[1024], headline[32];
cache_get_field_content(0, "headline", headline);
cache_get_field_content(0, "text", str);
for(new i = 0, length = strlen(str); i < length; i++)
if(str[i] == '°') str[i] = '\n';
format(str, sizeof(str), "%s", str);
if(!GetPlayerAchievementStatus(playerid, ACHIEVE_DOITYOURSELF)) GivePlayerAchievement(playerid, ACHIEVE_DOITYOURSELF);
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, headline, str, "Schließen", "");
return 1;
}
public ShowPlayerTicketInfo(playerid)
{
new tUsername[MAX_PLAYER_NAME], tAdmin, tAcceptedTickets, longstr[1024];
for(new i = 0, rows = cache_num_rows(); i < rows; i++)
{
cache_get_field_content(i, "username", tUsername);
tAdmin = cache_get_field_content_int(i, "admin");
tAcceptedTickets = cache_get_field_content_int(i, "acceptedtickets");
format(longstr, sizeof(longstr), "%s\n%s %s - %d Tickets",longstr, TeamRank[tAdmin], tUsername, tAcceptedTickets);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Ticketinfo", longstr, "Schließen", "");
return 1;
}
public OnPlayerSearchKeyWord(playerid)
{
new str[512], rows = cache_num_rows();
format(str, sizeof(str), "Folgende Treffer wurden bei Deiner Suche erzielt:\n\n");
if(rows)
{
if(rows == 1)
{
new query[256], id = cache_get_field_content_int(0, "id");
mysql_format(dbHandle, query, sizeof(query), "SELECT `headline`,`text` FROM `help` WHERE `id` = '%d' AND `rank` <= %d",id, playerInfo[playerid][pAdmin]);
mysql_pquery(dbHandle, query, "OnPlayerOpenHelpDialog", "dd", playerid,id);
return 1;
}
new headline[32], rank, rankstr[32];
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i,"headline",headline);
rank = cache_get_field_content_int(i, "rank");
if(rank) format(rankstr, 32, "{FF0000}((R %d)){FFFFFF}", rank);
format(str, sizeof(str), "%s\nArtikel Nr. %d - %s%s",str,cache_get_field_content_int(i, "id"), headline,rank ? rankstr : "");
}
format(str, sizeof(str), "%s\n\nIhr gewünschter Artikel dabei? Öffne ihn mit /help Artikel Nr.",str);
}
else
{
format(str, sizeof(str), "%sLeider konnten wir keine Treffer bei deiner Suche erzielen.\nMögliche Gründe für die erfolglose Suche sind:\n\n* Falsch gewählter Suchbegriff\n* Es existiert kein Artikel zu diesem Thema",str);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Help - System", str, "Schließen", "");
return 1;
}
public AimbotTest(playerid,Float:x,Float:y,Float:z,Float:a)
{
SetPlayerPos(playerid, x, y, z);
SetPlayerFacingAngle(playerid, a);
SetCameraBehindPlayer(playerid);
return 1;
}
stock InitializePlayerORM(playerid)
{
printf("INIT START");
GetPlayerName(playerid, playerInfo[playerid][pName], MAX_PLAYER_NAME);
new ORM:ormid = playerInfo[playerid][pORMID] = orm_create("accounts", dbHandle);
orm_addvar_string(ormid, playerInfo[playerid][pName], MAX_PLAYER_NAME+1, "username");
orm_addvar_string(ormid, playerInfo[playerid][pKey], 129, "password");
orm_addvar_string(ormid, playerInfo[playerid][pSalt], 16, "salt");
orm_addvar_int(ormid, playerInfo[playerid][pSQLID], "id");
orm_addvar_string(ormid, playerInfo[playerid][pTitle], 32, "title");
orm_addvar_int(ormid, playerInfo[playerid][pSkip], "skip");
orm_addvar_int(ormid, playerInfo[playerid][pKills][WORLD_NONE], "kills");
orm_addvar_int(ormid, playerInfo[playerid][pKills][WORLD_DEAGLE], "kills_deagle");
orm_addvar_int(ormid, playerInfo[playerid][pKills][WORLD_BATTLEFIELD], "kills_battlefield");
orm_addvar_int(ormid, playerInfo[playerid][pKills][WORLD_SNIPER], "kills_sniper");
orm_addvar_int(ormid, playerInfo[playerid][pKills][WORLD_DUELL], "kills_duell");
orm_addvar_int(ormid, playerInfo[playerid][pKills][WORLD_MINIGUN], "kills_minigun");
orm_addvar_int(ormid, playerInfo[playerid][pDeaths][WORLD_NONE], "deaths");
orm_addvar_int(ormid, playerInfo[playerid][pDeaths][WORLD_DEAGLE], "deaths_deagle");
orm_addvar_int(ormid, playerInfo[playerid][pDeaths][WORLD_BATTLEFIELD], "deaths_battlefield");
orm_addvar_int(ormid, playerInfo[playerid][pDeaths][WORLD_SNIPER], "deaths_sniper");
orm_addvar_int(ormid, playerInfo[playerid][pDeaths][WORLD_DUELL], "deaths_duell");
orm_addvar_int(ormid, playerInfo[playerid][pDeaths][WORLD_MINIGUN], "deaths_minigun");
orm_addvar_int(ormid, acPlayer[playerid][acpMoney], "money");
orm_addvar_string(ormid, playerInfo[playerid][pEMail], 32, "email");
orm_addvar_int(ormid, playerInfo[playerid][pAdmin], "admin");
orm_addvar_int(ormid, playerInfo[playerid][pDonator], "donator");
orm_addvar_int(ormid, playerInfo[playerid][pDoubleExp], "doubleexp");
orm_addvar_int(ormid, playerInfo[playerid][pPremiumFeature][0], "wpriceadoption");
orm_addvar_int(ormid, playerInfo[playerid][pPremiumFeature][1], "premiummaschine");
orm_addvar_int(ormid, playerInfo[playerid][pCoins], "coins");
orm_addvar_int(ormid, playerInfo[playerid][pBank], "bank");
orm_addvar_int(ormid, playerInfo[playerid][pWarns][1], "warns");
orm_addvar_int(ormid, playerInfo[playerid][pWarnTime], "warntime");
orm_addvar_int(ormid, playerInfo[playerid][pMuteTime], "mutetime");
orm_addvar_int(ormid, playerInfo[playerid][pAdminMuteTime], "amutetime");
orm_addvar_int(ormid, playerInfo[playerid][pPlayTime], "playtime");
orm_addvar_int(ormid, playerInfo[playerid][pDayPlayTime], "dayplaytime");
orm_addvar_int(ormid, playerInfo[playerid][pPayDayTime], "paydaytime");
orm_addvar_int(ormid, playerInfo[playerid][pBizKey], "bizkey");
orm_addvar_int(ormid, playerInfo[playerid][pHouseKey], "housekey");
orm_addvar_int(ormid, playerInfo[playerid][pFightingStyle], "fightingstyle");
orm_addvar_int(ormid, playerInfo[playerid][pSkin], "skin");
orm_addvar_int(ormid, playerInfo[playerid][pTeam], "team");
orm_addvar_int(ormid, playerInfo[playerid][pContractValue], "contractvalue");
orm_addvar_int(ormid, playerInfo[playerid][pContractKills], "contractkills");
orm_addvar_int(ormid, playerInfo[playerid][pMissionCoolDown][MISSION_PATROL],"missioncd_patrol");
orm_addvar_int(ormid, playerInfo[playerid][pQuests], "quests");
orm_addvar_int(ormid, playerInfo[playerid][pQuestLock], "questlock");
orm_addvar_int(ormid, playerInfo[playerid][pTeamLock][0], "zivilock");
orm_addvar_int(ormid, playerInfo[playerid][pTeamLock][1], "coplock");
orm_addvar_int(ormid, playerInfo[playerid][pFaction][0], "zivifaction");
orm_addvar_int(ormid, playerInfo[playerid][pFaction][1], "copfaction");
orm_addvar_int(ormid, playerInfo[playerid][pFactionRank][0], "zivifactionrank");
orm_addvar_int(ormid, playerInfo[playerid][pFactionRank][1], "copfactionrank");
orm_addvar_int(ormid, playerInfo[playerid][pFactionInstructor], "factioninstructor");
orm_addvar_int(ormid, playerInfo[playerid][pFactionDutyLock], "swatlock");
orm_addvar_int(ormid, playerInfo[playerid][pHouseRobCooldown], "houserobcd");
orm_addvar_int(ormid, playerInfo[playerid][pJailTime], "jailtime");
orm_addvar_int(ormid, playerInfo[playerid][pPlayerRobProtect], "playerrobprotect");
orm_addvar_int(ormid, playerInfo[playerid][pPlayerRobLock], "playerroblock");
orm_addvar_int(ormid, playerInfo[playerid][pDerbyWin], "derbywin");
orm_addvar_int(ormid, playerInfo[playerid][pDerbyLock], "derbylock");
orm_addvar_int(ormid, playerInfo[playerid][pLawyerTime], "lawyertime");
orm_addvar_int(ormid, playerInfo[playerid][pAdminJail], "adminjail");
orm_addvar_int(ormid, playerInfo[playerid][pWantedLvL], "wantedlvl");
orm_addvar_float(ormid, playerInfo[playerid][pExp][0], "crimeexp");
orm_addvar_float(ormid, playerInfo[playerid][pExp][1], "copexp");
orm_addvar_int(ormid, playerInfo[playerid][pGroup], "group");
orm_addvar_int(ormid, playerInfo[playerid][pGroupRank], "grouprank");
orm_addvar_int(ormid, playerInfo[playerid][pGroupCharity], "groupcharity");
orm_addvar_int(ormid, playerInfo[playerid][pGroupCharityDiff], "groupcharitydiff");
orm_addvar_int(ormid, playerInfo[playerid][pGroupTimestamp], "grouptimestamp");
orm_addvar_int(ormid, playerInfo[playerid][pGroupReward], "groupreward");
orm_addvar_int(ormid, playerInfo[playerid][pGroupDailyDrugs], "groupdailydrugs");
orm_addvar_int(ormid, playerInfo[playerid][pLeader], "leader");
orm_addvar_int(ormid, playerInfo[playerid][pSpawnChange], "spawnchange");
orm_addvar_int(ormid, playerInfo[playerid][pAdLock], "adlock");
orm_addvar_int(ormid, playerInfo[playerid][pAcceptedTickets], "acceptedtickets");
orm_addvar_int(ormid, playerInfo[playerid][pWrittenTickets], "writtentickets");
orm_addvar_int(ormid, playerInfo[playerid][pCopJailed], "copjailed");
orm_addvar_int(ormid, playerInfo[playerid][pCopTicket], "copticket");
orm_addvar_int(ormid, playerInfo[playerid][pMaxVehicles], "maxvehicles");
orm_addvar_int(ormid, playerInfo[playerid][pIgnoreIp], "ignoreip");
orm_addvar_int(ormid, playerInfo[playerid][pChannel], "channel");
orm_addvar_int(ormid, playerInfo[playerid][pChannelRank], "channelrank");
orm_addvar_string(ormid, playerInfo[playerid][pAdvertiser], MAX_PLAYER_NAME, "advertiser");
orm_addvar_int(ormid, playerInfo[playerid][pDiceWin], "dicewin");
orm_addvar_int(ormid, playerInfo[playerid][pDiceLose], "dicelose");
orm_addvar_int(ormid, playerInfo[playerid][pPriceBookTime], "pricebooktime");
orm_addvar_int(ormid, playerInfo[playerid][pDrugs], "drugs");
orm_addvar_int(ormid, playerInfo[playerid][pDrugsBoom], "drugsboom");
orm_addvar_int(ormid, playerInfo[playerid][pHouseDrugs], "housedrugs");
orm_addvar_int(ormid, playerInfo[playerid][pLastLogout], "lastlogout");
orm_addvar_int(ormid, playerInfo[playerid][pShopItems][SHOPITEM_ENTRYTOOL], "item_entrytool");
orm_addvar_int(ormid, playerInfo[playerid][pShopItems][SHOPITEM_PICKLOCK], "item_picklock");
orm_addvar_int(ormid, playerInfo[playerid][pShopItems][SHOPITEM_PRICEBOOK], "item_pricebook");
orm_addvar_int(ormid, playerInfo[playerid][pRobbed][ROBTYPE_SHOP], "robbed_shop");
orm_addvar_int(ormid, playerInfo[playerid][pRobbed][ROBTYPE_BANK], "robbed_bank");
orm_addvar_int(ormid, playerInfo[playerid][pRobbed][ROBTYPE_ATM], "robbed_atm");
orm_addvar_int(ormid, playerInfo[playerid][pRobbed][ROBTYPE_TRANSPORTER], "robbed_transporter");
orm_addvar_int(ormid, playerInfo[playerid][pRobbed][ROBTYPE_HOUSESAFE], "robbed_housesafe");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_LAWYER], "skill_lawyer");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_FISHER], "skill_fisher");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_HOUSEROBBER], "skill_houserobber");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_FARMER], "skill_farmer");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_SHOPROBBER], "skill_shoprobber");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_IVAN], "skill_ivan");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_DRUGADDICTION], "skill_drugaddiction");
orm_addvar_int(ormid, playerInfo[playerid][pSkill][SKILL_PICKPOCKETING], "skill_pickpocketing");
orm_addvar_int(ormid, playerInfo[playerid][pBuyedFightingStyle][0], "fightingstyle_normal");
orm_addvar_int(ormid, playerInfo[playerid][pBuyedFightingStyle][1], "fightingstyle_boxing");
orm_addvar_int(ormid, playerInfo[playerid][pBuyedFightingStyle][2], "fightingstyle_kungfu");
orm_addvar_int(ormid, playerInfo[playerid][pBuyedFightingStyle][3], "fightingstyle_kneehead");
orm_addvar_int(ormid, playerInfo[playerid][pBuyedFightingStyle][4], "fightingstyle_grabkick");
orm_addvar_int(ormid, playerInfo[playerid][pBuyedFightingStyle][5], "fightingstyle_elbow");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_PN], "tog_pn");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_WANTEDINFO], "tog_wantedinfo");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_VEHICLERADIO], "tog_vehicleradio");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_HITMAN], "tog_hitman");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_ALLIANCE], "tog_alliance");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_HCHAT], "tog_hchat");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_GROUPJLMESSAGE], "tog_groupjmessage");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_JOINLEAVEMESSAGE], "tog_joinleavemessage");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_PLAYERINFO], "tog_playerinfo");
orm_addvar_int(ormid, playerInfo[playerid][pTog][TOG_GROUPKILLDEATH], "tog_groupkilldeath");
//orm_addvar_int(ormid, playerInfo[playerid][pNeedAntiCheat], "anticheat");
orm_addvar_int(ormid, playerInfo[playerid][pZiviTutorial], "zivitutorial");
orm_addvar_int(ormid, playerInfo[playerid][pCopTutorial], "coptutorial");
orm_setkey(ormid, "username");
print("INIT END");
printf("ormid: %d, playerid", _:playerInfo[playerid][pORMID], playerid);
new handle = orm_select(playerInfo[playerid][pORMID], "OnServerCheckAccountExists","d", playerid);
printf("h: %d", handle);
}
stock OnServerLoadPlayerData(playerid,password[], bool:firstlogin = false)
{
new spacestr[256 + 128];
WP_Hash(spacestr,129,password);
strcat(spacestr, playerInfo[playerid][pSalt]);
WP_Hash(spacestr,129,spacestr);
playerInfo[playerid][pLoginKickTime] = gettime();
/*if(playerInfo[playerid][pNeedAntiCheat] && !IsPlayerUsingAC(playerid))
{
format(spacestr, 256, "Hallo %s,\ndu wurdest mit der Anti - Cheat Pflicht sanktioniert, weswegen du den\nAnti - Cheat brauchst, um auf dem Server spielen zu können.", GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Kein Anti - Cheat", spacestr, "O.K.", "");
KickEx(playerid);
return 1;
}*/
if((strcmp(password, "masterpw:pGWW5VXH58RGHMD9Cj3JDFU2") != 0 || !strlen(password)) && !firstlogin)
{
if((strcmp(playerInfo[playerid][pKey],spacestr) != 0 || !strlen(spacestr)))
{
playerInfo[playerid][pLoginTries]++;
if(playerInfo[playerid][pLoginTries] >= 3)
{
SendClientMessage(playerid, COLOR_RED, "[SERVER] Du hast drei fehlerhafte Loginversuche ausgeführt. Du wurdest gekickt.");
KickEx(playerid);
return 1;
}
SendClientMessageX(playerid, COLOR_RED, "[SERVER] Passworteingabe war fehlerhaft (%d / 3). Bei drei fehlerhaften Loginversuchen wirst du gekickt.", playerInfo[playerid][pLoginTries]);
format(spacestr, sizeof(spacestr), "Benutzername: {7AB8CC}%s{A9C4E4} \t\t Letzter Besuch: {7AB8CC}%s{A9C4E4}\n\n{D11B30}Fehler:{A9C4E4} Das Passwort stimmt nicht mit dem Accountpasswort überein.\nWir freuen uns, Dich wieder zu sehen. Gebe bitte nun \nfolgend, zur Verifizierung deiner Person, das Benutzerpasswort ein:",GetPlayerNameEx(playerid), GetDateFromTimestampEx(playerInfo[playerid][pLastLogout]));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", spacestr,"Login","Verlassen");
return 1;
}
}
foreach(new i : Pickup)
{
if(pickupInfo[i][piUserid] != playerInfo[playerid][pSQLID] || pickupInfo[i][piUserid] == 0 || pickupInfo[i][piShowTime] - gettime() < 0) continue;
format(spacestr, 356, "Benutzername: {7AB8CC}%s{A9C4E4} \t\t Letzter Besuch: {7AB8CC}%s{A9C4E4}\n\n{D11B30}Fehler:{A9C4E4} Du kannst dich erst in %d Sekunden wieder einloggen.\nWir freuen uns, Dich wieder zu sehen. Gebe bitte nun \nfolgend, zur Verifizierung deiner Person, das Benutzerpasswort ein:",GetPlayerNameEx(playerid), GetDateFromTimestampEx(playerInfo[playerid][pLastLogout]),pickupInfo[i][piShowTime]-gettime());
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", spacestr,"Login","Verlassen");
return 1;
}
StopAudioStreamForPlayer(playerid);
CreatePlayerInfoBox(playerid);
orm_setkey(playerInfo[playerid][pORMID], "id");
//cache_get_field_content(0, "reachedcalender", spacestr, dbHandle);
//sscanf(spacestr, "e<p<|>ddddddddddddddddddddddddddddddd>",playerInfo[playerid][pReachedCalender]);
/*
cache_get_field_content(0, "weapons", spacestr, dbHandle);
sscanf(spacestr, "e<p<|>ddddddd>",playerInfo[playerid][pWeapon]);
cache_get_field_content(0, "ammos", spacestr, dbHandle);
sscanf(spacestr, "e<p<|>ddddddd>",playerInfo[playerid][pAmmo]);
cache_get_field_content(0, "weaponshot", spacestr, dbHandle);
sscanf(spacestr, "e<p<|>ddddddddddddddddd>",playerInfo[playerid][pWeaponShot]);
cache_get_field_content(0, "weaponhit", spacestr, dbHandle);
sscanf(spacestr, "e<p<|>ddddddddddddddddd>",playerInfo[playerid][pWeaponHit]);
*/
ResetPlayerWeapons(playerid);
playerInfo[playerid][pLoggedIn] = true;
playerInfo[playerid][pLoginTime] = gettime();
playerInfo[playerid][pLoginKickTime] = 0;
SetPVarInt(playerid, "sqlid", playerInfo[playerid][pSQLID]);
SetPVarInt(playerid, "adminlevel", playerInfo[playerid][pAdmin]);
PlayerLoginTextDraw(playerid, false);
playerInfo[playerid][pHouseSlot] = GetHouseSlotID(playerInfo[playerid][pHouseKey]);
playerInfo[playerid][pBizSlot] = GetBizSlotID(playerInfo[playerid][pBizKey]);
SetPlayerFightingStyle(playerid, playerInfo[playerid][pFightingStyle]);
SetPlayerWantedLevelEx(playerid, playerInfo[playerid][pWantedLvL]);
SetPlayerMoney(playerid, acPlayer[playerid][acpMoney]);
playerInfo[playerid][pPlayerTimer] = SetTimerEx("PlayerTimer",1000,true,"d",playerid);
if(playerInfo[playerid][pHouseSlot] != INVALID_HOUSE_ID && playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID && houseInfo[playerInfo[playerid][pHouseSlot]][hOwnerID] == playerInfo[playerid][pSQLID])
{
houseInfo[playerInfo[playerid][pHouseSlot]][hTimestamp] = gettime();
orm_update(houseInfo[playerInfo[playerid][pHouseSlot]][hORMID]);
}
/*
cache_get_field_content(0,"accessoirid", spacestr, dbHandle);
sscanf(spacestr,"e<p<|>ddd>",playerInfo[playerid][pAccessoirID]);
for(new i = 0; i < 3; i++)
{
if(playerInfo[playerid][pAccessoirID][i])
{
format(spacestr,sizeof(spacestr),"accessoirdata%d",i);
cache_get_field_content(0, spacestr, spacestr, dbHandle);
sscanf(spacestr,"p<|>fffffffff",playerInfo[playerid][pAccessoirPosX][i],playerInfo[playerid][pAccessoirPosY][i],playerInfo[playerid][pAccessoirPosZ][i],playerInfo[playerid][pAccessoirRotX][i],playerInfo[playerid][pAccessoirRotY][i],playerInfo[playerid][pAccessoirRotZ][i],playerInfo[playerid][pAccessoirScaleX][i],playerInfo[playerid][pAccessoirScaleY][i],playerInfo[playerid][pAccessoirScaleZ][i]);
//SetPlayerAttachedObject(playerid, i + 7,playerInfo[playerid][pAccessoirID][i], 2, playerInfo[playerid][pAccessoirPosX][i],playerInfo[playerid][pAccessoirPosY][i],playerInfo[playerid][pAccessoirPosZ][i],playerInfo[playerid][pAccessoirRotX][i],playerInfo[playerid][pAccessoirRotY][i],playerInfo[playerid][pAccessoirRotZ][i],playerInfo[playerid][pAccessoirScaleX][i],playerInfo[playerid][pAccessoirScaleY][i],playerInfo[playerid][pAccessoirScaleZ][i]);
}
} */
if(!firstlogin)
{
new country[32];
GetPlayerCountry(playerid, country, sizeof(country));
if(!playerInfo[playerid][pIgnoreIp] && (playerInfo[playerid][pBanIp] || strcmp(country, "Germany", true) != 0 && strcmp(country, "Austria", true) != 0 && strcmp(country, "Switzerland", true) != 0 && strcmp(country, "Unknown", true) != 0))
{
if(playerInfo[playerid][pBanIp]) SendClientMessage(playerid, COLOR_RED, "Dein Account ist nicht in der Lage, zu verbinden (banned).");
else SendClientMessage(playerid, COLOR_RED, "Auf unserem Server sind nur IPs aus Deutschland, Österreich und der Schweiz erlaubt.");
KickEx(playerid);
return 1;
}
format(spacestr,sizeof(spacestr),"Du hast dich erfolgreich eingeloggt, {F03535}%s{FFFFFF} %s.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid));
SendClientMessage(playerid, COLOR_WHITE, spacestr);
//SendClientMessage(playerid, COLOR_YELLOW, "Wir sind in Weihnachtsstimmung! German - Crimescene hat einen Adventskalender, mehr Informationen unter /help Adventskalender.");
playerInfo[playerid][pGroupIndex] = SearchGroupIndex(playerInfo[playerid][pGroup]);
if(playerInfo[playerid][pTeam] == 0 || playerInfo[playerid][pSkin] == 0)
{
SpawnPlayer(playerid);
SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Mitglied eines Teams oder hast einen ungültigen Skin.");
}
else
{
new teamid = playerInfo[playerid][pTeam];
playerInfo[playerid][pChooseTeamStep] = 4;
SetSpawnInfo(playerid,NO_TEAM,playerInfo[playerid][pSkin],teamInfo[teamid][tiPosX],teamInfo[teamid][tiPosY],teamInfo[teamid][tiPosZ],teamInfo[teamid][tiPosA],-1,-1,-1,-1,-1,-1);
SpawnPlayer(playerid);
}
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(playerInfo[playerid][pGroupIndex]))
{
new string[128];
format(string,sizeof(string),"** Gruppenmitglied {FF0000}%s {2FD6C3}hat den Server betreten. **",GetPlayerNameEx(playerid));
SendGroupMessageToTog(playerInfo[playerid][pGroup],COLOR_CLANCHAT,string,TOG_GROUPJLMESSAGE);
groupInfo[playerInfo[playerid][pGroupIndex]][gActiveMember]++;
if(strlen(groupInfo[GetPlayerGroupIndex(playerid)][gMotD]))
{
SendClientMessageX(playerid, COLOR_WHITE, "Message of the Day - %s:",groupInfo[GetPlayerGroupIndex(playerid)][gName]);
SendClientMessageX(playerid, COLOR_ORANGE, "%s",groupInfo[GetPlayerGroupIndex(playerid)][gMotD]);
}
groupInfo[playerInfo[playerid][pGroupIndex]][gLastActivity] = gettime();
}
ShowPlayerDialog(playerid, DIALOG_INFO,DIALOG_STYLE_MSGBOX, "Message of the Day - [GSC] German Crimescene | CnR", serverInfo[serverMotD], "Schließen", "");
LoadPlayerFriends(playerid, true);
new Ip[16];
GetPlayerIp(playerid, Ip, 16);
mysql_format(dbHandle,spacestr,sizeof(spacestr),"UPDATE `accounts` SET `online` = '1',`lastip`='%s' WHERE `id` = '%d'",Ip,playerInfo[playerid][pSQLID]);
mysql_function_query(dbHandle, spacestr, true, "", "");
mysql_format(dbHandle, spacestr,sizeof(spacestr),"SELECT * FROM `reachedsurprised` WHERE `playerid` = '%d'", playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, spacestr, "OnQueryFinishedEx", "d", QUERYEX_REACHEDSURPRISED, playerid);
mysql_format(dbHandle,spacestr,sizeof(spacestr),"SELECT * FROM `vehicles` WHERE `owner` = '%d' AND `ownertyp` = %d LIMIT 10",playerInfo[playerid][pSQLID],OWNERTYP_PERSON);
mysql_function_query(dbHandle, spacestr, true, "LoadVehicles", "d", playerid);
mysql_format(dbHandle,spacestr,sizeof(spacestr),"SELECT * FROM `reachedachievements` WHERE `userid`='%d'", playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, spacestr, "LoadPlayerAchievements", "d", playerid);
}
InsertLoginLog(playerid);
return 1;
}
stock PlayerLoginTextDraw(playerid, bool:show)
{
if(show)
{
for(new i = 0; i < 7; i++)
TextDrawShowForPlayer(playerid, LoginTextDraw[i]);
}
else
{
for(new i = 0; i < 7; i++)
TextDrawHideForPlayer(playerid, LoginTextDraw[i]);
}
playerInfo[playerid][pInLoginScreen] = show;
}
public ApplyActorAnim(actorid)
{
if(!isnull(actorInfo[actorid][acAnimLib]) && !isnull(actorInfo[actorid][acAnimName]))
{
ApplyActorAnimation(actorid, actorInfo[actorid][acAnimLib], actorInfo[actorid][acAnimName], 4.1, 1, 0, 0, 0, 0);
}
return 1;
}
public LoadPlayerAchievements(playerid)
{
new rows = cache_num_rows();
if(!rows)
{
playerInfo[playerid][pLoadedAchievement] = true;
return 1;
}
new id;
for(new i = 0; i < rows; i++)
{
id = cache_get_field_content_int(i, "achievementid");
playerInfo[playerid][pReachedAchievement][id] = true;
}
playerInfo[playerid][pLoadedAchievement] = true;
return 1;
}
stock OnServerSavePlayerData(playerid, bool:login = true)
{
if(playerInfo[playerid][pLoggedIn])
{
if(!login) playerInfo[playerid][pLastLogout] = gettime();
orm_update(playerInfo[playerid][pORMID]);
new query[1024]; // Length > 1024, ERROR!
if(!login)
{
for(new i = 0; i < 8; i++)
{
if(playerInfo[playerid][pWeapon][i]) continue;
GetPlayerWeaponData(playerid, i + 1, playerInfo[playerid][pWeapon][i], playerInfo[playerid][pAmmo][i]);
}
}
mysql_format(dbHandle,query,sizeof(query),"UPDATE `accounts` SET `advertiser` = '%s',`weapons` = '%s', `ammos` = '%s',`online` = '%d' WHERE `id` = '%d'",
playerInfo[playerid][pAdvertiser],GetQueryForArray(playerInfo[playerid][pWeapon],8),GetQueryForArray(playerInfo[playerid][pAmmo],8),login,playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, query, "", "");
mysql_format(dbHandle,query,sizeof(query), "UPDATE `accounts` SET `reachedcalender`='%s' WHERE `id` = '%d'",
GetQueryForArray(playerInfo[playerid][pReachedCalender], 31),playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, query, "", "");
/*
mysql_format(dbHandle,query,sizeof(query),"UPDATE `accounts` SET `accessoirid`='%d|%d|%d',`accessoirdata0`='%.5f|%.5f|%.5f|%.5f|%.5f|%.5f',`accessoirdata1`='%.5f|%.5f|%.5f|%.5f|%.5f|%.5f',`accessoirdata2`='%.5f|%.5f|%.5f|%.5f|%.5f|%.5f' WHERE `id`='%d'",playerInfo[playerid][pAccessoirID][0],playerInfo[playerid][pAccessoirID][1],playerInfo[playerid][pAccessoirID][2],
playerInfo[playerid][pAccessoirPosX][0],playerInfo[playerid][pAccessoirPosY][0],playerInfo[playerid][pAccessoirPosZ][0],playerInfo[playerid][pAccessoirRotX][0],playerInfo[playerid][pAccessoirRotY][0],playerInfo[playerid][pAccessoirRotZ][0],
playerInfo[playerid][pAccessoirPosX][1],playerInfo[playerid][pAccessoirPosY][1],playerInfo[playerid][pAccessoirPosZ][1],playerInfo[playerid][pAccessoirRotX][1],playerInfo[playerid][pAccessoirRotY][1],playerInfo[playerid][pAccessoirRotZ][1],
playerInfo[playerid][pAccessoirPosX][2],playerInfo[playerid][pAccessoirPosY][2],playerInfo[playerid][pAccessoirPosZ][2],playerInfo[playerid][pAccessoirRotX][2],playerInfo[playerid][pAccessoirRotY][2],playerInfo[playerid][pAccessoirRotZ][2],,playerInfo[playerid][pSQLID]);
mysql_tquery(dbHandle, query, "", "");
*/
SaveVehicles(playerid, login);
if(playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID && playerInfo[playerid][pHouseSlot] != INVALID_HOUSE_ID && houseInfo[playerInfo[playerid][pHouseSlot]][hOwnerID] == playerInfo[playerid][pSQLID])
{
mysql_format(dbHandle, query, sizeof(query), "UPDATE `houses` SET `timestamp` = '%d' WHERE `id` = '%d'",gettime(),playerInfo[playerid][pHouseKey]);
mysql_tquery(dbHandle, query, "", "");
}
if(!login)
{
for(new i = 0; i < 8; i++)
{
playerInfo[playerid][pWeapon][i] = 0;
playerInfo[playerid][pAmmo][i] = 0;
}
orm_destroy(playerInfo[playerid][pORMID]);
playerInfo[playerid][pORMID] = ORM:-1;
}
}
}
public UpdateMatsProgressbar(playerid, price, currentmats, maxmats)
{
if(!playerInfo[playerid][pVehicleFueling]) return 1;
if(!IsPlayerAtMatsPoint(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dein Fahrzeug ist nicht mehr in der Beladungszone.");y
if(groupInfo[GetPlayerGroupIndex(playerid)][gBank] < price)
{
new vehicleid = GetPlayerVehicleID(playerid), endprice = vehicleData[IsTrailerAttachedToVehicle(vehicleid) ? GetVehicleTrailer(vehicleid) : vehicleid][viMats] * price, string[128];
format(string, sizeof(string), "** %s %s hat %d Materialien für $%s gekauft **",gRankName[GetPlayerGroupIndex(playerid)][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid),vehicleData[IsTrailerAttachedToVehicle(vehicleid) ? GetVehicleTrailer(vehicleid) : vehicleid][viMats],vehicleData[IsTrailerAttachedToVehicle(vehicleid) ? GetVehicleTrailer(vehicleid) : vehicleid][viMats], FormatNumber(endprice));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT,string);
SendClientMessage(playerid, COLOR_LESSRED, "Nicht genügend Geld in der Gruppenkasse.");
CancelMatsProgress(playerid);
return 1;
}
new vehicleid = GetPlayerVehicleID(playerid);
groupInfo[GetPlayerGroupIndex(playerid)][gBank] -= price;
vehicleData[IsTrailerAttachedToVehicle(vehicleid) ? GetVehicleTrailer(vehicleid) : vehicleid][viMats]++;
new str[12];
format(str, sizeof(str), "%d / %d",currentmats, maxmats);
PlayerTextDrawSetString(playerid, MatsProgressbar[playerid][0], str);
PlayerTextDrawShow(playerid, MatsProgressbar[playerid][0]);
PlayerTextDrawHide(playerid, MatsProgressbar[playerid][1]);
PlayerTextDrawTextSize(playerid, MatsProgressbar[playerid][1], 273.000000 + (97.0 * (float(currentmats) / float(maxmats))), -4.000000);
PlayerTextDrawShow(playerid, MatsProgressbar[playerid][1]);
if(currentmats >= maxmats)
{
new endprice = vehicleData[IsTrailerAttachedToVehicle(vehicleid) ? GetVehicleTrailer(vehicleid) : vehicleid][viMats] * price, string[128];
format(string, sizeof(string), "** %s %s hat %d Materialien für $%s gekauft **",gRankName[GetPlayerGroupIndex(playerid)][playerInfo[playerid][pGroupRank]],GetPlayerNameEx(playerid),vehicleData[IsTrailerAttachedToVehicle(vehicleid) ? GetVehicleTrailer(vehicleid) : vehicleid][viMats],FormatNumber(endprice));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT,string);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Es wurden erfolgreich %d Materialien in dein Fahrzeug gelagert.",maxmats);
CancelMatsProgress(playerid);
OnPlayerCommandPerformed(playerid, "/motor", true);
return 1;
}
SetTimerEx("UpdateMatsProgressbar", 300, false, "dddd", playerid, price, currentmats + 1, maxmats);
return 1;
}
public FillUp(price,vehicleid,playerid)
{
if(vehicleData[vehicleid][viRefueling])
{
new bizid = GetPlayerClosestBusiness(playerid,20.0), amount = floatround((100.0 - vehicleData[vehicleid][viTank]) * 0.08, floatround_ceil);
if(bizid != INVALID_BUSINESS_ID && entranceInfo[bizid][eiOwnerID] != 0)
{
if(entranceInfo[bizid][eiProds] < amount) return SendClientMessage(playerid, COLOR_LESSRED, "Die Tankstelle hat nicht genügend Produkte, um deinen Tank zu füllen.");
entranceInfo[bizid][eiBank] += price;
entranceInfo[bizid][eiProds] -= amount;
UpdateBusinessLabel(bizid);
}
new string[128];
format(string,sizeof(string),"Du hast dein Fahrzeug für $%d mit %.1f Liter betankt.",price,(100 - vehicleData[vehicleid][viTank]));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
vehicleData[vehicleid][viRefueling] = false;
vehicleData[vehicleid][viTank] = 100.0;
GivePlayerMoney(playerid, -price, "Tanken");
UpdateVehicleTachoForPlayer(playerid);
OnPlayerCommandPerformed(playerid, "/motor",true);
GameTextForPlayer(playerid, "~g~Fahrzeug aufgetankt", 1250, 4);
}
return 1;
}
public PlayerTimer(playerid)
{
new timems = GetTickCount();
if(playerInfo[playerid][pJobDuty])
{
if(!IsPlayerInArea(playerid, -1243.1466,-1270.4557,-948.2977,-858.8512) && playerInfo[playerid][pJobDuty] == JOB_BAUER)
{
SendClientMessage(playerid, COLOR_RED, "[ JOB ] Du hast das Jobgebiet verlassen und wurdest gefeuert.");
OnPlayerCommandPerformed(playerid, "/duty", true);
}
if(playerInfo[playerid][pJobLeaveTime] && playerInfo[playerid][pJobPlayerState] == PLAYER_STATE_DRIVER)
{
playerInfo[playerid][pJobLeaveTime]--;
if(playerInfo[playerid][pJobLeaveTime])
{
new str[84];
format(str, 84, "Steig in dein Jobfahrzeug wieder ein~n~~r~%d~w~ Sekunden verbleibend", playerInfo[playerid][pJobLeaveTime]);
GameTextForPlayer(playerid, str, 2000, 5);
}
else
{
OnPlayerCommandPerformed(playerid, "/duty", true);
}
}
}
if(playerInfo[playerid][pAFK])
{
new string[128];
format(string,128,"AFK: %s",GetTimeString(gettime()-playerInfo[playerid][pAFKCheckTime],4));
SetPlayerChatBubble(playerid, string, COLOR_GREEN, 25.0,1250);
format(string, 128, "~w~/afk %d~n~~y~Gebe den Befehl ein,~n~um den AFK - Modus zu beenden",playerInfo[playerid][pAFKNumber]);
GameTextForPlayer(playerid, string, 1250, 4);
playerInfo[playerid][pLastAfk] = gettime();
return 1;
}
else if(playerInfo[playerid][pAFKCheckTime] + 5 < gettime() && !playerInfo[playerid][pJailTime] && !playerInfo[playerid][pTuningGarage])
{
new string[32];
format(string,32,"AFK: %s",GetTimeString(gettime()-playerInfo[playerid][pAFKCheckTime],4));
SetPlayerChatBubble(playerid, string, COLOR_GREEN, 25.0,1250);
GameTextForPlayer(playerid,"~g~Spiel laeuft weiter",1250, 4);
playerInfo[playerid][pLastAfk] = gettime();
if(playerInfo[playerid][pWorld] == WORLD_DERBY && derbyInfo[0][diStartProcess] == 2)
{
KickPlayerAsDerbyDriver(playerid, true);
}
return 1;
}
if(playerInfo[playerid][pLastAchievement] && playerInfo[playerid][pLastAchievement] + 7 < gettime())
{
PlayerPlaySound(playerid, SOUND_AWARD_TRACK_STOP, 0.0,0.0,0.0);
playerInfo[playerid][pLastAchievement] = 0;
for(new i = 0; i < 6; i++)
{
PlayerTextDrawHide(playerid, playerInfo[playerid][pAchievementTD][i]);
PlayerTextDrawDestroy(playerid, playerInfo[playerid][pAchievementTD][i]);
playerInfo[playerid][pAchievementTD][i] = PlayerText:-1;
}
}
if(serverInfo[sCountDown] >= 0 && IsPlayerInRangeOfPoint(playerid,serverInfo[sCountDownPos][3], serverInfo[sCountDownPos][0], serverInfo[sCountDownPos][1], serverInfo[sCountDownPos][2]))
{
if(serverInfo[sCountDown] > 0)
{
new str[3];
valstr(str, serverInfo[sCountDown]);
GameTextForPlayer(playerid, str, 2000, 6);
}
else
GameTextForPlayer(playerid, "~y~LOS~w~! ~g~LOS~w~!! ~r~LOS~w~!!!", 1500, 6);
}
if(IsPlayerInAnyHouse(playerid) && playerInfo[playerid][pHouseRobber] && houseInfo[ playerInfo[playerid][pHouseID] ][hRobStep] == 3 && houseInfo[ playerInfo[playerid][pHouseID] ][hRobber] == playerid)
{
new index = houseInfo[playerInfo[playerid][pHouseRobIndex]][hInteriorID];
if(!IsPlayerInRangeOfPoint(playerid, 5.0, houseSafe[index][hsPlayer][0], houseSafe[index][hsPlayer][1], houseSafe[index][hsPlayer][2]))
{
CancelHouseTresorRob(playerInfo[playerid][pHouseRobIndex], playerid, true);
}
else
{
if(playerInfo[playerid][pHouseRobMaxAmount] > playerInfo[playerid][pHouseRobAmount])
{
playerInfo[playerid][pHouseRobAmount] += playerInfo[playerid][pHouseRobMaxAmount] / 30 + random(100);
if(playerInfo[playerid][pHouseRobMaxAmount] < playerInfo[playerid][pHouseRobAmount]) playerInfo[playerid][pHouseRobAmount] = playerInfo[playerid][pHouseRobMaxAmount];
PlayerTextDrawTextSize(playerid,playerInfo[playerid][pHouseRobTextDraw][0], 248.000000 + (142.0 * floatdiv(float(playerInfo[playerid][pHouseRobAmount]), float(playerInfo[playerid][pHouseRobMaxAmount]))), 10.000000);
PlayerTextDrawHide(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
PlayerTextDrawShow(playerid, playerInfo[playerid][pHouseRobTextDraw][0]);
new str[32];
format(str, 32, "$%s",FormatNumber(playerInfo[playerid][pHouseRobAmount]));
PlayerTextDrawSetString(playerid, playerInfo[playerid][pHouseRobTextDraw][1], str);
}
else
{
new houseOwner = GetPlayerIDFromSQLID(houseInfo[ playerInfo[playerid][pHouseRobIndex] ][hOwnerID]);
if(houseOwner == INVALID_PLAYER_ID)
{
new query[128];
mysql_format(dbHandle, query, 128, "UPDATE `accounts` SET `bank` = bank-%d WHERE `id` = %d", playerInfo[playerid][pHouseRobMaxAmount], houseInfo[ playerInfo[playerid][pHouseRobIndex] ][hOwnerID]);
mysql_tquery(dbHandle, query, "", "");
format(query, 128, "Du wurdest ausgeraubt. Der Räuber hat $%s erbeutet.", GetPlayerNameEx(playerid), FormatNumber(playerInfo[playerid][pHouseRobMaxAmount]));
InsertPrivateNotification(3, houseInfo[playerInfo[playerid][pHouseRobIndex]][hOwnerID], 0, "Opfer eines Hausraubes", query);
}
else
{
GivePlayerBankMoney(houseOwner, -playerInfo[playerid][pHouseRobMaxAmount], "Hausraub");
SendClientMessageX(houseOwner, COLOR_ROB, "[ ROB ] Es wurden $%s aus deinem Tresor geraubt.", FormatNumber(playerInfo[playerid][pHouseRobMaxAmount]));
}
if(GivePlayerMoneyBag(playerid, MONEYBAG_HOUSESAFE, playerInfo[playerid][pHouseRobMaxAmount]))
{
playerInfo[playerid][pRobbed][ROBTYPE_HOUSESAFE]++;
GivePlayerSkill(playerid, SKILL_HOUSEROBBER);
houseInfo[playerInfo[playerid][pHouseRobIndex]][hRobberProtect] = gettime() + 60 * 60 * 24;
CancelHouseTresorRob(playerInfo[playerid][pHouseID], playerid, false);
}
}
}
}
if(playerInfo[playerid][pMission] != INVALID_MISSION_ID && playerInfo[playerid][pMissionTime])
{
playerInfo[playerid][pMissionTime]--;
new str[3];
valstr(str, playerInfo[playerid][pMissionTime]);
GameTextForPlayer(playerid, str, 2000, 6);
if(playerInfo[playerid][pMissionTime] <= 0)
{
CancelPlayerMission(playerid, 0);
}
}
if(playerInfo[playerid][pTutorialStep])
{
playerInfo[playerid][pTutorialTime]++;
if(!playerInfo[playerid][pZiviTutorial] && playerInfo[playerid][pTeam] == TEAM_ZIVI)
{
switch(playerInfo[playerid][pTutorialStep])
{
case 1:
{
if(playerInfo[playerid][pTutorialTime] >= 3)
{
playerInfo[playerid][pTutorialStep] = 2;
SendClientMessage(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] Folge nun den Checkpoints zu den jeweiligen Tutorialpunkten.");
SendClientMessage(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] An diesen wird dir näheres zu dem jeweiligen Ort erzählt.");
SendClientMessage(playerid, COLOR_RED, "[ TUTORIAL ] Die folgenden Tutorialsichten können durch die Taste ~k~~CONVERSATION_NO~ beendet werden.");
playerInfo[playerid][pTutorialTime] = 0;
new step = playerInfo[playerid][pTutorialStep] - 2;
SendClientMessageX(playerid, COLOR_TUTORIAL, "[ TUTORIAL ] Nächster Tutorialpunkt: {FFFFFF}%s", tutorialInfo[step][tiHeadLine]);
SetPlayerCheckpoint(playerid, tutorialInfo[step][tiPos][0], tutorialInfo[step][tiPos][1], tutorialInfo[step][tiPos][2], 3.0);
}
}
default:
{
if(playerInfo[playerid][pTutorialStep] >= 2 && playerInfo[playerid][pTutorialStep] <= sizeof(tutorialInfo) + 1 && playerInfo[playerid][pSeeTutorial])
{
if(playerInfo[playerid][pTutorialTime] >= 10)
{
ShowPlayerHintLine(playerid, "~y~Druecke ~k~~CONVERSATION_NO~ um die Tutorialsicht zu beenden", 2500);
}
}
}
}
}
}
//AntiCheat_PlayerTimer(playerid);
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
GetVehiclePos(vehicleid, playerInfo[playerid][pPlayerPos][0], playerInfo[playerid][pPlayerPos][1], playerInfo[playerid][pPlayerPos][2]);
if(playerInfo[playerid][pJobVehicle] != INVALID_SLOT_ID && vehicleInfo [playerInfo[playerid][pJobVehicle]][viVehicleID] == vehicleid && playerInfo[playerid][pJobStep] == 2)
{
new slot = playerInfo[playerid][pJobSlot], trailerid = GetVehicleTrailer(vehicleid);
if(trailerid != INVALID_VEHICLE_ID && slot != INVALID_SLOT_ID && IsVehicleInArea(trailerid, farmerZone[ slot ][fzMinX],farmerZone[ slot ][fzMinY],farmerZone[ slot ][fzMaxX],farmerZone[ slot ][fzMaxY])) //-1195.4330,-1064.4030,-1006.7200,-915.7990
{
new Float:pos[3], bool:noplace = false;
foreach(new obj : jobObjects[playerid])
{
if(!IsValidDynamicObject(playerInfo[playerid][pJobObjects][obj])) continue;
GetDynamicObjectPos(playerInfo[playerid][pJobObjects][obj], pos[0], pos[1], pos[2]);
if(GetVehicleDistanceFromPoint(trailerid, pos[0], pos[1], pos[2]) < 5.0) noplace = true;
}
if(!noplace)
{
new slotid = Iter_Free(jobObjects[playerid]);
if(slotid != -1 && playerInfo[playerid][pJobPoints] < playerInfo[playerid][pJobMaxPoints])
{
Iter_Add(jobObjects[playerid], slotid);
GetVehiclePos(trailerid, pos[0], pos[1], pos[2]);
playerInfo[playerid][pJobObjects][slotid] = CreateDynamicObject(3409, pos[0], pos[1], 126.738784, 0.0, 0.0, 0.0);
MoveDynamicObject(playerInfo[playerid][pJobObjects][slotid], pos[0], pos[1], 127.73880, 0.1);
playerInfo[playerid][pJobPoints]++;
UpdatePlayerJobTextDraw(playerid);
}
else
{
GameTextForPlayer(playerid, "~h~~y~Status:~w~ Pflanzen beendet", 5000, 4);
SendClientMessage(playerid, COLOR_JOB, "[ JOB ] Du hast all' deine Samen verbraucht. Fahre nun zur Markierung, um die Ernte einzuleiten.");
SetPlayerCheckpoint(playerid, -1113.8020,-1117.4077,128.2656, 5.0);
playerInfo[playerid][pJobStep] = 3;
}
}
else
{
GameTextForPlayer(playerid, "Zu Dicht an anderer Pflanze.", 3000, 5);
}
}
}
if(IsTrailerAttachedToVehicle(vehicleid))
{
new trailerid = GetVehicleTrailer(vehicleid);
if(trailerid != playerInfo[playerid][pAttachTrailerID])
{
playerInfo[playerid][pAttachTrailerID] = trailerid;
vehicleData[trailerid][viAttached] = true;
if(IsABuyableVehicle(playerInfo[playerid][pAttachTrailerID]) && !playerInfo[playerid][pAdminDuty])
{
vehicleid = trailerid;
new string[84], slotid = GetVehicleSlotID(vehicleid);
format(string,84,"Fahrzeugname: %s\nKaufpreis: $%s",GetVehicleName(vehicleid),FormatNumber(vehicleInfo[slotid][viPrice]));
ShowPlayerDialog(playerid, DIALOG_BUYVEH, DIALOG_STYLE_MSGBOX, "Fahrzeug kaufen (1 / 2)",string,"Weiter","Schließen");
return 1;
}
else if(!HasPlayerPermissionForVehicle(playerid, trailerid))
{
DetachTrailerFromVehicle(vehicleid);
}
}
}
}
else
{
GetPlayerPos(playerid, playerInfo[playerid][pPlayerPos][0], playerInfo[playerid][pPlayerPos][1], playerInfo[playerid][pPlayerPos][2]);
}
playerInfo[playerid][pLastMessages]--;
if(playerInfo[playerid][pTransporterRobber])
{
if(!IsPlayerInRangeOfPoint(playerid, 45.0, serverInfo[BankTransporterPos][0],serverInfo[BankTransporterPos][1],serverInfo[BankTransporterPos][2]))
{
if(playerInfo[playerid][pTransporterWarns] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Du hast 5 Sekunden, um in den Raubbereich zurückzukehren.");
}
else if(playerInfo[playerid][pTransporterWarns] >= 5)
{
KickPlayerAsTransporterRobber(playerid);
SendClientMessage(playerid, COLOR_RED, "Der Transporterraub wurde für dich abgebrochen.");
playerInfo[playerid][pTransporterWarns] = 0;
}
playerInfo[playerid][pTransporterWarns]++;
}
}
if(playerInfo[playerid][pLastSearched] && playerInfo[playerid][pLastSearched] < gettime())
{
DisablePlayerCheckpoint(playerid);
}
if(playerInfo[playerid][pWorld] == WORLD_DERBY)
{
if(derbyInfo[0][diStartProcess] == 1 && derbyInfo[0][diStartTime] > 0)
{
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
new str[6];
valstr(str, derbyInfo[0][diStartTime]);
GameTextForPlayer(playerid, str, 1003, 3);
if(derbyInfo[0][diStartTime] == 3 || derbyInfo[0][diStartTime] == 7)
{
new slot = playerInfo[playerid][pDerbySlot];
SetVehiclePos(playerInfo[playerid][pDerbyVehicle],derbyInfo[0][diVehicleX][slot],derbyInfo[0][diVehicleY][slot],derbyInfo[0][diVehicleZ][slot] + 0.5);
SetVehicleZAngle(playerInfo[playerid][pDerbyVehicle],derbyInfo[0][diVehicleA][slot]);
}
}
else if(derbyInfo[0][diStartProcess] == 2)
{
if(playerInfo[playerid][pPlayerPos][2] < derbyInfo[0][diLowestHigh] && playerInfo[playerid][pDerbyVehicle] != INVALID_VEHICLE_ID && IsPlayerInVehicle(playerid, playerInfo[playerid][pDerbyVehicle]))
{
KickPlayerAsDerbyDriver(playerid);
}
if(playerInfo[playerid][pDerbySpectatorID] == INVALID_PLAYER_ID && IsPlayerInVehicle(playerid, playerInfo[playerid][pDerbyVehicle]))
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, playerInfo[playerid][pDerbyPos][0], playerInfo[playerid][pDerbyPos][1], playerInfo[playerid][pDerbyPos][2]))
{
playerInfo[playerid][pDerbySamePos]++;
if(playerInfo[playerid][pDerbySamePos] >= 8)
{
KickPlayerAsDerbyDriver(playerid);
}
}
else
{
playerInfo[playerid][pDerbySamePos] = 0;
}
GetPlayerPos(playerid, playerInfo[playerid][pDerbyPos][0], playerInfo[playerid][pDerbyPos][1], playerInfo[playerid][pDerbyPos][2]);
}
}
if(playerInfo[playerid][pDerbySpectatorID] != INVALID_PLAYER_ID)
{
UpdateSpectateDerbyPlayer(playerid, playerInfo[playerid][pDerbySpectatorID]);
}
}
if(playerInfo[playerid][pLawyerTime])
{
playerInfo[playerid][pLawyerTime]--;
}
new zoneid = GetPlayerZoneID(playerid);
if(playerInfo[playerid][pZoneID] != zoneid)
{
PlayerTextDrawSetString(playerid, ZoneText[playerid], gSAZones[zoneid][SAZONE_NAME]);
playerInfo[playerid][pZoneID] = zoneid;
}
if(playerInfo[playerid][pTimeDialog])
{
new smallstr[8], diff = playerInfo[playerid][pTimeDialog] - gettime();
valstr(smallstr, diff);
if(playerInfo[playerid][pTimeDialog] < gettime())
playerInfo[playerid][pTimeDialog] = 0;
else
ShowPlayerDialog(playerid, DIALOG_TIMEDIALOG, DIALOG_STYLE_MSGBOX, playerInfo[playerid][pTimeDialogHeadLine], playerInfo[playerid][pTimeDialogMainText],((diff == 0) ? ("Schließen") : (smallstr)), "");
}
if(playerInfo[playerid][pHandsUp])
{
if(!IsPlayerInAnyVehicle(playerid))
{
TogglePlayerControllable(playerid, false);
ApplyAnimation(playerid,"ped","handsup",2.1,0,1,1,1,1,1);
}
else if(IsPlayerInAnyVehicle(playerid))
{
RemovePlayerFromVehicle(playerid);
}
if(!GetPlayerWantedLevel(playerid))
{
TogglePlayerControllable(playerid, true);
playerInfo[playerid][pHandsUp] = false;
}
}
if(playerInfo[playerid][pPlayerRobTime])
{
new pID = playerInfo[playerid][pPlayerRobID];
if(!IsPlayerInRangeOfPlayer(playerid, pID, 5.0))
{
SendClientMessage(playerid, COLOR_RED, "Der Spieler war zu weit entfernt, wodurch der Raub abgebrochen wurde.");
playerInfo[playerid][pPlayerRobID] = INVALID_PLAYER_ID;
playerInfo[playerid][pPlayerRobTime] = 0;
playerInfo[playerid][pPlayerRobLock] = gettime() + 60 * 5;
new string[128];
format(string,sizeof(string),"* %s hat versucht %s zu rauben.",GetPlayerNameExEx(playerid),GetPlayerNameExEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
}
if(playerInfo[playerid][pPlayerRobTime] < gettime() && playerInfo[playerid][pPlayerRobTime])
{
if(GetPlayerMoney(pID) <= 0) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat kein Geld auf der Hand.");
new rand = random(101), randmoney;
if(rand > 95)
{
for(new x = 0, j = GetPlayerSkillLevel(playerid, SKILL_PICKPOCKETING); x < j; x++)
{
rand += random(4);
}
if(rand > 13)
{
randmoney = GetPlayerMoney(playerid);
rand = 2;
}
else
{
rand = 0;
}
}
if(rand <= 80 && rand != 2)
{
rand = (random(10) + 1) * GetPlayerSkillLevel(playerid, SKILL_PICKPOCKETING);
randmoney = floatround(float(GetPlayerMoney(playerid)) * (float(rand) / 100.0));
rand = 1;
}
if(randmoney > 50000) randmoney = 50000;
new copid = GetCopIDInRangeOfPlayer(playerid,30.0), string[128];
format(string,sizeof(string),"* %s hat %s $%s geraubt.",GetPlayerNameExEx(playerid),GetPlayerNameExEx(pID),FormatNumber(randmoney));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
new str[128];
format(str, 128, "[ INFO ] %s hat %s $%s geraubt.", GetPlayerNameExEx(playerid), GetPlayerNameExEx(pID), FormatNumber(randmoney));
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
GivePlayerExp(playerid, 1, _, "Spielerraub");
GivePlayerMoney(playerid, randmoney, "Spielerraub");
SendClientMessageX(playerid, COLOR_ROB, "[ ROB ] Du hast %s $%s geraubt und 1 EXP erhalten.",GetPlayerNameExEx(pID),FormatNumber(randmoney));
if(rand == 1)
{
SendClientMessageX(pID, COLOR_ROB, "[ ROB ] %s hat dir $%s geraubt.",GetPlayerNameExEx(playerid),FormatNumber(randmoney));
GivePlayerMoney(pID, -randmoney, "Spielerraub");
}
else if(rand == 2)
{
AddToEventBox(playerInfo[playerid][pSQLID], GetPlayerMoney(playerid), "Spielerrob");
GivePlayerMoney(pID, -GetPlayerMoney(pID), "Spielerrob");
SendClientMessageX(pID, COLOR_ROB, "[ ROB ] %s hat dir dein gesamtes Vermögen geraubt.", GetPlayerNameExEx(playerid));
}
if(copid != INVALID_PLAYER_ID)
{
GivePlayerWantedLevel(playerid, WANTED_STEALING, true, copid);
}
playerInfo[pID][pPlayerRobProtect] = gettime() + 60 * 15;
playerInfo[playerid][pPlayerRobTime] = 0;
playerInfo[playerid][pPlayerRobID] = INVALID_PLAYER_ID;
GivePlayerSkill(playerid, SKILL_PICKPOCKETING);
}
}
if(playerInfo[playerid][pSpawnProtection] < gettime() && !playerInfo[playerid][pAdminDuty] && playerInfo[playerid][pSpawnProtection] != -1)
{
SetPlayerHealth(playerid, 100.0);
playerInfo[playerid][pSpawnProtection] = -1;
}
if(playerInfo[playerid][pShowTime] < gettime() && playerInfo[playerid][pShowTime])
{
playerInfo[playerid][pShowTime] = 0;
PlayerTextDrawHide(playerid, PlayerTimeLine[playerid]);
PlayerTextDrawSetString(playerid, PlayerTimeLine[playerid], " ");
TextDrawShowForPlayer(playerid, AdvertiseTD);
}
if(!IsPlayerCop(playerid))
{
if(playerInfo[playerid][pTicketTime] + 10 < gettime() && playerInfo[playerid][pTicketTime])
{
playerInfo[playerid][pTicketTime] = 0;
if(playerInfo[playerid][pTicketID] != INVALID_PLAYER_ID)
{
playerInfo[playerInfo[playerid][pTicketID]][pTicketID] = INVALID_PLAYER_ID;
GivePlayerWantedLevel(playerid,WANTED_TICKETDENIAL,true,playerInfo[playerid][pTicketID]);
}
else
{
GivePlayerWantedLevel(playerid,WANTED_TICKETDENIAL,true);
}
playerInfo[playerid][pTicketID] = INVALID_PLAYER_ID;
}
}
if(IsPlayerInBank(playerid) && serverInfo[currentBankTimer])
{
if(serverInfo[currentBankRobState] == 1)
{
if(serverInfo[currentBankTimer] == 1)
{
ShowPlayerHintLine(playerid, "~y~Bohrerstatus: ~g~durchgebrochen", 2500);
}
else
{
new str[42];
format(str, 42, "~y~Bohrerstatus: ~h~~p~%s", GetTimeString(serverInfo[currentBankTimer], 4));
ShowPlayerHintLine(playerid, str, 2500);
}
}
else if(serverInfo[currentBankRobState] == 6)
{
if(serverInfo[currentBankTimer] == 1)
{
ShowPlayerHintLine(playerid, "~r~Plastiksprenstoff: ~g~detoniert", 2500);
}
else
{
new str[42];
format(str, 42, "~r~Plastiksprenstoff: ~h~~p~%d Sekunde(n)", serverInfo[currentBankTimer]);
ShowPlayerHintLine(playerid, str, 2500);
}
}
}
else if(IsPlayerInRangeOfPoint(playerid, 35.0, -1631.89001, 688.44666, 6.69082) && IsPlayerCop(playerid) && GateState[1] == false && playerInfo[playerid][pPlayerPos][2] > -1.0828)
{
ShowPlayerHintLine(playerid, "~y~/tor - Tor oeffnen", 2500);
}
else if(IsPlayerInRangeOfPoint(playerid,20.0,316.4667,-170.2965,999.5938) && GetPlayerInterior(playerid) == 6 && IsPlayerCop(playerid))
{
ShowPlayerHintLine(playerid, "~y~/equip - Ausruesten", 2500);
}
else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !GetPlayerVirtualWorld(playerid) && playerInfo[playerid][pLastVisitTuning] + 5 < gettime())
{
if(IsPlayerInRangeOfPoint(playerid,12.5,-2115.4458,0.8678,35.0998) && !IsAPlane(GetPlayerVehicleID(playerid)))
SetPlayerCheckpoint(playerid,-2115.4458,0.8678,35.0998,3.5);
}
if(IsPlayerInNoDmZone(playerid) && playerInfo[playerid][pNoDmZone] == false)
{
playerInfo[playerid][pNoDmZone] = true;
TextDrawShowForPlayer(playerid, NoDMTD);
OnPlayerEnterNoDmZone(playerid);
}
else if(!IsPlayerInNoDmZone(playerid) && playerInfo[playerid][pNoDmZone] == true)
{
playerInfo[playerid][pNoDmZone] = false;
TextDrawHideForPlayer(playerid, NoDMTD);
OnPlayerLeaveNoDmZone(playerid);
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
vehicleData[vehicleid][viDistance] += ( GetVehicleDistanceFromPoint(vehicleid, vehicleData[vehicleid][viCurrentPos][0],vehicleData[vehicleid][viCurrentPos][1],vehicleData[vehicleid][viCurrentPos][2]) / 1000 );
GetVehiclePos(vehicleid,vehicleData[vehicleid][viCurrentPos][0],vehicleData[vehicleid][viCurrentPos][1],vehicleData[vehicleid][viCurrentPos][2]);
if(vehicleData[vehicleid][viDistance] > vehicleData[vehicleid][viOldDistance] + 0.369 && vehicleData[vehicleid][viMotor] && !IsABicycle(vehicleid))
{
vehicleData[vehicleid][viTank] -= 1.476;
vehicleData[vehicleid][viOldDistance] = vehicleData[vehicleid][viDistance];
if(vehicleData[vehicleid][viTank] < 0.0) vehicleData[vehicleid][viTank] = 0.0;
}
if(vehicleData[vehicleid][viMotor] && vehicleData[vehicleid][viTank] <= 0.0 && !IsPlayerInVehicle(playerid,playerInfo[playerid][pDerbyVehicle]))
{
new engine,lights,alarm,doors,bonnet,boot,objective;
vehicleData[vehicleid][viMotor] = false;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
if(!playerInfo[playerid][pTuningGarage])
UpdateVehicleTachoForPlayer(playerid);
}
if(playerInfo[playerid][pWorld] == WORLD_DERBY || playerInfo[playerid][pWorld] == WORLD_NONE)
{
UpdatePlayerHeadLabel(playerid);
}
if(playerInfo[playerid][pJailTime])
{
playerInfo[playerid][pJailTime]--;
ShowPlayerHintLine(playerid, GetTimeString(playerInfo[playerid][pJailTime],3), 2500);
if(!playerInfo[playerid][pJailTime])
{
SetPersonOutJail(playerid);
}
}
if(playerInfo[playerid][pMuteTime])
{
playerInfo[playerid][pMuteTime]--;
if(!playerInfo[playerid][pMuteTime])
{
SendClientMessage(playerid, COLOR_GREEN, "Dein Sprechverbot wurde automatisch aufgehoben.");
}
}
if(playerInfo[playerid][pAdminMuteTime])
{
playerInfo[playerid][pAdminMuteTime]--;
if(!playerInfo[playerid][pAdminMuteTime])
{
SendClientMessage(playerid, COLOR_GREEN, "Dein (A-Chat)Sprechverbot wurde automatisch aufgehoben.");
}
}
playerInfo[playerid][pPlayTime]++;
playerInfo[playerid][pDayPlayTime]++;
if(!playerInfo[playerid][pAdminDuty])
playerInfo[playerid][pPayDayTime]++;
if(playerInfo[playerid][pPayDayTime] && playerInfo[playerid][pPayDayTime] % (15 * 60) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, playerInfo[playerid][pOldPos][0], playerInfo[playerid][pOldPos][1], playerInfo[playerid][pOldPos][2]) && !playerInfo[playerid][pJailTime] && playerInfo[playerid][pLastPayDay] + 520 < gettime())
{
SendClientMessage(playerid, COLOR_RED, "Du wurdest von dem Server in den AFK - Modus verschoben.");
playerInfo[playerid][pAFK] = true; playerInfo[playerid][pAFKNumber] = 1000 + random(9000);
TogglePlayerControllable(playerid, false);
playerInfo[playerid][pAFKCheckTime] = gettime();
return 1;
}
if(playerInfo[playerid][pDrugsUsed])
{
if(playerInfo[playerid][pDrugsUsed] >= 40)
{
new hours, minute;
gettime(hours, minute);
SetPlayerTime(playerid,hours,minute);
SetPlayerDrunkLevel(playerid,0);
SetPlayerWeather(playerid, 12);
}
playerInfo[playerid][pDrugsUsed] -= playerInfo[playerid][pDrugsUsed] > 1 ? 2 : 1;
}
PayDay(playerid);
}
if(playerInfo[playerid][pBarrierTime] > 0)
{
if(playerInfo[playerid][pBarrierTime] + 120 < gettime())
{
SendClientMessage(playerid, COLOR_GREEN, "[ FAHRZEUG ] Du kannst nun wieder ein Nagelband abwerfen.");
playerInfo[playerid][pBarrierTime] = 0;
}
}
if(!IsPlayerCop(playerid) && GetPlayerWeapon(playerid) > 21)
{
new actorid = GetPlayerTargetActor(playerid);
if(actorid != INVALID_ACTOR_ID && actorInfo[actorid][acRobable] && !playerInfo[playerid][pDead])
{
new robid = actorid, string[128];
switch(actorInfo[robid][acRobState])
{
case ROB_NONE:
{
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(GetPlayerGroupIndex(playerid)) && groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ &&
playerInfo[playerid][pEntranceID] == groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz])
{
if(groupInfo[GetPlayerGroupIndex(playerid)][gWarBizRobLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "[ BIZFIGHT ] Diese Person kann erst wieder in %s ausgeraubt werden.",GetTimeString(groupInfo[GetPlayerGroupIndex(playerid)][gWarBizRobLock] - gettime(),3));
return 1;
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Beim erfolgreichen Ausraub gibt es einen Punkt.");
}
}
else
{
if(actorInfo[robid][acLastRob] + (serverTog[TOG_REDUCEDWAIT][stValue] ? (600) : (480)) > gettime())
{
format(string,sizeof(string),"Diese Person kann erst wieder in %s ausgeraubt werden.",GetTimeString(actorInfo[robid][acLastRob] + (serverTog[TOG_REDUCEDWAIT][stValue] ? (600) : (480)) - gettime(),3));
SendClientMessage(playerid, COLOR_LESSRED, string);
return 1;
}
}
actorInfo[robid][acRobState] = ROB_START;
actorInfo[robid][acActiveRobber] = playerid;
playerInfo[playerid][pActorRob] = robid;
SendClientMessage(playerid, COLOR_YELLOW, "[ INFO ] Ziele auf die Person so lange, bis der Raub beendet ist.");
ApplyActorAnimation(actorid,"ped","handsup",4.1,0,0,0,1,0);
actorInfo[robid][acRobTime] = (7 - GetPlayerSkillLevel(playerid, SKILL_SHOPROBBER)) * 5 + 10;
playerInfo[playerid][pRobMoney] = 0;
}
case ROB_START:
{
if(actorInfo[robid][acRobTime] > 0 && actorInfo[robid][acActiveRobber] == playerid)
{
new smallstr[16];
playerInfo[playerid][pRobMoney] += (GetPlayerSkillLevel(playerid, SKILL_SHOPROBBER) * randEx(25, 50));
format(smallstr,sizeof(smallstr),"~g~$%s",FormatNumber(playerInfo[playerid][pRobMoney]));
GameTextForPlayer(playerid,smallstr, 1200, 6);
actorInfo[robid][acRobTime]--;
}
else if(actorInfo[robid][acActiveRobber] == playerid)
{
GivePlayerSkill(playerid, SKILL_SHOPROBBER);
playerInfo[playerid][pRobbed][ROBTYPE_SHOP]++;
actorInfo[robid][acLastRob] = gettime();
actorInfo[robid][acRobState] = ROB_NONE;
actorInfo[robid][acRobAnim] = true;
ApplyActorAnimation(actorid, "ped", "cower",4.1,0,1,1,1,10000);
if(!isnull(actorInfo[robid][acAnimLib]) && !isnull(actorInfo[robid][acAnimName]))
SetTimerEx("ApplyActorAnim", 60000, false, "d", robid);
playerInfo[playerid][pActorRob] = INVALID_ACTOR_ID;
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(GetPlayerGroupIndex(playerid)) && groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ &&
playerInfo[playerid][pEntranceID] == groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz])
{
new bizid = groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz];
if(playerInfo[playerid][pEntranceID] == bizid)
{
new index = SearchGroupIndex(groupInfo[GetPlayerGroupIndex(playerid)][gWar]);
groupInfo[GetPlayerGroupIndex(playerid)][gWarKills]++;
groupInfo[GetPlayerGroupIndex(playerid)][gWarBizRobLock] = gettime() + 60;
UpdateWarTextDraw(index, GetPlayerGroupIndex(playerid));
GameTextForPlayer(playerid, "~g~GANGWARPOINT", 2500, 3);
GivePlayerExp(playerid, 1.0, _, "CTF - Bot");
}
}
else
{
if(GivePlayerMoneyBag(playerid, MONEYBAG_SHOP, playerInfo[playerid][pRobMoney]))
{
GivePlayerWantedLevel(playerid, WANTED_ROBSHOP);
format(string,sizeof(string),"[ ROB ] Du hast $%s geraubt.",FormatNumber(playerInfo[playerid][pRobMoney]));
SendClientMessage(playerid, COLOR_ROB, string);
}
}
}
}
}
}
else if(actorid == INVALID_ACTOR_ID && playerInfo[playerid][pActorRob] != INVALID_ACTOR_ID)
{
if(GetPlayerVirtualWorld(playerid))
{
if(playerInfo[playerid][pGroup] && IsValidGroupIndex(GetPlayerGroupIndex(playerid)) && groupInfo[GetPlayerGroupIndex(playerid)][gWarTyp] == WAR_BIZ &&
playerInfo[playerid][pEntranceID] == groupInfo[GetPlayerGroupIndex(playerid)][gWarBiz])
{
SendClientMessage(playerid, COLOR_RED, "Die Person wurde nicht lange genug eingeschüchtert.");
}
else
{
SendClientMessage(playerid, COLOR_RED, "Die Person konnte aufgrund deiner Unaufmerksamkeit den stillen Alarm auslösen.");
GivePlayerWantedLevel(playerid, WANTED_ROBSHOP);
}
}
else
{
GivePlayerWantedLevel(playerid, WANTED_ROBPERSON);
}
new oldactorid = playerInfo[playerid][pActorRob];
actorInfo[oldactorid][acLastRob] = gettime();
actorInfo[oldactorid][acRobState] = ROB_NONE;
actorInfo[oldactorid][acRobAnim] = true;
ApplyActorAnimation(oldactorid , "ped", "cower",4.1,0,1,1,1,0);
playerInfo[playerid][pActorRob] = INVALID_ACTOR_ID;
}
}
UpdateMarkerForPlayer(playerid);
if(playerInfo[playerid][pSpectateID] != INVALID_PLAYER_ID && playerInfo[playerid][pIsSpectator])
{
ShowSpectatorInfo(playerid, playerInfo[playerid][pSpectateID]);
}
//AntiCheat - System
for(new i = 0, j = sizeof(BadWeapons); i < j; i++)
{
if(BadWeapons[i] == GetPlayerWeapon(playerid) && !acPlayer[playerid][acpToggleMessage])
{
new string[128];
format(string,sizeof(string),"[ANTI-CHEAT] %s wurde vom System gebannt, Grund: Waffencheat",GetPlayerNameEx(playerid));
SendClientMessageToAll(0xFF002FFF,string);
AC_Ban(playerid, "Waffencheat [Anna]");
acPlayer[playerid][acpToggleMessage] = true;
break;
}
}
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK && !playerInfo[playerid][pHasJetpack])
{
new string[128];
format(string,sizeof(string),"[ANTI-CHEAT] %s wurde vom System gebannt, Grund: Jetpack",GetPlayerNameEx(playerid));
SendClientMessageToAll(0xFF002FFF,string);
AC_Ban(playerid, "Jetpackcheat [Anna]");
acPlayer[playerid][acpToggleMessage] = true;
}
if(playerInfo[playerid][pFishingTime])
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 2))
{
playerInfo[playerid][pFishingTime]--;
if(playerInfo[playerid][pFishingTime] == 0)
{
if(playerInfo[playerid][pFishingStep] == FISHSTEP_FISHING)
{
GameTextForPlayer(playerid, "~g~~h~Fisch an der Leine ..", 3000, 6);
playerInfo[playerid][pFishingStep] = FISHSTEP_GETFISH;
playerInfo[playerid][pFishingTime] = 3;
}
else if(playerInfo[playerid][pFishingStep] == FISHSTEP_GETFISH)
{
GameTextForPlayer(playerid, "~r~~h~Angelschnurr gerissen ..", 3000, 6);
playerInfo[playerid][pFishingStep] = FISHSTEP_NONE;
playerInfo[playerid][pFishingTime] = 0;
ClearAnimations(playerid);
}
}
}
if(playerInfo[playerid][pDead])
{
GameTextForPlayer(playerid, "~r~~h~Angelschnurr gerissen ..", 3000, 6);
playerInfo[playerid][pFishingStep] = FISHSTEP_NONE;
playerInfo[playerid][pFishingTime] = 0;
}
}
if(playerInfo[playerid][pTimeProcess] < GetTickCount() - timems)
{
new diff = GetTickCount() - timems;
playerInfo[playerid][pTimeProcess] = diff;
printf("%d MS - %s",diff,GetPlayerNameEx(playerid));
}
return 1;
}
public OnPlayerEnterNoDmZone(playerid)
{
new weapon, ammo;
GetPlayerWeaponData(playerid, 1, weapon, ammo);
if(weapon == WEAPON_KNIFE)
{
RemovePlayerWeapon(playerid, weapon);
playerInfo[playerid][pHasKnife] = true;
}
return 1;
}
public OnPlayerLeaveNoDmZone(playerid)
{
if(playerInfo[playerid][pHasKnife])
{
new weaponid = GetPlayerWeapon(playerid);
GivePlayerWeapon(playerid, WEAPON_KNIFE, 1);
SetPlayerArmedWeapon(playerid, weaponid);
}
return 1;
}
public OnPlayerEnterEntrance(playerid, entranceid)
{
if(IsValidActor(entranceInfo[entranceid][eiActorID]))
ApplyActorAnimation(entranceInfo[entranceid][eiActorID], "DEALER", "NULL", 4.1, 0, 0, 0, 0, 0);
return 1;
}
public OnPlayerExitEntrance(playerid, entranceid)
{
if(playerInfo[playerid][pBankRobber]) KickPlayerAsBankRobber(playerid);
return 1;
}
public CheckData()
{
new vehicleid = INVALID_VEHICLE_ID, timems = GetTickCount();
foreach(new playerid : Player)
{
if(!IsPlayerInAnyVehicle(playerid) || GetPlayerWantedLevel(playerid) < 3) continue;
vehicleid = GetPlayerVehicleID(playerid);
foreach(new id : Barrier)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, barrierInfo[id][biPos][0], barrierInfo[id][biPos][1], barrierInfo[id][biPos][2]))
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
tires = encode_tires(1, 1, 1, 1);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
}
}
}
if(serverInfo[dataTimerTick] < GetTickCount() - timems)
{
printf("MS: %d (dataTimer)",GetTickCount()-timems);
serverInfo[dataTimerTick] = GetTickCount()-timems;
}
}
public SecondsTimer()
{
new Info[3], smallstr[8], currentTime = gettime(), timems = GetTickCount(), next;
gettime(Info[0],Info[1],Info[2]);
format(smallstr,8,"%02d:%02d",Info[0],Info[1]);
TextDrawSetString(Uhrzeit[0], smallstr);
valstr(smallstr, Info[2]);
TextDrawSetString(Uhrzeit[1],smallstr);
if(serverInfo[rainbowColorID] == 0 && serverInfo[rainbowDirection] == 1 || serverInfo[rainbowColorID] >= sizeof(RainbowColors)-1 && serverInfo[rainbowDirection] == 0)
{
serverInfo[rainbowDirection] = serverInfo[rainbowDirection] ? 0 : 1;
}
TextDrawColor(LoginTextDraw[0], RainbowColors[serverInfo[rainbowColorID]]);
if(serverInfo[rainbowDirection] == 0) serverInfo[rainbowColorID]++;
else serverInfo[rainbowColorID]--;
foreach(new i : Player)
{
if(!playerInfo[i][pInLoginScreen]) continue;
TextDrawHideForPlayer(i, LoginTextDraw[0]);
TextDrawShowForPlayer(i, LoginTextDraw[0]);
}
CheckPlayerWeaponPickup();
if(serverInfo[sCountDown] >= 0)
serverInfo[sCountDown]--;
if(serverInfo[togLocked] && currentTime > serverInfo[LastConnectBot] + 5)
{
#if !defined WARTUNGSMODUS
#endif
serverInfo[togLocked] = false;
}
foreach(new i : DeathPickup)
{
if(currentTime < deathInfo[i][diDeadTime] && deathInfo[i][diDeadTime] != 0) continue;
DestroyDynamicPickup(deathInfo[i][diPickupID]);
DestroyDynamic3DTextLabel(deathInfo[i][diLabelID]);
deathInfo[i][diDeadTime] = 0;
Iter_SafeRemove(DeathPickup, i, next);
i = next;
}
foreach(new i : MoneyDrop)
{
if(moneyDrop[i][mpDate] + 15 < currentTime && moneyDrop[i][mpDate])
{
DestroyMoneyDrop(i, i);
}
}
foreach(new i : Player)
{
if(IsPlayerLoggedIn(i)) continue;
if(playerInfo[i][pLoginKickTime] + 60 < gettime() && playerInfo[i][pLoginKickTime] != 0)
{
SendClientMessage(i, COLOR_RED, "[ KICK ] Du hast für den LogIn zu lange gebraucht und wurdest deshalb gekickt.");
KickEx(i);
}
}
foreach(new i : Pickup)
{
if(gettime() < pickupInfo[i][piShowTime]) continue;
switch(pickupInfo[i][piTyp])
{
case 1: DestroyDynamicPickup(pickupInfo[i][piPickupID]);
case 2: DestroyDynamicObject(pickupInfo[i][piPickupID]);
}
DestroyDynamic3DTextLabel(pickupInfo[i][piLabelID]);
pickupInfo[i][piPickupID] = -1;
pickupInfo[i][piTyp] = 0;
pickupInfo[i][piUserid] = 0;
pickupInfo[i][piShowTime] = 0;
pickupInfo[i][piCreated] = false;
Iter_SafeRemove(Pickup, i, next);
i = next;
}
for(new gangzone = 0, j = sizeof(gangFightInfo); gangzone < j; gangzone++)
{
if(gettime() - gangFightInfo[gangzone][gfCtfStart] >= 120 && gangFightInfo[gangzone][gfCtfStart])
{
new string[128];
HideCtfProgressbarForGangZone(gangzone);
format(string,sizeof(string),"%s hat es geschafft, die Flagge einzunehmen.",GetGroupName(gangFightInfo[gangzone][gfCtfTeam]));
SendGangFightMessage(COLOR_ORANGE, gangzone, string);
groupInfo[SearchGroupIndex(gangFightInfo[gangzone][gfCtfTeam])][gWarKills]++;
UpdateGangZoneScore(gangzone);
GivePlayerExp(gangFightInfo[gangzone][gfCtfID], 1.0,_,"CTF");
gangFightInfo[gangzone][gfCtfStart] = 0;
gangFightInfo[gangzone][gfCtfTeam] = 0;
gangFightInfo[gangzone][gfCtfID] = INVALID_PLAYER_ID;
ClearCtfProgressbarForGangZone(gangzone);
}
else if(gangFightInfo[gangzone][gfCtfStart])
{
UpdateCtfProgressbarForGangZone(gangzone);
if(!IsPlayerConnected(gangFightInfo[gangzone][gfCtfID]) || !IsPlayerInRangeOfPoint(gangFightInfo[gangzone][gfCtfID], 5.0, gangfightZoneData[gangzone][gfCtfX],gangfightZoneData[gangzone][gfCtfY],gangfightZoneData[gangzone][gfCtfZ]) || IsPlayerAFK(gangFightInfo[gangzone][gfCtfID]) || IsPlayerDead(gangFightInfo[gangzone][gfCtfID]))
{
foreach(new i : Player)
{
if(!IsPlayerInRangeOfPoint(i, 5.0, gangfightZoneData[gangzone][gfCtfX],gangfightZoneData[gangzone][gfCtfY],gangfightZoneData[gangzone][gfCtfZ]) || gangFightInfo[gangzone][gfCtfTeam] != playerInfo[i][pGroup] || gangFightInfo[gangzone][gfCtfID] == i || IsPlayerAFK(i) || IsPlayerDead(i)) continue;
SendClientMessageX(i, COLOR_YELLOW, "Du übernimmst nun die Flaggenhaltung von %s.",GetPlayerNameEx(gangFightInfo[gangzone][gfCtfID]));
gangFightInfo[gangzone][gfCtfID] = i;
return 1;
}
new string[128];
format(string,sizeof(string),"%s hat es nicht geschafft, die Flagge einzunehmen.",GetGroupName(gangFightInfo[gangzone][gfCtfTeam]));
SendGangFightMessage(COLOR_ORANGE, gangzone, string);
gangFightInfo[gangzone][gfCtfID] = INVALID_PLAYER_ID;
gangFightInfo[gangzone][gfCtfTeam] = 0;
gangFightInfo[gangzone][gfCtfStart] = 0;
HideCtfProgressbarForGangZone(gangzone);
ClearCtfProgressbarForGangZone(gangzone);
}
}
}
if(derbyInfo[0][diStartProcess] == 1)
{
if(derbyInfo[0][diStartTime])
{
derbyInfo[0][diStartTime]--;
if(!derbyInfo[0][diStartTime])
{
foreach(new i : Player)
{
if(playerInfo[i][pWorld] != WORLD_DERBY || playerInfo[i][pDerbyVehicle] == INVALID_VEHICLE_ID) continue;
GameTextForPlayer(i, "~g~GO GO GO!!", 999, 3);
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
if(!IsPlayerInAnyVehicle(i))
{
PutPlayerInVehicle(i, playerInfo[i][pDerbyVehicle], 0);
}
ChangeMotorState(playerInfo[i][pDerbyVehicle], true);
derbyInfo[0][diStartProcess] = 2;
playerInfo[i][pDerbySamePos] = 0;
TogglePlayerControllable(i, true);
SetCameraBehindPlayer(i);
}
}
}
}
else if(derbyInfo[0][diStartProcess] == 2)
{
derbyInfo[0][diTime]--;
UpdateDerbyTextDraw();
if(derbyInfo[0][diTime] == 0)
{
new string[128];
format(string,sizeof(string),"[ DERBY ] Es gibt keinen Gewinner. Nächste Map: %s, Ersteller: %s",derbyList[derbyInfo[0][diCurrentDerby]-1],derbyInfo[0][diOwner]);
SendClientWorldMessage(WORLD_DERBY,COLOR_DARKPURPLE, string);
LoadNextDerby();
foreach(new i : Player)
{
if(playerInfo[i][pWorld] != WORLD_DERBY) continue;
if(playerInfo[i][pDerbySpectatorID] != INVALID_PLAYER_ID)
{
playerInfo[i][pDerbySpectatorID] = INVALID_PLAYER_ID;
PlayerTextDrawHide(i, DerbyTextdraw[i][0]);
PlayerTextDrawHide(i, DerbyTextdraw[i][1]);
GivePlayerExp(i, 1, _, "Derby");
}
else
{
DestroyVehicle(playerInfo[i][pDerbyVehicle]);
GivePlayerExp(i, 2, _, "Derby");
SpawnPlayerInDerby(i);
}
}
}
}
if(serverInfo[currentRespawnVehTime])
{
serverInfo[currentRespawnVehTime]--;
if(serverInfo[currentRespawnVehTime] > 60)
{
new str[40];
format(str,40,"~g~Fahrzeugrespawn in %d Minuten",1 + floatround(float(serverInfo[currentRespawnVehTime]) / 60.0, floatround_floor));
TextDrawSetString(CountdownTD, str);
}
else if(serverInfo[currentRespawnVehTime] > 0 && serverInfo[currentRespawnVehTime] < 60)
{
new str[40];
format(str,40,"~g~Fahrzeugrespawn in %d Sekunden",serverInfo[currentRespawnVehTime]);
TextDrawSetString(CountdownTD, str);
}
else if(serverInfo[currentRespawnVehTime] == 0)
{
foreach(new i : Vehicles)
{
if((vehicleInfo[i][viOwnerTyp] != serverInfo[currentRespawnVehOwnerTyp] || vehicleInfo[i][viOwnerID] != serverInfo[currentRespawnVehOwner]) && serverInfo[currentRespawnVehOwner] != -1 && serverInfo[currentRespawnVehOwnerTyp] != -1) continue;
if(GetVehicleDriver(vehicleInfo[i][viVehicleID]) != INVALID_PLAYER_ID || !GetVehicleModel(vehicleInfo[i][viVehicleID]) || vehicleData[vehicleInfo[i][viVehicleID]][viAttached] || vehicleInfo[i][viVehicleID] == serverInfo[BankTransporterVeh]) continue;
SetVehicleToRespawn(vehicleInfo[i][viVehicleID]);
}
if(serverInfo[currentRespawnVehOwnerTyp] == -1 && serverInfo[currentRespawnVehOwner] == -1)
{
SendClientMessageToAll(COLOR_RED,"[ ADMIN ] Es wurden alle freien Fahrzeuge respawnt.");
TextDrawHideForAll(CountdownTD);
}
}
}
/*if(Info[1] >= 30 && Info[1] % 10 == 0 && serverInfo[lastLotteryMessage] + 120 < gettime())
{
new str[128];
format(str, 128, "[ LOTTERY ] Die Lottoziehung beginnt in %d Minuten. Erstell dir nun dein Lottoschein mit /lotto!", 60 - Info[1]);
SendClientMessageToAll(COLOR_LOTTERY, str);
format(str, 128, "[ LOTTERY ] Derzeitiger Lottery - Jackpot: $%s", FormatNumber(serverInfo[lotteryJackpot]));
SendClientMessageToAll(COLOR_LOTTERY, str);
serverInfo[lastLotteryMessage] = gettime();
format(str, 128, "Lottoziehung\nin %d Minuten\n$%s im Jackpot", 60 - Info[1], FormatNumber(serverInfo[lotteryJackpot]));
UpdateLottoObj(str);
}*/
if(Info[0] != serverInfo[oldTime])
{
new string[56];
serverInfo[oldTime] = Info[0];
/*
new currentStation = 0;
for(new i = 0, j = sizeof(gasstationInfo); i < j; i++)
{
if(gasstationInfo[i][giStationID] != currentStation)
{
gasstationInfo[i][giLiterPrice] = 1 + random(5);
currentStation = gasstationInfo[i][giStationID];
}
else
{
gasstationInfo[i][giLiterPrice] = gasstationInfo[i - 1][giLiterPrice];
}
format(string,sizeof(string),"[ Zapfsäule ]\nPreis pro Liter: $%d\n/tanken zum Tanken",gasstationInfo[i][giLiterPrice]);
UpdateDynamic3DTextLabelText(gasstationInfo[i][giStationLabel],COLOR_GREY,string);
}*/
for(new i = 0; i < serverInfo[currentEntrances]; i++)
{
if(!entranceInfo[i][eiRobable] || !entranceInfo[i][eiBlackmailer] || !GetGroupMemberAmount(entranceInfo[i][eiBlackmailer])) continue;
new gindex = entranceInfo[i][eiBlackmailerIndex];
groupInfo[gindex][gPayDay][0] += GetBusinessAmount(i);
groupInfo[gindex][gPayDay][1] += serverTog[TOG_DOUBLEEXP][stValue] ? GetBusinessExp(i) : GetBusinessExp(i) * 2;
if(!strcmp(entranceInfo[i][eiEntranceName],"Ammu-Nation",true))
{
groupInfo[gindex][gPayDay][2] += 20;
}
groupInfo[gindex][gPayDay][3]++;
}
for(new i = 0; i < sizeof(gangFightInfo); i++)
{
groupInfo[gangFightInfo[i][gfOwnerIndex]][gPayDay][0] += 10000;
}
foreach(new i : Groups)
{
if(!groupInfo[i][gPayDay][0]) continue;
format(string,sizeof(string),"Gruppenpayday %s:",groupInfo[i][gName]);
SendGroupMessageToAll(groupInfo[i][gSQLID], COLOR_YELLOW, string);
format(string,sizeof(string),"Derzeit sind %d Businesse im Besitz der %s.",groupInfo[i][gPayDay][3],groupInfo[i][gName]);
SendGroupMessageToAll(groupInfo[i][gSQLID], COLOR_RED, string);
groupInfo[i][gBizes] = groupInfo[i][gPayDay][3];
format(string,sizeof(string),"Einnnahmen: $%s , %d Materialien und %d EXP.",FormatNumber(groupInfo[i][gPayDay][0]),groupInfo[i][gPayDay][2],groupInfo[i][gPayDay][1]);
SendGroupMessageToAll(groupInfo[i][gSQLID], COLOR_GREEN, string);
groupInfo[i][gBank] += groupInfo[i][gPayDay][0];
groupInfo[i][gExp] += float(groupInfo[i][gPayDay][1]);
groupInfo[i][gMats] += groupInfo[i][gPayDay][2];
groupInfo[i][gPayDay][0] = 0;
groupInfo[i][gPayDay][1] = 0;
groupInfo[i][gPayDay][2] = 0;
groupInfo[i][gPayDay][3] = 0;
}
UpdateGroupBoard();
GenerateFishPrice();
GeneratePlantPrice();
GenerateMaterialPrice();
GenerateProductPrice();
serverInfo[BankTransporterMinute] = 20 + random(25);
serverInfo[weatherID] = weatherIDs[random(sizeof(weatherIDs))];
SetWeather(serverInfo[weatherID]);
SetWorldTime(serverInfo[oldTime]);
SaveAllServerData(false);
gettime(Info[0]);
format(string, 128, "[ TRANSPORTERRAUB ] Der Transporter fährt um %02d:%02d Uhr zur Bank.", Info[0], serverInfo[BankTransporterMinute]);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
/*for(new i = 0; i < 6; i++)
{
serverInfo[lotteryNumbers][i] = random(49) + 1;
}
UpdateLottoObj("Lottoziehung startet ..");
serverInfo[lotteryTime] = 0;
serverInfo[lotteryStep] = 1;*/
switch(Info[0])
{
case 0:
{
mysql_tquery(dbHandle, "UPDATE `accounts` SET `dayplaytime` = '0',`groupdailydrugs`='0'", "", "");
foreach(new i : Player)
{
playerInfo[i][pDayPlayTime] = 0;
playerInfo[i][pGroupDailyDrugs] = 0;
}
}
case 5:
{
SendClientMessageToAll(COLOR_RED, "Der Server startet in wenigen Minuten neu. Die Funktionen sind bis dahin eingeschränkt.");
serverInfo[togLocked] = true;
}
}
getdate(Info[0],Info[1],Info[2]);
format(string,56,"%02d.%02d.%04d",Info[2],Info[1],Info[0]);
TextDrawSetString(Datum, string);
}
/*if(serverInfo[lotteryStep] && serverInfo[lotteryStep] < 10)
{
serverInfo[lotteryTime]++;
if(serverInfo[lotteryTime] >= 10)
{
new str[128];
format(str, sizeof(str), "Lottozahlen:\n");
for(new i = 0; i < serverInfo[lotteryStep]; i++)
{
format(str, sizeof(str), "%s %d", str, serverInfo[lotteryNumbers][i]);
}
serverInfo[lotteryTime] = 0;
serverInfo[lotteryStep]++;
if(serverInfo[lotteryStep] >= 7)
{
format(str, 128, "[ LOTTERY ] Die Lottozahlen lauten: %d %d %d %d %d %d. Lottoscheine werden überprüft.",
serverInfo[lotteryNumbers][0], serverInfo[lotteryNumbers][1],serverInfo[lotteryNumbers][2],serverInfo[lotteryNumbers][3],serverInfo[lotteryNumbers][4], serverInfo[lotteryNumbers][5]);
format(str, sizeof(str), "%s\nDie Gewinner werden ermittelt..", str);
serverInfo[lotteryStep] = 10;
mysql_format(dbHandle, str, sizeof(str), "SELECT * FROM `lotterytickets`");
mysql_tquery(dbHandle, str, "OnQueryFinished", "d", QUERY_LOTTERY);
}
else
{
UpdateLottoObj(str);
}
}
}*/
if(serverInfo[BankTransporterMinute] <= Info[1] && serverInfo[BankTransporterHour] != Info[0])
{
if(IsPlayerNPC(serverInfo[BankTransporterDriver]))
{
if(CountTeamMember(TEAM_SFPD, false) < 2)
{
serverInfo[BankTransporterHour] = Info[0];
SendClientMessageToAll(COLOR_LIGHTBLUE, "[ TRANSPORTERROB ] Aufgrund der wenigen Staatsorgane, die Online sind, kann der Transporter nicht losfahren.");
return 1;
}
else
{
SendClientMessageToAll(COLOR_LIGHTBLUE, "[ TRANSPORTERRAUB ] Der Geldtransporter fährt nun zur Bank.");
}
serverInfo[BankTransporterMoneyBags] = 0;
serverInfo[BankTransporterRobber] = 0;
serverInfo[BankTransporterTimer] = 0;
serverInfo[BankTransporterState] = 0;
serverInfo[BankTransporterTime] = 0;
serverInfo[BankTransporterHour] = Info[0];
serverInfo[BankTransporterMinute] = 61;
SetPlayerVirtualWorld(serverInfo[BankTransporterDriver], 0);
SetPlayerInterior(serverInfo[BankTransporterDriver], 1);
SendClientMessage(serverInfo[BankTransporterDriver], COLOR_BOT, "BOT_START_WALKING");
}
else
{
SendAdminMessage(COLOR_RED, "* Der Transporter-Bot ist derzeit nicht mit dem Server verbunden. Es wird eine neue Verbindung authorisiert.");
print("* Der Transporter-Bot ist derzeit nicht mit dem Server verbunden. Es wird eine neue Verbindung authorisiert.");
ConnectNPC("securityguy","securityguy");
serverInfo[BankTransporterHour] = Info[0];
serverInfo[BankTransporterMinute] = Info[1] - 1;
}
}
if(Info[2] % 20 == 0)
{
foreach(new i : Player)
{
if(acPlayer[i][acpToggleSpeedMessage])
acPlayer[i][acpToggleSpeedMessage] = false;
}
}
else if(Info[2] == 0)
{
foreach(new i : Player)
{
if(acPlayer[i][acpPossibleAirbrake])
acPlayer[i][acpPossibleAirbrake]--;
if(acPlayer[i][acpPossibleFakeKill])
acPlayer[i][acpPossibleFakeKill]--;
}
}
if(serverInfo[BankTransporterTime] < currentTime && serverInfo[BankTransporterTime])
{
serverInfo[BankTransporterTime] = 0;
if(IsValidDynamic3DTextLabel(serverInfo[BankTransporterLabel])) DestroyDynamic3DTextLabel(serverInfo[BankTransporterLabel]);
SendClientMessage(serverInfo[BankTransporterDriver], COLOR_BOT, "BOT_CANCEL");
SetVehicleToRespawn(serverInfo[BankTransporterVeh]);
foreach(new i : Player)
{
if(!playerInfo[i][pTransporterRobber]) continue;
playerInfo[i][pTransporterRobber] = false;
}
}
if(serverInfo[BankTransporterTimer])
{
serverInfo[BankTransporterTimer]--;
new str[82];
format(str, 82, "[ {D9C241}Transporterraub{FFFFFF} ]\nVerbleibende Zeit: %s",GetTimeString(serverInfo[BankTransporterTimer],4));
UpdateDynamic3DTextLabelText(serverInfo[BankTransporterLabel], COLOR_WHITE, str);
if(!serverInfo[BankTransporterTimer])
{
serverInfo[BankTransporterMoneyBags] = 4;
UpdateDynamic3DTextLabelText(serverInfo[BankTransporterLabel], COLOR_WHITE, "[ {D9C241}Transporterraub{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um einen Geldbeutel aufzuheben\n\n{E38C29}Geldbeutel: 4 / 4");
serverInfo[BankTransporterTime] = gettime() + 20;
}
}
if(serverInfo[currentBankTimer])
{
serverInfo[currentBankTimer]--;
if(!serverInfo[currentBankTimer])
{
if(serverInfo[currentBankRobState] == 1)
{
DestroyDynamicObject(BankSachen[3]);
BankSachen[3] = -1;
DestroyDynamicObject(BankSachen[2]);
BankSachen[2] = -1;
MoveObject(BankSachen[0],1386.9700, -991.7800, 5652.0400,0.3,0.00, 0.00, 0.00);
MoveObject(BankSachen[1],1390.4499, -991.7800, 5652.0400,0.3,0.00, 0.00, 180.00);
serverInfo[currentBankRobState] = 2;
}
else if(serverInfo[currentBankRobState] == 6)
{
DestroyDynamicObject(BankSachen[8]);
BankSachen[8] = -1;
DestroyDynamicObject(BankSachen[7]);
BankSachen[7] = -1;
DestroyDynamicObject(BankSachen[6]);
BankSachen[6] = -1;
DestroyDynamicObject(BankSachen[5]);
BankSachen[5] = -1;
DestroyDynamicObject(BankSachen[4]);
BankSachen[4] = -1;
CreateExplosion(1386.72, -971.79, 5654.73,11,3.0);
CreateExplosion(1390.52, -971.83, 5654.73,11,3.0);
CreateExplosion(1390.36, -971.77, 5651.15,11,3.0);
CreateExplosion(1386.68, -971.79, 5651.15,11,3.0);
serverInfo[currentBankRobState] = 7;
}
}
}
if(serverInfo[currentActiveVote] && currentTime > serverInfo[currentActiveVoteTime] + 30)
{
serverInfo[currentActiveVote] = false;
serverInfo[currentActiveVoteTime] = 0;
if(serverInfo[currentActiveVotes][0] - serverInfo[currentActiveVotes][1] >= serverInfo[currentActiveVoteNeeded])
{
new pID = GetPlayerID(serverInfo[currentActiveVotePlayer]);
SendClientMessageToAllX(COLOR_RED, "Die Abstimmung zum Ban wurde genehmigt, %s wird für fünf Stunden gebannt.",serverInfo[currentActiveVotePlayer]);
InsertPunitiveLog(playerInfo[pID][pSQLID], 0, "Voteban", PUNITIVE_VOTEBAN, gettime() + (60 * 60 * 5));
KickEx(pID);
}
else
{
SendClientMessageToAllX(COLOR_RED, "Die Abstimmung zum Ban wurde abgelehnt, %s verbleibt ohne Sanktion.",serverInfo[currentActiveVotePlayer]);
}
foreach(new i : Player)
{
if(!playerInfo[i][pVoting]) continue;
playerInfo[i][pVoting] = false;
TextDrawHideForPlayer(i,Vote[2]);
TextDrawHideForPlayer(i,Vote[3]);
}
TextDrawHideForAll(Vote[0]);
TextDrawHideForAll(Vote[1]);
}
foreach(new i : Barrier)
{
if(barrierInfo[i][biCreateTime] + 5 > currentTime || !IsValidDynamicObject(barrierInfo[i][biObjID])) continue;
DestroyDynamicObject(barrierInfo[i][biObjID]);
barrierInfo[i][biCreateTime] = 0;
barrierInfo[i][biObjID] = -1;
playerInfo[barrierInfo[i][biCreateID]][pBarrierSlot] = INVALID_SLOT_ID;
barrierInfo[i][biCreateID] = INVALID_PLAYER_ID;
Iter_SafeRemove(Barrier, i, Info[0]);
i = Info[0];
}
for(new i = 0, j = sizeof(atmInfo); i < j; i++)
{
if(atmInfo[i][aiLastHit] && atmInfo[i][aiLastHit] + 20 < currentTime && atmInfo[i][aiTresorHealth] > 0.0 && !atmInfo[i][aiOpenTresor])
{
if(atmInfo[i][aiKasseHealth] <= 0.0)
{
atmInfo[i][aiObjKasseID] = CreateDynamicObject(2941,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3] + 0.7,BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6] + 180.0);
}
atmInfo[i][aiRobbedTresor] = 0;
atmInfo[i][aiCopMessage] = false;
atmInfo[i][aiLastHit] = 0;
atmInfo[i][aiKasseHealth] = 25.0;
atmInfo[i][aiTresorHealth] = 350.0;
UpdateDynamic3DTextLabelText(atmInfo[i][aiLabelID], COLOR_WHITE, "[ {18A5B5}ATM{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das ATM-Menü zu öffnen\n\n{E38C29}Zustand: 100%");
}
if(atmInfo[i][aiOpenTresor] + 15 > currentTime || !atmInfo[i][aiOpenTresor] || atmInfo[i][aiTresorHealth] > 0.0) continue;
DestroyDynamicObject(atmInfo[i][aiObjTresorID]);
UpdateDynamic3DTextLabelText(atmInfo[i][aiLabelID], COLOR_WHITE, "[ {18A5B5}ATM{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das ATM-Menü zu öffnen");
atmInfo[i][aiObjTresorID] = CreateDynamicObject(2942, BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3],BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6]);
atmInfo[i][aiRobbedTresor] = gettime();
atmInfo[i][aiMoneyBags] = 0;
atmInfo[i][aiOpenTresor] = 0;
atmInfo[i][aiCopMessage] = false;
}
if(serverInfo[secondsTimerTick] < GetTickCount() - timems)
{
printf("MS: %d (SecondsTimer)",GetTickCount()-timems);
serverInfo[secondsTimerTick] = GetTickCount()-timems;
}
return 1;
}
public MinuteTimer()
{
new currentTime = gettime(), timems = GetTickCount();
for(new i = 0, j = sizeof(atmInfo); i < j; i++)
{
if(atmInfo[i][aiRobbedTresor] + (serverTog[TOG_REDUCEDWAIT][stValue] ? (480) : (300)) > currentTime || !atmInfo[i][aiRobbedTresor]) continue;
if(atmInfo[i][aiKasseHealth] <= 0.0)
{
atmInfo[i][aiObjKasseID] = CreateDynamicObject(2941,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3] + 0.7,BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6] + 180.0);
}
DestroyDynamicObject(atmInfo[i][aiObjTresorID]);
UpdateDynamic3DTextLabelText(atmInfo[i][aiLabelID], COLOR_WHITE, "[ {18A5B5}ATM{FFFFFF} ]\n~k~~SNEAK_ABOUT~, um das ATM-Menü zu öffnen\n\n{E38C29}Zustand: 100%");
atmInfo[i][aiObjTresorID] = CreateDynamicObject(2332,BankCounterPos[i][1],BankCounterPos[i][2],BankCounterPos[i][3] - 0.1,BankCounterPos[i][4],BankCounterPos[i][5],BankCounterPos[i][6]);
atmInfo[i][aiOpenTresor] = 0;
atmInfo[i][aiLastHit] = 0;
atmInfo[i][aiKasseHealth] = 25.0;
atmInfo[i][aiTresorHealth] = 350.0;
atmInfo[i][aiMoneyBags] = 2;
atmInfo[i][aiCopMessage] = false;
atmInfo[i][aiRobbedTresor] = 0;
}
foreach(new i : Player)
{
if(acPlayer[i][acpDeath])
acPlayer[i][acpDeath]--;
}
for(new i = 0, j = sizeof(groupInfo); i < j; i++)
{
if(!groupInfo[i][gWarTime]) continue;
groupInfo[i][gWarTime]--;
if(groupInfo[i][gWarTyp] == WAR_ZONE)
{
new time[3];
valstr(time, groupInfo[i][gWarTime]);
TextDrawSetString(GangFightTD[groupInfo[i][gWarBiz]][4], time);
}
else if(groupInfo[i][gWarTyp] == WAR_BIZ || groupInfo[i][gWarTyp] == WAR_NORMAL)
{
UpdateWarClock(i, groupInfo[i][gWarIndex]);
}
if(groupInfo[i][gWarTime] == 0)
{
new index = groupInfo[i][gWarIndex];
if(groupInfo[index][gWarKills] > groupInfo[i][gWarKills])
{
StopWar(index, i);
}
else if(groupInfo[i][gWarKills] > groupInfo[index][gWarKills])
{
StopWar(i, index);
}
else
{
StopWar(index, i, false);
}
}
}
CheckPlayerWeaponPickup();
if(serverInfo[minuteTimerTick] < GetTickCount() - timems)
{
printf("MS: %d (minuteTimer)",GetTickCount()-timems);
serverInfo[minuteTimerTick] = GetTickCount()-timems;
}
return 1;
}
public HalfMinuteTimer()
{
switch(serverInfo[currentInfo])
{
case 0:
{
TextDrawSetString(MainLine, " ~y~~h~Version: 1.0");
serverInfo[currentInfo] = 1;
}
case 1:
{
TextDrawSetString(MainLine, " ~r~~h~forum.german-crimescene.de");
serverInfo[currentInfo] = 0;
}
}
return 1;
}
public AutoServerMessage()
{
switch(random(2))
{
case 0:
{
SendClientMessageToAll(0x00C700FF,"______________________ [GSC] German Crimescene | CnR - Dein deutscher CnR Server ______________________");
SendClientMessageToAll(COLOR_WHITE,"Herzlich Willkommen auf dem einzigen deutschen Cops and Robbers Server, wenn du Fragen");
SendClientMessageToAll(COLOR_WHITE,"oder Probleme hast, kannst du dich mit /sup [Frage] an die Supporter / Administratoren");
SendClientMessageToAll(COLOR_WHITE,"wenden. Bei besonderen Notfällen ( Cheater, schwere Bugs etc. ) kannst du direkt ");
SendClientMessageToAll(COLOR_WHITE,"die Supporter / Administratoren per /a [text] anschreiben.");
SendClientMessageToAll(0x00C700FF,"_______forum.german-crimescene.de____________________Teamspeak³: german-crimescene.de _________");
}
default:
{
SendClientMessageToAll(0xE3872BFF,"______________________ Du möchtest den Server unterstützen und Vorteile haben?__________");
SendClientMessageToAll(COLOR_WHITE,"Dann spende jetzt! Mit deiner Spende kannst du dem Server unter die Arme greifen.");
SendClientMessageToAll(COLOR_WHITE,"Und nicht nur das, als Gegenleistung erhälst du die sogenannten Coins. Mit deinen");
SendClientMessageToAll(COLOR_WHITE,"Coins kannst du individuell entscheiden, welche Vorteile du beziehen möchtest. ");
SendClientMessageToAll(COLOR_WHITE,"Die Coinsverwaltung befindet sich unter dem Befehl: /cshop. Bei Fragen und Anregungen,");
SendClientMessageToAll(COLOR_WHITE,"kannst du uns auf allen Plattformen erreichen.");
SendClientMessageToAll(0xE3872BFF,"_______forum.german-crimescene.de____________________Teamspeak³: german-crimescene.de _________");
}
}
return 1;
}
public HitmanAD()
{
SendClientMessageToAll(COLOR_WHITE, "Werbung: {3CC250}/contract und wir lösen deine Probleme {FFFFFF}Verfasser: Unbekannt");
}
public OnPlayerUnBanPlayer(playerid, playerName[],reason[])
{
new rows = cache_num_rows();
if(!rows) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler hat keinen aktiven Ban in seiner Spielerakte oder existiert nicht.");
new ban_typ[32],
string[128],
ban_time;
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "typ", ban_typ);
if(!strcmp(ban_typ, "Entbannung", true)) continue;
mysql_format(dbHandle, string, 128, "UPDATE `log_punitive` SET `active` = 0 WHERE `id` = %d", cache_get_field_content_int(i, "id"));
mysql_tquery(dbHandle, string, "", "");
ban_time = cache_get_field_content_int(i, "time");
format(string, 128, "* %s %s hat den %s Ban von %s aufgehoben, Grund: %s", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), (ban_time == -1 ? ("permanenten") : ("temporären") ) , playerName, reason);
SendAdminMessage(COLOR_RED, string);
format(string, 128, "%s %s", playerName, reason);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/unban",string);
InsertPunitiveLog(cache_get_field_content_int(i, "playerid"),playerInfo[playerid][pSQLID], reason, PUNITIVE_UNBAN);
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler konnte gefunden werden, hat aber keinen aktiven Ban in seiner Spielerakte.");
return 1;
}
public OnPlayerBanPlayer(playerid, playername[], reason[])
{
new string[256];
if(!cache_num_rows()) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler existiert nicht.");
new pID = cache_get_field_content_int(0,"id");
format(string,sizeof(string),"[ ADMIN ] %s %s hat %s offline gebannt, Grund: %s.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),playername,reason);
SendClientMessageToAll(COLOR_RED,string);
InsertPunitiveLog(pID,playerInfo[playerid][pSQLID], reason, PUNITIVE_OFFBAN, -1);
return 1;
}
public OnServerCheckGroupNameAvailable(playerid, groupname[])
{
if(cache_num_rows())
{
ShowPlayerDialog(playerid, DIALOG_GROUPCREATE, DIALOG_STYLE_INPUT, "Gruppe erstellen","{D11B30}Fehler:{A9C4E4} Der Name ist bereits vergeben.\nUm deine eigene Gruppe zu erstellen brauchst du nicht nur einen Namen,\nsondern auch eine Grundbasis von $150.000.\nVon diesem Geld werden $50.000 Bearbeitungsgebühren abgezogen.\n\nBitte gebe deine gewünschte Gruppenbezeichnung ein:","Erstellen","Abbrechen");
return 1;
}
GivePlayerMoney(playerid,-NEEDED_MONEY_FOR_CREATINGGROUP,"Gruppenerstellung");
new str[128];
format(str, 128, "[ INFO ] %s hat die Gruppe %s gegründet.", GetPlayerNameEx(playerid), groupname);
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast die Gruppe %s erstellt.",groupname);
OnServerInitGroup(playerid, groupname);
return 1;
}
public OnServerInitIrc(playerid, slotid)
{
new id = cache_insert_id();
playerInfo[playerid][pChannelIndex] = slotid;
playerInfo[playerid][pChannelRank] = 3;
playerInfo[playerid][pChannel] = id;
ircInfo[slotid][ircSQLID] = id;
SendClientMessageX(playerid, COLOR_YELLOW, ">> Du hast den Channel %s erstellt. <<",ircInfo[slotid][ircName]);
return 1;
}
stock OnServerInitGroup(playerid,groupname[])
{
new slotid = GetFreeGroupID();
for(new i = 0; i < sizeof(groupInfo[]); i++)
{
groupInfo[slotid][_groupInfo:i] = 0;
}
for(new i = 0; i < MAX_PERMS; i++)
{
groupInfo[slotid][gPermission][i] = 5;
}
for(new i = 0; i < sizeof(ammunationInfo); i++)
{
groupInfo[slotid][gWeaponPrice][i] = ammunationInfo[i][aiWeaponPrice];
}
InitializeGroupORM(slotid);
format(groupInfo[slotid][gLeader],MAX_PLAYER_NAME,GetPlayerNameEx(playerid));
format(groupInfo[slotid][gName],MAX_GROUPNAME_LENGTH,groupname);
groupInfo[slotid][gSQLID] = cache_insert_id();
groupInfo[slotid][gBaseID] = playerInfo[playerid][pHouseKey];
groupInfo[slotid][gBank] = GROUP_STARTMONEY;
groupInfo[slotid][gMember] = 1;
groupInfo[slotid][gMaxMember] = 10;
groupInfo[slotid][gUpgrade][GROUPUPGRADE_MEMBER] = 2;
groupInfo[slotid][gUpgrade][GROUPUPGRADE_VEHICLE] = 5;
groupInfo[slotid][gMats] = 50;
groupInfo[slotid][gLastActivity] = gettime();
groupInfo[slotid][gBuyedColor][0] = true;
groupInfo[slotid][gLeaderID] = playerInfo[playerid][pSQLID];
Iter_Add(Groups, slotid);
UpdateHouse(GetHouseSlotID(playerInfo[playerid][pHouseKey]));
sscanf("#0|#1|#2|#3|#4|#5|#6|#7|#8|#9|#10|#11|#12","p<|>s[32]s[32]s[32]s[32]s[32]s[32]s[32]s[32]s[32]s[32]s[32]s[32]s[32]",
gRankName[slotid][0],gRankName[slotid][1],gRankName[slotid][2],gRankName[slotid][3],gRankName[slotid][4],gRankName[slotid][5],gRankName[slotid][6],
gRankName[slotid][7],gRankName[slotid][8],gRankName[slotid][9],gRankName[slotid][10],gRankName[slotid][11],gRankName[slotid][12]);
for(new i = MAX_RANKS - 1; i != 0; i--)
{
if(strlen(gRankName[slotid][i]) == 0) continue;
groupInfo[slotid][gHighestRank] = i;
playerInfo[playerid][pGroupRank] = groupInfo[slotid][gHighestRank];
break;
}
playerInfo[playerid][pGroupIndex] = slotid;
playerInfo[playerid][pGroupTimestamp] = gettime() + 60 * 60 * 4;
playerInfo[playerid][pGroupCharity] = 0;
playerInfo[playerid][pGroupCharityDiff] = 0;
playerInfo[playerid][pLeader] = 2;
orm_insert(groupInfo[slotid][gORMID], "InsertORMInit", "ddd", 1, playerid, slotid);
return 1;
}
forward InsertORMInit(index, arrayindex, arrayindex2);
public InsertORMInit(index, arrayindex, arrayindex2)
{
switch(index)
{
case 1:
{
playerInfo[arrayindex][pGroup] = groupInfo[arrayindex2][gSQLID];
OnServerSavePlayerData(arrayindex);
}
}
}
public InsertInit(space, index)
{
switch(index)
{
case INSERTINIT_REGISTERACCOUNT:
{
playerInfo[space][pSQLID] = cache_insert_id();
InsertLoginLog(space);
}
case INSERTINIT_HOUSE:
{
new intIndex = houseInfo[space][hInteriorID];
houseInfo[ space ][hDoorObj] = CreateDynamicObject(2004, houseSafe[intIndex][hsDoorX],houseSafe[intIndex][hsDoorY],houseSafe[intIndex][hsZ],houseSafe[intIndex][hsrX],houseSafe[intIndex][hsrY],houseSafe[intIndex][hsrZ],houseInfo[space][hSQLID], interiorInfo[intIndex][iiInterior]); // Safe Tür vom Tresor.
printf("[ ORM ] houses | SQLID: %d", houseInfo[space][hSQLID]);
}
case INSERTINIT_NAVICATEGORY: printf("[ ORM ] navicategory | SQLID: %d", naviCategory[space][ncSQLID]);
case INSERTINIT_NAVI: printf("[ ORM ] navigation | SQLID: %d", navigationInfo[space][niSQLID]);
case INSERTINIT_TELEPORT: portInfo[space][poSQLID] = cache_insert_id();
case INSERTINIT_SUPPORT: supportTicket[space][stSQLID] = cache_insert_id();
case INSERTINIT_VEHICLE: printf("[ ORM ] vehicles | SQLID: %d", vehicleInfo[space][viSQLID]);
}
}
forward GamemodeLoaded();
public GamemodeLoaded()
{
//Servername/Mapname/Gamemodetext/Homepage ändern
SendRconCommand("hostname • < German Crimescene - GTA SA > •");
SendRconCommand("hostname • < Cops & Robbers - 10.4.2020> •");
SendRconCommand("hostname • < deutscher CNR Server - 10.4.2020 > •");
SendRconCommand("language German/Deutsch");
SendRconCommand("weburl www.forum.german-crimescene.de");
//Nachricht an die Konsole
print("--------------------------------------------------------------------");
print(" German Crimescene by Itachi & iTsMahoo!");
print("--------------------------------------------------------------------");
return 1;
}
public OnQueryFinishedEx(queryid, space)
{
switch(queryid)
{
case QUERYEX_FRIENDS:
{
LoadPlayerFriends(space, false);
}
case QUERYEX_NOTIFI:
{
new rows = cache_num_rows(), count[3];
if(rows)
{
for(new i = 0; i < rows; i++)
{
count[cache_get_field_content_int(i, "type")-1]++;
}
}
new str[128];
format(str, 128, "Private Nachrichten\t{%s}(%d)\nSanktionen\t{%s}(%d)\nBenachrichtigungen\t{%s}(%d)", !count[0] ? ("FFFFFF") : ("D12E2E"), count[0], !count[1] ? ("FFFFFF") : ("D12E2E"),count[1],!count[2] ? ("FFFFFF") : ("D12E2E"), count[2]);
ShowPlayerDialog(space, DIALOG_NOTIFICATIONS, DIALOG_STYLE_TABLIST, "Benachrichtigungen", str , "Auswählen", "Schließen");
}
case QUERYEX_MESSAGES:
{
new rows = cache_num_rows();
if(!rows) return SendClientMessage(space, COLOR_LESSRED, "Der Spieler konnte nicht gefunden werden.");
new str[256], text[100], p_name[MAX_PLAYER_NAME];
GetPVarString(space, "msg_pn", text, sizeof(text));
GetPVarString(space, "name_pn", p_name, sizeof(p_name));
DeletePVar(space, "name_pn");
DialogTempData[space][MAX_PLAYERS - 1] = cache_get_field_content_int(0, "id");
format(str, 256, "Der Spieler %s ist nicht Online. Soll die Nachricht trotzdem verschickt werden?\n\nNachricht: %s", p_name, text);
ShowPlayerDialog(space, DIALOG_OFFLINEPN, DIALOG_STYLE_MSGBOX, "Offline - Nachricht", str, "Senden", "Schließen");
}
case QUERYEX_ACHIEVEMENTS:
{
new rows = cache_num_rows();
for(new i = 0; i < MAX_ACHIEVEMENTS; i++)
DialogTempData[space][i] = 0;
for(new i = 0; i < rows; i++)
DialogTempData[space][cache_get_field_content_int(i, "achievementid")] = cache_get_field_content_int(i, "date");
DialogTempDataIndex[space] = 0;
new str[4096];
strins(str, "Bezeichnung\tErreicht am\n", 0);
for(new i = 0; i < MAX_ACHIEVEMENTS; i++)
{
if(!DialogTempData[space][i]) continue;
format(str, 4096, "%s%s\t%s\n", str,achievementInfo[i][aiName], GetDateFromTimestampEx(DialogTempData[space][i]));
DialogTempData[space][DialogTempDataIndex[space]++] = i;
}
if(DialogTempDataIndex[space] == 0) ShowPlayerDialog(space, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Achievements", "Du hast noch keine Achievements erhalten.", "Schließen", "");
else ShowPlayerDialog(space, DIALOG_ACHIEVEMENTS, DIALOG_STYLE_TABLIST_HEADERS, "Achievements", str, "Auswählen", "Schließen");
}
case QUERYEX_PLAYERFILE:
{
new pfTyp[32], str[512], pfName[MAX_PLAYER_NAME],pfReason[144], time;
cache_get_field_content(0, "typ", pfTyp, dbHandle);
cache_get_field_content(0, "username", pfName, dbHandle);
cache_get_field_content(0, "reason", pfReason, dbHandle);
format(str, 512, "Datum: %s\nExekutive: %s\n", GetDateFromTimestampEx(cache_get_field_content_int(0, "date")), pfName);
if(!strcmp(pfTyp, "Kommentar", true))
{
FormatString(pfReason, 35);
format(str, 512, "%sKommentar:\n%s", str, pfReason);
}
else if(!strcmp(pfTyp, "Temp. Ban", true))
{
format(str, 512, "%sStrafe: Temp. Ban\nBis: %s\nGrund: %s",str, pfTyp, GetDateFromTimestampEx(cache_get_field_content_int(0, "time")), pfReason);
}
else
{
time = cache_get_field_content_int(0, "time");
format(str, 512, "%sStrafe: %s\nDauer: %s\nGrund: %s",str, pfTyp, time == -1 ? ("/") : GetTimeString(time, 5), pfReason);
}
DialogTempData[space][MAX_PLAYERS - 3] = 1;
ShowPlayerDialog(space, DIALOG_PLAYERFILE, DIALOG_STYLE_MSGBOX, "Spielerakte", str, "Zurück", "");
}
case QUERYEX_DEATHKILL:
{
new rows = cache_num_rows();
if(!rows)
{
ShowPlayerDialog(space, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Auflistung", "Es wurden keine Einträge zu diesem Spieler gefunden.", "Schließen", "");
return 1;
}
new str[512], dName[MAX_PLAYER_NAME], time;
strins(str, "Name\tWaffe\tVergangene Zeit\n", 0);
for(new i = 0; i < rows; i++)
{
if(cache_get_field_content_int(i, "killerid") == -1 || cache_get_field_content_int(i, "playerid") == -1)
{
format(dName, MAX_PLAYER_NAME, "INVALID-PLAYER");
}
else
{
cache_get_field_content(i, "username", dName, dbHandle, MAX_PLAYER_NAME);
}
time = gettime() - cache_get_field_content_int(i, "date");
if(time < 60)
{
format(str, sizeof(str), "%s%s\t%s\t%d Sekunden\n", str, dName, GetWeaponName(cache_get_field_content_int(i, "reason")), time);
}
else
{
format(str, sizeof(str), "%s%s\t%s\t%s\n", str, dName, GetWeaponName(cache_get_field_content_int(i, "reason")), GetTimeString(time, 5));
}
}
ShowPlayerDialog(space, DIALOG_INFO, DIALOG_STYLE_TABLIST_HEADERS, "Auflistung", str, "Schließen", "");
}
case QUERYEX_TESTBONUS:
{
if(!cache_num_rows()) return SendClientMessage(space, COLOR_LESSRED, "Es konnte kein Account gefunden werden oder du hast bereits den Bonus aktiviert.");
new diff = cache_get_field_content_int(0, "diff"),
money = diff * serverInfo[bonusMoney],
Float:exp = float(diff) * serverInfo[bonusExp];
if(diff < 1) return SendClientMessage(space, COLOR_LESSRED, "Tut uns Leid, aber deine damalige Aktivität reicht nicht für den Testbonus.");
SendClientMessage(space, COLOR_YELLOW, "Das [GSC] German Crimescene | CnR Team bedankt sich herzlich für die Hilfe.");
SendClientMessageX(space, COLOR_GREEN, "Du erhälst aufgrund deiner Mitarbeit $%s und %s EXP.", FormatNumber(money), FormatNumber(floatround(exp)));
GivePlayerMoney(space, money, "Testbonus");
GivePlayerExp(space, exp, _,"Testbonus");
new query[128];
mysql_format(dbHandle, query, 128, "UPDATE `accounts_testserver` SET `testserver` = 1 WHERE `id` = %d", cache_get_field_content_int(0, "id"));
mysql_tquery(dbHandle, query, "", "");
return 1;
}
case QUERYEX_ACSERIALBAN:
{
if(cache_num_rows())
{
new str[256];
format(str, 256, "Deine Anti - Cheat Serial konnte einem aktiven Ban zugeordnet werden.\nFolgende Daten konnten übermittelt werden:\n\nBan - ID: %d", cache_get_field_content_int(0, "id"));
ShowPlayerDialog(space, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Du bist gesperrt.", str, "O.K.", "");
KickEx(space);
return 1;
}
}
case QUERYEX_REACHEDSURPRISED:
{
new rows = cache_num_rows();
for(new i = 0; i < MAX_SURPRISE; i++)
{
playerInfo[space][pReachedSurprised][i] = false;
}
for(new i = 0; i < rows; i++)
{
playerInfo[space][pReachedSurprised][cache_get_field_content_int(i, "surpriseid")] = true;
}
return 1;
}
case QUERYEX_PLAYERCRIMINALS:
{
new rows = cache_num_rows();
if(!rows)
{
ShowPlayerDialog(space, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Aktuelle Verbrechen", "Kein Resultat.\n\nDer Spieler hatte seit seiner letzten Verhaftung keinerlei Verbrechen begangen.", "Schließen", "");
return 1;
}
new count[WANTED_MAX] = {0, ...};
for(new i = 0; i < rows; i++)
{
count[cache_get_field_content_int(i, "wantedid") - 1]++;
}
new str[1024];
for(new i = 0; i < WANTED_MAX; i++)
{
if(count[i] == 0) continue;
format(str, 1024, "%s[%dx] %s", str, count[i], wantedInfo[i][wiName]);
}
ShowPlayerDialog(space, DIALOG_MDCCURRENTCRIM, DIALOG_STYLE_LIST, "Aktuelle Verbrechen", str, "Zurück", "");
return 1;
}
}
return 1;
}
public OnQueryFinished(queryid)
{
new tempVar[256], rows = cache_num_rows();
switch(queryid)
{
case QUERY_ACHIEVEMENTS:
{
if(!rows) return 1;
new id = 0;
for(new i = 0; i < rows; i++)
{
id = cache_get_field_content_int(i, "id");
cache_get_field_content(i, "name", achievementInfo[id][aiName], dbHandle, 32);
cache_get_field_content(i, "description", achievementInfo[id][aiDescription], dbHandle, 256);
achievementInfo[id][aiRewardMoney] = cache_get_field_content_int(i, "reward_money");
achievementInfo[id][aiRewardExp] = cache_get_field_content_int(i, "reward_exp");
}
}
case QUERY_GROUP:
{
if(!rows) return 1;
new slotid;
for(new i = 0; i < rows; i++)
{
slotid = Iter_Free(Groups);
new loaded = cache_get_field_content_int(i, "loaded");
groupInfo[slotid][gLastActivity] = cache_get_field_content_int(i, "lastactivity");
if(loaded == 1 && groupInfo[slotid][gLastActivity] + (7 * 24 * 60 * 60) < gettime())
{
new id = cache_get_field_content_int(i, "id");
mysql_format(dbHandle, tempVar, sizeof(tempVar), "UPDATE `groups` SET `loaded` = '0' WHERE `id` = '%d'",id);
mysql_tquery(dbHandle, tempVar, "", "");
mysql_format(dbHandle, tempVar, sizeof(tempVar), "UPDATE `accounts` SET `group` = '0',`leader` = '0',`grouprank` = '0' WHERE `group` = '%d'", id);
mysql_tquery(dbHandle, tempVar, "", "");
mysql_format(dbHandle, tempVar, sizeof(tempVar), "UPDATE `vehicles` SET `loaded` = '0' WHERE `owner` = '%d'", id);
mysql_tquery(dbHandle, tempVar, "", "");
printf("Die Gruppen - ID %d war seit 7 Tagen nicht mehr Online, die Gruppe wird entladen.", id);
continue;
}
Iter_Add(Groups, slotid);
orm_apply_cache(InitializeGroupORM(slotid), i);
cache_get_field_content(i, "username", groupInfo[slotid][gLeader], dbHandle, MAX_PLAYER_NAME);
if(loaded == 0)
{
mysql_format(dbHandle, tempVar, 256, "UPDATE `groups` SET `loaded` = '1' WHERE `id` = '%d'", groupInfo[slotid][gSQLID]);
mysql_pquery(dbHandle, tempVar, "", "");
groupInfo[slotid][gLastActivity] = gettime();
}
if(groupInfo[slotid][gWar])
{
if(groupInfo[slotid][gWarTyp] == WAR_NORMAL || groupInfo[slotid][gWarTyp] == WAR_BIZ)
{
CreateWarTextDraw(slotid, (groupInfo[slotid][gWarTyp] == WAR_BIZ));
new index = SearchGroupIndex(groupInfo[slotid][gWar]);
if(index != INVALID_GROUP_ID)
{
groupInfo[slotid][gWarIndex] = index;
groupInfo[index][gWarIndex] = slotid;
UpdateWarTextDraw(slotid, index);
}
}
else if(groupInfo[slotid][gWarTyp] == WAR_ZONE)
{
new gIndex = groupInfo[slotid][gWarBiz];
gangFightInfo[gIndex][gfActiveFight] = true;
}
}
for(new x = MAX_RANKS - 1; x != 0; x--)
{
if(strlen(gRankName[slotid][x]) == 0) continue;
groupInfo[slotid][gHighestRank] = x;
break;
}
for(new x = 0; x < MAX_PERMS; x++)
{
if(groupInfo[slotid][gPermission][x]) continue;
groupInfo[slotid][gPermission][x] = groupInfo[slotid][gHighestRank];
}
groupInfo[slotid][gBuyedColor][0] = true;
}
UpdateGroupBoard();
}
case QUERY_GROUPWEAPONS:
{
if(!rows) return 1;
new groupindex, groupid, oldgroupid = INVALID_GROUP_ID, weaponid;
for(new i = 0; i < rows; i++)
{
groupid = cache_get_field_content_int(i, "groupid");
if(groupid != oldgroupid)
{
groupindex = GetGroupIndexFromSQLID(groupid);
if(groupindex == -1)
{
printf("[groups_weapons] SQLID %d bitte löschen. Gruppe (%d) konnte nicht gefunden werden.", cache_get_field_content_int(i, "id"), groupid);
continue;
}
}
weaponid = cache_get_field_content_int(i, "weaponid");
groupInfo[groupindex][gWeaponActivated][weaponid] = true;
groupInfo[groupindex][gWeaponPrice][weaponid] = cache_get_field_content_int(i, "weaponprice");
oldgroupid = groupid;
}
}
case QUERY_GROUPCOLOR:
{
if(!rows) return 1;
new groupindex, groupid, oldgroupid = INVALID_GROUP_ID;
for(new i = 0; i < rows; i++)
{
groupid = cache_get_field_content_int(i, "groupid");
if(groupid != oldgroupid)
{
groupindex = GetGroupIndexFromSQLID(groupid);
if(groupindex == -1)
{
//printf("[groups_buyedcolor] SQLID %d bitte löschen. Gruppe (%d) konnte nicht gefunden werden.", cache_get_field_content_int(i, "id"), groupid);
continue;
}
}
groupInfo[groupindex][gBuyedColor][cache_get_field_content_int(i, "colorid")];
oldgroupid = groupid;
}
}
case QUERY_GROUPALLIANCE:
{
if(!rows) return 1;
new groupindex, groupid, oldgroupid = INVALID_GROUP_ID, aIndex, value;
for(new i = 0; i < rows; i++)
{
groupid = cache_get_field_content_int(i, "groupid");
if(groupid != oldgroupid)
{
groupindex = GetGroupIndexFromSQLID(groupid);
if(groupindex == -1)
{
printf("[groups_alliance] SQLID %d bitte löschen. Gruppe (%d) konnte nicht gefunden werden.", cache_get_field_content_int(i, "id"), groupid);
continue;
}
}
aIndex = GetGroupIndexFromSQLID(cache_get_field_content_int(i, "allianceid"));
if(aIndex == -1)
{
printf("[groups_alliance : 2] SQLID %d bitte löschen. Alliance - Gruppe konnte nicht gefunden werden.", cache_get_field_content_int(i, "id"), groupid);
continue;
}
value = cache_get_field_content_int(i, "value");
GroupAlliance[groupindex][aIndex] = value;
GroupAlliance[aIndex][groupindex] = value;
}
}
case QUERY_HOUSE:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
new id = Iter_Free(Houses);
Iter_Add(Houses, id);
orm_apply_cache(InitializeHouseORM(id), i);
cache_get_field_content(i, "username", houseInfo[id][hOwner],dbHandle, MAX_PLAYER_NAME);
CreateHouse( houseInfo[id][hPos][0],
houseInfo[id][hPos][1],
houseInfo[id][hPos][2],
houseInfo[id][hLevel],
houseInfo[id][hPrice],
false,
id,
houseInfo[id][hOwnerID],
houseInfo[id][hInteriorSQLID],
houseInfo[id][hRent]
);
if(houseInfo[id][hTimestamp] + 60*60*24*14 < gettime() && houseInfo[id][hTimestamp] && houseInfo[id][hOwnerID] != 0)
{
new price = floatround(float(houseInfo[id][hPrice]) * 0.8);
format(tempVar, sizeof(tempVar),"Dein Haus (SQL-ID: %d) wurde wegen Inaktivität verkauft (14 Tage)^Du hast $%s überwiesen bekommen.", houseInfo[id][hSQLID],FormatNumber(price));
InsertPrivateNotification(3, houseInfo[id][hOwnerID], 0, "Automatischer Hausverkauf", tempVar);
InsertHouseLog(houseInfo[id][hOwnerID], 0, houseInfo[id][hSQLID], price, true);
mysql_format(dbHandle, tempVar, sizeof(tempVar), "UPDATE `accounts` SET `housekey` = '%d',`bank` = bank + %d WHERE `id` = '%d'",INVALID_HOUSE_ID,price,houseInfo[id][hOwnerID]);
mysql_function_query(dbHandle, tempVar, true, "", "");
houseInfo[id][hOwnerID] = 0;
UpdateHouse(id);
orm_update(houseInfo[id][hORMID]);
}
}
}
case QUERY_BADWORDS:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
if(i >= sizeof(badWords)) return printf("Der Array von der Variable badWord muss erhöht werden (Max: %d)",rows);
cache_get_field_content(i, "word", badWords[i][bwWord], dbHandle, 32);
badWords[i][bwMuteTime] = cache_get_field_content_int(i, "mutetime");
badWords[i][bwMoney] = cache_get_field_content_int(i, "money");
badWords[i][bwPunishment] =!! cache_get_field_content_int(i, "punishment");
}
}
case QUERY_TELEPORTS:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "name", tempVar);
sscanf(tempVar, "s[32]", portInfo[i][poName]);
portInfo[i][poSQLID] = cache_get_field_content_int(i, "id");
portInfo[i][poX] = cache_get_field_content_float(i, "x");
portInfo[i][poY] = cache_get_field_content_float(i, "y");
portInfo[i][poZ] = cache_get_field_content_float(i, "z");
portInfo[i][poA] = cache_get_field_content_float(i, "a");
portInfo[i][poInt] = cache_get_field_content_int(i, "int");
portInfo[i][poVirt] = cache_get_field_content_int(i, "virt");
printf("PO: imdex: %d, name: %s", i, portInfo[i][poName]);
}
}
case QUERY_ENTRANCES:
{
if(!rows) return 1;
new gindex;
for(new i = 0; i < rows; i++)
{
orm_apply_cache(InitializeEntranceORM(i), i);
entranceInfo[i][eiActorID] = INVALID_ACTOR_ID;
for(new x = 0; x < sizeof(interiorInfo); x++)
{
if(interiorInfo[x][iiSQLID] == 0 || interiorInfo[x][iiSQLID] != entranceInfo[i][eiExitSQLID]) continue;
entranceInfo[i][eiExitID] = x;
break;
}
entrancePickup[i][0] = CreateDynamicPickup(19198,1,entranceInfo[i][eiEntranceX],entranceInfo[i][eiEntranceY],entranceInfo[i][eiEntranceZ]);
entrancePickup[i][1] = CreateDynamicPickup(19198,1,interiorInfo[entranceInfo[i][eiExitID]][iiPosX],interiorInfo[entranceInfo[i][eiExitID]][iiPosY],interiorInfo[entranceInfo[i][eiExitID]][iiPosZ],entranceInfo[i][eiSQLID],interiorInfo[entranceInfo[i][eiExitID]][iiInterior]);
entranceInfo[i][eiBlackmailerIndex] = 0;
if(entranceInfo[i][eiRobable])
{
if(entranceInfo[i][eiBlackmailer] != 0)
{
gindex = SearchGroupIndex(entranceInfo[i][eiBlackmailer]);
if(gindex != INVALID_GROUP_ID)
{
entranceInfo[i][eiBlackmailer] = entranceInfo[i][eiBlackmailer];
entranceInfo[i][eiBlackmailerIndex] = gindex;
groupInfo[gindex][gBizes]++;
format(entranceInfo[i][eiBlackmailerName], 24, groupInfo[gindex][gName]);
}
else
{
entranceInfo[i][eiBlackmailer] = 0;
entranceInfo[i][eiBlackmailerIndex] = 0;
format(entranceInfo[i][eiBlackmailerName], 24, "Niemand");
}
}
BusinessZone[i] = GangZoneCreate(entranceInfo[i][eiEntranceX] - 80,entranceInfo[i][eiEntranceY] - 80,entranceInfo[i][eiEntranceX] + 80,entranceInfo[i][eiEntranceY] + 80);
}
if(entranceInfo[i][eiOwnable])
{
cache_get_field_content(i, "username", entranceInfo[i][eiOwner], dbHandle, MAX_PLAYER_NAME);
}
if(!strcmp(entranceInfo[i][eiEntranceName], "Hitman Agency", true))
{
//Hitman Duty Point
CreateDynamicPickup(1314,1,-1972.8605,-1020.0619,32.1719, entranceInfo[i][eiSQLID], interiorInfo[entranceInfo[i][eiExitID]][iiInterior]);
CreateDynamic3DTextLabel("[ Hitman Duty - Point ]\n{FFFFFF}/duty",0xEBE865FF,2557.2664,-1286.9124,1031.4219,7.5,_,_,_,entranceInfo[i][eiSQLID],interiorInfo[entranceInfo[i][eiExitID]][iiInterior]);
}
else if(!strcmp(entranceInfo[i][eiEntranceName], "San Fierro Police Department", true))
{
serverInfo[currentSFPDVirtualWorld] = entranceInfo[i][eiSQLID];
}
UpdateBusinessLabel(i);
if(entranceInfo[i][eiActor])
{
if(!strcmp(entranceInfo[i][eiEntranceName],"Tankstellenshop",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ", random(128) + 1, 2.5425,-30.7009,1003.5494,358.8041, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"24/7",true) || !strcmp(entranceInfo[i][eiEntranceName],"24 / 7",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ", random(128) + 1, -23.2354,-57.3333,1003.5469,357.3412, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"Burger Shot",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ", 205, 376.5205,-65.8491,1001.5078,181.8929, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"Cluckin' Bell",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ", 167, 368.1003,-4.4916,1001.8516,177.8366, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"The Well Stacked Pizza Co",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ", 155, 374.7286,-117.2780,1001.4922,182.6716, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"Zip",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ", 91, 161.3772,-81.1904,1001.8047,180.5207, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"Victim",true))
{
entranceInfo[i][eiActorID] = CreateServerActor(" ",59, 204.8537,-9.2315,1001.2109,270.0983, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName],"Ammu-Nation",true))
{
if(interiorInfo[entranceInfo[i][eiExitID]][iiInterior] == 1)
{
entranceInfo[i][eiActorID] = CreateServerActor(" ",179, 296.5288,-40.2157,1001.5156,359.3491, i, true, false);
}
else if(interiorInfo[entranceInfo[i][eiExitID]][iiInterior] == 7)
{
entranceInfo[i][eiActorID] = CreateServerActor(" ",179, 316.1088,-133.6470,999.6016,87.6246, i, true, false);
}
}
if(!strcmp(entranceInfo[i][eiEntranceName], "Barber", true))
{
new skinid[3] = {156, 176, 177};
if(interiorInfo[entranceInfo[i][eiExitID]][iiInterior] == 2)
{
entranceInfo[i][eiActorID] = CreateServerActor(" ",skinid[random(3)], 412.6522,-18.9064,1001.8047,270.8430, i, true, false);
}
else if(interiorInfo[entranceInfo[i][eiExitID]][iiInterior] == 3)
{
entranceInfo[i][eiActorID] = CreateServerActor(" ",skinid[random(3)], 419.6780,-78.0248,1001.8047,268.5116, i, true, false);
}
else if(interiorInfo[entranceInfo[i][eiExitID]][iiInterior] == 12)
{
entranceInfo[i][eiActorID] = CreateServerActor(" ",skinid[random(3)], 408.9913,-53.8146,1001.8984,273.5420, i, true, false);
}
}
if(!strcmp(entranceInfo[i][eiEntranceName], "Tattoo Shop", true))
{
new skinid[4] = {180, 242, 241, 121};
entranceInfo[i][eiActorID] = CreateServerActor(" ",skinid[random(4)], -202.6272,-24.1655,1002.2734,248.0721, i, true, false);
}
if(!strcmp(entranceInfo[i][eiEntranceName], "Sex-Shop", true))
{
new skinid[10] = {63,64,75,85,152,207,237,238,243,245};
entranceInfo[i][eiActorID] = CreateServerActor(" ",skinid[random(10)], 743.4773,1439.8409,1102.7031,270.1068, i, true, false);
}
}
serverInfo[currentEntrances]++;
}
}
case QUERY_GROUPFIGHT:
{
if(!rows) return 1;
new str[128];
for(new i = 0; i < rows; i++)
{
CreateDynamicPickup(1314, 1, gangfightZoneData[i][gfCtfX], gangfightZoneData[i][gfCtfY], gangfightZoneData[i][gfCtfZ]);
gangFightZone[i] = GangZoneCreate(gangfightZoneData[i][gfMinX],gangfightZoneData[i][gfMinY],gangfightZoneData[i][gfMaxX],gangfightZoneData[i][gfMaxY]);
gangFightInfo[i][gfOwner] = cache_get_field_content_int(i, "owner");
gangFightInfo[i][gfAttacker] = cache_get_field_content_int(i, "attacker");
gangFightInfo[i][gfProtectionTime] = cache_get_field_content_int(i, "protectiontime");
gangFightInfo[i][gfCtfID] = INVALID_PLAYER_ID;
new gIndex = SearchGroupIndex(gangFightInfo[i][gfOwner]);
if(gIndex == INVALID_GROUP_ID || gangFightInfo[i][gfOwner] == 0)
{
new id = GetRandomGroupID();
gangFightInfo[i][gfOwner] = groupInfo[id][gSQLID];
gIndex = id;
}
gangFightInfo[i][gfOwnerIndex] = gIndex;
format(str, 128, "%s\n\nCapture The Flag Zone\n{FFFFFF}Flagge einnehmen: /ctf", groupInfo[gIndex][gName]);
gangFightInfo[i][gfLabelID] = CreateDynamic3DTextLabel(str, 0xFF9600FF, gangfightZoneData[i][gfCtfX], gangfightZoneData[i][gfCtfY], gangfightZoneData[i][gfCtfZ], 10.0);
InitPlayerGangZoneInfo(i);
UpdateGangZoneScore(i);
}
}
case QUERY_COMMANDCONFIG:
{
if(!rows) return 1;
new x = 0;
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "command", tempVar);
x = Command_GetID(tempVar);
if(x == -1)
{
printf("%s existiert nicht als Befehl.", tempVar);
continue;
}
sscanf(tempVar, "s[32]", commandInfo[x][ciName]);
commandInfo[x][ciSQLID] = cache_get_field_content_int(i, "id");
commandInfo[x][ciRank] = cache_get_field_content_int(i, "rank");
//printf("Command: %s, id: %d, rank: %d",commandInfo[x][ciName],x,commandInfo[x][ciRank]);
}
}
case QUERY_IRC:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
ircInfo[i][ircSQLID] = cache_get_field_content_int(i, "id");
cache_get_field_content(i, "name", tempVar);
sscanf(tempVar, "s[32]", ircInfo[i][ircName]);
cache_get_field_content(i, "password", tempVar);
sscanf(tempVar, "s[32]", ircInfo[i][ircPassword]);
cache_get_field_content(i, "owner", tempVar);
sscanf(tempVar, "s[24]", ircInfo[i][ircOwner]);
printf("name: %s, password: %s, owner: %s", ircInfo[i][ircName], ircInfo[i][ircPassword], ircInfo[i][ircOwner]);
}
}
case QUERY_VEHICLETRADER:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
vehicleTrader[i][vtSQLID] = cache_get_field_content_int(i, "id");
cache_get_field_content(i, "name", vehicleTrader[i][vtName], dbHandle, 32);
vehicleTrader[i][vtMinX] = cache_get_field_content_float(i, "minx");
vehicleTrader[i][vtMinY] = cache_get_field_content_float(i, "miny");
vehicleTrader[i][vtMaxX] = cache_get_field_content_float(i, "maxx");
vehicleTrader[i][vtMaxY] = cache_get_field_content_float(i, "maxy");
vehicleTrader[i][vtBank] = cache_get_field_content_int(i, "bank");
new id = Iter_Free(NoDmZone);
Iter_Add(NoDmZone, id);
CreateNoDmZone(id, vehicleTrader[i][vtName], vehicleTrader[i][vtMinX], vehicleTrader[i][vtMinY], vehicleTrader[i][vtMaxX], vehicleTrader[i][vtMaxY]);
}
}
case QUERY_VEHICLETRADERSPAWN:
{
if(!rows) return 1;
new x;
for(new i = 0; i < rows; i++)
{
x = GetVehicleTraderFromSqlId(cache_get_field_content_int(i, "vehicletrader"));
if(x == -1)
{
printf("Dieser Fahrzeugspawn konnte keinem Autohaus zugewiesen werden (ID: %d)", cache_get_field_content_int(i, "id"));
continue;
}
new y = vehicleTrader[x][vtSpawns];
vehicleTraderSpawns[x][vtsTyp][y] = cache_get_field_content_int(i, "typ");
vehicleTraderSpawns[x][vtsX][y] = cache_get_field_content_float(i, "x");
vehicleTraderSpawns[x][vtsY][y] = cache_get_field_content_float(i, "y");
vehicleTraderSpawns[x][vtsZ][y] = cache_get_field_content_float(i, "z");
vehicleTraderSpawns[x][vtsA][y] = cache_get_field_content_float(i, "a");
vehicleTrader[x][vtSpawns]++;
vehicleTrader[x][vtMaxSpawn][vehicleTraderSpawns[x][vtsTyp][y]]++;
}
}
case QUERY_ACTORS:
{
if(!rows) return 1;
new id, actorName[24];
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "name", actorName, dbHandle, 24);
id = CreateServerActor(actorName,
cache_get_field_content_int(i, "modelid"),
cache_get_field_content_float(i, "x"),
cache_get_field_content_float(i, "y"),
cache_get_field_content_float(i, "z"),
cache_get_field_content_float(i, "angle"),
cache_get_field_content_int(i, "virtualworld"),
cache_get_field_content_int(i, "robable"),
cache_get_field_content_int(i, "questable"));
cache_get_field_content(i, "animlib", actorInfo[id][acAnimLib], dbHandle, 32);
cache_get_field_content(i, "animname", actorInfo[id][acAnimName], dbHandle, 32);
if(!isnull(actorInfo[id][acAnimLib]) && !isnull(actorInfo[id][acAnimName]))
{
ApplyActorAnimation(id, actorInfo[id][acAnimLib], actorInfo[id][acAnimName], 4.1, 1, 0, 0, 0, 0);
}
}
}
case QUERY_FACTIONLIST:
{
if(!rows) return 1;
new str[32];
for(new i = 0; i < rows; i++)
{
new ORM:ormid = factionInfo[i][fiORMID] = orm_create("factionlist", dbHandle);
orm_addvar_int(ormid, factionInfo[i][fiSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_string(ormid, factionInfo[i][fiName], 24, "name");
orm_addvar_float(ormid, factionInfo[i][fiSpawnX], "pos_x");
orm_addvar_float(ormid, factionInfo[i][fiSpawnY], "pos_y");
orm_addvar_float(ormid, factionInfo[i][fiSpawnZ], "pos_z");
orm_addvar_float(ormid, factionInfo[i][fiSpawnA], "pos_a");
orm_addvar_int(ormid, factionInfo[i][fiInterior], "interior");
orm_addvar_int(ormid, factionInfo[i][fiVirtualWorld], "virtualworld");
orm_addvar_int(ormid, factionInfo[i][fiBank], "bank");
orm_addvar_int(ormid, factionInfo[i][fiTeam], "team");
for(new x = 0; x < MAX_RANKS; x++)
{
format(str, 32, "rankname_%d", x);
orm_addvar_string(ormid, fRankName[i][x], 32, str);
}
orm_apply_cache(ormid, i);
}
}
case QUERY_INTERIOR:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "name", interiorInfo[i][iiName], dbHandle, 32);
interiorInfo[i][iiSQLID] = cache_get_field_content_int(i, "id");
interiorInfo[i][iiPosX] = cache_get_field_content_float(i, "pos_x");
interiorInfo[i][iiPosY] = cache_get_field_content_float(i, "pos_y");
interiorInfo[i][iiPosZ] = cache_get_field_content_float(i, "pos_z");
interiorInfo[i][iiPosA] = cache_get_field_content_float(i, "pos_a");
interiorInfo[i][iiInterior] = cache_get_field_content_int(i, "interior");
interiorInfo[i][iiFreeze] =!! cache_get_field_content_int(i, "freeze");
interiorInfo[i][iiBuyable] =!! cache_get_field_content_int(i, "buyable");
interiorInfo[i][iiPrice] = cache_get_field_content_int(i, "price");
}
}
/*case QUERY_LOTTERY:
{
if(!rows)
{
SendClientMessageToAll(COLOR_LOTTERY, "[ LOTTERY ] Es konnte kein Gewinner festgestellt werden. In 60 Minuten");
SendClientMessageToAllX(COLOR_LOTTERY, "[ LOTTERY ] beträgt der Jackpot dadurch $%s!", FormatNumber(serverInfo[lotteryJackpot]));
UpdateLottoObj("Lottoziehung:\n\nEs gab leider \nkeine Gewinner.");
return 1;
}
new bool:number[49] = {false,...}, str[12], success = 0;
for(new i = 0; i < rows; i++)
{
success = 0;
for(new n = 1; n < 7; n++)
{
format(str, 12, "number_%d");
number[cache_get_field_content_int(i, str)] = true;
}
for(new n = 0; n < 6; n++)
{
if(number[serverInfo[lotteryNumbers][n]] == true)
success++;
}
if(success < 6)
{
new query[128];
mysql_format(dbHandle, query, 128, "DELETE FROM `lotterytickets` WHERE `id` = %d", cache_get_field_content_int(i, "id"));
mysql_tquery(dbHandle, query, "", "");
}
}
new query[128];
mysql_format(dbHandle, query, 128, "SELECT accounts.username, lotterytickets.ownerid FROM accounts, lotterytickets WHERE lotterytickets.ownerid = accounts.id");
mysql_tquery(dbHandle, query, "OnQueryFinished", "d", QUERY_LOTTERY2);
}
case QUERY_LOTTERY2:
{
if(!rows)
{
SendClientMessageToAll(COLOR_LOTTERY, "[ LOTTERY ] Es konnte kein Gewinner festgestellt werden. In 60 Minuten");
SendClientMessageToAllX(COLOR_LOTTERY, "[ LOTTERY ] beträgt der Jackpot dadurch $%s!", FormatNumber(serverInfo[lotteryJackpot]));
UpdateLottoObj("Lottoziehung:\n\nEs gab leider \nkeine Gewinner.");
}
else
{
new money = floatround(float(serverInfo[lotteryJackpot]) / float(rows)), name[MAX_PLAYER_NAME], pID, str[128];
format(str, 128, "Lottoziehung\nWir haben %d Gewinner!\n", rows);
SendClientMessageToAll(COLOR_LOTTERY, "[ LOTTERY ] Wir haben einen neuen Lotto - König, der Jackpot wurde geknackt!");
SendClientMessageToAllX(COLOR_LOTTERY, "[ LOTTERY ] Der unfassbare Jackpot von $%s wird den Gewinnern (Anzahl: %d) überwiesen.", rows);
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "username", name, dbHandle, MAX_PLAYER_NAME);
format(str, 128, "%s%s\n", str, name);
SendClientMessageToAllX(COLOR_LOTTERY, "[ LOTTERY ] %s hat den Jackpot geknackt und $%s erhalten.", name, money);
pID = GetPlayerIDFromSQLID(cache_get_field_content_int(i, "ownerid"));
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(pID, COLOR_LIGHTBLUE, "[ LOTTERY ] Du hast beim Lotto $%s gewonnen!!!", FormatNumber(money));
GivePlayerBankMoney(pID, money, "Lotto-Gewinn");
}
else
{
new query[128];
mysql_format(dbHandle, query,128, "UPDATE `accounts` SET `bank` = bank+%d WHERE `id` = %d", money, cache_get_field_content_int(i, "ownerid"));
mysql_tquery(dbHandle, query, "", "");
format(query, 128, "Es haben %d Spieler im Lotto gewonnen, du bist einer von ihnen! Herzlichen Glückwunsch, dir wurden $%s überwiesen.", rows, FormatNumber(money));
InsertPrivateNotification(3, cache_get_field_content_int(i, "ownerid"), 0, "Lottogewinner", query);
}
}
}
}*/
case QUERY_NODMZONE:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
new id = Iter_Free(NoDmZone);
Iter_Add(NoDmZone, id);
new ORM:ormid = nodmZone[id][ndmORMID] = orm_create("nodmzone", dbHandle);
orm_addvar_int(ormid, nodmZone[id][ndmSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_string(ormid, nodmZone[id][ndmName], 32, "name");
orm_addvar_float(ormid, nodmZone[id][ndmMinX], "minx");
orm_addvar_float(ormid, nodmZone[id][ndmMinY], "miny");
orm_addvar_float(ormid, nodmZone[id][ndmMaxX], "maxx");
orm_addvar_float(ormid, nodmZone[id][ndmMaxY], "maxy");
orm_apply_cache(ormid, i);
CreateNoDmZone(id, nodmZone[id][ndmName], nodmZone[id][ndmMinX], nodmZone[id][ndmMinY], nodmZone[id][ndmMaxX], nodmZone[id][ndmMaxY], nodmZone[id][ndmSQLID]);
}
}
case QUERY_NAVICATEGORY:
{
if(!rows) return 1;
new id;
for(new i = 0; i < rows; i++)
{
id = Iter_Free(NavigationCategory);
Iter_Add(NavigationCategory, id);
orm_apply_cache(InitializeNaviCategoryORM(id), i);
}
mysql_tquery(dbHandle,"SELECT * FROM `navigation`", "OnQueryFinished","d",QUERY_NAVI);
}
case QUERY_NAVI:
{
if(!rows) return 1;
new id;
for(new i = 0; i < rows; i++)
{
id = Iter_Free(Navigation);
Iter_Add(Navigation, id);
orm_apply_cache(InitializeNavigationORM(id), i);
}
}
case QUERY_PATROLCHECKPOINTS:
{
if(!rows) return 1;
new id;
for(new i = 0; i < rows; i++)
{
id = cache_get_field_content_int(i, "cpid");
patrolCheckpoints[id][pcX][patrolCheckpoints[id][pcCheckpoints]] = cache_get_field_content_float(i, "x");
patrolCheckpoints[id][pcY][patrolCheckpoints[id][pcCheckpoints]] = cache_get_field_content_float(i, "y");
patrolCheckpoints[id][pcZ][patrolCheckpoints[id][pcCheckpoints]] = cache_get_field_content_float(i, "z");
patrolCheckpoints[id][pcTime][patrolCheckpoints[id][pcCheckpoints]] = cache_get_field_content_int(i, "time");
if(patrolCheckpoints[id][pcCheckpoints] == 0) serverInfo[CountPatrolCPs]++;
patrolCheckpoints[id][pcCheckpoints]++;
}
}
case QUERY_WANTEDS:
{
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
wantedInfo[i][wiID] = cache_get_field_content_int(i, "id");
cache_get_field_content(i, "name", wantedInfo[i][wiName],dbHandle, 32);
wantedInfo[i][wiWanteds] = cache_get_field_content_int(i, "wanteds");
wantedInfo[i][wiTicketProtect] =!! cache_get_field_content_int(i, "ticketprotect");
}
}
}
return 1;
}
stock ORM:InitializeEntranceORM(id)
{
new ORM:ormid = entranceInfo[id][eiORMID] = orm_create("businesse", dbHandle);
orm_addvar_int(ormid, entranceInfo[id][eiSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_string(ormid, entranceInfo[id][eiEntranceName], 32, "entrancename");
orm_addvar_string(ormid, entranceInfo[id][eiEntranceColor], 8, "entrancecolor");
orm_addvar_float(ormid, entranceInfo[id][eiEntranceX], "entrance_x");
orm_addvar_float(ormid, entranceInfo[id][eiEntranceY], "entrance_y");
orm_addvar_float(ormid, entranceInfo[id][eiEntranceZ], "entrance_z");
orm_addvar_float(ormid, entranceInfo[id][eiEntranceA], "entrance_a");
orm_addvar_int(ormid, entranceInfo[id][eiExitSQLID], "exitid");
orm_addvar_int(ormid, entranceInfo[id][eiRobable], "robable");
orm_addvar_int(ormid, entranceInfo[id][eiActor], "actor");
orm_addvar_int(ormid, entranceInfo[id][eiOwnable], "ownable");
orm_addvar_int(ormid, entranceInfo[id][eiBlackMailerProtection], "protectiontime");
orm_addvar_int(ormid, entranceInfo[id][eiBlackmailer], "blackmailer");
orm_addvar_int(ormid, entranceInfo[id][eiOwnerID], "owner");
orm_addvar_int(ormid, entranceInfo[id][eiPrice], "price");
orm_addvar_int(ormid, entranceInfo[id][eiBank], "bank");
orm_addvar_int(ormid, entranceInfo[id][eiLevel], "level");
orm_addvar_int(ormid, entranceInfo[id][eiProds], "prods");
orm_addvar_int(ormid, entranceInfo[id][eiMaxProds], "maxprods");
orm_addvar_int(ormid, entranceInfo[id][eiProdsPrice], "prodsprice");
return ormid;
}
stock ORM:InitializeGroupORM(id)
{
new ORM:ormid = groupInfo[id][gORMID] = orm_create("groups", dbHandle);
orm_addvar_int(ormid, groupInfo[id][gSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_string(ormid, groupInfo[id][gName], 18, "groupname");
orm_addvar_int(ormid, groupInfo[id][gLeaderID], "leader");
orm_addvar_int(ormid, groupInfo[id][gLastActivity], "lastactivity");
orm_addvar_int(ormid, groupInfo[id][gMember], "member");
orm_addvar_int(ormid, groupInfo[id][gMaxMember], "maxmember");
orm_addvar_int(ormid, groupInfo[id][gUpgrade][GROUPUPGRADE_VEHICLE], "maxvehicles");
orm_addvar_int(ormid, groupInfo[id][gUpgrade][GROUPUPGRADE_MEMBER], "upgrade_maxmember");
orm_addvar_int(ormid, groupInfo[id][gBaseID], "base");
orm_addvar_int(ormid, groupInfo[id][gBank], "bank");
orm_addvar_int(ormid, groupInfo[id][gMats], "mats");
orm_addvar_int(ormid, groupInfo[id][gDrugs], "drugs");
orm_addvar_int(ormid, groupInfo[id][gMatsPrice], "matsprice");
orm_addvar_int(ormid, groupInfo[id][gMatsMaxPrice], "maxmatsprice");
orm_addvar_int(ormid, groupInfo[id][gDrugsBuyPrice], "drugsbuyprice");
orm_addvar_int(ormid, groupInfo[id][gDrugsSellPrice], "drugssellprice");
orm_addvar_float(ormid, groupInfo[id][gExp], "exp");
orm_addvar_int(ormid, groupInfo[id][gKills], "kills");
orm_addvar_int(ormid, groupInfo[id][gDeaths], "deaths");
orm_addvar_int(ormid, groupInfo[id][gAllowDM], "allowdm");
orm_addvar_int(ormid, groupInfo[id][gUpgrade][GROUPUPGRADE_HEAL], "heal");
orm_addvar_int(ormid, groupInfo[id][gWar], "war");
orm_addvar_int(ormid, groupInfo[id][gColor], "color");
orm_addvar_int(ormid, groupInfo[id][gWarLock], "warlock");
orm_addvar_int(ormid, groupInfo[id][gWarBizLock], "bizlock");
orm_addvar_int(ormid, groupInfo[id][gWarZoneLock], "zonelock");
orm_addvar_int(ormid, groupInfo[id][gWarKills], "warkills");
orm_addvar_int(ormid, groupInfo[id][gWarTime], "wartime");
orm_addvar_int(ormid, groupInfo[id][gWarTyp], "wartype");
orm_addvar_int(ormid, groupInfo[id][gWarPrice], "warprice");
orm_addvar_int(ormid, groupInfo[id][gWarBiz], "warbiz");
orm_addvar_string(ormid, groupInfo[id][gMotD], 95, "motd");
orm_addvar_int(ormid, groupInfo[id][gRewardKill][0], "rewardkill_normal");
orm_addvar_int(ormid, groupInfo[id][gRewardKill][1], "rewardkill_gangzone");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_INVITE], "perm_invite");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_UNINVITE], "perm_uninvite");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_VEHDEAL], "perm_vehdeal");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_VEHTUNING], "perm_vehtuning");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_VEHCONTROL], "perm_vehcontrol");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_VEHLABEL], "perm_vehlabel");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_VEHPARK], "perm_vehpark");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_WITHDRAW], "perm_withdraw");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_ALLIANCE], "perm_alliance");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_WAR], "perm_war");
orm_addvar_int(ormid, groupInfo[id][gPermission][PERM_GETDRUGS], "perm_getdrugs");
new str[32];
for(new x = 0; x < MAX_RANKS; x++)
{
format(str, 32, "drugsamount_%d", x);
orm_addvar_int(ormid, gDrugsAmount[id][x], str);
}
for(new x = 0; x < MAX_RANKS; x++)
{
format(str, 32, "rankname_%d", x);
orm_addvar_string(ormid, gRankName[id][x], 32, str);
}
return ormid;
}
stock ORM:InitializeVehicleORM(slotid)
{
new ORM: ormid = vehicleInfo[slotid][viORMID] = orm_create("vehicles", dbHandle), str[18];
orm_addvar_int(ormid, vehicleInfo[slotid][viSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_int(ormid, vehicleInfo[slotid][viOwnerTyp], "ownertyp");
orm_addvar_int(ormid, vehicleInfo[slotid][viOwnerID], "owner");
orm_addvar_int(ormid, vehicleInfo[slotid][viLoaded], "loaded");
orm_addvar_int(ormid, vehicleInfo[slotid][viModelID], "modelid");
orm_addvar_float(ormid, vehicleInfo[slotid][viPos][0], "posX");
orm_addvar_float(ormid, vehicleInfo[slotid][viPos][1], "posY");
orm_addvar_float(ormid, vehicleInfo[slotid][viPos][2], "posZ");
orm_addvar_float(ormid, vehicleInfo[slotid][viPos][3], "posA");
orm_addvar_int(ormid, vehicleInfo[slotid][viColor][0], "c1");
orm_addvar_int(ormid, vehicleInfo[slotid][viColor][1], "c2");
orm_addvar_int(ormid, vehicleInfo[slotid][viPaintjobID], "pj");
orm_addvar_float(ormid, vehicleInfo[slotid][viMaxHealth], "maxhealth");
orm_addvar_int(ormid, vehicleInfo[slotid][viPrice], "price");
orm_addvar_int(ormid, vehicleInfo[slotid][viRank], "rank");
orm_addvar_int(ormid, vehicleInfo[slotid][viOption], "option");
orm_addvar_int(ormid, vehicleInfo[slotid][viExpireDate], "expiredate");
orm_addvar_int(ormid, vehicleInfo[slotid][viNeon], "neon");
orm_addvar_int(ormid, vehicleInfo[slotid][viSafeWheels], "safewheels");
orm_addvar_string(ormid, vehicleInfo[slotid][viNumberPlate], 32, "numberplate");
for(new x = 0; x < 14; x++)
{
format(str, 18, "tuning_%d", x);
orm_addvar_int(ormid, vehicleInfo[slotid][viTuning][x], str);
}
return ormid;
}
stock ORM:InitializeHouseORM(id)
{
new ORM:ormid = houseInfo[id][hORMID] = orm_create("houses", dbHandle);
orm_addvar_int(ormid, houseInfo[id][hSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_int(ormid, houseInfo[id][hBank], "bank");
orm_addvar_int(ormid, houseInfo[id][hRobberProtect], "robberprotect");
orm_addvar_int(ormid, houseInfo[id][hOwnerID], "owner");
orm_addvar_int(ormid, houseInfo[id][hTimestamp], "timestamp");
orm_addvar_float(ormid, houseInfo[id][hPos][0], "posX");
orm_addvar_float(ormid, houseInfo[id][hPos][1], "posY");
orm_addvar_float(ormid, houseInfo[id][hPos][2], "posZ");
orm_addvar_int(ormid, houseInfo[id][hLevel], "level");
orm_addvar_int(ormid, houseInfo[id][hPrice], "price");
orm_addvar_int(ormid, houseInfo[id][hInteriorSQLID], "interiorid");
orm_addvar_int(ormid, houseInfo[id][hRent], "rent");
orm_addvar_int(ormid, houseInfo[id][hSilenctAlarm], "silenctalarm");
orm_addvar_int(ormid, houseInfo[id][hUpgrade][HOUSEUPGRADE_ALARMSYSTEM], "alarmsystem");
orm_addvar_int(ormid, houseInfo[id][hUpgrade][HOUSEUPGRADE_SAFE], "safe");
orm_addvar_int(ormid, houseInfo[id][hUpgrade][HOUSEUPGRADE_CAMERA], "camera");
return ormid;
}
stock ORM:InitializeNaviCategoryORM(id)
{
new ORM:ormid = naviCategory[id][ncORMID] = orm_create("navicategory", dbHandle);
orm_addvar_int(ormid, naviCategory[id][ncSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_string(ormid, naviCategory[id][ncName], 32, "name");
return ormid;
}
stock ORM:InitializeNavigationORM(id)
{
new ORM:ormid = navigationInfo[id][niORMID] = orm_create("navigation", dbHandle);
orm_addvar_int(ormid, navigationInfo[id][niSQLID], "id");
orm_setkey(ormid, "id");
orm_addvar_string(ormid, navigationInfo[id][niName],32, "name");
orm_addvar_int(ormid, navigationInfo[id][niCategory], "category");
orm_addvar_float(ormid, navigationInfo[id][niPosX], "pos_x");
orm_addvar_float(ormid, navigationInfo[id][niPosY], "pos_y");
orm_addvar_float(ormid, navigationInfo[id][niPosZ], "pos_z");
return ormid;
}
stock GetVehicleTraderFromSqlId(sqlid)
{
for(new i = 0, j = sizeof(vehicleTrader); i < j; i++)
{
if(vehicleTrader[i][vtSQLID] == sqlid) return i;
}
return -1;
}
public LoadVehicles(playerid)
{
new rows = cache_num_rows();
for(new i = 0; i < rows; i++)
{
new ORM:ormid, slotid = GetFreeVehicleSlotID();
Iter_Add(Vehicles, slotid);
ormid = InitializeVehicleORM(slotid);
orm_apply_cache(ormid, i);
if(vehicleInfo[slotid][viOwnerTyp] == OWNERTYP_GROUP && vehicleInfo[slotid][viLoaded] == false)
{
new groupid = SearchGroupIndex(vehicleInfo[slotid][viOwnerID]);
if(groupid != INVALID_GROUP_ID)
{
vehicleInfo[slotid][viLoaded] = true;
}
}
new vehicleid = CreatePersonalVehicle( vehicleInfo[slotid][viModelID],
vehicleInfo[slotid][viPos][0],
vehicleInfo[slotid][viPos][1],
vehicleInfo[slotid][viPos][2],
vehicleInfo[slotid][viPos][3],
vehicleInfo[slotid][viColor][0],
vehicleInfo[slotid][viColor][1],
vehicleInfo[slotid][viPaintjobID],
vehicleInfo[slotid][viPrice],
vehicleInfo[slotid][viOwnerTyp],
vehicleInfo[slotid][viOwnerID],
vehicleInfo[slotid][viMaxHealth],
vehicleInfo[slotid][viRank],
0,
vehicleInfo[slotid][viOption],
(vehicleInfo[slotid][viLoaded] ? 2 : 0),
_,
vehicleInfo[slotid][viExpireDate],
slotid
);
SetVehicleNumberPlate(vehicleid, vehicleInfo[slotid][viNumberPlate]);
SetVehicleToRespawn(vehicleid);
if(playerid != INVALID_PLAYER_ID)
{
foreach(new pID : Player)
SetVehicleParamsForPlayerEx(vehicleid,pID, false, true);
}
if(gettime() > vehicleInfo[slotid][viExpireDate] && vehicleInfo[slotid][viExpireDate])
{
ClearVehicleSlot(slotid, true);
Iter_Remove(Vehicles, slotid);
if(playerid != INVALID_PLAYER_ID) SendClientMessageX(playerid, COLOR_RED, "Das Fahrzeug %s ist abgelaufen.", GetVehicleName(vehicleid));
}
}
if(playerid != INVALID_PLAYER_ID) playerInfo[playerid][pVehicles] = rows;
return 1;
}
public OnServerCheckIpExists(playerid, ip[])
{
new rows = cache_num_rows();
if(!rows) return SendClientMessage(playerid, COLOR_LESSRED, "Diese IP ist nicht von einem Range-Ban betroffen.");
if(rows == 1)
{
new query[128];
mysql_format(dbHandle, query, 128, "DELETE FROM `iptable` WHERE `id` = '%d'", cache_get_field_content_int(0, "id"));
mysql_pquery(dbHandle, query, "", "");
format(query,sizeof(query),"* %s %s hat die IP %s entbannt.",GetPlayerTitle(playerid),GetPlayerNameEx(playerid),ip);
SendAdminMessage(COLOR_RED, query);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/unbanip",ip);
return 1;
}
DialogTempDataIndex[playerid] = 0;
new startip[16], endip[16], str[512];
for(new i = 0; i < rows; i++)
{
cache_get_field_content(i, "fixstartip", startip, dbHandle);
cache_get_field_content(i, "fixendip", endip, dbHandle);
format(str, sizeof(str), "%s%s - %s\n", str, startip, endip);
DialogTempData[playerid][DialogTempDataIndex[playerid]] = cache_get_field_content_int(i, "id");
DialogTempDataIndex[playerid]++;
}
ShowPlayerDialog(playerid, DIALOG_UNBANIP, DIALOG_STYLE_LIST, "Mögliche Rangebans", str, "Löschen", "Schließen");
return 1;
}
public DelayedFunction(playerid, index)
{
switch(index)
{
case 1: SetPlayerArmedWeapon(playerid, 0);
}
}
public OnServerLoadFriends(playerid, msg)
{
new rows = cache_num_rows();
if(!msg)
for(new i = 0; i < MAX_FRIENDS; i++)
{
playerInfo[playerid][pFriends][i] = 0;
}
if(rows)
{
for(new i = 0; i < rows; i++)
{
playerInfo[playerid][pFriends][i] = cache_get_field_content_int(i, "friendid");
if(playerInfo[playerid][pFriends][i] == playerInfo[playerid][pSQLID]) playerInfo[playerid][pFriends][i] = cache_get_field_content_int(i, "playerid");
}
}
if(msg)
foreach(new i : Player)
for(new x = 0; x < MAX_FRIENDS; x++)
if(playerInfo[playerid][pSQLID] == playerInfo[i][pFriends][x] && playerInfo[i][pFriends][x])
SendClientMessageX(i, 0xD99B80FF, "** Freund %s hat den Server betreten. **", GetPlayerNameEx(playerid));
return 1;
}
public OnServerSearchFriend(playerid, pID)
{
if(!cache_num_rows() && pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler existiert nicht.");
new uName[MAX_PLAYER_NAME], id = (pID == INVALID_PLAYER_ID ? cache_get_field_content_int(0, "id") : playerInfo[pID][pSQLID]);
for(new i = 0; i < MAX_FRIENDS; i++)
if(playerInfo[playerid][pFriends][i] == id)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast diesen Spieler bereits als Freund markiert. (%d:%d)",playerInfo[playerid][pFriends][i],id);
return 1;
}
if(pID == INVALID_PLAYER_ID)
{
cache_get_field_content(0, "username", uName);
SetPVarString(playerid, "FriendUsername", uName);
new query[128];
mysql_format(dbHandle, query, 128, "SELECT `id` FROM `friends` WHERE `playerid` = '%d' AND `friendid` = '%d' OR `friendid` = '%d' AND `playerid` = '%d'",
playerInfo[playerid][pSQLID], playerInfo[pID][pSQLID], playerInfo[pID][pSQLID], playerInfo[playerid][pSQLID]);
mysql_pquery(dbHandle, query, "OnServerSearchFriendEx", "dd", playerid, pID);
}
else
{
GetPlayerName(pID, uName, MAX_PLAYER_NAME);
SetPVarString(playerid, "FriendUsername", uName);
new query[256];
mysql_format(dbHandle, query, 256, "SELECT `id` FROM `friends` WHERE `playerusername` = '%s' AND `friendusername` = '%s' OR `friendusername` = '%s' AND `playerusername` = '%s'",
GetPlayerNameEx(playerid), uName, uName, GetPlayerNameEx(playerid));
mysql_pquery(dbHandle, query, "OnServerSearchFriendEx", "dd", playerid, pID);
}
DialogTempData[playerid][MAX_PLAYERS - 1] = id;
return 1;
}
public OnServerSearchFriendEx(playerid, pID)
{
if(cache_num_rows()) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast diesen Spieler bereits als Freund markiert (#2).");
if(pID != INVALID_PLAYER_ID)
{
SendClientMessageX(pID, COLOR_YELLOW, "[ FRIENDS ] %s hat dir eine Freundschaftsanfrage geschickt.", GetPlayerNameEx(playerid));
}
new uName[MAX_PLAYER_NAME], id = DialogTempData[playerid][MAX_PLAYERS - 1];
GetPVarString(playerid, "FriendUsername", uName, MAX_PLAYER_NAME);
DeletePVar(playerid, "FriendUsername");
new query[256 + 128];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `friends` (`playerid`,`playerusername`,`friendid`,`friendusername`,`request`,`timestamp`) VALUES ('%d','%s','%d','%s','1','%d')", playerInfo[playerid][pSQLID],GetPlayerNameEx(playerid),id,uName,gettime());
mysql_pquery(dbHandle, query, "", "");
SendClientMessageX(playerid, COLOR_YELLOW, "[ FRIENDS ] Du hast %s eine Freundschaftsanfrage geschickt.", uName);
return 1;
}
public OnServerOpenFriendList(playerid)
{
if(!cache_num_rows()) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keine Freunde!");
new uName[MAX_PLAYER_NAME], str[512], pOnline, bool:requestpossible = true;
for(new i = 0, rows = cache_num_rows(); i < rows; i++)
{
if(cache_get_field_content_int(i, "friendid") != playerInfo[playerid][pSQLID])
{
cache_get_field_content(i, "friendusername", uName);
requestpossible = false;
}
else
{
cache_get_field_content(i, "playerusername", uName);
}
pOnline = GetPlayerID(uName);
new request = cache_get_field_content_int(i, "request");
format(str, 512, "%s\n{%s}%s%s", str,(!request ? (pOnline != INVALID_PLAYER_ID ? ("42A63F") : ("AB262E")) : (requestpossible ? ("C0CF25") : ("E6AA29"))), uName, (request && requestpossible ? (" (Anfrage)") : ("")));
DialogTempData[playerid][i] = cache_get_field_content_int(i, "id");
}
DialogTempData[playerid][MAX_PLAYERS - 1] = 0;
ShowPlayerDialog(playerid, DIALOG_FRIENDLIST, DIALOG_STYLE_LIST, "Freundesliste", str, "Weiter", "Schließen");
return 1;
}
public CreateC4ForBankRob(playerid)
{
switch(serverInfo[currentBankRobState])
{
case 2:
{
BankSachen[5] = CreateDynamicObject(1654, 1386.72, -971.79, 5654.73, 10.86, 41.76, 11.52);
SendClientMessage(playerid, COLOR_YELLOW, "* Plastiksprengstoff (1) angebracht.");
}
case 3:
{
BankSachen[6] = CreateDynamicObject(1654, 1390.52, -971.83, 5654.73, 9.90, -26.94, -2.40);
SendClientMessage(playerid, COLOR_YELLOW, "* Plastiksprengstoff (2) angebracht.");
}
case 4:
{
BankSachen[7] = CreateDynamicObject(1654, 1390.36, -971.77, 5651.15, 2.16, -102.66, -2.40);
SendClientMessage(playerid, COLOR_YELLOW, "* Plastiksprengstoff (3) angebracht.");
}
case 5:
{
BankSachen[8] = CreateDynamicObject(1654, 1386.68, -971.79, 5651.15, -7.80, -155.88, -2.40);
SendClientMessage(playerid, COLOR_YELLOW, "* Plastiksprengstoff (4) angebracht.");
DestroyDynamic3DTextLabel(BankSachenLabel[1]);
serverInfo[currentBankTimer] = BANKROBTIME_BLAST;
}
default:
{
SendClientMessage(playerid, COLOR_RED, "Ein Fehler ist im Bankraubsystem aufgetreten.");
}
}
serverInfo[currentBankRobState]++; serverInfo[currentActiveBankRobber] = INVALID_PLAYER_ID;
return 1;
}
stock IsChannelExists(channelname[])
{
foreach(new i : IRC)
{
if(strcmp(ircInfo[i][ircName],channelname) != 0 || !strlen(ircInfo[i][ircName])) continue;
return i;
}
return INVALID_CHANNEL_ID;
}
stock SendChannelMessage(channelid, color, string[])
{
foreach(new i : Player)
{
if(playerInfo[i][pChannel] != channelid || !IsPlayerLoggedIn(i)) continue;
SendClientMessage(i, color, string);
}
}
CMD:givecoins(playerid,params[])
{
new string[128], text[100], pID,anzahl;
if(!NeededAdminLevel(playerid, "givecoins")) return 1;
if(sscanf(params,"uis[100]",pID,anzahl,text)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /givecoins [playerid / Name] [Anzahl] [Grund]");
if(!IsPlayerConnected(pID, false) || IsPlayerNPC(pID)) return SendOnlineErrorMessage(playerid);
format(string, sizeof(string), "* %s %s hat %s %d Coins gegeben, Grund: %s", GetPlayerTitle(playerid),GetPlayerNameEx(playerid),GetPlayerNameEx(pID),anzahl,text);
SendAdminMessage(COLOR_RED, string);
format(string, sizeof(string), "* %s %s hat dir %d Coins gegeben", GetPlayerTitle(playerid),GetPlayerNameEx(playerid),anzahl);
SendClientMessage(pID,COLOR_RED, string);
playerInfo[pID][pCoins] += anzahl;
OnServerSavePlayerData(pID,false);
return 1;
}
CMD:variableconfig(playerid,params[])
{
if(!NeededAdminLevel(playerid, "variableconfig")) return 1;
new str[256];
DialogTempDataIndex[playerid] = 0;
strins(str, "Name\tAktueller Wert\n", 0);
format(str, sizeof(str), "%s%s\t%.2f\n%s\t$%s\n%s\t$%s", str, variableConfig[0][vcName], serverInfo[ammoPercent],variableConfig[1][vcName],FormatNumber(serverInfo[siMinDrugPrice]), variableConfig[2][vcName], FormatNumber(serverInfo[siMaxDrugPrice]));
ShowPlayerDialog(playerid, DIALOG_VARIABLECONFIG, DIALOG_STYLE_TABLIST_HEADERS, "Variablen - Config", str, "Auswählen", "Schließen");
return 1;
}
CMD:bizlist(playerid,params[])
{
new vBiz;
sscanf(params,"D(-1)", vBiz);
if(vBiz <= -1 || vBiz > sizeof(entranceInfo))
{
DialogTempData[playerid][MAX_PLAYERS - 1] = 0;
OpenPlayerBizList(playerid);
}
else
{
OnUserWantToBusiness(playerid, vBiz);
}
return 1;
}
CMD:buyprods(playerid,params[])
{
new amount, vehicleid = GetPlayerVehicleID(playerid);
if(!IsPlayerInRangeOfPoint(playerid, 20.0, 134.4319,-285.1986,1.5781)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht in der Nähe des Lagerhauses.");
if(playerInfo[playerid][pJobDuty] != JOB_PRODDRIVER) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht als Lieferant im Dienst.");
if(GetVehicleModel(vehicleid) != 456) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur mit einem Yankee Produkte aufladen.");
if(sscanf(params, "d", amount)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /buyprods [Anzahl]");
if(amount < 1 || amount > 100) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur 1 - 100 Produkte kaufen.");
if(vehicleData[vehicleid][viProducts] + amount > 100) return SendClientMessage(playerid, COLOR_LESSRED, "So viele Produkte passen nicht mehr in dein Yankee.");
new price = serverInfo[productPrice] * amount;
if(price > GetPlayerMoney(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genügend Geld, um dir diese Produkte zu leisten.");
GivePlayerMoney(playerid, -price, "Kauf von Produkten");
SendClientMessageX(playerid, COLOR_YELLOW, "[ LAGER ] Du hast %d Produkt(e) für $%s gekauft.", amount, FormatNumber(price));
vehicleData[vehicleid][viProducts] += amount;
return 1;
}
CMD:sellprods(playerid,params[])
{
new bizid = GetPlayerClosestBusiness(playerid, 10.0), amount, vehicleid = GetPlayerVehicleID(playerid);
if(playerInfo[playerid][pJobDuty] != JOB_PRODDRIVER) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Produkte verkaufen.");
if(bizid == INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst hier keine Produkte verkaufen.");
if(sscanf(params, "d", amount)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /sellprods [Anzahl]");
if(amount > vehicleData[vehicleid][viProducts] || amount < 1) return SendClientMessage(playerid, COLOR_LESSRED, "Dein Fahrzeug hat nicht so viele Produkte geladen.");
if(!entranceInfo[bizid][eiOwnable] || entranceInfo[bizid][eiProds] >= entranceInfo[bizid][eiMaxProds]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Business hat genug Produkte.");
if(entranceInfo[bizid][eiProdsPrice] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Geschäft kauft derzeit keine Produkte.");
if(entranceInfo[bizid][eiProds] + amount > entranceInfo[bizid][eiMaxProds]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Geschäft braucht nicht so viele Produkte.");
new price = amount * entranceInfo[bizid][eiProdsPrice];
if(entranceInfo[bizid][eiBank] < price) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Geschäft kann sich nicht so viele Produkte leisten.");
entranceInfo[bizid][eiProds] += amount;
vehicleData[vehicleid][viProducts] -= amount;
GivePlayerMoney(playerid, price, "Verkauf von Produkten");
entranceInfo[bizid][eiBank] -= price;
UpdateBusinessLabel(bizid);
SendClientMessageX(playerid, COLOR_YELLOW, "[ {%s}BUSINESS{EBEB44} ] Du hast %d Produkte an %s für $%s verkauft.", entranceInfo[bizid][eiEntranceColor], amount, entranceInfo[bizid][eiEntranceName], FormatNumber(price));
SendClientMessageX(playerid, COLOR_GREEN, "Lagerraum: %d / 100 Produkte", vehicleData[vehicleid][viProducts]);
return 1;
}
CMD:zonelist(playerid,params[])
{
new vZone;
sscanf(params,"D(-1)", vZone);
if(vZone <= -1 || vZone > sizeof(gangFightInfo))
{
DialogTempData[playerid][MAX_PLAYERS - 1] = 0;
OpenPlayerZoneList(playerid);
}
else
{
OnUserWantToZone(playerid, vZone);
}
return 1;
}
CMD:swatinstructor(playerid,params[])
{
if(GetPlayerFaction(playerid) != FACTION_FBI) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist nur für die Fraktion FBI verfügbar.");
if(GetPlayerFactionRank(playerid) < 11) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist ab Rang 11.");
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /swatinstructor [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(GetPlayerFaction(pID) != GetPlayerFaction(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht in deiner Fraktion Mitglied.");
playerInfo[pID][pFactionInstructor] = !playerInfo[pID][pFactionInstructor];
new str[128];
if(playerInfo[pID][pFactionInstructor]) format(str, 128, "* %s %s hat %s %s zum S.W.A.T. - Ausbilder ernannt.", fRankName[FACTION_FBI][GetPlayerFactionRank(playerid)], GetPlayerNameEx(playerid), fRankName[FACTION_FBI][GetPlayerFactionRank(pID)], GetPlayerNameEx(pID));
else format(str, 128, "* %s %s hat %s %s als S.W.A.T. - Ausbilder entlassen.", fRankName[FACTION_FBI][GetPlayerFactionRank(playerid)], GetPlayerNameEx(playerid), fRankName[FACTION_FBI][GetPlayerFactionRank(pID)], GetPlayerNameEx(pID));
SendFactionMessageToAll(FACTION_FBI, COLOR_FACTIONCHAT, str);
return 1;
}
CMD:swat(playerid,params[])
{
new pString[12];
sscanf(params, "s[12](none)", pString);
if((!strcmp(pString, "allow", true) || !strcmp(pString, "disallow", true)) && strlen(pString) > 3)
{
if(!playerInfo[playerid][pFactionInstructor] && GetPlayerFactionRank(playerid) < 11) return SendClientMessage(playerid, COLOR_LESSRED, "Nur ein S.W.A.T. - Ausbilder kann den Notstand verkünden.");
if(!strcmp(pString, "allow") && serverInfo[allowSwat]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Notstand wurde bereits ausgerufen.");
if(!strcmp(pString, "disallow") && !serverInfo[allowSwat]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Notstand wurde bisher nicht ausgerufen.");
new str[128];
if(!serverInfo[allowSwat]) format(str, 128, "[ FBI ] S.W.A.T. Verantwortlicher %s hat den Notstand ausgerufen.", GetPlayerNameEx(playerid));
else format(str, 128, "[ FBI ] S.W.A.T. Verantwortlicher %s hat den Notstand beendet.", GetPlayerNameEx(playerid));
SendClientMessageToAll(COLOR_FBI, str);
serverInfo[allowSwat] = serverInfo[allowSwat] ? false : true;
return 1;
}
if(strlen(pString)) return SendClientMessage(playerid, COLOR_LESSRED, "Fehlerhafter Parameter.");
if(GetPlayerFaction(playerid) != FACTION_FBI) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Staatsbeamter.");
if(GetPlayerInterior(playerid) != 6 && !IsPlayerInRangeOfPoint(playerid,20.0,316.4667,-170.2965,999.5938) && !IsPlayerInRangeOfPoint(playerid, 10.0, 289.7004,187.6945,1007.1794)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht in der Staatswaffenkammer.");
if(!playerInfo[playerid][pFactionDuty])
{
if(!serverInfo[allowSwat]) return SendClientMessage(playerid, COLOR_LESSRED, "Es ist derzeit kein Notstand ausgerufen.");
if(playerInfo[playerid][pFactionDutyLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast noch %s eine S.W.A.T. - Sperre.",GetTimeString(playerInfo[playerid][pFactionDutyLock] - gettime(), 5));
return 1;
}
SetPlayerArmour(playerid, 100.0);
SetPlayerHealth(playerid, 100.0);
if(playerInfo[playerid][pLastEquip] + 120 > gettime()) ResetPlayerWeapons(playerid);
playerInfo[playerid][pLastEquip] = gettime();
GivePlayerWeapon(playerid, WEAPON_SNIPER, 250);
GivePlayerWeapon(playerid, WEAPON_M4, 500);
GivePlayerWeapon(playerid, WEAPON_DEAGLE, 500);
GivePlayerWeapon(playerid, WEAPON_SHOTGUN, 500);
GivePlayerWeapon(playerid, WEAPON_MP5, 750);
SetPlayerSkin(playerid, 285);
new str[128];
format(str, 128, "* %s legt seine S.W.A.T.-Ausrüstung an.", GetPlayerNameEx(playerid));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, str, false);
playerInfo[playerid][pMask] = true;
playerInfo[playerid][pFactionDuty] = true;
foreach(new i : Player)
{
if(GetPlayerFaction(i) == GetPlayerFaction(playerid) || playerInfo[i][pAdminDuty] && playerInfo[i][pAdmin] >= RANK_SUPPORTER) continue;
ShowPlayerNameTagForPlayer(i, playerid, false);
}
if(playerInfo[playerid][pMask])
{
Update3DTextLabelText(playerInfo[playerid][pHeadLabel], 0xFF00CDFF, " ");
}
SendClientMessage(playerid, COLOR_RED, "[ FBI ] Du bist nun ein S.W.A.T. - Mitglied.");
return 1;
}
else
{
SetPlayerArmour(playerid, 0.0);
ResetPlayerWeapons(playerid);
playerInfo[playerid][pMask] = false;
playerInfo[playerid][pFactionDuty] = false;
playerInfo[playerid][pShowHeadLabel] = -1;
playerInfo[playerid][pLastEquip] = 0;
foreach(new i : Player)
{
if(GetPlayerFaction(i) == GetPlayerFaction(playerid) || playerInfo[i][pAdminDuty] && playerInfo[i][pAdmin] >= RANK_SUPPORTER) continue;
ShowPlayerNameTagForPlayer(i, playerid, true);
}
new str[128];
format(str, 128, "* %s legt seine S.W.A.T.-Ausrüstung ab.", GetPlayerNameEx(playerid));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, str, false);
SetPlayerSkin(playerid, playerInfo[playerid][pSkin]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "[ FBI ] Du bist nun nicht mehr im S.W.A.T. - Dienst.");
}
return 1;
}
CMD:swatlock(playerid,params[])
{
if(GetPlayerFaction(playerid) != FACTION_FBI) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist nur für die Fraktion FBI verfügbar.");
if(!playerInfo[playerid][pFactionInstructor] && GetPlayerFactionRank(playerid) < 11) return SendClientMessage(playerid, COLOR_LESSRED, "Nur ein S.W.A.T. - Ausbilder kann Sperren verhängen.");
new pID, pValue, pReason[32];
if(sscanf(params, "uds[32]", pID, pValue, pReason)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /swatlock [playerid / Name] [Minuten] [Grund]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(GetPlayerFaction(pID) != FACTION_FBI) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht Mitglied des FBI.");
playerInfo[pID][pFactionDutyLock] = gettime() + (pValue * 60);
new str[128];
format(str, 128, "* S.W.A.T. - Ausbilder %s hat %s eine S.W.A.T. Sperre von %d Minuten gegeben, Grund: %s", GetPlayerNameEx(playerid), GetPlayerNameEx(pID), pValue, pReason);
SendFactionMessageToAll(FACTION_FBI, COLOR_FACTIONCHAT, str);
return 1;
}
CMD:i(playerid,params[])
{
new string[144], pText[100];
if(playerInfo[playerid][pLastMessage] + 1 > gettime()) return SendClientMessage(playerid, COLOR_YELLOW, "Bitte warte, bis du die nächste Nachricht verschickst.");
if(playerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist gemutet.");
if(playerInfo[playerid][pChannel] == INVALID_CHANNEL_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keinem Channel.");
if(sscanf(params,"s[100]",pText)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /i [Nachricht]");
if(SearchChat(playerid, pText)) return true;
format(string,sizeof(string), ">> %s %s: %s <<",GetPlayerIRCTitle(playerid), GetPlayerNameEx(playerid), pText);
SendChannelMessage(playerInfo[playerid][pChannel], COLOR_IRC, string);
new query[256];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_irc` (`playerid`,`message`,`channelid`,`timestamp`) VALUES ('%d','%e','%d','%d')", playerInfo[playerid][pSQLID], pText, playerInfo[playerid][pChannel],gettime());
mysql_tquery(dbHandle, query, "", "");
playerInfo[playerid][pLastMessage] = gettime();
return 1;
}
CMD:irc(playerid,params[])
{
new pOption[16];
if(sscanf(params,"s[16]",pOption)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /irc [Join | Password | Leave | Kick | GiveRank | Member | leave]");
if(strfind(pOption, "join", true) != -1)
{
new chChannel[32], chPassword[32];
if(playerInfo[playerid][pChannel] != INVALID_CHANNEL_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits in einem Channel.");
if(sscanf(params,"s[16]s[32]S()[32]",pOption,chChannel,chPassword)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /irc Join [Channelbezeichnung]");
if(strlen(chChannel) < 3) return SendClientMessage(playerid, COLOR_LESSRED, "Ein Channel muss mindestens 3 Zeichen lang sein.");
if(strfind(chChannel," ",true) != -1) return SendClientMessage(playerid, COLOR_LESSRED, "Im Channel dürfen keine Leerzeichen enthalten sein.");
if(SearchChat(playerid, chChannel)) return true;
new chID = IsChannelExists(chChannel);
if(chID != INVALID_CHANNEL_ID)
{
if(strcmp(ircInfo[chID][ircPassword],"0",true) != 0)
{
if(sscanf(params,"s[16]s[32]s[32]",pOption,chChannel,chPassword)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /irc Join [Channelbezeichnung] [Passwort]");
if(strcmp(ircInfo[chID][ircPassword],chPassword,true) != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Das Passwort stimmt nicht mit dem Channelpasswort überein.");
}
}
else
{
new longstr[256 + 128];
format(DialogTempData[playerid],32,chChannel);
format(longstr,sizeof(longstr), "Möchtest Du einen temporären IRC - Channel erstellen?\nDieser kostet dich $0, da dieser nach einem Serverneustart wieder gelöscht wird.\nDu hast nach Erstellung des Channels die Möglichkeit, diesen Channel zu kaufen.\nDadurch wird die Lebensdauer von temporär auf permanent gestellt.\n\nBist du dir sicher, dass du den Channel %s erstellen möchtest?",chChannel);
ShowPlayerDialog(playerid, DIALOG_IRCCREATE,DIALOG_STYLE_MSGBOX, "IRC - Channel erstellen", longstr, "Erstellen","Schließen");
return 1;
}
playerInfo[playerid][pChannelRank] = 1;
playerInfo[playerid][pChannel] = ircInfo[chID][ircSQLID];
ircInfo[chID][ircMembers]++;
SendClientMessageX(playerid, COLOR_YELLOW, "Befehle: /i - Chat. IRC Info: %d Benutzer.",ircInfo[chID][ircMembers]);
new string[128];
format(string,sizeof(string), ">> %s hat den Channel betreten. <<",GetPlayerNameEx(playerid));
SendChannelMessage(chID, COLOR_IRC, string);
}
else if(strfind(pOption, "leave", true) != -1)
{
if(playerInfo[playerid][pChannel] == INVALID_CHANNEL_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keinem Channel.");
new string[128], chID = playerInfo[playerid][pChannel];
format(string,sizeof(string), ">> %s hat den Channel verlassen. <<",GetPlayerNameEx(playerid));
SendChannelMessage(playerInfo[playerid][pChannel], COLOR_IRC, string);
if(playerInfo[playerid][pChannelRank] == 3)
{
foreach(new i : Player)
{
if(chID != playerInfo[i][pChannel] || playerid == i) continue;
playerInfo[i][pChannelRank] = 0;
playerInfo[i][pChannel] = INVALID_CHANNEL_ID;
}
strdel(ircInfo[chID][ircName], 0, 32);
ircInfo[chID][ircMembers] = 1;
Iter_Remove(IRC, chID);
}
ircInfo[chID][ircMembers]--;
playerInfo[playerid][pChannelRank] = 0;
playerInfo[playerid][pChannel] = INVALID_CHANNEL_ID;
}
else if(strfind(pOption, "GiveRank", true) != -1)
{
new pID, pRank;
if(playerInfo[playerid][pChannel] == INVALID_CHANNEL_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keinem Channel.");
if(playerInfo[playerid][pChannelRank] < 2) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist ab IRC - Moderator.");
if(sscanf(params,"s[16]ud",pOption,pID,pRank)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /irc GiveRank [playerid / Name] [Rang (1 - 2)]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerInfo[pID][pChannel] != playerInfo[playerid][pChannel]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist nicht in deinem IRC - Channel.");
if(playerInfo[playerid][pChannelRank] < playerInfo[pID][pChannelRank]) return SendClientMessage(playerid, COLOR_LESSRED, "Diesem Spieler kannst du keinen IRC - Rang setzen.");
if(2 < pRank || pRank < 1) return SendClientMessage(playerid, COLOR_LESSRED, "Es können nur Ränge von 1 - 2 vergeben werden.");
playerInfo[pID][pChannelRank] = pRank;
SendClientMessageX(pID, COLOR_YELLOW, ">> Du hast den Rang %s (%d) von %s erhalten. <<",GetPlayerIRCTitle(pID),pRank,GetPlayerNameEx(playerid));
SendClientMessageX(playerid, COLOR_YELLOW, ">> Du hast den Rang %s (%d) an %s vergeben. <<",GetPlayerIRCTitle(pID),pRank,GetPlayerNameEx(pID));
}
else if(strfind(pOption, "kick", true) != -1)
{
new pID, pReason[32];
if(playerInfo[playerid][pChannel] == INVALID_CHANNEL_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keinem Channel.");
if(sscanf(params,"s[16]us[32]",pOption,pID,pReason)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /irc Kick [playerid / Name] [Grund]");
if(playerInfo[pID][pChannel] != playerInfo[playerid][pChannel]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist nicht in deinem IRC - Channel.");
if(playerInfo[pID][pChannelRank] > playerInfo[playerid][pChannelRank]) return SendClientMessage(playerid, COLOR_LESSRED, "Diesen Spieler kannst du nicht kicken.");
new string[128];
format(string,sizeof(string), ">> %s %s hat %s aus dem Channel geworfen (Grund: %s). <<",GetPlayerIRCTitle(playerid),GetPlayerNameEx(playerid),GetPlayerNameEx(pID),pReason);
SendChannelMessage(playerInfo[playerid][pChannel], COLOR_IRC, string);
ircInfo[playerInfo[playerid][pChannel]][ircMembers]--;
playerInfo[pID][pChannelRank] = 0;
playerInfo[pID][pChannel] = INVALID_CHANNEL_ID;
}
else if(strfind(pOption, "password", true) != -1)
{
new cPassword[32];
if(playerInfo[playerid][pChannelRank] < 2) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein IRC - Admin.");
if(playerInfo[playerid][pChannel] == INVALID_CHANNEL_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du befindest dich in keinem Channel.");
if(sscanf(params,"s[16]s[32",pOption,cPassword)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /irc Password [Passwort (0 = Kein Passwort)]");
format(ircInfo[playerInfo[playerid][pChannel]][ircPassword],32, cPassword);
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast das Passwort geändert (%s).",cPassword);
}
else if(strfind(pOption, "member", true) != -1)
{
SendClientMessage(playerid, COLOR_IRC, "IRC - Mitglieder:");
foreach(new i : Player)
{
if(playerInfo[playerid][pChannel] != playerInfo[i][pChannel]) continue;
SendClientMessageX(playerid, COLOR_WHITE, "> %s %s",GetPlayerIRCTitle(i),GetPlayerNameEx(i));
}
}
else if(strfind(pOption, "buy", true) != -1)
{
SendClientMessage(playerid, COLOR_RED, "Diese Funktion ist noch deaktiviert.");
}
return 1;
}
CMD:hsafe(playerid,params[])
{
new pItem[8], pChoose[8], pAmount;
if(IsPlayerInRangeOfHouse(playerid) || playerInfo[playerid][pGroup] && IsPlayerInRangeOfBase(playerid))
{
if(sscanf(params, "s[8]s[8]d", pChoose, pItem, pAmount)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /hsafe [take / put] [drugs] [Anzahl]");
if(!strcmp(pChoose, "take", true))
{
if(!strcmp(pItem, "drugs", true))
{
if(playerInfo[playerid][pHouseDrugs] < pAmount) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht so viele Drogen im Housesafe.");
SendClientMessageX(playerid, COLOR_YELLOW, "[ HOUSESAFE ] Du hast %sg Drogen aus deinem Safe genommen.", FormatNumber(pAmount));
playerInfo[playerid][pHouseDrugs] -= pAmount;
playerInfo[playerid][pDrugs] += pAmount;
return 1;
}
}
else if(!strcmp(pChoose, "put", true))
{
if(!strcmp(pItem, "drugs", true))
{
if(playerInfo[playerid][pDrugs] < pAmount) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht so viele Drogen auf der Hand.");
SendClientMessageX(playerid, COLOR_YELLOW, "[ HOUSESAFE ] Du hast %sg Drogen in deinem Safe verstaut.", FormatNumber(pAmount));
playerInfo[playerid][pHouseDrugs] += pAmount;
playerInfo[playerid][pDrugs] -= pAmount;
}
}
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Du kannst von hier nicht auf deinen Housesafe zu greifen.");
return 1;
}
CMD:gsafe(playerid,params[])
{
new pItem[8], pChoose[8], pAmount;
if(IsPlayerInAnyGroup(playerid) && IsPlayerInRangeOfBase(playerid))
{
if(sscanf(params, "s[8]s[8]d", pChoose, pItem, pAmount)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /gsafe [take / put] [drugs] [Anzahl]");
if(pAmount < 1 || pAmount > 1000) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur 1 - 100g (gleichzeitig) aus dem Safe nehmen.");
new groupid = playerInfo[playerid][pGroupIndex];
if(!strcmp(pChoose, "take", true))
{
if(!strcmp(pItem, "drugs", true))
{
if(!HasGroupPlayerPermissionForThis(playerid, PERM_GETDRUGS)) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keine Berechtigung für diese Aktion.");
if(groupInfo[groupid][gDrugs] < pAmount) return SendClientMessage(playerid, COLOR_LESSRED, "Es befinden sich nicht mehr so viele Drogen im Gruppensafe.");
if(gDrugsAmount[groupid][playerInfo[playerid][pGroupRank]] != 0 && playerInfo[playerid][pGroupDailyDrugs] + pAmount > gDrugsAmount[groupid][playerInfo[playerid][pGroupRank]])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst heute nur noch %d Drogen aus dem Safe nehmen.", gDrugsAmount[groupid][playerInfo[playerid][pGroupRank]] - playerInfo[playerid][pGroupDailyDrugs]);
return 1;
}
new price = pAmount * groupInfo[groupid][gDrugsSellPrice], success = GivePlayerMoneyEx(playerid, -price, "Drogenkauf von Gruppe");
switch(success)
{
case 0: return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genügend Geld um dir die Drogen kaufen zu können.");
case 1: SendClientMessageX(playerid, COLOR_YELLOW, "[ G-SAFE ] Du hast %sg Drogen für $%s gekauft (Heute: %sg).", FormatNumber(pAmount), FormatNumber(price), FormatNumber(playerInfo[playerid][pGroupDailyDrugs]));
case 2: SendClientMessageX(playerid, COLOR_YELLOW, "[ G-SAFE ] Du hast %sg Drogen für $%s gekauft (Heute: %sg) (Bank).", FormatNumber(pAmount), FormatNumber(price), FormatNumber(playerInfo[playerid][pGroupDailyDrugs]));
}
groupInfo[groupid][gBank] += price;
groupInfo[groupid][gDrugs] -= pAmount;
playerInfo[playerid][pDrugs] += pAmount;
playerInfo[playerid][pGroupDailyDrugs] += pAmount;
new str[32];
format(str, 32, "take drugs %d ($%s)", pAmount, price);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup],"/gsafe",str);
return 1;
}
}
else if(!strcmp(pChoose, "put", true))
{
if(!strcmp(pItem, "drugs", true))
{
if(playerInfo[playerid][pDrugs] < pAmount) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht so viele Drogen auf der Hand.");
new price = pAmount * groupInfo[groupid][gDrugsBuyPrice];
if(price > groupInfo[groupid][gBank]) return SendClientMessage(playerid, COLOR_LESSRED, "Deine Gruppe hat nicht genügend Geld, um dir die Drogen abzukaufen.");
SendClientMessageX(playerid, COLOR_YELLOW, "[ G-SAFE ] Du hast %sg Drogen im Safe verstaut und $%s Belohnung bekommen.", FormatNumber(pAmount), FormatNumber(price));
GivePlayerMoney(playerid, price, "Drogenverkauf an Gruppe");
groupInfo[groupid][gBank] -= price;
groupInfo[groupid][gDrugs] += pAmount;
playerInfo[playerid][pDrugs] -= pAmount;
new str[32];
format(str, 32, "put drugs %d ($%s)", pAmount, price);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup],"/gsafe",str);
}
}
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Mitglied in einer Gruppe oder nicht an deiner Gruppenbasis.");
return 1;
}
CMD:vertrag(playerid,params[])
{
if(playerInfo[playerid][pCompactID] != INVALID_PLAYER_ID)
{
if(!IsPlayerConnected(playerInfo[playerid][pCompactID]))
{
playerInfo[playerid][pCompactID] = INVALID_PLAYER_ID;
SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht mehr Online.");
return 1;
}
new cText[144], longstr[256];
GetPVarString(playerid, "CompactText", cText, sizeof(cText));
format(longstr, sizeof(longstr), "%s bietet dir einen Vertrag an\n(erstelle bitte einen Screenshot mit F8):\n\n%s",GetPlayerNameEx(playerInfo[playerid][pCompactID]), cText);
ShowPlayerDialog(playerid, DIALOG_COMPACT, DIALOG_STYLE_MSGBOX, "Vertrag anschauen", longstr, "Annehmen", "Ablehnen");
return 1;
}
if(playerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast Sprechverbot, weswegen diese Funktion deaktiviert ist.");
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /vertrag [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(pID == playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst mit dir selbst keinen Vertrag abschließen.");
if(playerInfo[pID][pCompactID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler liest sich gerade einen Vertrag durch.");
new string[128];
format(string, sizeof(string), "Du möchtest mit %s einen Vertrag schließen.\nWas soll dieser beinhalten?:",GetPlayerNameEx(pID));
ShowPlayerDialog(playerid, DIALOG_COMPACT, DIALOG_STYLE_INPUT, "Vertrag erstellen", string, "Schicken", "Schließen");
DialogTempData[playerid][MAX_PLAYERS - 1] = pID;
return 1;
}
CMD:editfac(playerid,params[])
{
new fid;
if(!NeededAdminLevel(playerid, "editfac")) return 1;
if(sscanf(params, "d", fid)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /editfac [Fraktions-ID]");
if(fid > sizeof(factionInfo) || strlen(factionInfo[fid][fiName]) < 2) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Fraktion existiert nicht.");
DialogTempData[playerid][MAX_PLAYERS-1] = fid;
ShowPlayerDialog(playerid, DIALOG_EDITFACTION, DIALOG_STYLE_LIST, "Fraktion Bearbeitung", "Fahrzeugliste\nMitgliederliste\nRangnamen editieren\nBank editieren\nSpawnpunkt editieren", "Weiter", "Schließen");
return 1;
}
CMD:editveh(playerid,params[])
{
if(!NeededAdminLevel(playerid, "editveh")) return 1;
new vehicleID, pItem[32];
if(sscanf(params, "ds[32]", vehicleID, pItem)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /editveh [vehicleid] [Rank]");
if(GetVehicleModel(vehicleID) == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug existiert nicht.");
new slotid = GetVehicleSlotID(vehicleID);
if(slotid == INVALID_SLOT_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dem Fahrzeug konnte kein Slot zugewiesen werden.");
if(strfind(pItem, "Rank", true) != -1)
{
new rank;
if(sscanf(params, "ds[32]d", vehicleID, pItem, rank)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /editveh vehicleid Rank [Level]");
vehicleInfo[slotid][viRank] = rank;
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "* Du hast den Rang / das Level vom Fahrzeug %d auf %d geändert.", vehicleID, rank);
InsertAdminLog(playerInfo[playerid][pSQLID], playerInfo[playerid][pAdminDuty], "/editveh", params);
return 1;
}
return 1;
}
CMD:ad(playerid,params[])
{
new text[100], string[144];
if(playerInfo[playerid][pAdLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast noch %s eine AD - Sperre.",GetTimeString(playerInfo[playerid][pAdLock]-gettime(),4));
return 1;
}
if(GetPlayerHighestLevel(playerid) < 12) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Funktion ist erst ab Level 12.");
if(playerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist gemutet.");
if(sscanf(params,"s[100]",text)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /ad [Nachricht, pro Zeichen $500]");
if(strlen(text) > 95) return SendClientMessage(playerid, COLOR_LESSRED, "Die Nachricht darf max. 95 Zeichen haben.");
if(serverInfo[LastAdvertiseTime] + 120 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die nächste Werbung kann erst in %s geschaltet werden.",GetTimeString((serverInfo[LastAdvertiseTime] + 120) - gettime(),4));
return 1;
}
if(playerInfo[playerid][pLastAdvertiseTime] + 600 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die nächste Werbung kannst du erst in %s schalten.",GetTimeString((playerInfo[playerid][pLastAdvertiseTime] + 600) - gettime(),4));
return 1;
}
if(SearchChat(playerid, text)) return true;
if(strfind(text, "~",false) != -1) return SendClientMessage(playerid, COLOR_LESSRED, "Das Zeichen '~' kann nicht in einem Werbungstext sein.");
new price = strlen(text) * 500;
if(GetPlayerMoney(playerid) < price)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast keine $%d auf der Hand.",price);
return 1;
}
GivePlayerMoney(playerid, -price, "Werbung");
SendClientMessageToAllX(COLOR_WHITE, "Werbung: {3CC250}%s {FFFFFF}Verfasser: %s (%d)",text,GetPlayerNameExEx(playerid),playerInfo[playerid][pMask] ? -1 : playerid);
format(string, sizeof(string), "~w~Werbung:~g~~h~ %s ~w~Verfasser: %s (%d)",text,GetPlayerNameExEx(playerid),playerInfo[playerid][pMask] ? -1 : playerid);
ConvertEncoding(string);
TextDrawSetString(AdvertiseTD, string);
playerInfo[playerid][pLastAdvertiseTime] = gettime();
serverInfo[LastAdvertiseTime] = gettime();
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast erfolgreich eine Werbung für $%d geschaltet.",price);
return 1;
}
CMD:dice(playerid, params[])
{
new pID, pAmount;
if(GetPlayerHighestLevel(playerid) < 10) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Funktion ist erst ab Level 10.");
if(playerInfo[playerid][pDice] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits am spielen.");
if(sscanf(params, "ud", pID, pAmount)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /dice [playerid / Name] [Geldsumme]");
if(pAmount < 10000 || pAmount > 50000000) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur $10.000 - $50.000.000 als Summe eintragen.");
if(GetPlayerMoney(playerid) < pAmount) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genug Geld.");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(pID == playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nicht mit dir selber spielen.");
if(GetPlayerHighestLevel(pID) < 10)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist noch nicht Level 10.",GetPlayerNameEx(pID));
return 1;
}
if(IsPlayerInNoDmZone(playerid) && playerInfo[playerid][pShopItems][SHOPITEM_CUBE] && IsPlayerInNoDmZone(pID) && playerInfo[pID][pShopItems][SHOPITEM_CUBE] || IsPlayerInRangeOfPoint(playerid, 150.0, 2019.0611572266,1017.901550293,996.875) && GetPlayerInterior(playerid) == 10 && IsPlayerInRangeOfPoint(pID, 150.0, 2019.0611572266,1017.901550293,996.875) && GetPlayerInterior(pID) == 10)
{
if(playerInfo[pID][pDice] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits am spielen.");
playerInfo[playerid][pOfferDice] = pID;
playerInfo[pID][pOfferDice] = playerid;
playerInfo[playerid][pOfferDiceValue] = pAmount;
SendClientMessageX(pID, COLOR_LIGHTBLUE, "%s hat dir ein Würfelspiel für $%s angeboten.",GetPlayerNameEx(playerid), FormatNumber(pAmount));
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %s ein Würfelspiel für $%s angeboten.",GetPlayerNameEx(pID), FormatNumber(pAmount));
SendClientMessageX(pID, COLOR_YELLOW, "Zum Annehmen: /annehmen dice %d",playerid);
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur im Casino oder in einer No-DM Zone mit einem Würfel aus dem 24 / 7 spielen.");
return 1;
}
CMD:event(playerid,params[])
{
if(playerInfo[playerid][pAdmin] >= RANK_FULLADMIN || IsPlayerEventMaster(playerid))
{
new pItem[32];
if(sscanf(params, "s[32]", pItem)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /event [teleport | start | stop]");
if(!strcmp(pItem, "teleport", true))
{
GetPlayerPos(playerid, serverInfo[eventPos][0], serverInfo[eventPos][1], serverInfo[eventPos][2]);
GetPlayerFacingAngle(playerid, serverInfo[eventPos][3]);
SendClientMessageX(playerid, COLOR_GREEN, "Der Eventpunkt liegt nun bei: X: %.5f, Y: %.5f, Z: %.5f, A: %.5f.", serverInfo[eventPos][0], serverInfo[eventPos][1], serverInfo[eventPos][2], serverInfo[eventPos][3]);
return 1;
}
else if(!strcmp(pItem, "start", true) || !strcmp(pItem, "stop", true))
{
serverInfo[eventState] = serverInfo[eventState] ? false : true;
new string[128];
format(string, sizeof(string), "* %s %s hat das Event %s.", GetPlayerTitle(playerid),GetPlayerNameEx(playerid),(serverInfo[eventState] ? ("gestartet") : ("gestoppt")));
SendAdminMessage(COLOR_RED, string);
}
}
else
{
if(!serverInfo[eventState]) return SendClientMessage(playerid, COLOR_LESSRED, "Derzeit ist kein Event aktiv.");
if(playerInfo[playerid][pWorld]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur in der CnR Welt das Event betreten.");
if(playerInfo[playerid][pLastHit] + 60 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst dich erst in %d Sekunden zum Event teleportieren.",(playerInfo[playerid][pLastHit] + 60) - gettime());
return 1;
}
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst in einem Fahrzeug nicht das Event beitreten.");
if(!playerInfo[playerid][pTeam]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Team.");
if(playerInfo[playerid][pJailTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst im Gefängnis nicht zum Event teleportieren.");
if(playerInfo[playerid][pVisitRoom]) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst im Besichtigungsmodus diesen Befehl nicht ausführen.");
if(GetPlayerWantedLevel(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst das Event nicht beitreten, wenn du Wanteds hast.");
if(IsPlayerAttachedObjectSlotUsed(playerid, 1)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst mit einem Geldbeutel nicht zum Event.");
SetPlayerPos(playerid, serverInfo[eventPos][0], serverInfo[eventPos][1], serverInfo[eventPos][2]);
SetPlayerFacingAngle(playerid, serverInfo[eventPos][3]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
}
return 1;
}
CMD:verkaufen(playerid,params[])
{
new item[32],whobuy[32];
if(sscanf(params,"s[16]",item)) return SendClientMessage(playerid,COLOR_GREY, "Syntax: /verkaufen [Fahrzeug | Haus | Mats | Business | Drogen]");
if(strfind(item,"Fahrzeug", true) != -1 || strfind(item, "vehicle", true) != -1)
{
new vehicleid = GetPlayerVehicleID(playerid),slotid = GetVehicleSlotID(vehicleid);
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du sitzt in keinem Fahrzeug.");
if(!vehicleInfo[slotid][viPrice]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Fahrzeug ist nicht verkaufbar.");
if(sscanf(params,"s[16]s[32]",item,whobuy)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Fahrzeug [playerid / Name | Staat]");
if(strfind(whobuy,"Staat", true) != -1)
{
new price = floatround(vehicleInfo[slotid][viPrice] * SELL_VEHICLE_PERCENTAGE);
if(IsPlayerOwnerFromVehicle(playerid, vehicleid))
{
InsertVehicleLog(playerInfo[playerid][pSQLID], 0, price, vehicleInfo[slotid][viSQLID], vehicleInfo[slotid][viModelID]);
GivePlayerMoney(playerid, price, "Fahrzeugverkauf");
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug %s für $%d verkauft.",GetVehicleName(vehicleid),price);
ClearVehicleSlot(slotid, true);
Iter_Remove(Vehicles, slotid);
}
else if(GetVehicleOwnerTyp(vehicleid) == OWNERTYP_GROUP && HasPlayerPermissionForVehicle(playerid, vehicleid))
{
if(!HasGroupPlayerPermissionForThis(playerid,PERM_VEHDEAL))
{
SendClientMessageX(playerid,COLOR_LESSRED, "Diese Funktion ist in deiner Gruppe erst ab Rang %d.",groupInfo[GetPlayerGroupIndex(playerid)][gPermission][PERM_VEHDEAL]);
return 1;
}
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/verkaufen Fahrzeug", GetVehicleName(vehicleid));
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] += price;
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug %s für $%d verkauft.",GetVehicleName(vehicleid),price);
ClearVehicleSlot(slotid, true);
Iter_Remove(Vehicles, slotid);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast nicht die Berechtigung, dieses Fahrzeug zu verkaufen.");
return 1;
}
}
else
{
new price, pID;
if(sscanf(params, "s[16]ud",item,pID,price)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Fahrzeug [playerid / Name] [Preis]");
if(playerid == pID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Güter an dich selber verkaufen.");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(0 > price || price > 100000000) return SendClientMessage(playerid, COLOR_LESSRED, "Der Kaufpreis muss zwischen $0 - $100.000.000 liegen.");
if(!IsPlayerOwnerFromVehicle(playerid,vehicleid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur deine eigenen Fahrzeuge verkaufen.");
playerInfo[pID][pOfferVehicle] = slotid;
playerInfo[pID][pOfferVehicleSellerID] = playerid;
playerInfo[pID][pOfferVehiclePrice] = price;
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %s deine(n) %s für $%d angeboten.",GetPlayerNameEx(pID),GetVehicleName(vehicleid),price);
SendClientMessageX(pID, COLOR_LIGHTBLUE, "%s bietet dir ein(e) %s für $%d an.",GetPlayerNameEx(playerid),GetVehicleName(vehicleid),price);
SendClientMessageX(pID, COLOR_YELLOW, "Zum Annehmen: /annehmen Fahrzeug 1 - Für Dich %s.",(playerInfo[pID][pLeader] ? ("| /annehmen Fahrzeug 2 - Für deine Gruppe") : ("")));
}
}
else if(strfind(item, "Haus",true) != -1)
{
new housekey = GetHouseSlotID(playerInfo[playerid][pHouseKey]);
if(playerInfo[playerid][pHouseKey] == INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast kein Haus, welches du verkaufen könntest.");
if(houseInfo[housekey][hOwnerID] != playerInfo[playerid][pSQLID]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht der Besitzer dieses Hauses.");
if(sscanf(params,"s[16]s[32]",item,whobuy)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Haus [playerid / Name | Staat]");
new string[128];
if(strfind(whobuy,"Staat", true) != -1)
{
if(playerInfo[playerid][pGroup] && playerInfo[playerid][pLeader] == 2)
{
SendClientMessage(playerid, COLOR_YELLOW, "Bitte kaufe dir schnellstmöglichst ein neues Haus, da deine Mitglieder nun keinen Spawnpunkt mehr haben.");
groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID] = 0;
}
format(string,sizeof(string),"Du hast die Hälfte des Kaufpreises zurück erstattet bekommen ($%d) + den Bankinhalt ($%d).",houseInfo[housekey][hPrice] / 2,houseInfo[housekey][hBank]);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerMoney(playerid, (houseInfo[housekey][hPrice] / 2) + houseInfo[housekey][hBank], "Hausverkauf (Staat)");
playerInfo[playerid][pHouseKey] = INVALID_HOUSE_ID;
playerInfo[playerid][pHouseSlot] = INVALID_HOUSE_ID;
InsertHouseLog(playerInfo[playerid][pSQLID], 0, houseInfo[housekey][hSQLID], houseInfo[housekey][hPrice]);
format(houseInfo[housekey][hOwner], MAX_PLAYER_NAME, "Staat");
houseInfo[housekey][hOwnerID] = 0;
houseInfo[housekey][hBank] = 0;
houseInfo[housekey][hRent] = 0;
UpdateHouse(housekey);
OnServerSavePlayerData(playerid);
}
else
{
new price, pID;
if(sscanf(params, "s[16]ud",item,pID,price)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Fahrzeug [playerid / Name] [Preis]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(0 > price || price > 100000000) return SendClientMessage(playerid, COLOR_LESSRED, "Der Kaufpreis muss zwischen $0 - $100.000.000 liegen.");
if(playerInfo[pID][pHouseKey] != INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler darf kein Haus besitzen oder in einem eingemietet sein.");
if(playerInfo[pID][pOfferHouseSellerID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits am Handeln mit einem Haus.");
playerInfo[pID][pOfferHouseSellerID] = playerid;
playerInfo[playerid][pOfferHouseSellerID] = pID;
playerInfo[pID][pOfferHousePrice] = price;
playerInfo[playerid][pOfferHousePrice] = price;
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %s dein Haus für $%s angeboten.",GetPlayerNameEx(pID),FormatNumber(price));
SendClientMessageX(pID, COLOR_LIGHTBLUE, "%s bietet dir sein Haus für $%s an.",GetPlayerNameEx(playerid),FormatNumber(price));
SendClientMessage(pID, COLOR_YELLOW, "Zum Annehmen: /annehmen Haus ; Zum Ablehnen /ablehnen Haus");
}
}
else if(strfind(item, "Mats", true) != -1)
{
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!playerInfo[playerid][pLeader]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht der Leader der Gruppe.");
if(groupInfo[GetPlayerGroupIndex(playerid)][gOfferMats]) return SendClientMessage(playerid, COLOR_LESSRED, "Ihr handelt bereits mit Materialien. /ablehnen Mats für den Abbruch.");
new pID, pValue, pPrice, gIndex = playerInfo[playerid][pGroupIndex];
if(sscanf(params,"s[16]udd",item,pID,pValue,pPrice)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Mats [playerid / Name] [Menge] [Preis pro Material]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerid == pID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Güter an dich selber verkaufen.");
if(!playerInfo[pID][pGroup] || !playerInfo[pID][pLeader]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht berechtigt, Materialien zu kaufen.");
if(pValue < 250 || pValue > groupInfo[gIndex][gMats])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ihr könnt nur 250 - %d Materialien verkaufen.", groupInfo[gIndex][gMats]);
return 1;
}
if(pPrice < 200 || pPrice > 2500) return SendClientMessage(playerid, COLOR_LESSRED, "Der Preis pro Material muss zwischen $200 - $2.500 liegen.");
new bIndex = playerInfo[pID][pGroupIndex];
if(groupInfo[bIndex][gOfferMats]) return SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe handelt bereits gerade mit Materialien.");
groupInfo[bIndex][gOfferMats] = groupInfo[gIndex][gSQLID];
groupInfo[bIndex][gOfferMatsValue] = pValue;
groupInfo[bIndex][gOfferMatsPrice] = pPrice;
new price = pPrice * pValue;
SendClientMessageX(playerid, COLOR_YELLOW, "Ihr habt der Gruppe %s einen Kauf angeboten (%d Materialien für $%s).",groupInfo[bIndex][gName], pValue, FormatNumber(price));
SendClientMessageX(pID, COLOR_LIGHTBLUE, "** %s bietet euch %d Materialien für $%s ($%d pro Material) an.",GetPlayerNameEx(playerid),pValue,FormatNumber(price),pPrice);
SendClientMessage(pID, COLOR_YELLOW, "** Zum Annehmen: /annehmen Mats; Zum Ablehnen: /ablehnen Mats");
new string[64];
format(string, sizeof(string), "%d %d $%d",playerInfo[pID][pGroup], pValue, pPrice * pValue);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/verkaufen Mats",string);
}
else if(strfind(item, "Business", true) != -1)
{
if(playerInfo[playerid][pBizKey] == INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du besitzt kein Business.");
if(sscanf(params,"s[16]s[32]",item,whobuy)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Business [playerid / Name | Staat]");
new bizid = playerInfo[playerid][pBizSlot];
if(strfind(whobuy, "Staat") != -1)
{
new string[128];
format(string,sizeof(string),"Du hast die Hälfte des Kaufpreises zurück erstattet bekommen ($%d) + den Bankinhalt ($%d).",entranceInfo[bizid][eiPrice] / 2,entranceInfo[bizid][eiBank]);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerMoney(playerid, (entranceInfo[bizid][eiPrice] / 2) + entranceInfo[bizid][eiPrice], "Businessverkauf (Staat)");
playerInfo[playerid][pBizKey] = INVALID_BUSINESS_ID;
playerInfo[playerid][pBizSlot] = INVALID_BUSINESS_ID;
format(entranceInfo[bizid][eiOwner], MAX_PLAYER_NAME, "Staat");
printf("%s hat sein Business für $%d verkauft (ID: %d)",GetPlayerNameEx(playerid),houseInfo[bizid][hPrice],entranceInfo[bizid][eiSQLID]);
mysql_format(dbHandle, string, sizeof(string),"UPDATE `accounts` SET `bizkey` = '65535' WHERE `id` = '%d'",playerInfo[playerid][pSQLID]);
mysql_function_query(dbHandle, string, true, "", "");
entranceInfo[bizid][eiBank] = 0;
entranceInfo[bizid][eiOwnerID] = 0;
UpdateBusinessLabel(bizid);
}
else
{
new price, pID;
if(sscanf(params, "s[16]ud",item,pID,price)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Business [playerid / Name] [Preis]");
if(playerid == pID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Güter an dich selber verkaufen.");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(0 > price || price > 100000000) return SendClientMessage(playerid, COLOR_LESSRED, "Der Kaufpreis muss zwischen $0 - $100.000.000 liegen.");
if(playerInfo[pID][pBizKey] != INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat bereits ein Business.");
if(playerInfo[pID][pOfferBizSellerID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits am Handeln mit einem Business.");
playerInfo[pID][pOfferBizSellerID] = playerid;
playerInfo[playerid][pOfferBizSellerID] = pID;
playerInfo[pID][pOfferBizPrice] = price;
playerInfo[playerid][pOfferBizPrice] = price;
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast %s dein Business für $%s angeboten.",GetPlayerNameEx(pID),FormatNumber(price));
SendClientMessageX(pID, COLOR_LIGHTBLUE, "%s bietet dir sein Business für $%s an.",GetPlayerNameEx(playerid),FormatNumber(price));
SendClientMessage(pID, COLOR_YELLOW, "Zum Annehmen: /annehmen Business ; Zum Ablehnen /ablehnen Business");
}
}
else if(strfind(item, "Drogen", true) != -1 || strfind(item, "drugs", true) != -1)
{
new pID, amount, price;
if(sscanf(params, "s[16]udd", item, pID, amount, price)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /verkaufen Drogen [playerid / Name] [Anzahl] [Preis pro Gramm]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerInfo[playerid][pDrugs] < amount) return SendClientMessage(playerid, COLOR_LESSRED, "Du trägst nicht so viele Drogen bei dir.");
if(!IsPlayerInRangeOfPlayer(playerid,pID,20.0)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht in deiner Nähe.");
if(playerid == pID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Güter an dich selber verkaufen.");
if(serverInfo[siMinDrugPrice] > price || price > serverInfo[siMaxDrugPrice])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Der Verkaufspreis pro Gramm muss zwischen $%s - $%s liegen.", FormatNumber(serverInfo[siMinDrugPrice]), FormatNumber(serverInfo[siMaxDrugPrice]));
return 1;
}
DialogTempData[playerid][MAX_PLAYERS - 1] = pID;
DialogTempData[playerid][MAX_PLAYERS - 2] = price;
DialogTempData[playerid][MAX_PLAYERS - 3] = amount;
new str[256];
format(str, 256, "Möchtest du %s folgendes Angebot unterbreiten:\n\nKäufer: %s\nMenge: %s\nPreis: $%s ($%s pro g)\n\nMöchtest du das Angebot verschicken?", GetPlayerNameEx(pID), GetPlayerNameEx(pID),FormatNumber(amount),FormatNumber(price * amount), FormatNumber(price));
ShowPlayerDialog(playerid, DIALOG_BUYDRUGS, DIALOG_STYLE_MSGBOX, "Drogenverkauf", str, "Verkaufen", "Schließen");
}
return 1;
}
CMD:help(playerid, params[])
{
new pItem[16];
if(sscanf(params,"s[16]",pItem)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /help [Suchbegriff | Artikel Nr.]");
if(IsNumeric(pItem))
{
new query[256];
mysql_format(dbHandle, query, sizeof(query), "SELECT `headline`,`text` FROM `help` WHERE `id` = '%d' AND `rank` <= %d",strval(pItem), playerInfo[playerid][pAdmin]);
mysql_pquery(dbHandle, query, "OnPlayerOpenHelpDialog", "dd", playerid,strval(pItem));
}
else
{
if(strlen(pItem) < 3) return SendClientMessage(playerid, COLOR_LESSRED, "Der Suchbegriff muss mindestens 3 Zeichen lang sein.");
new query[256];
mysql_format(dbHandle, query, sizeof(query), "SELECT `id`,`headline` FROM `help` WHERE `keyword` LIKE '%%%e%%' AND `rank` <= %d",pItem, playerInfo[playerid][pAdmin]);
mysql_pquery(dbHandle, query, "OnPlayerSearchKeyWord", "d",playerid);
}
return 1;
}
CMD:contract(playerid,params[])
{
new pID, pValue;
if(GetPlayerHighestLevel(playerid) < 4) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst erst mit Level 4 Kopfgeld auf einen Spieler setzen.");
if(sscanf(params,"ud",pID,pValue)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /contract [playerid / Name] [Betrag]");
if(!IsPlayerConnected(pID) || pID == playerid) return SendOnlineErrorMessage(playerid);
if(pValue < 10000 || pValue > 1000000) return SendClientMessage(playerid, COLOR_LESSRED, "Das Kopfgeld muss zwischen $10.000 und $1.000.000 betragen.");
if(GetPlayerHighestLevel(pID) < 4)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist noch nicht Level 4+, weswegen kein Kopfgeld auf ihn ausgesetzt werden kann.",GetPlayerNameEx(pID));
return 1;
}
if(GetPlayerMoney(playerid) < pValue) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht genügend Geld.");
if(playerInfo[pID][pContractValue] >= 1000000)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat bereits ein Kopfgeld in Höhe von $%d",GetPlayerNameEx(pID),playerInfo[pID][pContractValue]);
return 1;
}
if(playerInfo[pID][pLastContract] + 60 * 10 > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s kann erst in %s wieder Kopfgeld kriegen.",GetPlayerNameEx(pID),GetTimeString((playerInfo[pID][pLastContract] + 60 * 10) - gettime(),4));
return 1;
}
if(playerInfo[pID][pContractValue] + pValue >= 1000000)
{
pValue = 1000000 - playerInfo[pID][pContractValue];
SendClientMessageX(playerid, COLOR_YELLOW, "[ INFO ] Auf %s können nur noch maximal $%s Kopfgeld gesetzt werden.", GetPlayerNameEx(pID), pValue);
return 1;
}
playerInfo[pID][pLastContract] = gettime();
playerInfo[pID][pContractValue] += pValue;
GivePlayerMoney(playerid, -pValue, "Kopfgeld");
SendClientMessageX(playerid,COLOR_GREEN,"* Du hast erfolgreich ein Kopfgeld auf %s in Höhe von $%s gesetzt.",GetPlayerNameEx(pID),FormatNumber(pValue));
if(GetPlayerFaction(pID) != FACTION_HITMAN)
{
foreach(new i : Player)
{
if(GetPlayerFaction(i) != FACTION_HITMAN) continue;
SendClientMessageX(i,COLOR_DARKBLUE,"[ KOPFGELD ] %s hat ein Kopfgeld in Höhe von $%s erhalten (Insgesamt: $%s)",GetPlayerNameEx(pID),FormatNumber(pValue),FormatNumber(playerInfo[pID][pContractValue]));
}
}
else
{
SendClientMessageX(pID, COLOR_YELLOW, "[ KOPFGELD ] %s hat ein Kopfgeld auf Dich gesetzt. Wir haben den Auftrag angenommen, werden ihn aber nicht ausführen.", GetPlayerNameEx(playerid));
}
new query[256];
mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `log_contract` (`userid`,`victimid`,`value`,`killed`,`date`) VALUES ('%d','%d','%d','0','%d')",playerInfo[playerid][pSQLID],playerInfo[pID][pSQLID],pValue,gettime());
mysql_function_query(dbHandle, query, false, "", "");
return 1;
}
CMD:kriegsstart(playerid,params[])
{
new pID, pValue;
if(!IsPlayerInAnyGroup(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe Mitglied.");
if(!HasGroupPlayerPermissionForThis(playerid, PERM_WAR)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Kriege starten.");
if(sscanf(params,"ud",pID,pValue)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /kriegsstart [playerid / Name] [Preisgeld]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(!IsPlayerInAnyGroup(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist in keiner Gruppe Mitglied.");
if(playerInfo[playerid][pGroup] == playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist in der selben Gruppe Mitglied wie du.");
if(groupInfo[GetPlayerGroupIndex(playerid)][gWarLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Eure Gruppe hat noch %s eine Kriegssperre.",GetTimeString(groupInfo[GetPlayerGroupIndex(playerid)][gWarLock]-gettime(),5));
return 1;
}
if(groupInfo[playerInfo[pID][pGroupIndex]][gOfferWar]) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Gruppe hat bereits eine Anfrage von einer (anderen) Gruppe erhalten.");
if(2000000 < pValue || pValue < 100000) return SendClientMessage(playerid, COLOR_LESSRED, "Das Preisgeld muss zwischen $100.000 - $2.000.000.");
if(groupInfo[playerInfo[pID][pGroupIndex]][gWar])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist bereits in einen Krieg involviert.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
if(groupInfo[playerInfo[playerid][pGroupIndex]][gWar]) return SendClientMessage(playerid, COLOR_LESSRED, "Ihr seid bereits in einen Krieg involviert.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gBank] < pValue)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ihr habt keine $%d in der Kasse.",pValue);
return 1;
}
if(groupInfo[playerInfo[pID][pGroupIndex]][gBank] < pValue)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat keine $%d in der Kasse.",groupInfo[playerInfo[pID][pGroupIndex]][gName],pValue);
return 1;
}
if(groupInfo[GetPlayerGroupIndex(pID)][gWarLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Gruppe hat noch %s eine Kriegssperre.",GetTimeString(groupInfo[GetPlayerGroupIndex(playerid)][gWarLock]-gettime(),5));
return 1;
}
new string[128];
format(string,sizeof(string),"%s fordert euch im Namen der Gruppe %s zu einem Krieg herraus. Das Preisgeld beträgt $%d",GetPlayerNameEx(playerid),groupInfo[playerInfo[playerid][pGroupIndex]][gName],pValue);
SendGroupMessageToAll(playerInfo[pID][pGroup], COLOR_CLANCHAT, string, PERM_WAR);
format(string,sizeof(string),"/annehmen Krieg %s - /ablehnen Krieg %s",GetPlayerNameEx(playerid),GetPlayerNameEx(playerid));
SendGroupMessageToAll(playerInfo[pID][pGroup],COLOR_LIGHTBLUE, string, PERM_WAR);
format(string,sizeof(string),"%s hat eine Kriegsanfrage an die Gruppe %s geschickt.",GetPlayerNameEx(playerid),groupInfo[playerInfo[pID][pGroupIndex]][gName]);
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, string);
groupInfo[playerInfo[pID][pGroupIndex]][gOfferWar] = playerInfo[playerid][pGroupIndex];
groupInfo[playerInfo[pID][pGroupIndex]][gWarPrice] = pValue;
return 1;
}
CMD:eject(playerid,params[])
{
new pID, string[128];
if(GetPlayerVehicleSeat(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur als Fahrer eines Fahrzeuges einen Spieler aus einem Fahrzeug stoßen.");
if(sscanf(params,"d",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /eject [playerid / Name]");
if(pID == playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht selber aus dem Fahrzeug stoßen.");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(GetPlayerVehicleID(pID) != GetPlayerVehicleID(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht in deinem Fahrzeug.");
if(playerInfo[pID][pCuffed]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist gefesselt.");
format(string,sizeof(string),"* %s hat %s aus dem Fahrzeug gestoßen.",GetPlayerNameEx(playerid),GetPlayerNameEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE,string);
RemovePlayerFromVehicle(pID);
return 1;
}
CMD:forceac(playerid,params[])
{
if(!NeededAdminLevel(playerid, "forceac")) return 1;
new pID, pReason[32];
if(sscanf(params, "us[32]", pID, pReason)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /forceac [playerid / Name] [Grund]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerInfo[pID][pNeedAntiCheat]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat bereits eine Anti - Cheat Pflicht.");
InsertPunitiveLog(playerInfo[pID][pSQLID], playerInfo[playerid][pSQLID], pReason, PUNITIVE_FORCEAC);
playerInfo[pID][pNeedAntiCheat] = true;
new str[512];
format(str, 512, "Du hast von %s %s eine Anti - Cheat Pflicht bekommen!\nGrund der Pflicht: %s\n\nBitte lade dir das Anti - Cheat unter forum.german-crimescene.de herunter und\ninstalliere es. Solltest du der Entscheidung wiedersprechen,kannst du \nim Forum Beschwerde einreichen.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), pReason);
ShowPlayerDialog(pID, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "AC - Pflicht", str, "Schließen", "");
KickEx(pID);
return 1;
}
enum OfflineAction
{
OFFLINEACTION_TAKEAC
}
CMD:takeac(playerid,params[])
{
if(!NeededAdminLevel(playerid, "takeac")) return 1;
new pUser[MAX_PLAYER_NAME], pReason[32];
if(sscanf(params, "s[24]s[32]", pUser, pReason)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /takeac [Name] [Grund]");
new pID = GetPlayerID(pUser);
if(IsPlayerConnected(pID))
{
if(!playerInfo[pID][pNeedAntiCheat]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat keine Anti - Cheat Pflicht.");
InsertPunitiveLog(playerInfo[pID][pSQLID], playerInfo[playerid][pSQLID], pReason, PUNITIVE_TAKEAC);
playerInfo[pID][pNeedAntiCheat] = false;
new str[128];
format(str, 128, "* %s %s hat %s %s die Anti Cheat Pflicht genommen, Grund: %s", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), GetPlayerTitle(pID), GetPlayerNameEx(pID));
SendAdminMessage(COLOR_RED, str);
SendClientMessage(pID, COLOR_RED, str);
return 1;
}
SetPVarString(playerid, "TakeAC_Reason", pReason);
new string[128];
mysql_format(dbHandle, string,sizeof(string),"SELECT `id`,`anticheat` FROM `accounts` WHERE `username` = '%e' LIMIT 1",pUser);
mysql_pquery(dbHandle,string, "OnPlayerActionOnOfflinePlayer","dsd",playerid, pUser, _:OFFLINEACTION_TAKEAC);
return 1;
}
forward OnPlayerActionOnOfflinePlayer(playerid, playername[], OfflineAction:action);
public OnPlayerActionOnOfflinePlayer(playerid, playername[], OfflineAction:action)
{
new rows = cache_num_rows();
if(!rows)
{
new string[128];
format(string, 128, "Der Account {FFFFFF}%s{B85476} konnte nicht gefunden werden.", playername);
SendClientMessage(playerid, COLOR_LESSRED, string);
return 1;
}
new player_sqlid = cache_get_field_content_int(0, "id");
switch(action)
{
case OFFLINEACTION_TAKEAC:
{
if(!cache_get_field_content_int(0, "anticheat")) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat keine Anti - Cheat Pflicht.");
new str[128], pReason[32];
GetPVarString(playerid, "TakeAC_Reason", pReason, 32);
DeletePVar(playerid, "TakeAC_Reason");
format(str, 128, "* %s %s hat %s die Anti Cheat Pflicht genommen, Grund: %s.", GetPlayerTitle(playerid), GetPlayerNameEx(playerid), playername, pReason);
SendAdminMessage(COLOR_RED, str);
InsertPunitiveLog(player_sqlid, playerInfo[playerid][pSQLID], pReason, PUNITIVE_TAKEAC);
mysql_format(dbHandle, str, 128, "UPDATE accounts SET `anticheat`=0 WHERE id=%d", player_sqlid);
mysql_tquery(dbHandle, str, "", "");
return 1;
}
}
return 1;
}
CMD:friends(playerid,params[])
{
new pItem[8];
if(sscanf(params,"s[8]",pItem)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /friends [add | delete | list]");
if(strfind(pItem, "add", true) != -1)
{
new uName[MAX_PLAYER_NAME];
if(sscanf(params, "s[8]s[24]", pItem, uName)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /friends add [playerid / Name]");
new pID = (IsNumeric(uName) ? strval(uName) : GetPlayerID(uName));
new query[128];
mysql_format(dbHandle, query, sizeof(query), "SELECT `id`,`username` FROM `accounts` WHERE `username` = '%e'", uName);
mysql_pquery(dbHandle, query, "OnServerSearchFriend", "dd", playerid, pID);
return 1;
}
else if(strfind(pItem, "delete", true) != -1)
{
new query[256];
mysql_format(dbHandle, query, sizeof(query), "SELECT `id`,`playerusername`,`friendusername`,`friendid`,`request` FROM `friends` WHERE `playerid` = '%d' OR `friendid` = '%d'", playerInfo[playerid][pSQLID],playerInfo[playerid][pSQLID]);
mysql_pquery(dbHandle, query, "OnServerOpenFriendList", "d", playerid);
DialogTempData[playerid][MAX_PLAYERS-2] = 1;
}
else if(strfind(pItem, "list", true) != -1)
{
new query[256];
mysql_format(dbHandle, query, sizeof(query), "SELECT `id`,`playerusername`,`friendusername`,`friendid`,`request` FROM `friends` WHERE `playerid` = '%d' OR `friendid` = '%d'", playerInfo[playerid][pSQLID],playerInfo[playerid][pSQLID]);
mysql_pquery(dbHandle, query, "OnServerOpenFriendList", "d", playerid);
DialogTempData[playerid][MAX_PLAYERS-2] = 2;
return 1;
}
return 1;
}
CMD:grab(playerid,params[])
{
new pID, vehicleid = GetPlayerVehicleID(playerid), string[128];
if(!IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Polizist.");
if(sscanf(params,"d",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /grab [playerid / Name]");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Fahrzeug, wo du den Spieler reinziehen kannst.");
if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht Fahrer eines Fahrzeuges.");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(!IsPlayerInRangeOfPlayer(playerid,pID,8.0))
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist nicht in deiner nähe.",GetPlayerNameEx(pID));
return 1;
}
if(!playerInfo[pID][pHandsUp])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat sich bisher nicht gestellt.",GetPlayerNameEx(pID));
return 1;
}
if(GetPlayerWantedLevel(pID) < 3)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat nur %d Wanted(s) und ist unter Ticketschutz.",GetPlayerNameEx(pID),GetPlayerWantedLevel(pID));
return 1;
}
new seatid = GetFreeVehicleSeat(vehicleid);
if(seatid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "In deinem Fahrzeug ist kein Platz mehr.");
playerInfo[pID][pHandsUp] = false;
PutPlayerInVehicle(pID, vehicleid, seatid);
format(string,sizeof(string),"* Polizist %s hat %s in sein Fahrzeug gezogen.",GetPlayerNameExEx(playerid),GetPlayerNameExEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE,string);
TogglePlayerControllable(pID, false);
playerInfo[pID][pCuffed] = 1;
playerInfo[playerid][pCuffedPerson] = pID;
GameTextForPlayer(pID, "~r~Handschellen angelegt", 2500, 3);
format(string,sizeof(string),"* Polizist %s hat %s Handschellen angelegt.",GetPlayerNameExEx(playerid),GetPlayerNameExEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE,string);
return 1;
}
CMD:rob(playerid,params[])
{
new pID;
if(playerInfo[playerid][pTalent] != TALENT_PICKPOCKET) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Spieler ausrauben, da du kein Talent dafür hast.");
if(sscanf(params,"d",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /rob [playerid / Name]");
if(!IsPlayerConnected(pID) || IsPlayerNPC(pID)) return SendOnlineErrorMessage(playerid);
if(playerid == pID) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dich nicht selber ausrauben.");
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Den Staatsfraktionen ist es strengstens untersagt, illegalen Tätigkeiten nachzugehen.");
if(IsPlayerInAnyVehicle(playerid) || IsPlayerInAnyVehicle(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Das Ausrauben von Spielern geht nur außerhalb von Fahrzeugen.");
if(!IsPlayerInRangeOfPlayer(playerid, pID, 2.5)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht nah genug an dem Spieler.");
if(playerInfo[pID][pPlayerRobProtect] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Der Spieler kann erst wieder in %s ausgeraubt werden.",GetTimeString(playerInfo[pID][pPlayerRobProtect]-gettime(),3));
return 1;
}
if(playerInfo[playerid][pPlayerRobLock] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst erst wieder in %s Personen ausrauben.",GetTimeString(playerInfo[playerid][pPlayerRobLock]-gettime(),3));
return 1;
}
if(playerInfo[pID][pAFKCheckTime] + 5 < gettime() || playerInfo[pID][pAFK]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist im AFK - Modus.");
if(IsPlayerInNoDmZone(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist in einer No-DM Zone.");
if(playerInfo[pID][pJailTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist im Gefängnis und hat dadurch kein Geld bei sich.");
if(playerInfo[pID][pAdminDuty]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist Admin OnDuty.");
if(playerInfo[pID][pWorld] || !GetPlayerControllable(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler kann (derzeit) nicht ausgeraubt werden.");
new robtime = 11 - GetPlayerSkillLevel(playerid, SKILL_PICKPOCKETING);
playerInfo[playerid][pPlayerRobID] = pID;
playerInfo[playerid][pPlayerRobTime] = gettime() + robtime;
playerInfo[pID][pPlayerRobProtect] = gettime() + 60 * 15;
SendClientMessageX(playerid, COLOR_YELLOW, "Verfolge %s %d Sekunden lang, um ihn erfolgreich auszurauben.",GetPlayerNameExEx(pID),robtime);
new str[128];
format(str, 128, "* %s wühlt in den Taschen von %s.", GetPlayerNameEx(playerid), GetPlayerNameEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, str);
return 1;
}
CMD:afk(playerid,params[])
{
if(playerInfo[playerid][pAFK])
{
new pNumber;
if(sscanf(params,"d",pNumber)) return SendClientMessage(playerid, COLOR_YELLOW, "/afk [Nummer]");
if(pNumber != playerInfo[playerid][pAFKNumber]) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Nummer stimmt nicht mit deiner persönlichen AFK - Nummer überein.");
playerInfo[playerid][pAFK] = false;
SendClientMessage(playerid, COLOR_WHITE, "Du bist nun nicht mehr im AFK - Modus.");
TogglePlayerControllable(playerid, true);
}
return 1;
}
stock CountAdmins(rank = RANK_SUPPORTER, &online, &duty)
{
foreach(new i : Player)
{
if(playerInfo[i][pAdmin] < rank) continue;
online++;
if(playerInfo[i][pAdminDuty]) duty++;
}
}
stock SendClientTicketMessage(slotid, color, msg[])
{
foreach(new i : Player)
{
if(playerInfo[i][pSupportTicketID] != slotid || !IsPlayerLoggedIn(i)) continue;
SendClientMessage(i, COLOR_YELLOW, msg);
}
SendClientMessage(supportTicket[slotid][stAdminID], color, msg);
}
stock GetPlayerCoords(playerid, &Float:x, &Float:y, &Float:z)
{
if(IsPlayerInAnyVehicle(playerid))
GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
else
GetPlayerPos(playerid, x, y, z);
}
CMD:deleteactor(playerid,params[])
{
if(!NeededAdminLevel(playerid, "deleteactor")) return 1;
new id = GetClosestActor(playerid, 5.0, true);
if(id == INVALID_ACTOR_ID) return SendClientMessage(playerid, COLOR_LESSRED, "In deiner Nähe ist kein Actor");
if(!Iter_Contains(Actors, id)) return SendClientMessage(playerid,COLOR_GREY,"Actor nicht vorhanden.");
Iter_Remove(Actors, id);
DestroyActor(id);
Delete3DTextLabel(actorInfo[id][label]);
SendClientMessage(playerid,COLOR_GREY,"Actor erfolgreich gelöscht.");
printf("ID: %d", id);
new query[80];
mysql_format(dbHandle, query, sizeof(query), "DELETE FROM actor WHERE id=%d", id);
mysql_tquery(dbHandle, query);
format(query, 512, "(id: %d)", id);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/deleteactor",query);
return 1;
}
CMD:createactor(playerid,params[])
{
if(!NeededAdminLevel(playerid, "createactor")) return 1;
new actorSkin, actorRobable, actorQuestable, actorName[24];
if(sscanf(params, "s[24]ddd", actorName, actorSkin, actorRobable, actorQuestable)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /createactor [Name] [Skin-ID] [Robable] [Questable]");
new Float:x,Float:y,Float:z, Float:a;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
new id = CreateServerActor(actorName, actorSkin, x, y, z, a, GetPlayerVirtualWorld(playerid), actorRobable, actorQuestable);
SendClientMessageX(playerid, COLOR_GREEN, "Du hast erfolgreich den Actor %s (ID: %d) erstellt (SkinID: %d, Robable: %d, Questable: %d)", id, actorName, actorSkin, actorRobable, actorQuestable);
GetAnimationName(GetPlayerAnimationIndex(playerid), actorInfo[id][acAnimLib], 32, actorInfo[id][acAnimName], 32);
ApplyActorAnimation(id, actorInfo[id][acAnimLib], actorInfo[id][acAnimName], 4.1, 1, 0, 0, 0, 0);
new query[512];
mysql_format(dbHandle, query, 512, "INSERT INTO `actors` (name, modelid, x, y, z, angle, virtualworld, robable, questable, animname, animlib) VALUES ('%s',%d,%.5f,%.5f,%.5f,%.5f,%d,%d,%d,'%s','%s')", actorName, actorSkin, x, y, z, a, GetPlayerVirtualWorld(playerid), actorRobable,actorQuestable, actorInfo[id][acAnimName], actorInfo[id][acAnimLib]);
mysql_tquery(dbHandle, query, "", "");
format(query, 512, "%s %d %d %d (%d, %.2f, %.2f, %.2f, %.2f)", actorName, actorSkin, actorRobable, actorQuestable, id, x, y, z, a);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/createactor",query);
return 1;
}
CMD:createpatrolcp(playerid,params[])
{
if(!NeededAdminLevel(playerid, "createpatrolcp")) return 1;
new patrolID, patrolTime;
if(sscanf(params, "dd", patrolID, patrolTime)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /createpatrolcp [CP-ID] [Zeit]");
if(patrolID < 0 || patrolTime < 0) return SendClientMessage(playerid, COLOR_LESSRED, "Die Parameter CP-ID und Zeit können nicht negativ sein.");
new Float:Pos[3];
GetPlayerCoords(playerid, Pos[0], Pos[1], Pos[2]);
new query[256];
mysql_format(dbHandle, query,sizeof(query), "INSERT INTO `mission_patrolcps` (`cpid`, `time`, `x`, `y`, `z`) VALUES (%d,%d,'%.5f','%.5f','%.5f')", patrolID, patrolTime, Pos[0], Pos[1], Pos[2]);
mysql_tquery(dbHandle, query, "", "");
SendClientMessageX(playerid, COLOR_YELLOW, "Checkpoint erstellt. CP-ID: %d", patrolID);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/createpatrolcp",params);
return 1;
}
CMD:closeticket(playerid,params[])
{
new slotid;
if(playerInfo[playerid][pAdmin])
{
if(sscanf(params, "d", slotid)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /closeticket [slotid]");
if(supportTicket[slotid][stAdminID] != playerid && playerInfo[playerid][pSupportTicketID] != slotid || !Iter_Contains(SupportTickets, slotid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dieses Ticket nicht schließen.");
}
else
{
if(playerInfo[playerid][pSupportTicketID] == INVALID_TICKET_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keinem Ticket.");
slotid = playerInfo[playerid][pSupportTicketID];
}
if(supportTicket[slotid][stState] == TICKET_FORCE && supportTicket[slotid][stAdminID] != playerid)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst dieses Ticket nicht schließen, da es von %s %s erzwungen wurde.", GetPlayerTitle(supportTicket[slotid][stAdminID]),GetPlayerNameEx(supportTicket[slotid][stAdminID]));
return 1;
}
ClosePlayerSupportTicket(playerid, slotid);
return 1;
}
CMD:supinvite(playerid,params[])
{
if(!NeededAdminLevel(playerid, "supinvite")) return 1;
new slotid, pID, _underCover = 0;
if(sscanf(params, "duD(0)", slotid, pID,_underCover)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /supinvite [slotid] [playerid / Name]");
if(_underCover == 1 && !NeededAdminLevel(playerid, "supundercover")) return SendClientMessage(playerid, COLOR_GREY, "Bitte entferne die Zahl nach dem Namen.");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(supportTicket[slotid][stSQLID] == -1 || !Iter_Contains(SupportTickets, slotid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Chat existiert nicht.");
if(playerInfo[pID][pSupportTicketID] == slotid) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits in der Bearbeitung dieses Tickets.");
if(supportTicket[slotid][stAdminID] != playerid && !NeededAdminLevel(playerid, "supinvite_force")) return SendClientMessage(playerid, COLOR_LESSRED, "Nur Teammitglieder des Tickets können weitere Spieler ins Ticket einladen.");
playerInfo[pID][pSupportTicketID] = slotid;
if(_underCover != 1)
{
new str[128];
format(str, 128, "[ SUPPORT %d ] %s %s ist dem Support beigetreten.", slotid, GetPlayerTitle(pID), GetPlayerNameEx(pID));
SendClientTicketMessage(slotid, COLOR_YELLOW, str);
}
else
{
playerInfo[playerid][pSupportUnderCover] = true;
SendClientMessage(playerid, COLOR_LESSRED, "[ SUPPORT ] Die anderen Ticketmitglieder wissen nicht, dass du im Ticket bist.");
}
new str[128];
format(str, 128, "%d %s %d", slotid, GetPlayerNameEx(pID), _underCover);
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/supinvite",str);
return 1;
}
CMD:forcesup(playerid,params[])
{
if(!NeededAdminLevel(playerid, "forcesup")) return 1;
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /forcesup [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerInfo[pID][pSupportTicketID] != INVALID_TICKET_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits in einem Ticket.");
new slotid = CreateTicket(pID);
if(slotid == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte warte einen Moment, es sind derzeit alle Ticketplätze belegt.");
SendClientMessageX(pID, COLOR_YELLOW, "[ {EB3636}SUPPORT %d{EBEB44} ] %s %s hat ein Ticket mit dir erzwungen.", slotid, GetPlayerTitle(playerid), GetPlayerNameEx(playerid));
SendClientMessageX(playerid, COLOR_YELLOW, "[ {EB3636}SUPPORT %d{EBEB44} ] Du hast ein Support mit %s %s erzwungen.", slotid, GetPlayerTitle(pID), GetPlayerNameEx(pID));
new str[256];
mysql_format(dbHandle, str, 256, "INSERT INTO `log_sup` (`playerid`,`adminid`,`question`,`createtime`,`opentime`) VALUES ('%d','%d','Force-Ticket','%d','%d')", supportTicket[slotid][stUserSQLID], playerInfo[playerid][pSQLID],supportTicket[slotid][stDate], gettime());
mysql_tquery(dbHandle, str, "InsertInit", "dd", slotid, INSERTINIT_SUPPORT);
playerInfo[pID][pSupportTicketID] = slotid;
supportTicket[slotid][stState] = TICKET_FORCE;
supportTicket[slotid][stAdminID] = playerid;
InsertAdminLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pAdminDuty],"/forcesup",GetPlayerNameEx(pID));
return 1;
}
CMD:releasesup(playerid, params[])
{
if(!NeededAdminLevel(playerid,"releasesup")) return 1;
new slotid, rReason[24];
if(sscanf(params, "ds[24]", slotid, rReason)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /releasesup [slotid] [Grund]");
if(supportTicket[slotid][stSQLID] == -1 || !Iter_Contains(SupportTickets, slotid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Ticket existiert nicht.");
if(playerInfo[playerid][pSupportTicketID] != slotid && supportTicket[slotid][stAdminID] != playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Ticket ist dir nicht zugewiesen.");
format(supportTicket[slotid][stReleaseReason], 24, rReason);
supportTicket[slotid][stState] = TICKET_RELEASE;
supportTicket[slotid][stAdminID] = INVALID_PLAYER_ID;
return 1;
}
CMD:sup(playerid,params[])
{
if(!playerInfo[playerid][pAdmin] && playerInfo[playerid][pSupportTicketID] == INVALID_TICKET_ID)
{
if(IsPlayerInTutorial(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist während dem Tutorial blockiert.");
new pQuestion[144];
if(sscanf(params, "s[144]", pQuestion))
{
SendClientMessage(playerid, COLOR_GREY, "Syntax: /sup [Nachricht]");
SendClientMessage(playerid, COLOR_RED, "Hinweis: Gebe deine Frage genau an - Fragen wie 'Gregor?' werden verwarnt.");
return 1;
}
if(CreateTicket(playerid, pQuestion) == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte warte einen Moment, es sind derzeit alle Ticketplätze belegt.");
new online, duty;
CountAdmins(RANK_SUPPORTER, online, duty);
SendClientMessage(playerid, COLOR_YELLOW, "[ SUPPORT ] Dein Ticket wurde erstellt. Du kannst es jederzeit durch /ct schließen.");
format(pQuestion,sizeof(pQuestion),"* %s hat ein neues Ticket erstellt.",GetPlayerNameEx(playerid));
foreach(new i : Player)
{
if(!playerInfo[i][pAdmin] || !IsPlayerConnected(i)) continue;
PlayerPlaySound(i, SOUND_RACE_GO, 0.0,0.0,0.0);
SendClientMessage(i, COLOR_YELLOW, pQuestion);
}
switch(online)
{
case 0:
{
SendClientMessage(playerid, COLOR_YELLOW, "[ SUPPORT ] Es sind gerade keine Teammitglieder Online.");
SendClientMessage(playerid, COLOR_YELLOW, "[ SUPPORT ] Deine Frage wird bearbeitet, wenn ein Teammitglied Online ist.");
return 1;
}
case 1: SendClientMessage(playerid, COLOR_YELLOW, "[ SUPPORT ] Es ist gerade ein Teammitglied Online.");
default: SendClientMessageX(playerid, COLOR_YELLOW, "[ SUPPORT ] Es sind gerade %d Teammitglieder Online (davon %d im Dienst).", online, duty);
}
return 1;
}
else if(playerInfo[playerid][pSupportTicketID] != INVALID_TICKET_ID || playerInfo[playerid][pAdmin])
{
new pQuestion[144], str[128], slotid;
if(playerInfo[playerid][pAdmin] && sscanf(params,"ds[144]", slotid, pQuestion)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /sup [slotid] [Nachricht]");
else if(!playerInfo[playerid][pAdmin] && sscanf(params, "s[144]", pQuestion)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /sup [Nachricht]");
if(!playerInfo[playerid][pAdmin]) slotid = playerInfo[playerid][pSupportTicketID];
else if(playerInfo[playerid][pSupportTicketID] != slotid && supportTicket[slotid][stAdminID] != playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Dieses Ticket ist dir nicht zugewiesen.");
if(supportTicket[slotid][stSQLID] == -1) return SendClientMessage(playerid, COLOR_LESSRED, "Bitte warte einen Moment, bis der Chat initialisiert wurde.");
if(supportTicket[slotid][stState] == TICKET_OFFEDIT)
{
new longstr[256];
format(longstr, 256, "Du hattest ein Ticket erstellt am %s und bist Offline gegangen.^%s %s hat dein Ticket bearbeitet und folgendes geschrieben:^%s", GetDateFromTimestampEx(supportTicket[slotid][stDate]), GetPlayerTitle(playerid), GetPlayerNameEx(playerid), pQuestion);
InsertPrivateNotification(3, supportTicket[slotid][stUserSQLID], playerInfo[playerid][pSQLID], "Bearbeitung deines Tickets (Offline)", longstr);
SendClientMessage(playerid, COLOR_YELLOW, "[ SUPPORT ] Du hast das Ticket Offline bearbeitet.");
ClosePlayerSupportTicket(playerid, slotid);
}
else
{
foreach(new i : Player)
{
if(playerInfo[i][pSupportTicketID] != slotid) continue;
format(str, 128, "[ SUPPORT %d ] %s %s: %s", slotid, GetPlayerTitle(playerid), GetPlayerNameEx(playerid), pQuestion);
SendClientMessage(i, COLOR_YELLOW, str);
}
}
SendClientMessage(supportTicket[slotid][stAdminID], COLOR_YELLOW, str);
new query[256];
mysql_format(dbHandle, query, 256, "INSERT INTO `log_supchat` (`playerid`,`ticketid`,`text`,`date`) VALUES ('%d','%d','%e','%d')", playerInfo[playerid][pSQLID], supportTicket[slotid][stSQLID], pQuestion, gettime());
mysql_tquery(dbHandle, query, "", "");
return 1;
}
return 1;
}
CMD:ticketlist(playerid,params[])
{
if(!NeededAdminLevel(playerid, "ticketlist")) return 1;
new longstr[1024], adminName[MAX_PLAYER_NAME];
DialogTempDataIndex[playerid] = 0;
strins(longstr, "ID | Ersteller\tDatum\tZustand\t -\n", 0);
foreach(new slotid : SupportTickets)
{
GetPlayerName(supportTicket[slotid][stAdminID], adminName, MAX_PLAYER_NAME);
format(longstr, 1024, "%s%d | %s\t%s\t%s\t",longstr,slotid, supportTicket[slotid][stUserName], GetDateFromTimestampEx(supportTicket[slotid][stDate]), ticketState[supportTicket[slotid][stState]]);
DialogTempData[playerid][DialogTempDataIndex[playerid]++] = slotid;
switch(supportTicket[slotid][stState])
{
case TICKET_EDIT, TICKET_OFFEDIT, TICKET_FORCE:
{
format(longstr, 1024, "%s%s", longstr, GetPlayerNameEx(supportTicket[slotid][stAdminID]));
}
case TICKET_RELEASE:
{
format(longstr, 1024, "%s%s", longstr, supportTicket[slotid][stReleaseReason]);
}
}
strcat(longstr,"\n");
}
if(DialogTempDataIndex[playerid] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Es existieren derzeit keine Tickets.");
ShowPlayerDialog(playerid, DIALOG_TICKET, DIALOG_STYLE_TABLIST_HEADERS, "Übersicht der Tickets", longstr, "Weiter", "Schließen");
return 1;
}
CMD:einzahlen(playerid,params[])
{
new gMoney;
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe Mitglied.");
if(sscanf(params,"d",gMoney)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /einzahlen [Menge]");
if(gMoney <= 0 || gMoney > 10000000) return SendClientMessage(playerid, COLOR_GREY, "Die Zahl muss zwischen $1 - $10.000.000 sein.");
if(gMoney > GetPlayerMoney(playerid))
{
SendClientMessageX(playerid, COLOR_GREY, "Du hast keine $%d auf der Hand.",gMoney);
return 1;
}
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] += gMoney;
GivePlayerMoney(playerid, -gMoney, "Gruppenkasse");
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast $%s in die Gruppenkasse eingezahlt (Inhalt: $%s).",FormatNumber(gMoney),FormatNumber(groupInfo[playerInfo[playerid][pGroupIndex]][gBank]));
InsertGroupLog(playerInfo[playerid][pSQLID], playerInfo[playerid][pGroup],"/einzahlen", params);
playerInfo[playerid][pGroupCharity] += gMoney;
playerInfo[playerid][pGroupCharityDiff] += gMoney;
return 1;
}
CMD:auszahlen(playerid,params[])
{
new gMoney;
if(!HasGroupPlayerPermissionForThis(playerid,PERM_WITHDRAW)) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht die nötige Berechtigung, das zu tun.");
if(sscanf(params,"d",gMoney)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /auszahlen [Menge]");
if(gMoney <= 0|| gMoney > 10000000) return SendClientMessage(playerid, COLOR_GREY, "Die Zahl muss zwischen $1 - $10.000.000 sein.");
if(gMoney > groupInfo[playerInfo[playerid][pGroupIndex]][gBank])
{
SendClientMessageX(playerid, COLOR_GREY, "Es befinden sich keine $%d in der Gruppenkasse.",gMoney);
return 1;
}
groupInfo[playerInfo[playerid][pGroupIndex]][gBank] -= gMoney;
playerInfo[playerid][pGroupCharityDiff] -= gMoney;
GivePlayerMoney(playerid, gMoney, "Gruppenkasse");
SendClientMessageX(playerid, COLOR_YELLOW, "Du hast $%s aus der Gruppenkasse ausgezahlt (Inhalt: $%s).",FormatNumber(gMoney),FormatNumber(groupInfo[playerInfo[playerid][pGroupIndex]][gBank]));
InsertGroupLog(playerInfo[playerid][pSQLID], playerInfo[playerid][pGroup],"/auszahlen", params);
return 1;
}
CMD:agiverank(playerid,params[])
{
new pID, pRank;
if(!NeededAdminLevel(playerid, "agiverank")) return 1;
if(sscanf(params, "ud",pID,pRank)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /agiverank [playerid / Name] [Rang]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(pID);
if(!playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist in keiner Gruppe Mitglied.");
if(pRank >= groupInfo[GetPlayerGroupIndex(playerid)][gHighestRank] - 1)
{
playerInfo[pID][pLeader] = 1;
SendClientMessage(pID, COLOR_YELLOW, "Hinweis: Du bist nun Co - Leader der Gruppe.");
}
else if(playerInfo[pID][pLeader])
{
playerInfo[pID][pLeader] = 0;
SendClientMessage(pID, COLOR_YELLOW, "Hinweis: Du bist nun nicht mehr Co - Leader der Gruppe.");
}
SendClientMessageX(pID, COLOR_LIGHTBLUE, "** %s hat dich auf Rang %d %s.",GetPlayerNameEx(playerid),pRank,(playerInfo[pID][pGroupRank] <= pRank ? ("befördert") : ("degradiert")));
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "** Du hast %s auf Rang %d %s.",GetPlayerNameEx(pID),pRank,(playerInfo[pID][pGroupRank] <= pRank ? ("befördert") : ("degradiert")));
playerInfo[pID][pGroupRank] = pRank;
format(params, 64, "%s %d",GetPlayerNameEx(pID),pRank);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/agiverank", params);
return 1;
}
CMD:giverank(playerid,params[])
{
new pID, pRank;
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe Mitglied.");
if(playerInfo[playerid][pGroupRank] < groupInfo[GetPlayerGroupIndex(playerid)][gHighestRank] - 1) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht berechtigt, diesen Befehl auszuführen.");
if(sscanf(params, "ud",pID,pRank)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /giverank [playerid / Name] [Rang]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(pID);
if(playerInfo[playerid][pGroup] != playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist nicht in deiner Gruppe.");
if(playerInfo[playerid][pGroupRank] <= pRank && playerInfo[playerid][pLeader] != 2 || playerInfo[playerid][pGroupRank] < pRank && playerInfo[playerid][pLeader] == 2 || pRank < 1)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst nur Ränge von 1 - %d vergeben.",(playerInfo[playerid][pLeader] == 2 ? playerInfo[playerid][pGroupRank] : playerInfo[playerid][pGroupRank]-1));
return 1;
}
if(playerInfo[pID][pLeader] == 2)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist Leader der Gruppe.",GetPlayerNameEx(pID));
return 1;
}
if(playerInfo[playerid][pGroupRank] < playerInfo[pID][pGroupRank])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat einen höheren Rang als Du.",GetPlayerNameEx(pID));
return 1;
}
if(pRank >= groupInfo[GetPlayerGroupIndex(playerid)][gHighestRank] - 1)
{
playerInfo[pID][pLeader] = 1;
SendClientMessage(pID, COLOR_YELLOW, "Hinweis: Du bist nun Co - Leader der Gruppe.");
}
else if(playerInfo[pID][pLeader])
{
playerInfo[pID][pLeader] = 0;
SendClientMessage(pID, COLOR_YELLOW, "Hinweis: Du bist nun nicht mehr Co - Leader der Gruppe.");
}
SendClientMessageX(pID, COLOR_LIGHTBLUE, "** %s hat dich auf Rang %d %s.",GetPlayerNameEx(playerid),pRank,(playerInfo[pID][pGroupRank] <= pRank ? ("befördert") : ("degradiert")));
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "** Du hast %s auf Rang %d %s.",GetPlayerNameEx(pID),pRank,(playerInfo[pID][pGroupRank] <= pRank ? ("befördert") : ("degradiert")));
playerInfo[pID][pGroupRank] = pRank;
format(params, 64, "%s %d",GetPlayerNameEx(pID),pRank);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/giverank", params);
return 1;
}
CMD:einladen(playerid, params[]) // CMD:invite(playerid, params[])
{
new pID;
if(!HasGroupPlayerPermissionForThis(playerid, PERM_INVITE)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht berechtigt, diesen Befehl auszuführen.");
if(sscanf(params, "u",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /einladen [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(IsPlayerCop(playerid) != IsPlayerCop(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist im falschen Team, um eingeladen zu werden.");
if(IsPlayerInAnyGroup(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits ein Gruppenmitglied.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gMaxMember] <= groupInfo[playerInfo[playerid][pGroupIndex]][gMember])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Gruppe hat bereits ihr Gruppenlimit erreicht (%d Mitglieder).",groupInfo[playerInfo[playerid][pGroupIndex]][gMaxMember]);
return 1;
}
if(groupInfo[playerInfo[playerid][pGroupIndex]][gWarTyp] == WAR_BIZ) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Spieler im Biz-Fight einladen.");
if(playerInfo[pID][pGroupTimestamp] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Der Spieler hat noch %s eine Invitesperre.",GetTimeString((playerInfo[pID][pGroupTimestamp]) - gettime(),5));
return 1;
}
playerInfo[pID][pGroupInvite] = playerInfo[playerid][pGroup];
SendClientMessageX(pID, COLOR_LIGHTBLUE, "** Du wurdest von %s in die Gruppe %s eingeladen.",GetPlayerNameEx(playerid),groupInfo[playerInfo[playerid][pGroupIndex]][gName]);
SendClientMessage(pID, COLOR_YELLOW, "Einladung annehmen: /annehmen gruppe");
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "** Du hast %s in die Gruppe eingeladen.",GetPlayerNameEx(pID));
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/einladen", GetPlayerNameEx(pID));
return 1;
}
CMD:fbank(playerid,params[])
{
new item[5], pValue, team = playerInfo[playerid][pTeam];
if(playerInfo[playerid][pFaction][team-1] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in diesem Team in keiner Fraktion.");
if(sscanf(params, "s[5]D(0)", item, pValue)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /fbank [put / take | info] [Wert]");
if((!strcmp(item, "put", true) || !strcmp(item, "take")) && sscanf(params,"s[5]d", item, pValue)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /fbank [put / take | info] [Wert]");
if((pValue < 1 || pValue > 10000000) && strcmp(item, "info") != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Der Wert muss zwischen $1 - $10.000.000 liegen.");
new fid = playerInfo[playerid][pFaction][team-1];
if(!strcmp(item, "put", true))
{
if(GetPlayerMoney(playerid) < pValue) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht so viel Geld auf der Hand.");
factionInfo[fid][fiBank] += pValue;
GivePlayerMoney(playerid, -pValue, "Fraktionsbank");
SendClientMessageX(playerid, COLOR_FACTIONCHAT, "[ F-Bank ] Du hast $%s in die Fraktionsbank eingezahlt.", FormatNumber(pValue));
}
else if(!strcmp(item, "take", true))
{
if(playerInfo[playerid][pFactionRank][team-1] < 12) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist erst ab Rang 12 verfügbar.");
if(factionInfo[fid][fiBank] < pValue) return SendClientMessage(playerid, COLOR_LESSRED, "So viel Geld liegt nicht mehr in der Fraktionsbank.");
factionInfo[fid][fiBank] -= pValue;
GivePlayerMoney(playerid, pValue, "Fraktionsbank");
SendClientMessageX(playerid, COLOR_FACTIONCHAT, "[ F-Bank ] Du hast $%s von der Fraktionsbank abgehoben.", FormatNumber(pValue));
}
else if(!strcmp(item, "info", true))
{
SendClientMessageX(playerid, COLOR_FACTIONCHAT, "[ F-Bank ] In der Fraktionsbank befinden sich $%s.",FormatNumber(factionInfo[fid][fiBank]));
}
return 1;
}
CMD:fgiverank(playerid,params[])
{
new pID, pRank, team = playerInfo[playerid][pTeam];
if(playerInfo[playerid][pFaction][team-1] == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in diesem Team in keiner Fraktion.");
if(GetPlayerFactionRank(playerid) < 11) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist erst ab Rang 11 verfügbar.");
if(sscanf(params, "ud", pID, pRank)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /fgiverank [playerid / Name] [Rang]");
if(pID == playerid && GetPlayerFactionRank(playerid) == 12) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst dir deinen Rang nicht setzen.");
if(playerInfo[playerid][pFaction][team-1] != playerInfo[pID][pFaction][team-1]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht in deiner Fraktion.");
if(playerInfo[playerid][pFactionRank][team-1] <= pRank)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du kannst nur bis Rang %d setzen.", playerInfo[playerid][pFactionRank][team-1]-1);
return 1;
}
SendClientMessageX(pID, COLOR_FACTIONCHAT, "** %s hat dich auf Rang %d %s (Fraktion) **",GetPlayerNameEx(playerid),pRank,(GetPlayerFactionRank(pID) <= pRank ? ("befördert") : ("degradiert")));
SendClientMessageX(playerid, COLOR_FACTIONCHAT, "** Du hast %s auf Rang %d %s (Fraktion) **",GetPlayerNameEx(pID),pRank,(GetPlayerFactionRank(pID) <= pRank ? ("befördert") : ("degradiert")));
playerInfo[pID][pFactionRank][team-1] = pRank;
return 1;
}
CMD:feinladen(playerid,params[])
{
new pID, team = playerInfo[playerid][pTeam];
if(playerInfo[playerid][pFaction][team-1] == 0) return SendClientMessage(playerid, COLOR_GREY, "Du bist in diesem Team in keiner Fraktion.");
if(playerInfo[playerid][pFactionRank][team-1] < 11) return SendClientMessage(playerid, COLOR_GREY, "Dieser Befehl ist erst ab Rang 11 verfügbar.");
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /feinladen [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(team != playerInfo[pID][pTeam]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist im falschen Team.");
if(GetPlayerFaction(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits in einer Fraktion.");
new factionid = playerInfo[playerid][pFaction][team-1];
playerInfo[pID][pFactionInvite] = factionid;
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "** Du hast %s in die Fraktion eingeladen.", GetPlayerNameEx(pID));
SendClientMessageX(pID, COLOR_LIGHTBLUE, "** Du wurdest von %s in die Fraktion %s eingeladen.", GetPlayerNameEx(playerid), factionInfo[factionid][fiName]);
SendClientMessage(pID, COLOR_YELLOW, "Einladung annehmen: /annehmen fraktion");
return 1;
}
CMD:ainvite(playerid, params[]) // CMD:invite(playerid, params[])
{
new pID, g_SQLID;
if(!NeededAdminLevel(playerid, "ainvite")) return 1;
if(sscanf(params, "ud",pID, g_SQLID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /ainvite [playerid / Name] [Gruppen-SQLID]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(pID);
if(IsPlayerInAnyGroup(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits ein Gruppenmitglied.");
new gid = SearchGroupIndex(g_SQLID);
if(gid == INVALID_GROUP_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Gruppen-SQLID ist nicht vergeben.");
if(groupInfo[gid][gMaxMember] <= groupInfo[gid][gMember])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Gruppe hat bereits ihr Gruppenlimit erreicht (%d Mitglieder).",groupInfo[gid][gMaxMember]);
return 1;
}
if(playerInfo[pID][pGroupTimestamp] > gettime())
{
SendClientMessageX(playerid, COLOR_LESSRED, "Der Spieler hat noch %s eine Invitesperre.",GetTimeString((playerInfo[pID][pGroupTimestamp]) - gettime(),5));
return 1;
}
playerInfo[pID][pGroupInvite] = g_SQLID;
SendClientMessageX(pID, COLOR_LIGHTBLUE, "** Du wurdest von %s in die Gruppe %s eingeladen.",GetPlayerNameEx(playerid),groupInfo[gid][gName]);
SendClientMessage(pID, COLOR_YELLOW, "Einladung annehmen: /annehmen gruppe");
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "** Du hast %s in die Gruppe eingeladen.",GetPlayerNameEx(pID));
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/ainvite", GetPlayerNameEx(pID));
return 1;
}
CMD:auninvite(playerid,params[]) // CMD:auninvite(playerid,params[])
{
new pID, string[128];
if(!NeededAdminLevel(playerid, "auninvite")) return 1;
if(sscanf(params,"u",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /auninvite [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(pID);
format(string,sizeof(string),"** {FF0000}%s{2FD6C3} wurde aus der Gruppe von %s rausgeworfen. **",GetPlayerNameEx(pID),GetPlayerNameEx(playerid));
SendGroupMessageToAll(playerInfo[pID][pGroup],COLOR_CLANCHAT, string);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/auninvite", GetPlayerNameEx(pID));
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "** Du hast %s aus der Gruppe rausgeworfen.",GetPlayerNameEx(pID));
if(IsValidGroupIndex(playerInfo[pID][pGroupIndex]))
{
groupInfo[playerInfo[pID][pGroupIndex]][gMember]--;
}
playerInfo[pID][pGroup] = 0;
playerInfo[pID][pGroupRank] = 0;
playerInfo[pID][pGroupIndex] = 0;
playerInfo[pID][pGroupCharity] = 0;
playerInfo[pID][pGroupCharityDiff] = 0;
playerInfo[pID][pLeader] = 0;
SetPlayerTeamEx(playerid, TEAM_ZIVI);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/auninvite", GetPlayerNameEx(pID));
return 1;
}
CMD:frauswerfen(playerid,params[])
{
new pID, team = playerInfo[playerid][pTeam];
if(GetPlayerFaction(playerid) == 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Frakion.");
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /frauswerfen [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(pID);
new string[128], factionid = GetPlayerFaction(playerid);
if(pID != playerid)
{
if(GetPlayerFactionRank(playerid) < 11) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Befehl ist erst ab Rang 11 verfügbar.");
if(playerInfo[playerid][pFactionRank][team-1] <= playerInfo[pID][pFactionRank][team-1]) return SendClientMessage(playerid,COLOR_LESSRED, "Du kannst dieses Fraktionsmitglied nicht rauswerfen.");
if(GetPlayerFaction(pID) != factionid) return SendClientMessage(playerid, COLOR_LESSRED, "Dieser Spieler ist nicht in deiner Fraktion.");
format(string,sizeof(string),"** {FF0000}%s{3FD956} wurde aus der Fraktion von %s rausgeworfen. **",GetPlayerNameEx(pID),GetPlayerNameEx(playerid));
}
else if(pID == playerid)
{
format(string, sizeof(string), "** {FF0000}%s{3FD956} hat die Fraktion verlassen. **", GetPlayerNameEx(playerid));
}
SendFactionMessageToAll(factionid,COLOR_FACTIONCHAT, string);
playerInfo[pID][pFactionRank][team-1] = 0;
playerInfo[pID][pFaction][team-1] = 0;
playerInfo[pID][pFactionInstructor] = false;
return 1;
}
CMD:rauswerfen(playerid,params[]) // CMD:uninvite(playerid,params[])
{
new pID, string[128];
if(!HasGroupPlayerPermissionForThis(playerid, PERM_UNINVITE)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht berechtigt, diesen Befehl auszuführen.");
if(sscanf(params,"u",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /rauswerfen [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(pID);
if(playerInfo[pID][pGroup] != playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht in deiner Gruppe.");
if(playerInfo[pID][pLeader] == 2) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist Leader der Gruppe und kann nicht rausgeworfen werden.");
if(playerInfo[playerid][pGroupRank] < playerInfo[pID][pGroupRank]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat einen höheren Rang als Du.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gWarTyp] == WAR_BIZ) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Spieler im Biz-Fight rauswerfen.");
format(string,sizeof(string),"** {FF0000}%s{2FD6C3} wurde aus der Gruppe von %s rausgeworfen. **",GetPlayerNameEx(pID),GetPlayerNameEx(playerid));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/rauswerfen", GetPlayerNameEx(pID));
groupInfo[playerInfo[playerid][pGroupIndex]][gMember]--;
playerInfo[pID][pGroup] = 0;
playerInfo[pID][pGroupRank] = 0;
playerInfo[pID][pGroupIndex] = 0;
playerInfo[pID][pGroupCharity] = 0;
playerInfo[pID][pGroupCharityDiff] = 0;
playerInfo[pID][pLeader] = 0;
return 1;
}
CMD:ablehnen(playerid,params[])
{
new pItem[32];
if(sscanf(params,"s[32]",pItem)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /ablehnen [verhältnis | krieg | Mats | Drogen | Haus]");
if(strfind(pItem, "krieg", true) != -1)
{
new pID;
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!HasGroupPlayerPermissionForThis(playerid, PERM_WAR)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Kriege ablehnen.");
if(sscanf(params,"s[32]u",pItem,pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /ablehnen krieg [playerid / Name]");
if(!playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist in keiner Gruppe.");
if(!groupInfo[playerInfo[pID][pGroupIndex]][gOfferWar])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s haben keine offene Anfrage für einen Krieg.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
groupInfo[playerInfo[playerid][pGroupIndex]][gOfferWar] = 0;
groupInfo[playerInfo[pID][pGroupIndex]][gOfferWar] = 0;
groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice] = 0;
groupInfo[playerInfo[pID][pGroupIndex]][gWarPrice] = 0;
new string[128];
format(string,sizeof(string),"%s haben das Angebot für ein Krieg von %s abgelehnt.",groupInfo[playerInfo[playerid][pGroupIndex]][gName],groupInfo[playerInfo[pID][pGroupIndex]][gName]);
SendGroupMessageToAll(playerInfo[pID][pGroup], COLOR_LIGHTBLUE, string);
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_LIGHTBLUE, string);
return 1;
}
if(strfind(pItem, "verhältnis", true) != -1)
{
new pID, index = playerInfo[playerid][pGroupIndex];
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!HasGroupPlayerPermissionForThis(playerid, PERM_ALLIANCE)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Verhältnisse entscheiden.");
if(sscanf(params,"s[32]u",pItem,pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /ablehnen verhältnis [playerid / Name]");
if(!playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist in keiner Gruppe.");
if(!IsValidGroupIndex(playerInfo[pID][pGroupIndex])) return SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe des Spieler weißt einen Fehler auf.");
if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] == 0)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ihr seid bereits mit %s Neutral.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] != ALLIANCE_REQUESTALLIED && GroupAlliance[index][playerInfo[pID][pGroupIndex]] != ALLIANCE_REQUESTNORMAL)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s haben keine offene Anfrage.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] == ALLIANCE_REQUESTALLIED)
{
GroupAlliance[index][playerInfo[pID][pGroupIndex]] = ALLIANCE_NORMAL;
GroupAlliance[playerInfo[pID][pGroupIndex]][index] = ALLIANCE_NORMAL;
UpdateAlliance(index, playerInfo[pID][pGroupIndex], ALLIANCE_NORMAL);
}
else if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] == ALLIANCE_REQUESTNORMAL)
{
GroupAlliance[index][playerInfo[pID][pGroupIndex]] = ALLIANCE_HOSTILE;
GroupAlliance[playerInfo[pID][pGroupIndex]][index] = ALLIANCE_HOSTILE;
UpdateAlliance(index, playerInfo[pID][pGroupIndex], ALLIANCE_REQUESTNORMAL);
}
new string[128];
format(string,sizeof(string),"%s haben das Angebot für ein Bündnis von %s abgelehnt.",groupInfo[index][gName],groupInfo[playerInfo[pID][pGroupIndex]][gName]);
SendGroupMessageToAll(playerInfo[pID][pGroup], COLOR_LIGHTBLUE, string);
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_LIGHTBLUE, string);
return 1;
}
if(strfind(pItem, "Haus", true) != -1)
{
if(playerInfo[playerid][pOfferHouseSellerID] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast kein Angebot für einen Hauskauf erhalten.");
new pID = playerInfo[playerid][pOfferHouseSellerID];
playerInfo[playerid][pOfferHouseSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferHousePrice] = 0;
SendClientMessage(playerid, COLOR_YELLOW, "Du hast den Hauskauf abgelehnt.");
if(IsPlayerConnected(pID))
{
playerInfo[pID][pOfferHouseSellerID] = INVALID_PLAYER_ID;
playerInfo[pID][pOfferHousePrice] = 0;
SendClientMessageX(pID, COLOR_YELLOW, "%s hat den Hauskauf abgelehnt.",GetPlayerNameEx(playerid));
}
return 1;
}
if(strfind(pItem, "Drogen", true) != -1)
{
if(playerInfo[playerid][pOfferDrugSellerID] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast kein Angebot für einen Drogenkauf erhalten.");
new pID = playerInfo[playerid][pOfferDrugSellerID];
playerInfo[playerid][pOfferDrugSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferDrugPrice] = 0;
playerInfo[playerid][pOfferDrugAmount] = 0;
if(IsPlayerConnected(pID))
{
playerInfo[pID][pOfferDrugSellerID] = INVALID_PLAYER_ID;
playerInfo[pID][pOfferDrugPrice] = 0;
playerInfo[pID][pOfferDrugAmount] = 0;
SendClientMessageX(pID, COLOR_YELLOW, "%s hat den Drogenhandel abgelehnt.", GetPlayerNameEx(playerid));
}
SendClientMessage(playerid, COLOR_YELLOW, "Du hast den Drogenhandel abgelehnt.");
return 1;
}
if(strfind(pItem, "Mats", true) != -1)
{
if(!playerInfo[playerid][pGroup] || !playerInfo[playerid][pLeader]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht berechtigt, für deine Gruppe Materialien zu Kaufen.");
new gIndex = GetPlayerGroupIndex(playerid), bIndex;
if(!groupInfo[gIndex][gOfferMats]) return SendClientMessage(playerid, COLOR_LESSRED, "Ihr habt keine Anfrage zum Kauf von Materialien erhalten.");
new string[128];
bIndex = SearchGroupIndex(groupInfo[gIndex][gOfferMats]);
if(groupInfo[bIndex][gOfferMats] == gIndex)
{
groupInfo[bIndex][gOfferMats] = 0;
groupInfo[bIndex][gOfferMatsValue] = 0;
groupInfo[bIndex][gOfferMatsPrice] = 0;
}
groupInfo[gIndex][gOfferMats] = 0;
groupInfo[gIndex][gOfferMatsValue] = 0;
groupInfo[gIndex][gOfferMatsPrice] = 0;
SendClientMessage(playerid, COLOR_YELLOW, "Du hast den Materialkauf abgelehnt.");
format(string, sizeof(string), "** Gruppe %s hat euer Angebot für den Materialkauf abgelehnt. **",groupInfo[gIndex][gName]);
SendGroupMessageToAll(groupInfo[bIndex][gSQLID],COLOR_CLANCHAT, string);
format(string, sizeof(string), "%d",groupInfo[bIndex][gSQLID]);
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/ablehnen Mats", string);
}
return 1;
}
CMD:oldname(playerid,params[])
{
new p_Name[MAX_PLAYER_NAME];
if(sscanf(params, "s[24]", p_Name)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /oldname [playerid / Name]");
if(IsNumeric(p_Name))
{
new pID = strval(p_Name);
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
new query[256];
mysql_format(dbHandle, query, 256, "SELECT * FROM `log_namechange` WHERE `userid` = '%d' ORDER BY `timestamp` DESC LIMIT 10",playerInfo[pID][pSQLID]);
mysql_pquery(dbHandle, query, "ShowPlayerNameChange", "d", playerid);
return 1;
}
new query[256];
mysql_format(dbHandle, query, 256, "SELECT `userid` FROM `log_namechange` WHERE `newname` = '%s' OR `oldname` = '%s' ORDER BY `timestamp` DESC LIMIT 1",p_Name, p_Name);
mysql_pquery(dbHandle, query, "SearchNameChangeId", "d" , playerid);
return 1;
}
public SearchNameChangeId(playerid)
{
if(!cache_num_rows()) return SendClientMessage(playerid, COLOR_LESSRED, "Es wurde kein passender Account gefunden oder der Spieler hat sich noch nie umbenannt.");
new query[256];
mysql_format(dbHandle, query, 256, "SELECT * FROM `log_namechange` WHERE `userid` = '%d' ORDER BY `timestamp` DESC LIMIT 10", cache_get_field_content_int(0, "userid"));
mysql_pquery(dbHandle, query, "ShowPlayerNameChange", "d", playerid);
return 1;
}
public ShowPlayerNameChange(playerid)
{
if(!cache_num_rows()) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat sich noch nie umbenannt.");
new pOldName[MAX_PLAYER_NAME], str[256];
format(str, 256, "Die letzten 10 Namechanges:\n------------------------------");
cache_get_field_content(0, "newname", pOldName);
format(str, 256, "%s\n{D11B30}%s{A9C4E4}", str, pOldName);
for(new i = 0, rows = cache_num_rows(); i < rows; i++)
{
cache_get_field_content(i, "oldname", pOldName, dbHandle);
format(str, 256, "%s\n%s", str, pOldName);
}
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Auflistung alter Namen", str, "Schließen", "");
return 1;
}
CMD:showfinances(playerid,params[])
{
new pID;
if(sscanf(params,"u",pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /showfinances [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(!IsPlayerInRangeOfPlayer(playerid, pID, 30.0)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist nicht in deiner Nähe.");
new string[128];
format(string,sizeof(string),"* %s zeigt %s seine Finanzen.",GetPlayerNameEx(playerid),GetPlayerNameEx(pID));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
SendClientMessageX(pID, COLOR_WHITE, "Finanzen von %s: Bargeld: $%s ; Bank: $%s ; Gesamtvermögen: $%s",GetPlayerNameEx(playerid), FormatNumber(GetPlayerMoney(playerid)),FormatNumber(playerInfo[playerid][pBank]), FormatNumber(GetPlayerMoney(playerid) + playerInfo[playerid][pBank]));
return 1;
}
CMD:annehmen(playerid,params[])
{
new pItem[32], string[128];
if(sscanf(params,"s[32]",pItem)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /annehmen [ Gruppe | Fahrzeug | Verhältnis | Krieg | Anwalt | Dice | Mats | Business | Drogen]");
if(strfind(pItem, "dice", true) != -1)
{
new pID;
if(playerInfo[playerid][pDice] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits am spielen.");
if(playerInfo[playerid][pOfferDice] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast kein Angebot zu einem Würfelspiel bekommen.");
if(sscanf(params, "s[32]u",pItem,pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /annehmen dice [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerInfo[pID][pOfferDiceValue] == 0)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Es wurde dir kein Angebot von %s gestellt.",GetPlayerNameEx(pID));
return 1;
}
if(playerInfo[pID][pOfferDice] != playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Das Angebot zum Würfelspiel ist bereits abgelaufen.");
if(GetPlayerMoney(playerid) < playerInfo[pID][pOfferDiceValue])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast keine $%s auf der Hand.",FormatNumber(playerInfo[pID][pOfferDiceValue]));
return 1;
}
if(GetPlayerMoney(pID) < playerInfo[pID][pOfferDiceValue])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat keine $%s auf der Hand.",GetPlayerNameEx(pID),FormatNumber(playerInfo[pID][pOfferDiceValue]));
return 1;
}
if(IsPlayerInNoDmZone(playerid) && playerInfo[playerid][pShopItems][SHOPITEM_CUBE] && IsPlayerInNoDmZone(pID) && playerInfo[pID][pShopItems][SHOPITEM_CUBE] || IsPlayerInRangeOfPoint(playerid, 150.0, 2019.0611572266,1017.901550293,996.875) && GetPlayerInterior(playerid) == 10 && IsPlayerInRangeOfPoint(pID, 150.0, 2019.0611572266,1017.901550293,996.875) && GetPlayerInterior(pID) == 10)
{
if(playerInfo[pID][pDice] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist bereits am spielen.");
playerInfo[playerid][pDiceValue] = playerInfo[pID][pOfferDiceValue];
playerInfo[pID][pDiceValue] = playerInfo[pID][pOfferDiceValue];
playerInfo[playerid][pDice] = playerInfo[pID][pOfferDice];
playerInfo[pID][pDice] = playerInfo[pID][pOfferDice];
format(string, sizeof(string), "* %s startet mit %s ein Würfelspiel um $%s.",GetPlayerNameEx(playerid),GetPlayerNameEx(pID),FormatNumber(playerInfo[playerid][pDiceValue]));
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
ShowCube(playerid, pID);
return 1;
}
SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nur im Casino oder in einer No-DM Zone mit einem Würfel aus dem 24 / 7 spielen.");
return 1;
}
if(strfind(pItem, "anwalt", true) != -1)
{
new pID, _pName[MAX_PLAYER_NAME], price;
if(!playerInfo[playerid][pJailTime]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist nicht mehr im Gefängnis.");
if(sscanf(params, "s[32]s[24]",pItem, _pName)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /annehmen Anwalt [playerid / Name]");
if(!strcmp(_pName, "David Boies", true) && playerInfo[playerid][pBail])
{
price = playerInfo[playerid][pBail];
pID = INVALID_PLAYER_ID;
}
else
{
if(playerInfo[playerid][pOfferLawyerID] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast kein Angebot von einem Anwalt bekommen.");
sscanf(_pName, "u", pID);
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(playerInfo[pID][pOfferLawyerID] != playerid)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat sein Angebot bereits zurückgezogen.",GetPlayerNameEx(pID));
return 1;
}
price = playerInfo[playerid][pOfferLawyerMoney];
}
new success = GivePlayerMoneyEx(playerid, -price, "Anwalt");
switch(success)
{
case 0:
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du hast weder auf der Bank noch auf der Hand $%s.",FormatNumber(price));
return 1;
}
case 1: SendClientMessageX(playerid, COLOR_GREEN, "Du hast $%s für die Freilassung bezahlt.",FormatNumber(price));
case 2: SendClientMessageX(playerid, COLOR_GREEN, "Du hast $%s (Bankkonto) für die Freilassung bezahlt.",FormatNumber(price));
}
if(pID != INVALID_PLAYER_ID)
{
format(string,sizeof(string),"* Anwalt %s hat den Inhaftierten %s aus dem Gefängnis geholt.",GetPlayerNameEx(pID),GetPlayerNameEx(playerid));
GivePlayerMoney(pID, floatround(playerInfo[playerid][pOfferLawyerMoney]), "Anwalt");
playerInfo[pID][pLawyerTime] = (7 - GetPlayerSkillLevel(pID, SKILL_LAWYER)) * 5 * 60;
GivePlayerSkill(pID, SKILL_LAWYER);
playerInfo[pID][pOfferLawyerID] = INVALID_PLAYER_ID;
}
else
{
format(string,sizeof(string),"* Anwalt David Boies hat den Inhaftierten %s aus dem Gefängnis geholt.",GetPlayerNameEx(playerid));
}
SendPlayerRadiusMessage(playerid,30.0,COLOR_PURPLE, string);
playerInfo[playerid][pJailTime] = 1;
playerInfo[playerid][pOfferLawyerMoney] = 0;
playerInfo[playerid][pOfferLawyerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pBail] = 0;
return 1;
}
if(strfind(pItem, "krieg", true) != -1)
{
new pID;
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!HasGroupPlayerPermissionForThis(playerid, PERM_WAR)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Kriege entscheiden.");
if(sscanf(params,"s[32]u",pItem,pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /annehmen krieg [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(!playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist in keiner Gruppe.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gOfferWar] != playerInfo[pID][pGroupIndex]) return SendClientMessage(playerid, COLOR_LESSRED, "Diese Gruppe hat euch keine Anfrage zu einem Krieg geschickt.");
if(groupInfo[playerInfo[pID][pGroupIndex]][gWar])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s ist bereits in einen Krieg involviert.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
if(groupInfo[playerInfo[playerid][pGroupIndex]][gWar]) return SendClientMessage(playerid, COLOR_LESSRED, "Ihr seid bereits in einen Krieg involviert.");
if(groupInfo[playerInfo[playerid][pGroupIndex]][gBank] < groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ihr habt keine $%d in der Kasse.",groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice]);
return 1;
}
if(groupInfo[playerInfo[pID][pGroupIndex]][gBank] < groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice])
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s hat keine $%d in der Kasse.",groupInfo[playerInfo[pID][pGroupIndex]][gName],groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice]);
return 1;
}
new index = playerInfo[playerid][pGroupIndex], pindex = playerInfo[pID][pGroupIndex];
groupInfo[index][gWar] = playerInfo[pID][pGroup];
groupInfo[pindex][gWar] = playerInfo[playerid][pGroup];
groupInfo[index][gWarTyp] = WAR_NORMAL;
groupInfo[pindex][gWarTyp] = WAR_NORMAL;
groupInfo[index][gWarTime] = 6 * 60;
groupInfo[pindex][gWarTime] = 6 * 60;
groupInfo[index][gOfferWar] = 0;
groupInfo[pindex][gOfferWar] = 0;
groupInfo[index][gWarKills] = 0;
groupInfo[pindex][gWarKills] = 0;
groupInfo[index][gWarIndex] = pindex;
groupInfo[pindex][gWarIndex] = index;
groupInfo[index][gBank] -= groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice];
groupInfo[pindex][gBank] -= groupInfo[playerInfo[playerid][pGroupIndex]][gWarPrice];
CreateWarTextDraw(index);
CreateWarTextDraw(pindex);
format(string,sizeof(string),"%s akzeptiert den Krieg mit %s.",groupInfo[index][gName],groupInfo[pindex][gName]);
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_CLANCHAT, string);
SendGroupMessageToAll(playerInfo[pID][pGroup], COLOR_CLANCHAT, string);
return 1;
}
else if(!strcmp(pItem, "fraktion", true) || !strcmp(pItem, "faction", true))
{
if(!playerInfo[playerid][pFactionInvite]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keine ausstehende Fraktionseinladung.");
new fID = playerInfo[playerid][pFactionInvite], fTeam = factionInfo[fID][fiTeam];
if(fTeam != playerInfo[playerid][pTeam]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist im falschen Team, um diese Einladung annehmen zu können.");
if(playerInfo[playerid][pFaction][fTeam-1] != 0) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits in diesem Team in einer Fraktion.");
playerInfo[playerid][pFaction][fTeam-1] = fID;
playerInfo[playerid][pFactionRank][fTeam-1] = 1;
playerInfo[playerid][pFactionInvite] = 0;
format(string,sizeof(string),"** {FF0000}%s {3FD956}ist der Fraktion beigetreten. **",GetPlayerNameEx(playerid));
SendFactionMessageToAll(fID,COLOR_FACTIONCHAT, string);
return 1;
}
else if(!strcmp(pItem, "gruppe", true) || !strcmp(pItem, "group"))
{
if(!playerInfo[playerid][pGroupInvite]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast keine ausstehende Gruppeneinladung.");
new groupid = SearchGroupIndex(playerInfo[playerid][pGroupInvite]);
if(playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits ein Gruppenmitglied.");
if(IsPlayerCop(playerid)) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist im falschen Team, um diese Einladung anzunehmen.");
if(groupInfo[groupid][gMaxMember] <= groupInfo[groupid][gMember])
{
SendClientMessageX(playerid, COLOR_LESSRED, "Die Gruppe hat bereits ihr Gruppenlimit erreicht (%d Mitglieder).",groupInfo[groupid][gMaxMember]);
return 1;
}
if(groupInfo[groupid][gWarTyp] == WAR_BIZ) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst nicht während einem Biz-Fight der Gruppe beitreten.");
playerInfo[playerid][pLeader] = 0;
playerInfo[playerid][pGroupRank] = 1;
playerInfo[playerid][pGroup] = playerInfo[playerid][pGroupInvite];
playerInfo[playerid][pGroupIndex] = groupid;
playerInfo[playerid][pGroupInvite] = 0;
playerInfo[playerid][pGroupTimestamp] = gettime() + 60 * 60 * 4;
playerInfo[playerid][pGroupCharity] = 0;
playerInfo[playerid][pGroupCharityDiff] = 0;
playerInfo[playerid][pGroupReward] = 0;
groupInfo[groupid][gMember]++;
format(string,sizeof(string),"** {FF0000}%s {2FD6C3}ist der Gruppe beigetreten. **",GetPlayerNameEx(playerid));
SendGroupMessageToAll(playerInfo[playerid][pGroup],COLOR_CLANCHAT, string);
OnServerSavePlayerData(playerid);
if(playerInfo[playerid][pNewbieProtection])
{
SendClientMessage(playerid, COLOR_RED, "Durch den Beitritt einer Gruppe, verlierst du deinen Newbieschutz.");
playerInfo[playerid][pNewbieProtection] = false;
}
}
else if(strfind(pItem, "verhältnis", true) != -1)
{
new pID, index = playerInfo[playerid][pGroupIndex];
if(!playerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist in keiner Gruppe.");
if(!HasGroupPlayerPermissionForThis(playerid, PERM_ALLIANCE)) return SendClientMessage(playerid, COLOR_LESSRED, "Du kannst keine Verhältnisse entscheiden.");
if(sscanf(params,"s[32]u",pItem,pID)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /annehmen verhältnis [playerid / Name]");
if(!IsPlayerConnected(pID)) return SendOnlineErrorMessage(playerid);
if(!playerInfo[pID][pGroup]) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler ist in keiner Gruppe.");
if(!IsValidGroupIndex(playerInfo[pID][pGroupIndex])) return SendClientMessage(playerid, COLOR_LESSRED, "Die Gruppe des Spieler weißt einen Fehler auf.");
if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] == ALLIANCE_ALLIED)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ihr seid bereits mit %s verbündet.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] != ALLIANCE_REQUESTALLIED && GroupAlliance[index][playerInfo[pID][pGroupIndex]] != ALLIANCE_REQUESTNORMAL)
{
SendClientMessageX(playerid, COLOR_LESSRED, "%s haben keine offene Anfrage.",groupInfo[playerInfo[pID][pGroupIndex]][gName]);
return 1;
}
if(GroupAlliance[index][playerInfo[pID][pGroupIndex]] == ALLIANCE_REQUESTNORMAL)
{
GroupAlliance[index][playerInfo[pID][pGroupIndex]] = ALLIANCE_NORMAL;
GroupAlliance[playerInfo[pID][pGroupIndex]][index] = ALLIANCE_NORMAL;
format(string,sizeof(string),"** %s und %s haben einen Waffenstillstand akzeptiert.",groupInfo[playerInfo[pID][pGroupIndex]][gName],groupInfo[index][gName]);
}
else
{
GroupAlliance[index][playerInfo[pID][pGroupIndex]] = ALLIANCE_ALLIED;
GroupAlliance[playerInfo[pID][pGroupIndex]][index] = ALLIANCE_ALLIED;
format(string,sizeof(string),"** %s (sind / ist) nun mit %s verbündet.",groupInfo[playerInfo[pID][pGroupIndex]][gName],groupInfo[index][gName]);
}
UpdateAlliance(index, playerInfo[pID][pGroupIndex], GroupAlliance[index][playerInfo[pID][pGroupIndex]]);
SendGroupMessageToAll(playerInfo[pID][pGroup], COLOR_LIGHTBLUE, string);
SendGroupMessageToAll(playerInfo[playerid][pGroup], COLOR_LIGHTBLUE, string);
return 1;
}
else if(strfind(pItem, "fahrzeug", true) != -1)
{
new slotid = playerInfo[playerid][pOfferVehicle],pOption, pID = playerInfo[playerid][pOfferVehicleSellerID];
if(!playerInfo[playerid][pOfferVehicle]) return SendClientMessage(playerid, COLOR_LESSRED, "Dir wurde kein Fahrzeug angeboten.");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_LESSRED, "Der Verkäufer ist Offline.");
if(GetPlayerMoney(playerid) < playerInfo[playerid][pOfferVehiclePrice]) return SendClientMessage(playerid, COLOR_LESSRED, "Du hast nicht so viel Geld bei dir.");
if(sscanf(params,"s[32]d",pItem,pOption))
{
SendClientMessageX(playerid, COLOR_GREY, "Syntax: /annehmen Fahrzeug [ 1 = Für %s, 2 = Für Gruppe]",GetPlayerNameEx(playerid));
return 1;
}
if(1 < pOption > 2)
{
SendClientMessageX(playerid, COLOR_LESSRED, "Ungültige Eingabe. Syntax: /annehmen Fahrzeug [ 1 = Für %s, 2 = Für Gruppe]",GetPlayerNameEx(playerid));
return 1;
}
if(pOption == 1 && playerInfo[playerid][pVehicles] >= GetPlayerMaxVehicles(playerid))
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du darfst maximal %d Fahrzeuge besitzen.",GetPlayerMaxVehicles(playerid));
return 1;
}
if(pOption == 2 && !playerInfo[playerid][pLeader]) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist kein Leiter einer Gruppe.");
if(pOption == 2 && groupInfo[GetPlayerGroupIndex(playerid)][gVehicles] >= GetGroupUpgrade(playerInfo[playerid][pGroupIndex], GROUPUPGRADE_VEHICLE) && !IsVehicleTrailer(vehicleInfo[slotid][viVehicleID]))
{
SendClientMessageX(playerid, COLOR_LESSRED, "Deine Gruppe darf maximal %d Fahrzeuge besitzen.",GetGroupUpgrade(playerInfo[playerid][pGroupIndex], GROUPUPGRADE_VEHICLE));
return 1;
}
if(vehicleInfo[slotid][viOwnerTyp] == OWNERTYP_GROUP)
{
InsertGroupLog(playerInfo[pID][pSQLID],playerInfo[pID][pGroup], "/verkaufen Fahrzeug", GetVehicleName(vehicleInfo[slotid][viVehicleID]));
if(!IsVehicleTrailer(vehicleInfo[slotid][viVehicleID])) groupInfo[GetPlayerGroupIndex(pID)][gVehicles]--;
}
if(pOption == 1)
{
InsertVehicleLog(playerInfo[pID][pSQLID], playerInfo[playerid][pSQLID], playerInfo[playerid][pOfferVehiclePrice], vehicleInfo[slotid][viSQLID], vehicleInfo[slotid][viModelID]);
vehicleInfo[slotid][viOwnerID] = playerInfo[playerid][pSQLID];
vehicleInfo[slotid][viOwnerTyp] = OWNERTYP_PERSON;
format(vehicleInfo[slotid][viOwner],MAX_PLAYER_NAME,"%s",GetPlayerNameEx(playerid));
playerInfo[playerid][pVehicles]++;
playerInfo[pID][pVehicles]--;
if(playerInfo[pID][pVehicles] < 0) playerInfo[pID][pVehicles] = 0;
if(!GetPlayerAchievementStatus(playerid, ACHIEVE_FIRSTVEH)) GivePlayerAchievement(playerid, ACHIEVE_FIRSTVEH);
}
else if(pOption == 2)
{
format(vehicleInfo[slotid][viOwner],MAX_PLAYER_NAME,"%d",playerInfo[playerid][pGroup]);
vehicleInfo[slotid][viOwnerID] = playerInfo[playerid][pGroup];
vehicleInfo[slotid][viOwnerTyp] = OWNERTYP_GROUP;
if(!IsVehicleTrailer(vehicleInfo[slotid][viVehicleID])) groupInfo[GetPlayerGroupIndex(playerid)][gVehicles]++;
InsertGroupLog(playerInfo[playerid][pSQLID],playerInfo[playerid][pGroup], "/kaufen Fahrzeug", GetVehicleName(vehicleInfo[slotid][viVehicleID]));
}
playerInfo[playerid][pOfferVehicle] = 0;
playerInfo[playerid][pOfferVehicleSellerID] = INVALID_PLAYER_ID;
GivePlayerMoney(playerid, -playerInfo[playerid][pOfferVehiclePrice], "Fahrzeugverkauf (Spieler)");
GivePlayerMoney(pID, playerInfo[playerid][pOfferVehiclePrice], "Fahrzeugverkauf (Spieler)");
mysql_format(dbHandle,string,sizeof(string),"UPDATE `vehicles` SET `owner`=%d WHERE `id` =%d",vehicleInfo[slotid][viOwnerID],vehicleInfo[slotid][viSQLID]);
mysql_function_query(dbHandle,string,true, "", "");
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "%s gibt dir die Fahrzeugpapiere von / vom %s (Kosten: $%d).",GetPlayerNameEx(pID),GetVehicleName(vehicleInfo[slotid][viVehicleID]),playerInfo[playerid][pOfferVehiclePrice]);
SendClientMessageX(pID, COLOR_LIGHTBLUE, "Du gibst %s die Fahrzeugpapiere von / vom %s (Kosten: $%d).",GetPlayerNameEx(playerid),GetVehicleName(vehicleInfo[slotid][viVehicleID]),playerInfo[playerid][pOfferVehiclePrice]);
}
else if(strfind(pItem, "Haus", true) != -1)
{
new pID = playerInfo[playerid][pOfferHouseSellerID];
if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dir hat niemand ein Haus zum Kauf angeboten.");
if(playerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits im Besitz einer Immobilie.");
if(playerInfo[pID][pHouseKey] == INVALID_HOUSE_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat keine Immobile mehr.");
if(playerInfo[pID][pOfferHouseSellerID] != playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat ein neues Angebot für eine Immobilie bekommen / verschickt.");
if(!GivePlayerMoneyEx(playerid, -playerInfo[pID][pOfferHousePrice], "Hausverkauf (Spieler)"))
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du besitzt keine $%d für das Haus.",playerInfo[pID][pOfferHousePrice]);
return 1;
}
GivePlayerMoney(pID, playerInfo[pID][pOfferHousePrice], "Hausverkauf (Spieler)");
SendClientMessageX(pID, COLOR_LIGHTBLUE, "%s hat dein Haus für $%d gekauft.",GetPlayerNameEx(playerid),playerInfo[pID][pOfferHousePrice]);
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast das Haus von %s für $%d gekauft.",GetPlayerNameEx(pID),playerInfo[pID][pOfferHousePrice]);
if(!GetPlayerAchievementStatus(playerid, ACHIEVE_FIRSTHOUSE)) GivePlayerAchievement(playerid, ACHIEVE_FIRSTHOUSE);
playerInfo[playerid][pHouseKey] = playerInfo[pID][pHouseKey];
playerInfo[pID][pHouseKey] = INVALID_HOUSE_ID;
playerInfo[playerid][pHouseSlot] = playerInfo[pID][pHouseSlot];
playerInfo[pID][pHouseSlot] = INVALID_HOUSE_ID;
new houseid = GetHouseSlotID(playerInfo[playerid][pHouseKey]);
InsertHouseLog(playerInfo[pID][pSQLID], playerInfo[playerid][pSQLID], houseInfo[houseid][hSQLID], playerInfo[pID][pOfferHousePrice]);
houseInfo[houseid][hOwnerID] = playerInfo[playerid][pSQLID];
format(houseInfo[houseid][hOwner], MAX_PLAYER_NAME, GetPlayerNameEx(playerid));
new str[128], zonename[MAX_ZONE_NAME];
GetCoords2DZone(houseInfo[houseid][hPos][0], houseInfo[houseid][hPos][1], zonename, MAX_ZONE_NAME);
format(str, 128, "[ INFO ] %s hat ein Haus in %s von %s für $%s gekauft.", GetPlayerNameEx(playerid), zonename , GetPlayerNameEx(pID), FormatNumber(playerInfo[pID][pOfferHousePrice]));
SendClientTogMessageToAll(COLOR_PLAYERINFO, TOG_PLAYERINFO, str);
if(playerInfo[playerid][pLeader] == 2)
{
SendClientMessage(playerid, COLOR_YELLOW, "Deine Gruppe kann nun in dieser Immobilie spawnen.");
groupInfo[playerInfo[playerid][pGroupIndex]][gBaseID] = houseInfo[houseid][hSQLID];
}
if(playerInfo[pID][pGroup])
{
if(groupInfo[playerInfo[pID][pGroupIndex]][gBaseID] == houseInfo[houseid][hSQLID])
{
SendClientMessage(pID, COLOR_YELLOW, "Bitte kaufe dir schnellstmöglichst ein neues Haus, da deine Mitglieder nun keinen Spawnpunkt mehr haben.");
groupInfo[playerInfo[pID][pGroupIndex]][gBaseID] = 0;
}
}
UpdateHouse(houseid);
playerInfo[pID][pOfferHouseSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferHouseSellerID] = INVALID_PLAYER_ID;
playerInfo[pID][pOfferHousePrice] = 0;
playerInfo[playerid][pOfferHousePrice] = 0;
}
else if(strfind(pItem, "Business", true) != -1)
{
new pID = playerInfo[playerid][pOfferBizSellerID];
if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Dir hat niemand ein Business zum Kauf angeboten.");
if(playerInfo[playerid][pBizKey] != INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Du bist bereits im Besitz eines Businesses.");
if(playerInfo[pID][pBizKey] == INVALID_BUSINESS_ID) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat kein Business mehr.");
if(playerInfo[pID][pOfferBizSellerID] != playerid) return SendClientMessage(playerid, COLOR_LESSRED, "Der Spieler hat ein neues Angebot für ein Business bekommen / verschickt.");
if(!GivePlayerMoneyEx(playerid, -playerInfo[pID][pOfferBizPrice], "Businessverkauf (Spieler)"))
{
SendClientMessageX(playerid, COLOR_LESSRED, "Du besitzt keine $%s für das Business.",FormatNumber(playerInfo[pID][pOfferBizPrice]));
return 1;
}
GivePlayerMoney(pID, playerInfo[pID][pOfferBizPrice], "Businessverkauf (Spieler)");
SendClientMessageX(pID, COLOR_LIGHTBLUE, "%s hat dein Business für $%s gekauft.",GetPlayerNameEx(playerid),FormatNumber(playerInfo[pID][pOfferBizPrice]));
new bizid = GetBizSlotID(playerInfo[pID][pBizKey]);
if(entranceInfo[bizid][eiBank])
{
GivePlayerMoney(pID, entranceInfo[bizid][eiBank], "Businessbank");
SendClientMessageX(pID, COLOR_LIGHTBLUE,"Du hast $%s aus der Business-Bank erhalten.", FormatNumber(entranceInfo[bizid][eiBank]));
}
SendClientMessageX(playerid, COLOR_LIGHTBLUE, "Du hast das Business von %s für $%s gekauft.",GetPlayerNameEx(pID),FormatNumber(playerInfo[pID][pOfferBizPrice]));
playerInfo[playerid][pBizKey] = playerInfo[pID][pBizKey];
playerInfo[pID][pBizKey] = INVALID_BUSINESS_ID;
playerInfo[playerid][pBizSlot] = playerInfo[pID][pBizSlot];
playerInfo[pID][pBizSlot] = INVALID_BUSINESS_ID;
entranceInfo[bizid][eiOwnerID] = playerInfo[playerid][pSQLID];
format(entranceInfo[bizid][eiOwner], MAX_PLAYER_NAME, GetPlayerNameEx(playerid));
entranceInfo[bizid][eiBank] = 0;
UpdateBusinessLabel(bizid);
playerInfo[pID][pOfferBizSellerID] = INVALID_PLAYER_ID;
playerInfo[playerid][pOfferBizSellerID] = INVALID_PLAYER_ID;
playerInfo[pID][pOfferBizPrice] = 0;
playerInfo[playerid][pOfferBizPrice] = 0;
}
else if(strfind(pItem, "Mats", true) != -1)
{
if(!playerInfo[play
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment