einfach den Spieler freezen und dann eine Nachricht senden "Benutze /raus um das Fahrzeug zu verlassen" oder so
Beiträge von Winnetou
-
-
Und wieso dann 4Variablen? x,y und z sind schon klar, aber w? Oder eist das einfach eine Vereinfachung für den Programmierer, weil w die Rotation in die Richtung ist in die das Fahrzeug fährt?
-
Was bringt die neue Velocity-Fkt. für vorteile im Vergleich zur alten?
Und wieso gibt es in der RotationQuart-Fkt. 4 Variablen? Es gibt doch nur 3 DimensionenWas bringen die? die gibt es doch schon
-
Was bringt die neue Velocity-Fkt. für vorteile im Vergleich zur alten?
Und wieso gibt es in der RotationQuart-Fkt. 4 Variablen? Es gibt doch nur 3 Dimensionen -
Bei der Draw-Distance von SAMP kann es doch auch mal sein, dass sich mehr als 400 Objekte innerhalb dieser befinden
Wie soll man sonst Objekte nur in bestimmten Interiors/Virtual Worlds anzeigen? -
Textdraw[0] bis Textdraw[11] bei OnGamemodeInit
-
Ich habe das jetzt mal getestet, aber wenn ich 11 nehme wird das letzte Hintergrund-Textdraw nicht angezeigt, Textdraw[0] wird immer noch nicht angezeigt und der Server schmiert weiterhin ab
-
new Text:Textdraw[12];
new Text:Autoname[MAX_PLAYERS];
new Text:Speed1[MAX_PLAYERS];
new Text:Speed2[MAX_PLAYERS];
new Text:Tankinhalt[MAX_PLAYERS];
new Text:Kilometer[MAX_PLAYERS];Und das GetVehicleName ist nicht aus den Useful Functions, kann aber trotzdem falsch sein, da ich es selbst geschrieben habe:
stock GetVehicleName(vehicleid)
{
new model=612;
model=GetVehicleModel(vehicleid);
return Autonamen[model - 400];
}
und oben im Script aus dem Debug-FS:
new Autonamen[212][] = { // Vehicle Names - Betamaster
{"Landstalker"},
{"Bravura"},
{"Buffalo"},
{"Linerunner"},
{"Perrenial"},
{"Sentinel"},
[...]
{"Luggage Trailer A"}, //bagboxa
{"Luggage Trailer B"}, //bagboxb
{"Stair Trailer"}, //tugstair
{"Boxville"},
{"Farm Plow"}, //farmtr1
{"Utility Trailer"} //utiltr1
}; -
Komischerweise geht jetzt überhaupt nichts mehr:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) {
new i=0;
for(; i<12; i++) {
TextDrawShowForPlayer(playerid,Textdraw[i]);
}[...]
}
if(newstate != PLAYER_STATE_DRIVER) {
new i=0;
for(; i<12; i++) {
TextDrawHideForPlayer(playerid,Textdraw[i]);
}
TextDrawDestroy(Autoname[playerid]);
TextDrawDestroy(Speed1[playerid]);
TextDrawDestroy(Speed2[playerid]);
TextDrawDestroy(Tankinhalt[playerid]);
TextDrawDestroy(Kilometer[playerid]);
}
return 1;
}public AmaturenUpdate()
{
new i;
for(; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(GetPlayerState(i) == PLAYER_STATE_DRIVER) {
TextDrawDestroy(Autoname[i]);
TextDrawDestroy(Speed1[i]);
TextDrawDestroy(Speed2[i]);
TextDrawDestroy(Tankinhalt[i]);
TextDrawDestroy(Kilometer[i]);
new output[64], Float:kommazahl;
//print("test1")
//Autoname
format(output,sizeof(output),"%s",GetVehicleName(GetPlayerVehicleID(i)));[...]
//print("test2")
//Speed
format(output,sizeof(output),"%d km/h",ErmittleGeschwindigkeit(i,true));[...]
//Speedbalken
kommazahl=524+ErmittleGeschwindigkeit(i,true)/3.06122;[...]
//Tankzeiger
kommazahl=524+Tankmenge[GetPlayerVehicleID(i)]/1.020408;[...]
//Kilometer
kilometercount[GetPlayerVehicleID(i)] += ErmittleGeschwindigkeit(i,true)/(60*60*0.5);
format(output,sizeof(output),"%.1f km",kilometercount[GetPlayerVehicleID(i)]);[...]
TextDrawShowForPlayer(i,Autoname[i]);
TextDrawShowForPlayer(i,Speed1[i]);
TextDrawShowForPlayer(i,Speed2[i]);
TextDrawShowForPlayer(i,Tankinhalt[i]);
TextDrawShowForPlayer(i,Kilometer[i]);
}
}
}Das "[...]" bedeutet, dass an der Stelle im Script die ganzen TextDrawCreate usw. stehen (ich habe die mal der Übersicht halber weggelassen, da dort kein Fehler vorhanden ist).
Wenn man in ein Fahrzeug einsteigt, werden die Hintergrundtextdraws alle angezeigt, bis auf das erste (Textdraw[0]). Die Variablen Textdraws werden überhaupt nicht angezeigt und der Server schmiert ab. Ich habe das auch mal mit print("test1") und print("test2") versucht und komischerweise werden die Variablen dann angezeigt, aber falsch. Beim Autonamen stand dann einfach "Ö". Wo ist jetzt das Problem? Ich sitze da jetzt schon seit mehreren Wochen dran, aber es funktioniert einfach nicht. Oder liegt das am Code von GetVehicleName?? -
Guck doch mal auf das Datum vom Beitrag vorher...
Glaubst du jemand (mit wenigen Ausnahmen) würde dieses Thema noch lesen wenn es auf Seite 10 stünde?Viel wichtiger ist mir jetzt meine Frage zum Speedometer weil das mit den Sitzen hat sich geklärt
Edit: Liegt das vielleicht daran, dass die Textdraws beim einsteigen zerstört werden obwohl die gar nicht vorhanden sind?
Edit2: Es ist immer die höchste ID, die die Textdraws sieht, der Rest sieht nur den Hintergrund und nicht die sich verändernden Textdraws -
Auf irgendeinem Server habe ich schon gesehen, dass zum Beispiel Marquis 5 Sitzplätze oder Stehplätze hatte
Edit: Kann auch mal bitte jemand auf meine erste Frage mit den Textdraws eingehen?
Edit2: Komischerweise geht das mit den Textdraws wenn man zum ersten mal in ein Auto einsteigt und dann ein anderer Spieler in ein Auto steigt. Aber wenn man dann aussteigt und wieder einsteigt geht es nicht mehr
Edit3: Hat niemand eine Idee? -
#define JOB_POLIZEI ID
-
und wie soll man das dann im Boot machen, dass man den spieler sieht?
kann auch mal jemand auf meine erste Frage eingehen?
Beim ersten "[...]" stehen die ganzen TextdrawCreate... -
das geht doch erst wenn der Spieler schon im Boot sitzt und da im Squalo kein Beifahrer vorhanden ist wird der Spieler auch nicht einsteigen
-
Das Problem ist nur, dass
1. man laut Key-Detector "g" nicht benutzen kann
2. man den Spieler sieht wenn man im Boot sitzt -
Hi,
ich habe mir einen Tacho mit Tankanzeige usw. gebaut, aber es gibt Probleme damit:
der Tacho funktioniert nur einwandfrei, wenn nur ein Spieler im Auto sitzt, sobald ein weiterer dazu kommt funktioniert er mal und mal nicht (Timer wiederholt sich jede halbe Sekunde)
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) {
new i=0;
for(; i<12; i++) {
TextDrawShowForPlayer(playerid,Textdraw[i]);
}
}
if(newstate != PLAYER_STATE_DRIVER) {
new i=0;
for(; i<12; i++) {
TextDrawHideForPlayer(playerid,Textdraw[i]);
}
TextDrawDestroy(Autoname[playerid]);
TextDrawDestroy(Speed1[playerid]);
TextDrawDestroy(Speed2[playerid]);
TextDrawDestroy(Kraftstoff[playerid]);
TextDrawDestroy(Tankvoll[playerid]);
TextDrawDestroy(Tankinhalt[playerid]);
TextDrawDestroy(Kilometer[playerid]);
}
return 1;
}public AmaturenUpdate()
{
new i;
for(; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(GetPlayerState(i) == PLAYER_STATE_DRIVER) {
//Auto
TextDrawDestroy(Autoname[i]);
TextDrawDestroy(Speed1[i]);
TextDrawDestroy(Speed2[i]);
TextDrawDestroy(Kraftstoff[i]);
TextDrawDestroy(Tankvoll[i]);
TextDrawDestroy(Tankinhalt[i]);
TextDrawDestroy(Kilometer[i]);
[...]
TextDrawShowForPlayer(i,Autoname[i]);
TextDrawShowForPlayer(i,Speed1[i]);
TextDrawShowForPlayer(i,Speed2[i]);
TextDrawShowForPlayer(i,Kraftstoff[i]);
TextDrawShowForPlayer(i,Tankvoll[i]);
TextDrawShowForPlayer(i,Tankinhalt[i]);
TextDrawShowForPlayer(i,Kilometer[i]);
}
}
}
[...]2. Wie fügt man weitere Sitzplätze für Fahrzeuge hinzu?
Beispiel: Bei Booten wie Squalo oder Marquis sollen die Beifahrersitze benutzbar sein und die Stretch soll auch 2 weitere Sitzplätze haben. Wie mache ich das? -
Das Textdraw "Autoname" wird nicht angezeigt wenn man im Auto ist
Woran liegt das?
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) {
new i=0;
for(; i<12; i++) {
TextDrawShowForPlayer(playerid,Textdraw[i]);
}
}
if(newstate != PLAYER_STATE_DRIVER) {
new i=0;
for(; i<12; i++) {
TextDrawHideForPlayer(playerid,Textdraw[i]);
TextDrawDestroy(Autoname[i]);
TextDrawDestroy(Speed1[i]);
}
}
return 1;
}public AmaturenUpdate()
{
new i;
for(; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(IsPlayerInAnyVehicle(i)) {
//Auto
TextDrawDestroy(Autoname[i]);
Autoname[i] = TextDrawCreate(550.000000, 369.000000, GetVehicleName(GetPlayerVehicleID(i))); //Variable
TextDrawBackgroundColor(Autoname[i], 255);
TextDrawFont(Autoname[i], 1);
TextDrawLetterSize(Autoname[i], 0.260000, 0.699999);
TextDrawColor(Autoname[i], -572662273);
TextDrawSetOutline(Autoname[i], 0);
TextDrawSetProportional(Autoname[i], 1);
TextDrawSetShadow(Autoname[i], 1);
TextDrawShowForPlayer(i,Autoname[i]);
[...] -
was muss ich denn dann für Float:abstand eingeben??
-
Man busted sich jetzt immer noch selbst
Ich habe das jetzt so:
dcmd_bust(playerid,params[]) {
#pragma unused params
if(IsPlayerPolizei(playerid)) {
new
cplayerid,
Float:x,Float:y,Float:z;
cplayerid=GetClosestPlayer(playerid);
GetPlayerPos(cplayerid,x,y,z);
if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z)) {
if(controll) {
TogglePlayerControllable2(cplayerid,0);
controll = false;
}
else {
TogglePlayerControllable2(cplayerid,1);
controll = true;
}
}
}
else SendClientMessage(playerid, COLOR_LIGHTBLUE, "/bust: Du bist kein Polizist");
return 1;
}und so:
stock GetClosestPlayer(playerid) //By Slick (edited by Gabriel "Larcius" Cordes)
{
if(IsPlayerConnected(playerid))
{
new closestplayer=0;
new Float:closestdist=10000.0;
for(new playerid2=0; playerid2<MAX_PLAYERS; playerid2++)
{
if(playerid == playerid2) continue;
new Float:dist = GetDistanceBetweenPlayers(playerid,playerid2);
if ((dist < closestdist))
{
closestdist = dist;
closestplayer = playerid;
}
}
return closestplayer;
}
return -1;
}Edit: Wo ist jetzt der Fehler, oder ist die Fkt. technisch nicht möglich?
-
Wie soll man "▄" mit der Tastatur im Editor eingeben?
"|" habe ich schon getestet: es wird nur °°° angezeigt
Ich habs auch schon mit großen i (IIIIIIIIIIIII) getestet aber die bekommt man nicht nah genug zusammen