Tut mir Leid mein Fehler. Hab ich vergessen -.-
Was BloodyEric bereits gesagt hat:
Ersetzte vehicleid durch GetPlayerVehicleID(playerid)
Beiträge von red13
-
-
Ja stimmt:
mach das am besten bei "OnPlayerStateChange()" rein
public OnPlayerStateChange(playerid,newstate,oldstate)
{
if(GetVehicleModel(vehicleid) == 538)
if(newstate == PLAYER_STATE_PASSENGER)
{
SetPlayerInterior(playerid,18);
SetPlayerPos(playerid,-83.599998474121,18.39999961853,973.09997558594);
return 1;
}
return 0;
} -
Du setzt den Spieler in eine Virtuelle Welt. Nicht in ein Interior.
SetPlayerInterior(playerid,18);
anstatt
SetPlayerVirtualWorld(playerid,18);
Das sollte es gewesen sein -
Du hast MoneySpam anscheinend nicht definiert.
Schreib davor: new MoneySpam[MAX_PLAYERS]; -
Jetzt seh ich es auch:
Was Master bereits gesagt hat:
arrCoords ist ein Zweidimensionales Array.
d.H. Da muss sowas wie arrCoords[0][0] stehen.
Du hast nur einen Index angegeben: arrCoords[0]
Versuch das mal damit. Änder die Indexs nach deinem Bedarf, ih weiß nicht genau was darin gespeichert ist. -
Irgendwo muss ja sowas stehen wie
"new x2;" oder ähnlich
Kannst du das mal hier posten? -
Ohne Programmcode kann ich dir auch nicht direkt sagen, was du falsch machst.
Es könnte sein, dass du einen Funktionsnamen immer wieder falsch schreibst. -
Mir scheint die Variablen x2 und y2 sind als Array definiert.
Dann müsst ihr auch den Index angeben: x2[0] -
Poste mal die Zeile mit den Fehlern.
-
Also ich sehe nirgenswo eine Definition von "px/py/pz".
Kann es sein, dass du die Spielerposition dort übergeben willst?
Nach der Zeile zuvor wären das aber "fpx/fpy/fpz"PS: Kann man mir sagen, was die Funktion DistanceCameraTargetToLocation bewirkt?
-
Ich bin dabei einen Reallife-Server zu schreiben.
Bisher gab es kaum Probleme, aber nun bin ich dabei den Busbot anhalten zulassen, damit er die anderen Spieler nicht einfach weghaut.
Dies ist der NPCMode, den ich verwende:
#include <a_npc>
#include <float>
main(){
SetTimer("BusTimer",1000,1);
}
new trigger = 0;
new stopped = 0;
#define RECORDING "Frakbus2"
#define RECORDING_TYPE 1public OnRecordingPlaybackEnd()
StartRecordingPlayback(RECORDING_TYPE, RECORDING);public OnNPCEnterVehicle(vehicleid, seatid)
StartRecordingPlayback(RECORDING_TYPE, RECORDING);public OnNPCExitVehicle()
StopRecordingPlayback();public OnPlayerText(playerid,text[]){
//PauseRecordingPlayback();
}
forward BusTimer();
public BusTimer(){
new Float:X,Float:Y,Float:Z;
trigger = 0;
GetMyPos(X,Y,Z);
for(new i = 2; i < MAX_PLAYERS; i++){
if(IsPlayerInRangeOfPoint(2,10,X,Y,Z)){
PauseRecordingPlayback();
trigger = 1;
if(!stopped){
SendChat("Busfahrer schreit: \"Ey, Platz da!\"");
}
stopped = 1;
}
}
if(!trigger){
stopped = 0; ResumeRecordingPlayback();
}
return 1;
}So, nun erklär ich mal was passiert:
Wenn ich losfahre um den Bus aufzusuchen, verwende ich einen Befehl bei dem ein Marker gesetzt wird.
Der Marker liegt dann irgendwo auf der Straße. DAs Fahrzeug jedoch liegt dann irgendwo am Straßenrand.
Auf einmal springt der Marker weiter(ein Punkt, der etwas weiter entlang der Strecke liegt)
Und ich sehe das Fahrzeug des Bots ohne Beachtung der physikalischen Kräfte in irgendeine Richtung schweben.
Ich verstehe das nicht mehr.
Ich habe versucht den Bot mit OnPlayerText(playerid,text[]) anzuhalten, was ganz gut geklappt hat.
Ich hoffe, dass ihr mir helfen könnt.
MfG red13//edit: Zur Behebung von Verständnisproblemen: das 'new i = 2' in der for-Schleife ist dazu da, damit der Bus nicht die anderen Bots erkennt. 0 und 1 sind besetzt