About many using of "if" and question with races. -
BuLLeT[LTU] - 09.10.2009
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
![Smiley](images/smilies/smile.png)
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!
Re: About many using of "if" and question with races. -
BuLLeT[LTU] - 10.10.2009
No answers...