Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- DynamicFraktion by TheO
- Was ihr dürft.
- Ihr dürft es Bearbeiten
- Ihr dürft es wo anders Veröffentlichen
- wenn mein Name als Inhaber drin vorkommt
- (c) by TheO 2012
- Copyright löscher sind kiddys die denken
- die können was :P
- */
- #include <a_samp>
- #include <dini>
- #include <ocmd>
- #pragma tabsize 0
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50
- #define rot 0xFF182BFF
- #define blau 0x0084FFFF
- #define grün 0x00FF43FFx
- #define gelb 0xFFFF00FF
- #define LohnInfo 9999
- #define Rang1 8888
- #define Rang2 7777
- #define Rang3 6666
- #define Rang4 5555
- #define Rang5 4444
- #define Rang6 3333
- #define RangLohn 2222
- #define Rang1e 888
- #define Rang2e 777
- #define Rang3e 666
- #define Rang4e 555
- #define Rang5e 444
- #define Rang6e 333
- #define RangE 222
- #define MAX_GANGS 75
- enum FrakInfo
- {
- FName[24],
- Float:SpawnX,
- Float:SpawnY,
- Float:SpawnZ,
- FWaffe,
- FSkin,
- FLohn,
- Pickup,
- Text3D:Text,
- Mon1,
- Mon2,
- Mon3,
- Mon4,
- Mon5,
- Mon6,
- Cops
- }
- new fInfo[MAX_GANGS][FrakInfo];
- enum PlayerInfo
- {
- FID,
- FLeader,
- Rang,
- LohnZeit,
- Wandets,
- Jail
- }
- new pInfo[MAX_PLAYERS][PlayerInfo];
- #define MAX_CARS 75
- enum CarInfo
- {
- CarID,
- FrakID,
- Color1,
- Color2,
- Float:cX,
- Float:cY,
- Float:cZ,
- Float:cA,
- NuSchild[24]
- }
- new cInfo[MAX_CARS][CarInfo];
- new PlayerText:frakname[MAX_PLAYERS];
- new Text:Line;
- new paytimer;
- new jailtime;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Dynamic Fraksystem are Loaded");
- print("--------------------------------------\n");
- for(new i = 0; i < MAX_GANGS; i++)
- {
- LoadFrak(i);
- }
- for(new i = 0; i < MAX_CARS;i++)
- {
- LoadCars(i);
- }
- Line = TextDrawCreate(33.000000, 319.000000, "DynamicFraktion");
- TextDrawBackgroundColor(Line, 255);
- TextDrawFont(Line, 0);
- TextDrawLetterSize(Line, 0.600000, 2.099999);
- TextDrawColor(Line, -1);
- TextDrawSetOutline(Line, 1);
- TextDrawSetProportional(Line, 1);
- paytimer = SetTimer("PayDay",1200000,true);
- return 0;
- }
- public OnFilterScriptExit()
- {
- for(new i = 0; i < MAX_GANGS; i++)
- {
- KillFrak(i);
- }
- for(new i = 0; i < MAX_CARS; i++)
- {
- DestroyVehicle(i);
- }
- for(new i = 0; i< MAX_PLAYERS; i++)
- {
- PlayerTextDrawHide(i,frakname[i]);
- TextDrawHideForPlayer(i,Line);
- }
- KillTimer(paytimer);
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- if(!IsPlayerNPC(playerid))
- {
- new datei[128];
- GetPlayerName(playerid,datei,sizeof(datei));
- format(datei,sizeof(datei),"/FrakSys/Accounts/%s.txt",datei);
- if(!fexist(datei))
- {
- for(new x= 0; x < MAX_PLAYERS;x++)
- {
- frakname[x] = CreatePlayerTextDraw(x,541.000000, 241.000000, "Test Rang 6");
- PlayerTextDrawBackgroundColor(x,frakname[x], 255);
- PlayerTextDrawFont(x,frakname[x], 1);
- PlayerTextDrawLetterSize(x,frakname[x], 0.629999, 1.700000);
- PlayerTextDrawColor(x,frakname[x], -13617921);
- PlayerTextDrawSetOutline(x,frakname[x], 0);
- PlayerTextDrawSetProportional(x,frakname[x], 1);
- PlayerTextDrawSetShadow(x,frakname[x], 2);
- PlayerTextDrawUseBox(x,frakname[x], 1);
- PlayerTextDrawBoxColor(x,frakname[x], 16843138);
- PlayerTextDrawTextSize(x,frakname[x], 656.000000, 40.000000);
- print("Geladen");
- pInfo[playerid][FID] = 0;
- pInfo[playerid][FLeader] = 0;
- pInfo[playerid][Rang] = 0;
- pInfo[playerid][Jail] = 0;
- pInfo[playerid][Wandets] = 0;
- dini_Create(datei);
- dini_IntSet(datei,"FraktionsID",pInfo[playerid][FID]);
- dini_IntSet(datei,"FraktionsLeader",pInfo[playerid][FLeader]);
- dini_IntSet(datei,"Rang",pInfo[playerid][Rang]);
- dini_IntSet(datei,"Jail",pInfo[playerid][Jail]);
- dini_IntSet(datei,"Wandets",pInfo[playerid][Wandets]);
- return 1;
- }
- }
- else
- {
- frakname[playerid] = CreatePlayerTextDraw(playerid,541.000000, 241.000000, "Test Rang 6");
- PlayerTextDrawBackgroundColor(playerid,frakname[playerid], 255);
- PlayerTextDrawFont(playerid,frakname[playerid], 1);
- PlayerTextDrawLetterSize(playerid,frakname[playerid], 0.629999, 1.700000);
- PlayerTextDrawColor(playerid,frakname[playerid], -13617921);
- PlayerTextDrawSetOutline(playerid,frakname[playerid], 0);
- PlayerTextDrawSetProportional(playerid,frakname[playerid], 1);
- PlayerTextDrawSetShadow(playerid,frakname[playerid], 2);
- PlayerTextDrawUseBox(playerid,frakname[playerid], 1);
- PlayerTextDrawBoxColor(playerid,frakname[playerid], 16843138);
- PlayerTextDrawTextSize(playerid,frakname[playerid], 656.000000, 40.000000);
- print("Geladen");
- pInfo[playerid][FID] = dini_Int(datei,"FraktionsID");
- pInfo[playerid][FLeader] = dini_Int(datei,"FraktionsLeader");
- pInfo[playerid][Rang] = dini_Int(datei,"Rang");
- pInfo[playerid][Jail] = dini_Int(datei,"Jail");
- pInfo[playerid][Wandets] = dini_Int(datei,"Wandets");
- SetPlayerWantedLevel(playerid,pInfo[playerid][Wandets]);
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(!IsPlayerNPC(playerid))
- {
- new datei[128];
- GetPlayerName(playerid,datei,sizeof(datei));
- format(datei,sizeof(datei),"/FrakSys/Accounts/%s.txt",datei);
- dini_IntSet(datei,"FraktionsID",pInfo[playerid][FID]);
- dini_IntSet(datei,"FraktionsLeader",pInfo[playerid][FLeader]);
- dini_IntSet(datei,"Rang",pInfo[playerid][Rang]);
- dini_IntSet(datei,"Jail",pInfo[playerid][Jail]);
- dini_IntSet(datei,"Wandets",pInfo[playerid][Wandets]);
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(pInfo[playerid][FID] >=1)
- {
- if(pInfo[playerid][Jail] == 0)
- {
- new fstring[128];
- format(fstring,sizeof(fstring),"%s Rang %d",fInfo[pInfo[playerid][FID]][FName],pInfo[playerid][Rang]);
- PlayerTextDrawSetString(playerid,frakname[playerid],fstring);
- PlayerTextDrawShow(playerid,frakname[playerid]);
- SetPlayerPos(playerid,fInfo[pInfo[playerid][FID]][SpawnX],fInfo[pInfo[playerid][FID]][SpawnY],fInfo[pInfo[playerid][FID]][SpawnZ]);
- SetPlayerSkin(playerid,fInfo[pInfo[playerid][FID]][FSkin]);
- GivePlayerWeapon(playerid, fInfo[pInfo[playerid][FID]][FWaffe], 500);
- TextDrawShowForPlayer(playerid,Line);
- SetPlayerWantedLevel(playerid,pInfo[playerid][Wandets]);
- return 1;
- }
- else if(pInfo[playerid][Jail] == 1)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*2,false,"i",playerid);
- return 1;
- }
- else if(pInfo[playerid][Jail] == 2)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*4,false,"i",playerid);
- return 1;
- }
- else if(pInfo[playerid][Jail] == 3)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*6,false,"i",playerid);
- return 1;
- }
- else if(pInfo[playerid][Jail] == 4)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*8,false,"i",playerid);
- return 1;
- }
- else if(pInfo[playerid][Jail] == 5)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*10,false,"i",playerid);
- return 1;
- }
- else if(pInfo[playerid][Jail] == 6)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*12,false,"i",playerid);
- return 1;
- }
- }
- else if(pInfo[playerid][FID] == 0)
- {
- if(pInfo[playerid][Jail] == 0)
- {
- //Positon etc
- return 1;
- }
- if(GetPlayerWantedLevel(playerid) == 1)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*2,false,"i",playerid);
- return 1;
- }
- else if(GetPlayerWantedLevel(playerid) == 2)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*4,false,"i",playerid);
- return 1;
- }
- else if(GetPlayerWantedLevel(playerid) == 3)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*6,false,"i",playerid);
- return 1;
- }
- else if(GetPlayerWantedLevel(playerid) == 4)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*8,false,"i",playerid);
- return 1;
- }
- else if(GetPlayerWantedLevel(playerid) == 5)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*10,false,"i",playerid);
- return 1;
- }
- else if(GetPlayerWantedLevel(playerid) == 6)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*12,false,"i",playerid);
- return 1;
- }
- }
- return 0;
- }
- forward PayDay();
- public PayDay()
- {
- for(new i = 0; i< MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- {
- pInfo[i][LohnZeit] += 1;
- if(pInfo[i][LohnZeit] == 2)
- {
- if(pInfo[i][Rang] == 1)
- {
- new string[128];
- format(string,sizeof(string),"Du erhälst %d $ als Fraktions Lohn.",fInfo[pInfo[i][FID]][Mon1]);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- SendClientMessage(i,rot,string);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- GivePlayerMoney(i,fInfo[pInfo[i][FID]][Mon1]);
- }
- if(pInfo[i][Rang] == 2)
- {
- new string[128];
- format(string,sizeof(string),"Du erhälst %d $ als Fraktions Lohn.",fInfo[pInfo[i][FID]][Mon2]);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- SendClientMessage(i,rot,string);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- GivePlayerMoney(i,fInfo[pInfo[i][FID]][Mon2]);
- }
- if(pInfo[i][Rang] == 3)
- {
- new string[128];
- format(string,sizeof(string),"Du erhälst %d $ als Fraktions Lohn.",fInfo[pInfo[i][FID]][Mon3]);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- SendClientMessage(i,rot,string);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- GivePlayerMoney(i,fInfo[pInfo[i][FID]][Mon3]);
- }
- if(pInfo[i][Rang] == 4)
- {
- new string[128];
- format(string,sizeof(string),"Du erhälst %d $ als Fraktions Lohn.",fInfo[pInfo[i][FID]][Mon4]);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- SendClientMessage(i,rot,string);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- GivePlayerMoney(i,fInfo[pInfo[i][FID]][Mon4]);
- }
- if(pInfo[i][Rang] == 5)
- {
- new string[128];
- format(string,sizeof(string),"Du erhälst %d $ als Fraktions Lohn.",fInfo[pInfo[i][FID]][Mon5]);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- SendClientMessage(i,rot,string);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- GivePlayerMoney(i,fInfo[pInfo[i][FID]][Mon5]);
- }
- if(pInfo[i][Rang] == 6)
- {
- new string[128];
- format(string,sizeof(string),"Du erhälst %d $ als Fraktions Lohn.",fInfo[pInfo[i][FID]][Mon6]);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- SendClientMessage(i,rot,string);
- SendClientMessage(i,gelb,"|______|Fraktion´s-Lohn|______|");
- GivePlayerMoney(i,fInfo[pInfo[i][FID]][Mon6]);
- return 1;
- }
- }
- }
- }
- return 1;
- }
- ocmd:jail(playerid,params[])
- {
- if(GetPlayerWantedLevel(playerid) == 1)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*2,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 2)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*4,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 3)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*6,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 4)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*8,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 5)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*10,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 6)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- SetTimerEx("JailTimer",60000*12,false,"i",playerid);
- }
- return 1;
- }
- ocmd:spawn(playerid,params[])
- {
- SpawnPlayer(playerid);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- PlayerTextDrawHide(playerid,frakname[playerid]);
- if(fInfo[pInfo[killerid][FID]][Cops] == 1)
- {
- if(GetPlayerWantedLevel(playerid) == 1)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 1;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- jailtime = SetTimerEx("JailTimer",60000*2,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 2)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 2;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- jailtime = SetTimerEx("JailTimer",60000*4,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 3)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 3;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- jailtime = SetTimerEx("JailTimer",60000*6,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 4)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 4;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- jailtime = SetTimerEx("JailTimer",60000*8,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 5)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 5;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- jailtime = SetTimerEx("JailTimer",60000*10,false,"i",playerid);
- }
- else if(GetPlayerWantedLevel(playerid) == 6)
- {
- SetPlayerCameraPos(playerid, 1491.7281, -1628.1536, 42.0862);
- SetPlayerCameraLookAt(playerid, 1492.5748, -1628.6895, 41.9112);
- pInfo[playerid][Jail] = 6;
- SendClientMessage(playerid,rot,"Wilkommen im Gefängnis.");
- SetPlayerPos(playerid,1577.7693,-1634.1260,13.5624);
- SetPlayerVirtualWorld(playerid,3);
- jailtime = SetTimerEx("JailTimer",60000*12,false,"i",playerid);
- }
- }
- return 0;
- }
- forward JailTimer(playerid);
- public JailTimer(playerid)
- {
- SendClientMessage(playerid,rot,"Du bist wieder Frei.");
- pInfo[playerid][Jail] = 0;
- SetPlayerVirtualWorld(playerid,0);
- SpawnPlayer(playerid);
- KillTimer(jailtime);
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == RangLohn)
- {
- if(response)
- {
- if(listitem == 0)
- {
- new string[256];
- format(string,sizeof(string),"{FFFFFF}Rang 1: {FF8200}%d $\n{FFFFFF}Rang 2: {FF8200}%d $\n{FFFFFF}Rang 3: {FF8200}%d $\n{FFFFFF}Rang 4: {FF8200}%d $\n{FFFFFF}Rang 5: {FF8200}%d $\n{FFFFFF}Rang 6: {FF8200}%d $",fInfo[pInfo[playerid][FID]][Mon1],fInfo[pInfo[playerid][FID]][Mon2],fInfo[pInfo[playerid][FID]][Mon3],fInfo[pInfo[playerid][FID]][Mon4],fInfo[pInfo[playerid][FID]][Mon5],fInfo[pInfo[playerid][FID]][Mon6]);
- ShowPlayerDialog(playerid,LohnInfo,DIALOG_STYLE_MSGBOX,"Löhne",string,"Oke","Close");
- }
- if(listitem == 1)
- {
- ShowPlayerDialog(playerid,RangE,DIALOG_STYLE_LIST,"Rang Einstellen","Rang 1\nRang 2\nRang 3\nRang 4\nRang 5\nRang 6","Oke","Abbrechen");
- }
- return 1;
- }
- }
- if(dialogid == RangE)
- {
- if(response)
- {
- if(listitem == 0)
- {
- ShowPlayerDialog(playerid,Rang1,DIALOG_STYLE_INPUT,"Rang1","Bitte gebe den Lohn ein den deine Member\nmit dem Rang jede Stunde\nBekommen sollen","Oke","Abbrechen");
- }
- if(listitem == 1)
- {
- ShowPlayerDialog(playerid,Rang2,DIALOG_STYLE_INPUT,"Rang2","Bitte gebe den Lohn ein den deine Member\nmit Rang jede Stunde\nBekommen sollen","Oke","Abbrechen");
- }
- if(listitem == 2)
- {
- ShowPlayerDialog(playerid,Rang3,DIALOG_STYLE_INPUT,"Rang3","Bitte gebe den Lohn ein den deine Member\nmit Rang jede Stunde\nBekommen sollen","Oke","Abbrechen");
- }
- if(listitem == 3)
- {
- ShowPlayerDialog(playerid,Rang4,DIALOG_STYLE_INPUT,"Rang4","Bitte gebe den Lohn ein den deine Member\nmit Rang jede Stunde\nBekommen sollen","Oke","Abbrechen");
- }
- if(listitem == 4)
- {
- ShowPlayerDialog(playerid,Rang5,DIALOG_STYLE_INPUT,"Rang5","Bitte gebe den Lohn ein den deine Member\nmit Rang jede Stunde\nBekommen sollen","Oke","Abbrechen");
- }
- if(listitem == 5)
- {
- ShowPlayerDialog(playerid,Rang6,DIALOG_STYLE_INPUT,"Rang6","Bitte gebe den Lohn ein den deine Member\nmit Rang jede Stunde\nBekommen sollen","Oke","Abbrechen");
- }
- }
- return 1;
- }
- if(dialogid == Rang1)
- {
- fInfo[pInfo[playerid][FID]][Mon1] = strval(inputtext);
- new string[128];
- format(string,sizeof(string),"Rang 1 Lohn auf %d $ gestellt",fInfo[pInfo[playerid][FID]][Mon1]);
- SendClientMessage(playerid,gelb,string);
- return 1;
- }
- if(dialogid == Rang2)
- {
- fInfo[pInfo[playerid][FID]][Mon2] = strval(inputtext);
- new string[128];
- format(string,sizeof(string),"Rang 2 Lohn auf %d $ gestellt",fInfo[pInfo[playerid][FID]][Mon2]);
- SendClientMessage(playerid,gelb,string);
- return 1;
- }
- if(dialogid == Rang3)
- {
- fInfo[pInfo[playerid][FID]][Mon3] = strval(inputtext);
- new string[128];
- format(string,sizeof(string),"Rang 3 Lohn auf %d $ gestellt",fInfo[pInfo[playerid][FID]][Mon3]);
- SendClientMessage(playerid,gelb,string);
- return 1;
- }
- if(dialogid == Rang4)
- {
- fInfo[pInfo[playerid][FID]][Mon4] = strval(inputtext);
- new string[128];
- format(string,sizeof(string),"Rang 4 Lohn auf %d $ gestellt",fInfo[pInfo[playerid][FID]][Mon4]);
- SendClientMessage(playerid,gelb,string);
- return 1;
- }
- if(dialogid == Rang5)
- {
- fInfo[pInfo[playerid][FID]][Mon5] = strval(inputtext);
- new string[128];
- format(string,sizeof(string),"Rang 5 Lohn auf %d $ gestellt",fInfo[pInfo[playerid][FID]][Mon5]);
- SendClientMessage(playerid,gelb,string);
- return 1;
- }
- if(dialogid == Rang6)
- {
- fInfo[pInfo[playerid][FID]][Mon6] = strval(inputtext);
- new string[128];
- format(string,sizeof(string),"Rang 6 Lohn auf %d $ gestellt",fInfo[pInfo[playerid][FID]][Mon6]);
- SendClientMessage(playerid,gelb,string);
- return 1;
- }
- return 0;
- }
- ocmd:lohn(playerid,params[])
- {
- if(pInfo[playerid][FLeader] == 1)
- {
- ShowPlayerDialog(playerid,RangLohn,DIALOG_STYLE_LIST,"Lohn Information","Derzeitige Löhne\nLohn einstellen","Oke","Abbrechen");
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- for(new i = 0; i < MAX_GANGS; i++)
- {
- new string[128];
- format(string,sizeof(string),"Dieser Spieler ist in der Fraktion: %s",fInfo[i][FName]);
- SendClientMessage(playerid,blau,string);
- return 1;
- }
- return 0;
- }
- ocmd:f(playerid,params[])
- {
- new name[128];
- GetPlayerName(playerid,name,sizeof(name));
- new text[128];
- new RangName[64];
- switch(pInfo[playerid][Rang])
- {
- case 1:{RangName="Neuling";}
- case 2:{RangName="Einsteiger";}
- case 3:{RangName="Mitglied";}
- case 4:{RangName="Vert.Person";}
- case 5:{RangName="Stv.Leitung";}
- case 6:{RangName="Leitung";}
- }
- if(sscanf(params,"s",text))return SendClientMessage(playerid,blau,"{FF3034}Error: {FFFFFF}/f [Text]");
- {
- for(new i =0; i < MAX_PLAYERS; i++)
- {
- if(pInfo[playerid][FID] == pInfo[i][FID])
- {
- format(text,sizeof(text),"[%s]%s: %s.**",RangName,name,text);
- SendClientMessage(i,gelb,text);
- }
- }
- }
- return 1;
- }
- ocmd:park(playerid,params[])
- {
- for(new i = 0; i< MAX_CARS; i++)
- {
- if(IsPlayerAdmin(playerid))
- {
- new veh = GetPlayerVehicleID(playerid);
- if(IsPlayerInVehicle(playerid,i))
- {
- new Float:fX,Float:fY,Float:fZ,Float:fA;
- GetVehiclePos(veh,fX,fY,fZ);
- GetVehicleZAngle(veh,fA);
- cInfo[veh][cX] = fX;
- cInfo[veh][cY] = fY;
- cInfo[veh][cZ] = fZ;
- cInfo[veh][cA] = fA;
- return 1;
- }
- }
- }
- return 1;
- }
- ocmd:ferstellen(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- for(new i = 0; i< MAX_GANGS; i++)
- {
- new Float:sx,Float:sy,Float:sz,nname[24],weap,skinnn,bul;
- if(sscanf(params,"sddd",nname,weap,skinnn,bul))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/ferstellen [Name][WaffenID][SkinID][Cop 1 = Ja & 0 = Nein]");
- {
- GetPlayerPos(playerid,sx,sy,sz);
- CreateFrak(nname,sx,sy,sz,weap,skinnn,100,100,100,100,100,100,bul);
- return 1;
- }
- }
- }
- return 1;
- }
- ocmd:floeschen(playerid,params[])
- {
- for(new i = 0; i < MAX_GANGS; i++)
- {
- if(IsPlayerAdmin(playerid))
- {
- if(IsPlayerInRangeOfPoint(playerid,2.0,fInfo[i][SpawnX],fInfo[i][SpawnY],fInfo[i][SpawnZ]))
- {
- new datei[128];
- format(datei,sizeof(datei),"/FrakSys/Fraks/%i.txt",i);
- if(fexist(datei))
- {
- dini_Remove(datei);
- KillFrak(i);
- printf("Fraktion: %d wurde Gelöscht.",i);
- return 1;
- }
- }
- }
- }
- return 1;
- }
- ocmd:invite(playerid,params[])
- {
- if(pInfo[playerid][FLeader] == 1)
- {
- new PID;
- if(sscanf(params,"u",PID))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/invite [playerid]");
- {
- if(pInfo[PID][FID] == 0)
- {
- SendClientMessage(PID,-1,"Du wurdest invitet!");
- pInfo[PID][FID] = pInfo[playerid][FID];
- pInfo[PID][Rang] = 1;
- SpawnPlayer(PID);
- }
- else
- {
- SendClientMessage(playerid,rot,"**Dieser Spieler ist in einer Fraktion.");
- }
- }
- }
- else
- {
- }
- return 1;
- }
- ocmd:uninvite(playerid,params[])
- {
- if(pInfo[playerid][FLeader] == 1)
- {
- new PID;
- if(sscanf(params,"u",PID))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/uninvite [playerid]");
- {
- new name[128];
- GetPlayerName(playerid,name,sizeof(name));
- new string[64];
- format(string,sizeof(string),"**Du hast %s aus der Fraktion geworfen.",name);
- SendClientMessage(playerid,blau,string);
- SendClientMessage(PID,rot,"**Der Leader hat dich aus der Fraktion geworfen.");
- if(pInfo[playerid][FID] == pInfo[PID][FID])
- {
- pInfo[PID][FID] = 0;
- pInfo[PID][Rang] = 0;
- SpawnPlayer(PID);
- PlayerTextDrawHide(PID,frakname[PID]);
- }
- else
- {
- SendClientMessage(playerid,rot,"**Dieser Spieler ist nicht in deiner Fraktion.");
- }
- }
- }
- return 1;
- }
- ocmd:rang(playerid,params[])
- {
- if(pInfo[playerid][FLeader] == 1)
- {
- new plid,rank;
- if(sscanf(params,"ud",plid,rank))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/frank [playerid][Rang]");
- {
- if(pInfo[playerid][FID] == pInfo[plid][FID])
- {
- pInfo[plid][Rang] = rank;
- PlayerTextDrawHide(playerid,frakname[plid]);
- new fstring[128];
- format(fstring,sizeof(fstring),"%s Rang %d",fInfo[pInfo[plid][FID]][FName],pInfo[plid][Rang]);
- PlayerTextDrawSetString(plid,frakname[plid],fstring);
- PlayerTextDrawShow(plid,frakname[plid]);
- }
- else
- {
- SendClientMessage(playerid,rot,"**Dieser Spieler ist nicht in deiner Fraktion.");
- }
- }
- }
- return 1;
- }
- ocmd:linvite(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- for(new i = 0; i < MAX_GANGS; i++)
- {
- new PID,FIDi;
- if(sscanf(params,"ud",PID,FIDi))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/linvite [playerid][Fraktionsid]");
- {
- new name[128];
- GetPlayerName(playerid,name,sizeof(name));
- new string[128];
- format(string,sizeof(string),"**Du wurdest von %s zum Leader der: %s´s gemacht.",name,fInfo[FIDi][FName]);
- SendClientMessage(PID,blau,string);
- format(name,sizeof(name),"/FrakSys/Accounts/%s.txt",name);
- pInfo[PID][FID] = FIDi;
- pInfo[PID][FLeader] = 1;
- pInfo[PID][Rang] = 6;
- dini_IntSet(name,"FraktionsID",pInfo[PID][FID]);
- dini_IntSet(name,"FraktionsLeader",pInfo[PID][FLeader]);
- dini_IntSet(name,"Rang",pInfo[PID][Rang]);
- PlayerTextDrawHide(playerid,frakname[PID]);
- SpawnPlayer(PID);
- return 1;
- }
- }
- }
- return 1;
- }
- ocmd:luninvite(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new PID;
- if(sscanf(params,"u",PID))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/luninvite [playerid]");
- {
- SendClientMessage(PID,-1,"Du wurdest uninvitet!");
- pInfo[PID][FLeader] = 0;
- pInfo[PID][FID] = 0;
- SpawnPlayer(PID);
- PlayerTextDrawHide(PID,frakname[PID]);
- }
- }
- return 1;
- }
- ocmd:fauto(playerid,params[])
- {
- new Float:fx,Float:fy,Float:fz,carid,frid,co1,co2,schild[24];
- if(IsPlayerAdmin(playerid))
- {
- GetPlayerPos(playerid,fx,fy,fz);
- if(sscanf(params,"dddds",carid,frid,co1,co2,schild))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/fauto [CarID][FraktionsID][Farbe1][Farbe2][Nummernschild]");
- {
- SetPlayerPos(playerid,fx,fy+2,fz);
- CreateCar(carid,frid,co1,co2,fx,fy,fz,0.0,schild);
- }
- }
- return 1;
- }
- ocmd:faloeschen(playerid,params[])
- {
- for(new i = 0; i < MAX_CARS;i++)
- {
- if(IsPlayerAdmin(playerid))
- {
- if(IsPlayerInVehicle(playerid,i))
- {
- new datei[128];
- format(datei,sizeof(datei),"/FrakSys/Cars/%i.txt",i);
- dini_Remove(datei);
- DestroyVehicle(i);
- return 1;
- }
- }
- }
- return 1;
- }
- ocmd:fhelp(playerid,params[])
- {
- SendClientMessage(playerid,gelb,"=========|fDynamic Gang Help|=========");
- SendClientMessage(playerid,-1,"Admin: /ferstellen /floeschen /fauto /faloeschen /linvite /luninvite");
- SendClientMessage(playerid,-1,"Leader: /invite /uninvite /rang");
- SendClientMessage(playerid,-1,"Member: /f ");
- SendClientMessage(playerid,-1,"Cop: /wa");
- SendClientMessage(playerid,gelb,"=========|fDynamic Gang Help|=========");
- return 1;
- }
- ocmd:wa(playerid,params[])
- {
- if(fInfo[pInfo[playerid][FID]][Cops] == 1)
- {
- new PID,Grund[24],Anzahl;
- if(sscanf(params,"uds",PID,Anzahl,Grund))return SendClientMessage(playerid,-1,"{FF3034}Error: {FFFFFF}/wa [Id/Name][Anzahl][Grund]");
- {
- if(Anzahl >2)
- {
- SendClientMessage(playerid,rot,"Du kannst nur 2 Wanteds geben.");
- }
- else
- {
- if(GetPlayerWantedLevel(playerid) <6)
- {
- new name[128];
- GetPlayerName(playerid,name,sizeof(name));
- new string[128];
- new string1[128];
- format(string,sizeof(string),"Du hast von %s %d Wandets bekommen Grund|%s",name,Anzahl,Grund);
- SendClientMessage(PID,rot,string);
- new name2[128];
- GetPlayerName(playerid,name2,sizeof(name2));
- format(string1,sizeof(string1),"Du hast %s %d Wandets gegeben Grund|%s",name2,Anzahl,Grund);
- SendClientMessage(playerid,rot,string1);
- pInfo[PID][Wandets] = Anzahl;
- SetPlayerWantedLevel(PID,GetPlayerWantedLevel(PID) +Anzahl);
- }
- else
- {
- SendClientMessage(playerid,rot,"Der Spieler hat 6 Wanteds.");
- }
- }
- }
- }
- return 1;
- }
- stock CreateCar(cid,fid,c1,c2,Float:fvx,Float:fvy,Float:fvz,Float:fva,Nschild[24])
- {
- new datei[128];
- for(new i = 0; i < MAX_CARS; i++)
- {
- format(datei,sizeof(datei),"/FrakSys/Cars/%i.txt",i);
- {
- if(!fexist(datei))
- {
- dini_Create(datei);
- dini_IntSet(datei,"CarID",cid);
- dini_IntSet(datei,"FrakID",fid);
- dini_IntSet(datei,"Color1",c1);
- dini_IntSet(datei,"Color2",c2);
- dini_FloatSet(datei,"PosX",fvx);
- dini_FloatSet(datei,"PosY",fvy);
- dini_FloatSet(datei,"PosZ",fvz);
- dini_FloatSet(datei,"PosA",fva);
- dini_Set(datei,"Nummernschild",Nschild);
- return LoadCars(i);
- }
- }
- }
- return 1;
- }
- stock LoadCars(vehid)
- {
- new datei[128];
- format(datei,sizeof(datei),"/FrakSys/Cars/%i.txt",vehid);
- {
- cInfo[vehid][CarID] = dini_Int(datei,"CarID");
- cInfo[vehid][FrakID] = dini_Int(datei,"FrakID");
- cInfo[vehid][Color1] = dini_Int(datei,"Color1");
- cInfo[vehid][Color2] = dini_Int(datei,"Color2");
- cInfo[vehid][cX] = dini_Float(datei,"PosX");
- cInfo[vehid][cY] = dini_Float(datei,"PosY");
- cInfo[vehid][cZ] = dini_Float(datei,"PosZ");
- cInfo[vehid][cA] = dini_Float(datei,"PosA");
- format(cInfo[vehid][NuSchild],24,"{000000}%s",dini_Get(datei,"Nummernschild"));
- cInfo[vehid][FrakID] = CreateVehicle(cInfo[vehid][CarID],cInfo[vehid][cX],cInfo[vehid][cY],cInfo[vehid][cZ],cInfo[vehid][cA],cInfo[vehid][Color1],cInfo[vehid][Color2],-1);
- SetVehicleNumberPlate(vehid,cInfo[vehid][NuSchild]);
- }
- return 1;
- }
- stock CreateFrak(Name[24],Float:x,Float:y,Float:z,Waffe,Skin,Mone1,Mone2,Mone3,Mone4,Mone5,Mone6,frcop)
- {
- new datei[128];
- for(new i = 0; i < MAX_GANGS; i++)
- {
- format(datei,sizeof(datei),"/FrakSys/Fraks/%i.txt",i);
- {
- if(!fexist(datei))
- {
- dini_Create(datei);
- dini_Set(datei,"Name",Name);
- dini_FloatSet(datei,"SpawnX",x);
- dini_FloatSet(datei,"SpawnY",y);
- dini_FloatSet(datei,"SpawnZ",z);
- dini_IntSet(datei,"Waffe",Waffe);
- dini_IntSet(datei,"Skin",Skin);
- dini_IntSet(datei,"Rang1",Mone1);
- dini_IntSet(datei,"Rang2",Mone2);
- dini_IntSet(datei,"Rang3",Mone3);
- dini_IntSet(datei,"Rang4",Mone4);
- dini_IntSet(datei,"Rang5",Mone5);
- dini_IntSet(datei,"Rang6",Mone6);
- dini_IntSet(datei,"Cop",frcop);
- return LoadFrak(i);
- }
- }
- }
- return 1;
- }
- stock LoadFrak(id)
- {
- new datei[128];
- format(datei,sizeof(datei),"/FrakSys/Fraks/%i.txt",id);
- {
- format(fInfo[id][FName],24,"%s",dini_Get(datei,"Name"));
- fInfo[id][SpawnX] = dini_Float(datei,"SpawnX");
- fInfo[id][SpawnY] = dini_Float(datei,"SpawnY");
- fInfo[id][SpawnZ] = dini_Float(datei,"SpawnZ");
- fInfo[id][FWaffe] = dini_Int(datei,"Waffe");
- fInfo[id][FSkin] = dini_Int(datei,"Skin");
- fInfo[id][Mon1] = dini_Int(datei,"Rang1");
- fInfo[id][Mon2] = dini_Int(datei,"Rang2");
- fInfo[id][Mon3] = dini_Int(datei,"Rang3");
- fInfo[id][Mon4] = dini_Int(datei,"Rang4");
- fInfo[id][Mon5] = dini_Int(datei,"Rang5");
- fInfo[id][Mon6] = dini_Int(datei,"Rang6");
- fInfo[id][Cops] = dini_Int(datei,"Cop");
- fInfo[id][Pickup] = CreatePickup(1239,1,fInfo[id][SpawnX],fInfo[id][SpawnY],fInfo[id][SpawnZ],0);
- new string[128];
- format(string,sizeof(string),"{FF0023}Fraktions Spawn\n\n{FFFFFF}Fraktion: {FF0023}%s\n{FFFFFF}ID: {FF0023}%d",fInfo[id][FName],id);
- fInfo[id][Text] = Create3DTextLabel(string,-1,fInfo[id][SpawnX],fInfo[id][SpawnY],fInfo[id][SpawnZ],20,0,0);
- }
- return 1;
- }
- stock KillFrak(ids)
- {
- DestroyPickup(fInfo[ids][Pickup]);
- Delete3DTextLabel(fInfo[ids][Text]);
- return 1;
- }
- stock sscanf(sstring[], format[], {Float,_}:...)
- {
- #if defined isnull
- if (isnull(sstring))
- #else
- if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
- #endif
- {
- return format[0];
- }
- #pragma tabsize 4
- new
- formatPos = 0,
- sstringPos = 0,
- paramPos = 2,
- paramCount = numargs(),
- delim = ' ';
- while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
- {
- sstringPos++;
- }
- while (paramPos < paramCount && sstring[sstringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = sstring[sstringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = sstring[++sstringPos];
- }
- do
- {
- sstringPos++;
- if ('0' <= ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return -1;
- }
- }
- while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- num = 0,
- ch = sstring[sstringPos];
- do
- {
- sstringPos++;
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- default:
- {
- return -1;
- }
- }
- }
- while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, sstring[sstringPos++]);
- }
- case 'f':
- {
- new changestr[16], changepos = 0, strpos = sstringPos;
- while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
- {
- changestr[changepos++] = sstring[strpos++];
- }
- changestr[changepos] = '\0';
- setarg(paramPos,0,_:floatstr(changestr));
- }
- case 'p':
- {
- delim = format[formatPos++];
- continue;
- }
- case '\'':
- {
- new
- end = formatPos - 1,
- ch;
- while ((ch = format[++end]) && ch != '\'') {}
- if (!ch)
- {
- return -1;
- }
- format[end] = '\0';
- if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
- {
- if (format[end + 1])
- {
- return -1;
- }
- return 0;
- }
- format[end] = '\'';
- sstringPos = ch + (end - formatPos);
- formatPos = end + 1;
- }
- case 'u':
- {
- new
- end = sstringPos - 1,
- id = 0,
- bool:num = true,
- ch;
- while ((ch = sstring[++end]) && ch != delim)
- {
- if (num)
- {
- if ('0' <= ch <= '9')
- {
- id = (id * 10) + (ch - '0');
- }
- else
- {
- num = false;
- }
- }
- }
- if (num && IsPlayerConnected(id))
- {
- setarg(paramPos, 0, id);
- }
- else
- {
- #if !defined foreach
- #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
- #define __SSCANF_FOREACH__
- #endif
- sstring[end] = '\0';
- num = false;
- new
- name[MAX_PLAYER_NAME];
- id = end - sstringPos;
- foreach (Player, playerid)
- {
- GetPlayerName(playerid, name, sizeof (name));
- if (!strcmp(name, sstring[sstringPos], true, id))
- {
- setarg(paramPos, 0, playerid);
- num = true;
- break;
- }
- }
- if (!num)
- {
- setarg(paramPos, 0, INVALID_PLAYER_ID);
- }
- sstring[end] = ch;
- #if defined __SSCANF_FOREACH__
- #undef foreach
- #undef __SSCANF_FOREACH__
- #endif
- }
- sstringPos = end;
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = sstring[sstringPos++]) && ch != delim)
- {
- setarg(paramPos, i++, ch);
- }
- if (!i)
- {
- return -1;
- }
- }
- else
- {
- while ((ch = sstring[sstringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- sstringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
- {
- sstringPos++;
- }
- while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
- {
- sstringPos++;
- }
- paramPos++;
- }
- do
- {
- if ((delim = format[formatPos++]) > ' ')
- {
- if (delim == '\'')
- {
- while ((delim = format[formatPos++]) && delim != '\'') {}
- }
- else if (delim != 'z')
- {
- return delim;
- }
- }
- }
- while (delim > ' ');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment