du musst das script deinem anpassen.
hast du schon ein contract system bei dir im gm drinne?
oder suchst du ein komplettes hitmen script mit headshot und contract?
Beiträge von Simon
-
-
Guten Tag
Ich benutze das Include "progress"
mit diesen Include kann man progress bars, wie zum beispiel den Schaden eines Autos oder die geschwindigkeit anzeigen.
Jedoch verträgt sich das include nicht mit meinen textdraws.
Ich habe ein paar textdraws, wie zum beispiel die Version des aktuellen scripts, ein Komma bei der Geldanzeige und eine Uhr.
Wenn soeine progress Bar erstellt wird, wird eines dieser Textdraws zerstört. Zuerst wurde die Uhr zerstört. dann habe ich die Uhr rausgenommen, nun wird die Version zerstört.
Ich habe die Uhr wieder reigemacht, sie jedoch nun playerid´s zugewiesen, also Text:text[MAX_PLAYERS]; nun bleibt diese und wird nicht zerstört.Ich könnte nun jedes Textdraw playerids zuweisen. aber warum soll man so viele Textdraws createn wenn eins reicht?
also Textdraws die einer playerid zugewiesen sind, werden bei diesem include nicht zerstört. ein textdraw für "alle" wird zerstört.
Ich weiß nicht warum sie zerstört wird und hoffe ihr könnt mir helfen.ansonsten müsste ich jedes textdraw den spielern zuweise, also bei 50 Spieler wären es anstatt 3 Textdraws die für alle angezeigt werden, 150 textdraws.
das ist ein großer Unterschied und ich glaube auch das sich das bei mehr spielern und mehr textdraws bemerkbar macht.
Ich hoffe mir kann einer helfen das problem zu lösen, es wäre sehr hilfreich.
mfg
Simon//edit: hier ein script ausschnitt:
Hier wird eine progress Bar erstellt wenn man als Pilot ein checkpoint betritt.
Es Läuft eine Zeit von 15 Sekunden ab, die in einm Balken, also einer progress bar dargestellt wird:else if(flugcheck[playerid] == 3)
{
if(IstEinPilotFlugzeug(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new str[5];
DestroyProgressBar(flug[playerid]);
TextDrawDestroy(flug2[playerid]);
SendClientMessage(playerid,COLOR_YELLOW,"Dein Flugzeug wird betankt...");
flugchecktime[playerid] = 15;
flug[playerid] = CreateProgressBar(260.5, 430.0, 90, 15, COLOR_YELLOW, 15.0);
format(str,sizeof(str),"%d",flugchecktime[playerid]);
flug2[playerid] = TextDrawCreate(297.0,432.0, str);
TextDrawFont(flug2[playerid],1);
TextDrawSetShadow(flug2[playerid],0);
TextDrawSetOutline(flug2[playerid],1);
TextDrawBackgroundColor(flug2[playerid],0xFFFFFFFF);
TextDrawColor(flug2[playerid],0x000000FF);
SetProgressBarValue(flug[playerid], flugchecktime[playerid]);
UpdateProgressBar(flug[playerid], playerid);
ShowProgressBarForPlayer(playerid, flug[playerid]);
TextDrawShowForPlayer(playerid, flug2[playerid]);
flugtimer[0] = SetTimerEx("flugcheckzeit",1000,0,"i",playerid);
freeze(playerid);
}
}Hier wird jede Sekunde das progress bar value um ein verringert, wenn es unter 0 ist wird die progess bar zerstört und ein neuer checkpoint wird erstellt.
public flugcheckzeit(playerid)
{
flugchecktime[playerid]--;
if(flugchecktime[playerid] >= 1)
{
new str[5];
SetProgressBarValue(flug[playerid], flugchecktime[playerid]);
UpdateProgressBar(flug[playerid], playerid);
format(str,sizeof(str),"%d",flugchecktime[playerid]);
TextDrawSetString(flug2[playerid], str);
flugtimer[0] = SetTimerEx("flugcheckzeit",1000,0,"i",playerid);
}
else
{
if(fluglinie[playerid] == 1)
{
if(flugcheck[playerid] == 3)
{
if(IsPlayerInCheckpoint(playerid))
{
DestroyProgressBar(flug[playerid]);
TextDrawDestroy(flug2[playerid]);
entfreeze(playerid);
DisablePlayerCheckpoint(playerid);
flugcheck[playerid] = 4;
flugchecktime[playerid] = 0;
SetPlayerCheckpoint(playerid,1408.6921,-2425.6494,14.9268,5);
SendClientMessage(playerid,0xFFFFFFFF,"Dein Flugzeug wurde betankt, fahren sie weiter richtung Startbahn!");
}
else
{
entfreeze(playerid);
DestroyProgressBar(flug[playerid]);
TextDrawDestroy(flug2[playerid]);
flugchecktime[playerid] = 15;
flugcheck[playerid] = 3;
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,COLOR_RED,"Du musst dein Flugzeug zunächst tanken!");
SetPlayerCheckpoint(playerid,1564.2994,-2414.1687,14.9269,5);
}
}
}
}
}
}hier die anderen 3 Textdraws, die uhr habe ich schon den spielern zugewiesen.
public OnGameModeInit()
{
//textdraws:
version = TextDrawCreate(30.000000,428.000000, "~s~Version: ~s~Testphase");
TextDrawFont(version,0);
TextDrawSetShadow(version,0);
TextDrawSetOutline(version,1);
TextDrawBackgroundColor(version,0x000000FF);
TextDrawColor(version,0xFFFFFFFF);
//
komma = TextDrawCreate(580.000000,88.000000, ",");
TextDrawFont(komma,0);
TextDrawSetShadow(komma,0);
TextDrawSetOutline(komma,1);
TextDrawBackgroundColor(komma,0x000000FF);
TextDrawColor(komma,0xFFFFFFFF);
//
return 1;
}public OnGameModeExit()
{
TextDrawDestroy(komma);
TextDrawDestroy(version);
return 1;
}public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, version)
TextDrawShowForPlayer(playerid, komma)
new string[10],hour,minute,second; //Hier eine neue Variable
gettime(hour,minute,second); //Hier bekommt man die Zeit ausgelesen
format(string, sizeof string, "%s%d:%s%d", (hour < 10) ? ("0") : (""), hour, (minute < 10) ? ("0") : (""), minute); //Hier ist die ganze ausgabe, sieht schwer aus, ist es aber nicht!
Uhr[playerid] = TextDrawCreate(550.0, 25.0, string);
TextDrawLetterSize(Uhr[playerid], 0.6, 1.8);
TextDrawFont(Uhr[playerid], 3);
TextDrawSetOutline(Uhr[playerid], 2);
TextDrawShowForPlayer(playerid,Uhr[playerid]);
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
TextDrawDestroy(Uhr[playerid]);
return 1;
}//ein time der jede Sekunde aufgerufen wird, hier wird die Uhr aktualisiert und cheater erkannt :D
public check()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
//uhr:
if(IsPlayerConnected(i))
{
new string[10],hour,minute,second;
gettime(hour,minute,second);
format(string, sizeof string, "%s%d:%s%d", (hour < 10) ? ("0") : (""), hour, (minute < 10) ? ("0") : (""), minute);
TextDrawSetString(Uhr[i],string);
}die Uhr wird nicht zerstört, die version schon. wenn ich die version raus nehme wird das komma zerstört.
//edit: include als dateianhang hinzugefügt
-
-
Also es startet stumpf nicht, es kommt das Anfangsbild: "MTA Stop Playering with yourself", und bei dem anderen was ich runtergeladen habe, wird die veknüpfung gelöscht, weil das programm net gefunden wird.
außerdem kam bei dem MTA was ich vorher hatte kein anfangsbild, Es wurde stumpf gestartet wie GTA SA.
-
Guten Tag
Ich habe vor kurzem Windows neu draufgespielt und nun ist mein MTA weg.
ich habe schon überall gesucht, hier, im MTA forum, google.....
ich habe viele download seiten gefunden und MTA auch installiert, doch nie ging es, ich konnte MTA nicht starten.Vielleicht hat hier ja einer ne vernünftige Download seite von MTA wo MTA auch klappt.
Falls dies hier der falsche Bereich ist, bitte ich darum das dieses Thema verschoben wird, wusste net wo ich es sonst reinposten sollte.
mfg
Simon -
-
-
Ich habe ein /stats befehl der sehr sehr umfangreich ist.er ist noch nicht komplett fertig, doch seitdem ich die Finanzen hinzugefügt habe kommt nur noch die Meldung:
"Server UNKNOW COMMAND"
Ich weiß nicht woran das liegt und bitte um eure Hilfe
if(strcmp("/stats", cmdtext, true, 10) == 0)
{
new DHand, CHand, Stats[1500], Berufe[300], Person[500], Finanzen[350], str1[256], str3[256], str2[256], str4[50], name[MAX_PLAYER_NAME],Spielerdatei[125];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.ini",name);
DHand = GetPlayerMoney(playerid)/100;
CHand = GetPlayerMoney(playerid)%100;if(gTeam[playerid] == Team_Nichts)
{
format(str1,sizeof(str1),"Hartz IV");
}
else if(gTeam[playerid] == Team_Taxi)
{
format(str1,sizeof(str1),"Taxifahrer");
}
else if(gTeam[playerid] == Team_Bus)
{
format(str1,sizeof(str1),"Busfahrer");
}
else if(gTeam[playerid] == Team_Zug)
{
format(str1,sizeof(str1),"Zugführer");
}
else if(gTeam[playerid] == Team_Dd)
{
format(str1,sizeof(str1),"Drogen Dealer");
}
else if(gTeam[playerid] == Team_Wd)
{
format(str1,sizeof(str1),"Waffen Dealer");
}
if(Spieler[playerid][Leader] == 0)
{
if(Spieler[playerid][Member] == 0)
{
format(str2,sizeof(str2),"Zivilist");
}
else
{
format(str2,sizeof(str2),"%s", Fraks[Spieler[playerid][Member]]);
}
format(str3,sizeof(str3),"%d",Spieler[playerid][Rank]);
}
else
{
format(str2,sizeof(str2),"%s", Fraks[Spieler[playerid][Leader]]);
format(str3,sizeof(str3),"Leader");
}
if(Spieler[playerid][Konto] == 1)
{
format(str4,sizeof(str4),"Los Santos");
}
else if(Spieler[playerid][Konto] == 2)
{
format(str4,sizeof(str4),"San Fierro");
}
else if(Spieler[playerid][Konto] == 3)
{
format(str4,sizeof(str4),"Las Venturas");
}
else
{
format(str4,sizeof(str4),"Keins");
}
format(Person,sizeof(Person),"Person: Name: %s Alter: %d\n Geschlecht: %s\n Herkunft: %s\n Partner: Keine(r)\n Wohnhaft: Keine\n\n Level: %d\n Levelpunkte: 0/0 Level Kosten: $0", name, Spieler[playerid][Alter], dini_Get(Spielerdatei,"Geschlecht"), dini_Get(Spielerdatei,"Staat"), Spieler[playerid][Score]);
format(Berufe,sizeof(Berufe),"Berufe: Nebenjob: %s\n Fraktion: %s Rank: %s", str1, str2, str3);
format(Finanzen,sizeof(Finanzen),"Finanzen: Bargeld: %d.%d\n Bankguthaben: %d\n Bankkonto: %s\n Festgeld: $0 Zinssatz: 0.00\n Kredit: $0",DHand, CHand, Spieler[playerid][Bank], str4);format(Stats,sizeof(Stats)," %s\n\n %s\n\n %s", Person, Berufe, Finanzen);
ShowPlayerDialog(playerid,DIALOG_TEST,DIALOG_STYLE_MSGBOX,"Stats Test", Stats, "---", "---");
} -
ich bin gerade dabei ein /stats befehl zu scripten der sehr viel umfang hat.
wenn ich diesen befehl raus mache kommt ein normaler output.
ist das etwas schlimmes? sollte ich da was beachten?
wann genau kommt daswürde gerne mehr über diesen Output wissen
aber danke schonmal
mfg
SImon -
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 5180 bytes
Code size: 524224 bytes
Data size: 1242968 bytes
Stack/heap size: 16384 bytes; estimated max. usage=4288 cells (17152 bytes)
Total requirements: 1788756 byteshatte es vorher nie..
was soll das heißen?
bitte um Hilfe..
-
falsch!
du machst eine neue variable:
new pspawn[MAX_PLAYERS];
wenn er sich registriert hat machst du folgendes:
pspawn[playerid] = 1;
wenn er spawnt machst du abfrage:
OnPlayerSpawn/...)
{
if(pspawn[playerid] == 1)
{
SetPlayerPos(playerid,x,y,z);
pspawn[playerid] = 0;
}
return 1;
}so wäre es ganz einfach, du kannst aber auch es deinem .ini system anpassen und es in der .ini abspeichern und bei jedem spawn den wert um 1 erhöhen
-
wird wohl eher so sein.. ich werde es mal so testen
//edit: habs getestet, es war noch net ganz richtig aber hab alles verbessert.
es klappt nun wunderbar, dankedcmd_entban(playerid,params[])
{
new name[MAX_PLAYER_NAME], Grund[256];
if(sscanf(params, "ss", name, Grund))
{
return SendClientMessage(playerid,COLOR_RED,"Benutzung: /entban [vollständiger Name] [Grund]");
}
if(Spieler[playerid][Admin] < 2)
{
return 0;
}
else
{
new Spielerdatei[128];
format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.ini",name);
if(dini_Exists(Spielerdatei))
{
if(strcmp(dini_Get(Spielerdatei,"ban"), "1", true) == 0)
{
dini_IntSet(Spielerdatei,"ban",0); // Entbannt den Spieler
dini_Set(Spielerdatei,"bangrund","0");
new name2[MAX_PLAYER_NAME],str[120];
GetPlayerName(playerid,name2,sizeof(name2));
format(str, sizeof(str), "[Entban] %s wurde von %s entbannt, Grund: %s!", name, name2, Grund);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] >= 1)
{
SendClientMessage(i, COLOR_BLUE, str);
}
}
}
else
{
return SendClientMessage(playerid,COLOR_RED,"Spieler ist nicht gebannt!");
}
}
else
{
return SendClientMessage(playerid,COLOR_RED,"Spieler nicht gefunden!");
}
}
return 1;
} -
Guten Tag
ich wollte User InGame entbannen.
Ich benutze Dini.dcmd_entban(playerid,params[])
{
new name[MAX_PLAYER_NAME], Grund[256];
if(sscanf(params, "ss", name, Grund))
{
return SendClientMessage(playerid,COLOR_RED,"Benutzung: /entban [vollständiger Name] [Grund]");
}
if(Spieler[playerid][Admin]<2)
{
return 0;
}
else
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Spielerdatei[256];
GetPlayerName(i,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.ini",name);
if(dini_Exists(Spielerdatei))
{
Spieler[i][ban] = 0;
Update(i);
for(new j = 0; j < MAX_PLAYERS; j++)
{
if(Spieler[j][Admin] >= 1)
{
new str[256],name2[MAX_PLAYER_NAME];
GetPlayerName(playerid,name2,sizeof(name2));
format(str,sizeof(str),"%s wurde von %s entbannt, Grund: %s", name, name2, Grund);
SendClientMessage(i,COLOR_BLUE,str);
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Spieler nicht gefunden!");
}
}
}
return 1;
}EIgentlich sollte er die spielerdatei von dem eingegbenen Namen öffnen und ban=1 auf =0 setzen. doch egal welchen namen ich angebe es kommt immer die Meldung:
Dieter wurde von Dieter entbannt, Grund: Grund.
er zeigt immer den Namen von denjenigen an, der /entban eingiebt. ob es die Spielerdatei von dem eingegebenen Namen giebt oder nicht ist auch egal.
wäre sehr nett wenn mir da einer helfen könnte
Lg
Simon -
also auf jedenfall musst du es mit einer for-schleife machen. ich kenne sas system nun nicht weiter, aber DT_Sniper wird wohl recht haben..
-
versuchs ma mit eine for schleife und frag dann ab. wenn du zum besipiel den Namen hast, fragste ob ob der name von i = der Name ist dem es gehört und schon haste die id
-
Guten Tag
Ich arbeite an einem Speedometer.
Nun würde ich gerne die geschwindikeit von einem auto errechnen und alle anderen dem anpassen.
bsp: wenn ein polizei auto die höchste geschwindikeit erreicht hat, soll diese 150 sein.
wie genau muss ich das nun errechnen?
außerdem wollte ich dann alle anderen fahrzeugen eine geschwindigkeitsgrenze geben. wenn ich mit dem roller auf höchste geschwindikeit komme ist der schneller als ein polizeiauto. ich weiß das man mit SetVehicleVeloCity die geschwindigkeit festlegt, aber wie genau ist mir ein rätsel.ich habe mir mal ein speedometer angeschaut und habe erstmal ein test befehl gemacht in dem die aktuelle geschwindigkeit ausgelesen wird. die höchstgeschwindigkeit von polizeiauto beträgt 133-134. ich würde diese gerne auf 150 erhöhren aber weiß nciht wie sich das rechnet. dann möchte ich anderen autos ein speedlimit geben, zum Beispiel der Roller soll nur 70 fahren. also ich orientiere mich da an einem auto und möchte dann für jedesauto ein speedlimit setzen, falls es meiner meinung nach zu schnell ist, wie in diesem fall der roller.
dcmd_test(playerid,params[])
{
#pragma unused params
new string[256];
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
vehicleid = GetPlayerVehicleID(playerid);
GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667;
final_speed_int = floatround(final_speed,floatround_round);
format(string,sizeof(string),"Speed vom Auto: %i",final_speed_int);
}
else
{
new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
GetPlayerVelocity(playerid,speed_x,speed_y,speed_z);
final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667;
final_speed_int = floatround(final_speed,floatround_round);
format(string,sizeof(string),"Speed zu fuß: %i",final_speed_int);
}
SendClientMessage(playerid, 0x00EE00FF,string);
return 1;
}es wäre sehr nett und hilfreich wenn mir da einer helfen könnte.
ich bedanke mich schonmalMit freundlichen Grüßen
Simon -
mein code war echt kacke wenn ichs nu seh
so ich habs nun optimiert und deine frage warum IsPlayerInRange anstatt IsInCheckpoint wenns um checkpoints geht hat sich auch erledigt.
jedoch kommt immer noch die meldung.obwohl er im checkpoint ist kommt die meldung, das lustige dabei ist ja das es trotzdem weiter geht.
es wird also die bediehnung if(IsPlayerInCheckpoint(playerid)) erfüllt, und gleichzeitig wird das else erfüllt. da verstehe ich nicht wieso? ich könnte die abfrage auch in if!IsPlayerInCheckpoint(playerid) umschreiben, ob es was bringt weiß ich nicht.
was meinst du mit dummy-abfrage.
Hier mein scriptausschnitt:
public zugcheck(playerid)
{
zugchecktime[playerid]--;
new str[10];
format(str,sizeof(str),"~r~%d",zugchecktime[playerid]);
GameTextForPlayer(playerid,str,1000,6);
if(zugchecktime[playerid] >= 1)
{
SetTimerEx("zugcheck",1000,0,"i",playerid);
}
else
{
if(IsPlayerInCheckpoint(playerid))
{
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 1)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2780.8750,1739.2742,12.1256,5.0);
zugcheckpoint[playerid] = 2;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Yakuza Hq, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 2)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2864.7500,1270.7405,12.1256,5.0);
zugcheckpoint[playerid] = 3;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Linden Station, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 3)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2284.8750,-1316.2510,25.5006,5.0);
zugcheckpoint[playerid] = 4;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: East los Santos, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 4)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2096.9131,-1953.7500,15.1256,5.0);
zugcheckpoint[playerid] = 5;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Willowfield Mülldeponie, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 5)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1700.4836,-1953.6525,14.8756,5.0);
zugcheckpoint[playerid] = 6;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Los Santos HBF, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}
return 1;
}//edit: dummes problem muss es anders machen, zugcheckpoint wird auf 2 erhöht und direkt danahc wird abgefragt ob zugstrecke auf 2 ist
//edit: problem gelößt hier nun mein aktueller script ausschnitt mit dem selben problem:
public zugcheck(playerid)
{
zugchecktime[playerid]--;
new str[10];
format(str,sizeof(str),"~r~%d",zugchecktime[playerid]);
GameTextForPlayer(playerid,str,1000,6);
if(zugchecktime[playerid] >= 1)
{
SetTimerEx("zugcheck",1000,0,"i",playerid);
}
else
{
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 1)
{
if(IsPlayerInCheckpoint(playerid))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2780.8750,1739.2742,12.1256,5.0);
zugcheckpoint[playerid] = 2;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Yakuza Hq, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 2)
{
if(IsPlayerInCheckpoint(playerid))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2864.7500,1270.7405,12.1256,5.0);
zugcheckpoint[playerid] = 3;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Linden Station, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 3)
{
if(IsPlayerInCheckpoint(playerid))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2284.8750,-1316.2510,25.5006,5.0);
zugcheckpoint[playerid] = 4;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: East los Santos, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 4)
{
if(IsPlayerInCheckpoint(playerid))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2096.9131,-1953.7500,15.1256,5.0);
zugcheckpoint[playerid] = 5;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Willowfield Mülldeponie, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}
if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 5)
{
if(IsPlayerInCheckpoint(playerid))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1700.4836,-1953.6525,14.8756,5.0);
zugcheckpoint[playerid] = 6;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Los Santos HBF, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}
}
return 1;
}//edit: habe den fehler gefunden aber nicht die lösung
wenn er im checkpoint ist, wird zugcheckpoint erhöht. direkt danach wird abgefragt ob der zugcheckpoint = 2 ist, was auch der fall ist. nur leider wird der checkpoint zerstört und ein neuer gemacht, deshalb ist er nicht im checkpoint und es kommt die meldung.
-
Guten Tag
ich arbeite gerade an meinen Zugsystem.
sobald man den checkpoint erreicht, läuft eine Zeit von 10 Sekunden runter, wenn man nach diesen 10 Sekunden immernoch im checkpoint ist, gehts weiter, hat man aber den checkpoint verlassen, kommt die meldung: Haltestelle verpasst und er muss zurück zum checkpoint.Ist man tatsächlich nicht ich checkpoint, kommt auch diese Meldung und es geht nicht weiter bevor man die 10 Sekunden im Marker stand. Steht man nun diese 10 sekunden im Marker gehts es auch weiter, wie es soll. Nur dann kommt die Meldung: Haltestelle verpasst, obwohl es weitergeht.
Also steht man nicht im marke rkommt Meldung: Haltestelle verpasst
steht man im Marker kommt Meldung: Nächstehalt: blabla.. Haltestelle verpasst.if(zuglinie[playerid] == 1 && zugcheckpoint[playerid] == 1)
{
if(IsPlayerInRangeOfPoint(playerid,15.0,1443.5889,2632.2500,12.1256))
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,2780.8750,1739.2742,12.1256,5.0);
zugcheckpoint[playerid] = 2;
zugchecktime[playerid] = 10;
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
SendClientMessage(i,türkis,"** Nächster Halt: Yakuza Hq, zu ihren Anschlussmöglichkeiten beachten sie die Lautsprecherdurchsagen am Bahnsteig! **");
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Haltestelle verpasst!");
zugchecktime[playerid] = 10;
}
}wäre sehr nett wenn mir da einer helfen könnte.
mfg Simon
-
als 1. würde ich das mal als pawncode posten.
du hast da iwas doppelt.
such mal nach OnGameModeInit. Es sollte nur einmal vorhanden sein, ich glaube du hast das 2 mal drinne.
-
Guten Tag
Ich möchte mir gerne ein selfmade speedo machen.
dazu muss man iwie die geschwindigkeit abfragen, was mit velocity geht.ich habe mir schon einige speedos angeschaut, doch verstehe nicht wie sich das mit velocity rechnet, und wo man das festlegt wie schnell was ist, denn bei einigen speedos fährt man mit nem roller 30 und bei anderen 300 kmh.
wäre sehr nett wenn mir jemand ein paar wichtge hinweise/tipps/infos zu velocity bezüglich eines speedos geben könnte
mfg
Simon