 
			
									
		Bustour
- reaL.
- Geschlossen
- Erledigt
- 
			
- 
			Beitrag von justRevitox ()Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
- 
			if(nextCP >= sizeof(Bus_Stationen[])) 
 Oder
 if(currentCP == sizeof(Bus_Stationen[])-1)Das wäre dann jeweils zum herausfinden, ob man in den letzten Checkpoint gefahren ist. 
- 
			Beim ersten Checkpoint wird die Runde beendet??? 
 public Bustimer(playerid)
 {
 new playercp = Busfahrer[playerid][bus_Checkpoint];
 new route = Busfahrer[playerid][bus_Route];
 if(IsPlayerInRangeOfPoint(playerid,2.5,Bus_Stationen[route][playercp][bus_x],Bus_Stationen[route][playercp][bus_y],Bus_Stationen[route][playercp][bus_z]))
 {
 if(Busfahrer[playerid][bust] > 0)
 {
 KillTimer(buswt[playerid]);
 buswt[playerid] = SetTimerEx("Bustimer",1000,false,"i",playerid);
 new string[20];
 PlayerTextDrawHide(playerid,Textdraw0);
 format(string,sizeof(string),"Haltestelle %d/10",Busfahrer[playerid][bust]);
 PlayerTextDrawSetString(playerid,Textdraw0, string);
 PlayerTextDrawShow(playerid,Textdraw0);
 Busfahrer[playerid][bust] --;
 return 1;
 }
 else
 {
 if(playercp == sizeof(Bus_Stationen[])-1)
 {
 DisablePlayerCheckpoint(playerid);
 KillTimer(buswt[playerid]);
 PlayerTextDrawHide(playerid,Textdraw0);
 new veh = GetPlayerVehicleID(playerid);
 SetVehicleToRespawn(veh);
 if(route == 0)
 {
 new string[128],skill = randomEx(1, 2);
 format(string,sizeof(string),"Du hast deine Route beendet, 1750€ und %d Bus-EXP erzhalten!",skill);
 SendClientMessage(playerid,0x33CCFFAA,string);
 GivePlayerMoney(playerid, 1750);
 Busfahrer[playerid][bus_Aktiv]=false;
 sInfo[playerid][busskill] += skill;
 Checkbuslevel(playerid);
 return 1;
 }
 else if(route == 1)
 {
 new string[128],skill = randomEx(1, 3);
 format(string,sizeof(string),"Du hast deine Route beendet, 2750€ und %d Bus-EXP erhalten!",skill);
 SendClientMessage(playerid,0x33CCFFAA,string);
 GivePlayerMoney(playerid, 2750);
 Busfahrer[playerid][bus_Aktiv]=false;
 sInfo[playerid][busskill] += skill;
 Checkbuslevel(playerid);
 return 1;
 }
 }
 else
 {
 DisablePlayerCheckpoint(playerid);
 KillTimer(buswt[playerid]);
 Busfahrer[playerid][bus_Checkpoint]++;
 new playercp1 = Busfahrer[playerid][bus_Checkpoint];
 PlayerTextDrawHide(playerid,Textdraw0);
 SendClientMessage(playerid,0xFFFF00FF,"Auf zur nächsten Haltestelle!");
 SetPlayerCheckpoint(playerid,Bus_Stationen[route][playercp1][bus_x],Bus_Stationen[route][playercp1][bus_y],Bus_Stationen[route][playercp1][bus_z],Bus_Stationen[route][playercp1][bus_g]);
 Busfahrer[playerid][bust] = 10;
 return 1;
 }
 }
 }
 else
 {
 KillTimer(buswt[playerid]);
 buswt[playerid] = SetTimerEx("Bustimer",1000,false,"i",playerid);
 Busfahrer[playerid][bust] = 10;
 PlayerTextDrawHide(playerid,Textdraw0);
 return 1;
 }
 return 1;
 }
- 
			Wie hast du denn die Positionen der Checkpoints im Array stehen? Poste das Array mit Daten mal. 
- 
			so 
 enum Buscords
 {
 Float:bc_x,
 Float:bc_y,
 Float:bc_z,
 Float:bc_rad
 }new Bus_Stationen[][][Buscords] = 
 {
 {
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0}
 },
 {
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0},
 {0.0,0.0,0.0,4.0}
 }
 };
- 
			Beitrag von justRevitox ()Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
- 
			Ändere mal 
 if(Busfahrer[playerid][bust] > 0)
 zu:
 if(Busfahrer[playerid][bust] < 9)und: 
 Busfahrer[playerid][bust] --;
 zu:
 Busfahrer[playerid][bust] ++;
 Und setze es vor das format.
- 
			
- 
			Eigentlich passt es dann. 
 Schreibe es so, und poste dann was im Server Log steht:
 public Bustimer(playerid)
 {
 new playercp = Busfahrer[playerid][bus_Checkpoint];
 new route = Busfahrer[playerid][bus_Route];
 printf("BusTimer: %d", playerid);
 if(IsPlayerInRangeOfPoint(playerid,2.5,Bus_Stationen[route][playercp][bus_x],Bus_Stationen[route][playercp][bus_y],Bus_Stationen[route][playercp][bus_z]))
 {
 printf("InRange: %d", Busfahrer[playerid][bust]);
 if(Busfahrer[playerid][bust] > 0)
 {
 KillTimer(buswt[playerid]);
 buswt[playerid] = SetTimerEx("Bustimer",1000,false,"i",playerid);
 new string[20];
 PlayerTextDrawHide(playerid,Textdraw0);
 format(string,sizeof(string),"Haltestelle %d/10",Busfahrer[playerid][bust]);
 PlayerTextDrawSetString(playerid,Textdraw0, string);
 PlayerTextDrawShow(playerid,Textdraw0);
 Busfahrer[playerid][bust] --;
 return 1;
 }
 else
 {
 printf("playercp: %d | sizeof-1: %d", playercp, sizeof(Bus_Stationen[])-1);
 if(playercp == sizeof(Bus_Stationen[])-1)
 {
 printf("Route beendet.");
 DisablePlayerCheckpoint(playerid);
 KillTimer(buswt[playerid]);
 PlayerTextDrawHide(playerid,Textdraw0);
 new veh = GetPlayerVehicleID(playerid);
 SetVehicleToRespawn(veh);
 if(route == 0)
 {
 new string[128],skill = randomEx(1, 2);
 format(string,sizeof(string),"Du hast deine Route beendet, 1750€ und %d Bus-EXP erzhalten!",skill);
 SendClientMessage(playerid,0x33CCFFAA,string);
 GivePlayerMoney(playerid, 1750);
 Busfahrer[playerid][bus_Aktiv]=false;
 sInfo[playerid][busskill] += skill;
 Checkbuslevel(playerid);
 return 1;
 }
 else if(route == 1)
 {
 new string[128],skill = randomEx(1, 3);
 format(string,sizeof(string),"Du hast deine Route beendet, 2750€ und %d Bus-EXP erhalten!",skill);
 SendClientMessage(playerid,0x33CCFFAA,string);
 GivePlayerMoney(playerid, 2750);
 Busfahrer[playerid][bus_Aktiv]=false;
 sInfo[playerid][busskill] += skill;
 Checkbuslevel(playerid);
 return 1;
 }
 }
 else
 {
 printf("Nächster CP.");
 DisablePlayerCheckpoint(playerid);
 KillTimer(buswt[playerid]);
 Busfahrer[playerid][bus_Checkpoint]++;
 new playercp1 = Busfahrer[playerid][bus_Checkpoint];
 PlayerTextDrawHide(playerid,Textdraw0);
 SendClientMessage(playerid,0xFFFF00FF,"Auf zur nächsten Haltestelle!");
 SetPlayerCheckpoint(playerid,Bus_Stationen[route][playercp1][bus_x],Bus_Stationen[route][playercp1][bus_y],Bus_Stationen[route][playercp1][bus_z],Bus_Stationen[route][playercp1][bus_g]);
 Busfahrer[playerid][bust] = 10;
 return 1;
 }
 }
 }
 else
 {
 KillTimer(buswt[playerid]);
 buswt[playerid] = SetTimerEx("Bustimer",1000,false,"i",playerid);
 Busfahrer[playerid][bust] = 10;
 PlayerTextDrawHide(playerid,Textdraw0);
 return 1;
 }
 return 1;
 }
- 
						
- 
			Ich habs so gemacht, halt als Bauer , und funktioniert: 
 enum BauernCPDaten {
 Float:bCP_X,
 Float:bCP_Y,
 Float:bCP_Z
 }
 new BauernCP[][BauernCPDaten] = {
 {20.4214,62.7821,4.0922},
 {-10.8430,-8.3040,4.0942},
 {-37.7827,-82.3471,4.0944},
 {-25.6119,-91.4447,4.0945},
 {25.8801,35.8845,4.0945},
 {42.0253,43.7315,3.4804},
 {5.0298,-44.1023,4.0918},
 {-12.0191,-89.1497,4.0932},
 {3.7829,-106.2996,2.7385},
 {45.7055,7.3281,3.4091},
 {64.6364,30.4883,1.6147},
 {31.3213,-59.0014,3.0735},
 {20.6863,-88.6571,2.4700},
 {40.1048,-101.5151,1.5939},
 {65.4498,-30.4873,1.7795},
 {75.5787,22.4513,1.5867},
 {-132.4013,49.3706,4.0941},
 {-181.2694,-75.5866,4.0944},
 {-231.7830,-73.5467,4.0945},
 {-270.0512,-52.6578,4.0857},
 {-251.5576,28.0954,3.1874},
 {-233.3778,81.1003,3.1378},
 {-203.7975,158.2948,6.7198}
 };
 command(farmen, playerid, params[]) {
 if(SpielerInfo[playerid][pJob] != 2) return SendClientMessage(playerid, COLOR_RED, "Du bist kein Farmer");
 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Du bist in keinen Farmer-Fahrzeug");
 if(IsBAUERNCAR(GetPlayerVehicleID(playerid))==0)return SendClientMessage(playerid, COLOR_RED, "Du bist in keinen Farmer-Fahrzeug2");
 if(Job_Farmer[playerid] == 1) return SendClientMessage(playerid, COLOR_RED, "Du farmst bereits. Um aufzuhören verwende /stopfarmen");
 Job_Farmer[playerid] = 1;
 SendClientMessage(playerid, 0x009BFFFF, "Fahre nun die Checkpoins ab");
 Job_Farmer_CP[playerid] = 0;
 SetPlayerCheckpoint(playerid,BauernCP[0][bCP_X],BauernCP[0][bCP_Y],BauernCP[0][bCP_Z], 10.0);
 return 1;
 }
 public OnPlayerEnterCheckpoint(playerid)
 {
 new str[200], ok[200];
 if(Job_Farmer[playerid] == 1) {
 if(IsPlayerInRangeOfPoint(playerid, 10, BauernCP[Job_Farmer_CP[playerid]][bCP_X], BauernCP[Job_Farmer_CP[playerid]][bCP_Y], BauernCP[Job_Farmer_CP[playerid]][bCP_Z])) {
 Job_Farmer_CP[playerid]++;
 if(Job_Farmer_CP[playerid] >= sizeof(BauernCP)) {
 new v = GetPlayerVehicleID(playerid);
 RemovePlayerFromVehicle(playerid);
 SetVehicleToRespawn(v);
 SpielerInfo[playerid][pGeld] += 200;
 Job_Farmer_CP[playerid] = 0;
 Job_Farmer[playerid] = 0;
 SendClientMessage(playerid, 0x00FFE6FF, "Die Ernte war erfolgreich!");
 SendClientMessage(playerid, 0x00FFE6FF, "Für deine Arbeit erhälst du 200$");
 DisablePlayerCheckpoint(playerid);
 return 1;
 } else {
 format(str, sizeof(str), "[FARMEN] %i / %i Punkte", Job_Farmer_CP[playerid], sizeof(BauernCP));
 SendClientMessage(playerid, 0xEBFF00FF, str);
 SetPlayerCheckpoint(playerid, BauernCP[Job_Farmer_CP[playerid]][bCP_X], BauernCP[Job_Farmer_CP[playerid]][bCP_Y], BauernCP[Job_Farmer_CP[playerid]][bCP_Z], 10.0);
 return 1;
 }
 }
 }
 DisablePlayerCheckpoint(playerid);
 return 1;
 }
- 
			  breadfish.deHat das Thema geschlossen.
 
		