About many using of "if" and question with races.
#1

Hello. I wanted to ask, i am using many "if" in my functions. I know it's silly question but i just want to stand correct Can it be crashing or something bugging?

Eg.:

Код:
public OnPlayerDisconnect(playerid,reason){
new stringB[256];
new Reason[256];
new moneys = GetPlayerMoney(playerid);
new vehid = GetPlayerVehicleID(playerid);
new file[128];
if(PlayerInfo[playerid][LoggedIn] == 0){
}else{
dUserSetINT(PlayerName2(playerid)).("Moneys",moneys);
KillTimer(OnlineTimer[playerid]);
}
format(file, sizeof(file), "F_AntiCheat/id_%i.ini", playerid);
dini_IntSet(file, "Money", 0);
PlayerInfo[playerid][Spam] = 0;
Spawned[playerid] = 0;
blockbug[playerid] = false;
bugwarns[playerid] = 0;
PingWarn[playerid]=0;
PlayerProps[playerid] = 0;
EarningsForPlayer[playerid] = 0;
ExperienceForPlayer[playerid] = 0;
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][LoggedIn] = 0;
DOO_OnPlayerDisconnect(playerid);
dUserSetINT(PlayerName2(playerid)).("SpawnNone",0);
dUserSetINT(PlayerName2(playerid)).("SpawnSF",0);
dUserSetINT(PlayerName2(playerid)).("SpawnLV",0);
dUserSetINT(PlayerName2(playerid)).("SpawnHouse",0);
dUserSetINT(PlayerName2(playerid)).("SpawnGang",0);
if(InHouse[playerid]==1){
InHouse[playerid]=0;
}
if(dUserINT(PlayerName2(playerid)).("InDm") == 1){
dUserSetINT(PlayerName2(playerid)).("InDm",0);
dUserSetINT(PlayerName2(playerid)).("DM",0);
}
dUserSetINT(PlayerName2(playerid)).("InShamal",0);
if(dUserINT(PlayerName2(playerid)).("InDrag") == 1){
SetVehiclePos(vehid,dUserFLOAT(PlayerName2(playerid)).("PosX"),dUserFLOAT(PlayerName2(playerid)).("PosY"),dUserFLOAT(PlayerName2(playerid)).("PosZ"));
SetVehicleZAngle(vehid,dUserFLOAT(PlayerName2(playerid)).("PosR"));
SetVehicleVirtualWorld(vehid,0);
SetPlayerVirtualWorld(playerid,0);
dUserSetINT(PlayerName2(playerid)).("InDrag",0);
dUserSetINT(PlayerName2(playerid)).("Drager",0);
DisablePlayerRaceCheckpoint(playerid);
EndDrag();
DragCheckpoint[playerid] = 0;
}
if(dUserINT(PlayerName2(playerid)).("InRace") == 1){
SetVehiclePos(vehid,dUserFLOAT(PlayerName2(playerid)).("PosX"),dUserFLOAT(PlayerName2(playerid)).("PosY"),dUserFLOAT(PlayerName2(playerid)).("PosZ"));
SetVehicleZAngle(vehid,dUserFLOAT(PlayerName2(playerid)).("PosR"));
SetVehicleVirtualWorld(vehid,0);
SetPlayerVirtualWorld(playerid,0);
dUserSetINT(PlayerName2(playerid)).("InRace",0);
dUserSetINT(PlayerName2(playerid)).("InvitedToRace",0);
dUserSetINT(PlayerName2(playerid)).("RaceCreator",0);
dUserSetINT(PlayerName2(playerid)).("Racer",0);
RaceCheckpoint[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
KillTimer(CheckpointTimer[playerid]);
Racers--;
}
if(dUserINT(PlayerName2(playerid)).("Muted") == 1){
KillTimer(MuteTimer[playerid]);
}
switch(reason) {
case 0: Reason = "Error"; case 1: Reason = "-"; case 2: Reason = "Kick/Ban";
}
format(stringB,sizeof(stringB),"*[INFO]: '%s' (id %d) paliko serveri. (Priezastis: %s ) *",PlayerName(playerid), playerid, Reason);
SendClientMessageToAll(COLOR_RED1,stringB);
return 1;
}
or

Код:
public OnPlayerSpawn(playerid){
	SetPlayerInterior(playerid,0);
	PlayerPlaySound(playerid, 1098, 0.0, 0.0, 0.0);
	TextDrawShowForPlayer(playerid,txtClassSelHelper);
	TextDrawShowForPlayer(playerid,txtTimeDisp);
	new hour, minute;
	gettime(hour, minute);
	SetPlayerTime(playerid,hour,minute);
	if(dUserINT(PlayerName2(playerid)).("SpawnNone") == 1)
	{
		SetPlayerPos(playerid,-87.3161,1378.4067,10.2734);
		SetPlayerInterior(playerid, 0);
		SetPlayerVirtualWorld(playerid, 0);
		SetPlayerWorldBounds(playerid,9999.9,-9999.9,9999.9,-9999.9);
		new listitems[] = "*\tSan Fierro\n*\tLas Venturas\n*\tNamas\n*\tGaujos bazл";
 		ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Pasirinkite spawn vietа:",listitems,"Pasirinkti","Atрaukti");
	}
	else if(dUserINT(PlayerName2(playerid)).("SpawnNone") == 2)
	{
		if(dUserINT(PlayerName2(playerid)).("SpawnHouse") == 1)
		{
			new hosid = dUserINT(PlayerName2(playerid)).("HouseID");
			SetPlayerInterior(playerid,dini_Int(housefile(hosid), "Interior"));
			SetPlayerVirtualWorld(playerid,dini_Int(housefile(hosid), "World"));
			SetPlayerPos(playerid,dini_Float(housefile(hosid), "IntX"),dini_Float(housefile(hosid), "IntY"),dini_Float(housefile(hosid), "IntZ"));
			TogglePlayerControllable(playerid,true);
			InHouse[playerid]=1;
			dUserSetFLOAT(PlayerName2(playerid)).("HouseX",dini_Float(housefile(hosid), "HosX"));
			dUserSetFLOAT(PlayerName2(playerid)).("HouseY",dini_Float(housefile(hosid), "HosY"));
			dUserSetFLOAT(PlayerName2(playerid)).("HouseZ",dini_Float(housefile(hosid), "HosZ"));
		}
		else if(dUserINT(PlayerName2(playerid)).("SpawnGang") == 1)
		{
			SetPlayerPos(playerid,dUserFLOAT(PlayerName2(playerid)).("GangSpawnX"),dUserFLOAT(PlayerName2(playerid)).("GangSpawnY"),dUserFLOAT(PlayerName2(playerid)).("GangSpawnZ"));
			SetPlayerInterior(playerid, 0);
			SetPlayerVirtualWorld(playerid, 0);
			SetPlayerWorldBounds(playerid,9999.9,-9999.9,9999.9,-9999.9);
			TogglePlayerControllable(playerid,true);
		}
	}
	else if(dUserINT(PlayerName2(playerid)).("SpawnSF") == 1)
	{
		PlayerSpawnSF(playerid);
		SetPlayerInterior(playerid, 0);
		SetPlayerVirtualWorld(playerid, 0);
		SetPlayerWorldBounds(playerid,9999.9,-9999.9,9999.9,-9999.9);
	}
	else if(dUserINT(PlayerName2(playerid)).("SpawnLV") == 1)
	{
		ResetPlayerWeapons(playerid);
		SetPlayerInterior(playerid, 0);
		SetPlayerVirtualWorld(playerid, 0);
		PlayerSpawnLV(playerid);
		SetPlayerWorldBounds(playerid,9999.9,-9999.9,9999.9,-9999.9);
	}
return 1;
}
And i want to ask how i can get less code for creating races. There is pastebin link: http://pastebin.com/f7d8c6612 It's not very full script, because i cut it from my gamemode. But it's main functions. So maybe it's better way to create races. I am waiting for offers. Thanks for helping!

Reply
#2

No answers...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)