[TUT] Busbot erstellen und zum anhalten bringen, wenn Spieler vor ihm steht :)

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend liebes Breadfish Forum,
    Heute habe ich mal ein bisschen rumgebastelt und durch einen genialen Tipp im Englischem Forum herrausgefunden, wie man den Busbot zum anhalten bringt, wenn ein Spieler vor im steht.
    Zunächst braucht ihr in eurem Filterscript Ordner, die .amx, "npc_record". Normalerweise sollte diese dabei sein, wenn ihr euch den Server Client von sa-mp.com/downloads
    downloadet.
    Nun macht ihr den Server on und geht InGame. Jetzt müssen wir uns als RCON Admin anmelden. Das machen wir mit "/rcon login [Euer RCON Passwort]". Dann ladet ihr die oben genannte
    AMX. Dies machen wir mit "/rcon loadfs npc_record".
    Das Script ist geladen wenn folgender Text als Nachricht erscheint:


    Nun müsst ihr euch in euren Bus setzen und "/vrecord busbot" eintippen. Als nächstes müsst ihr die Route fahren, die der Busbot später fahren soll.
    Kleiner Tipp: Halte bei Haltestellen mind. 10 Sekunden :D


    Ok, ihr seid eure Route gefahren. Dann tippt ihr "/stoprecord". Nun könnt ihr GTA schliesen oder minimieren. Macht am besten gleich euren Server aus, bzw. macht später einen Restart.
    Im Scriptfiles Ordner ist nun eine neue Datei erschienen:


    Dann zieht ihr die .rec-Datei in folgendes Verzeichnis: \npcmodes\recordings


    Jetzt öffnet ihr Pawno, macht STRG+N, löscht alle Zeilen im neuem Script und kopiert folgenden Code rein (Ich werde nicht viel dazu erklären, da das nur eine minimal abgeänderte Version von der taxi_ls_test.pwn im npcmodes Ordner ist.)


    Code
    #include <a_npc>new gStoppedForTraffic = 0;public ScanTimer();#define AHEAD_OF_CAR_DISTANCE    11.0#define SCAN_RADIUS        		 11.0main(){}stock GetXYInfrontOfMe(Float:distance, &Float:x, &Float:y){    new Float:z, Float:angle;    GetMyPos(x,y,z);    GetMyFacingAngle(angle);    x += (distance * floatsin(-angle, degrees));    y += (distance * floatcos(-angle, degrees));}public OnNPCModeInit(){	SetTimer("ScanTimer",200,1);}LookForAReasonToPause(){  	new Float:X,Float:Y,Float:Z;	new x=0;	GetMyPos(X,Y,Z);	GetXYInfrontOfMe(AHEAD_OF_CAR_DISTANCE,X,Y);	while(x!=MAX_PLAYERS) {	    if(IsPlayerConnected(x) && IsPlayerStreamedIn(x)) {			if( GetPlayerState(x) == PLAYER_STATE_DRIVER ||			    GetPlayerState(x) == PLAYER_STATE_ONFOOT )			{				if(IsPlayerInRangeOfPoint(x,SCAN_RADIUS,X,Y,Z)) {					return 1;				}			}		}		x++;	}	//new msg[256];	//new Float:angle;	//GetMyFacingAngle(angle);	//format(msg,256,"My yaw/heading = %f",angle);	//SendChat(msg);	return 0;}//------------------------------------------public ScanTimer(){	//new ticker = GetTickCount() - g_LastTick;    //printf("npctest: timer (%d)ms", ticker);    //g_LastTick = GetTickCount();    new ReasonToPause = LookForAReasonToPause();	if(ReasonToPause && !gStoppedForTraffic)	{	    //SendChat("I'm pausing");		PauseRecordingPlayback();		gStoppedForTraffic = 1;	}	else if(!ReasonToPause && gStoppedForTraffic)	{	    //SendChat("I'm resuming");	    ResumeRecordingPlayback();	    gStoppedForTraffic = 0;	}}//------------------------------------------StartPlayback(){	StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"busbot");	gStoppedForTraffic = 0;}//------------------------------------------public OnRecordingPlaybackEnd(){    StartPlayback();}//------------------------------------------public OnNPCEnterVehicle(vehicleid, seatid){    StartPlayback();}//------------------------------------------public OnNPCExitVehicle(){    StopRecordingPlayback();}//------------------------------------------


    WICHTIG: Erst auf speichern und dann auf compilen (F5)!
    Wie schon gesagt müsst ihr die PWN speichern ^^
    Ihr speichert es in den npcmodes Ordner unter den Namen "busbot". Jetzt compilen.
    Danach öffnet ihr eurer Gamemode und kopiert diese Zeilen rein:
    Ganz oben im Script

    Code
    new car_Busbot; //Der Bus, den der NPC brauch, um die Route zu fahren.


    OnGameModeInit

    Code
    ConnectNPC("busbot","busbot"); //Das der NPC connected. Das erste "busbot" ist der Name vom NPC. und das zweite "busbot" ist die AMX im npcmodes ordner.
    car_Busbot = CreateVehicle(431, -2257.1030,149.2979,35.3796,181.1235,-1,-1, -1); //Das Fahrzeug von dem Busbot


    Bei OnPlayerSpawn


    Jetzt nur noch in der Server.cfg schauen, ob hinter maxnpcs mindestens eine 1 oder höher steht. dann Server anschmeisen und schauen ob es funktioniert ^^
    Falls nicht, enfach per PM oder im Thread melden. Werde alle Fragen und evtl. verursachte Fehler im Script berichtigen.


    Hoffe ich konnte evtl. helfen ^^
    Und freue mich natürlich auf Verbesserungsvorschläge und Rückmeldung :D

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

    Einmal editiert, zuletzt von FreshDiddi ()

  • Nice Tutorial.
    Und ne gute Idee hab keine Lust das der Busfahrer mich umbringt^^


    Danke ^^

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

  • Es wäre gut für Anfänger noch zu schreiben, das falls man in der server.cfg "maxnpc" auf 0 hat, das kein Bot dann connecten kann und man dies umändern muss :)


    Danke für den Tipp ^^
    Wird editiert ;)

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

  • Naja


    du hast einiges erklärt nur nicht die sachen die du für den record brauchst

    Hier klicken für weitere Informationen

    Erklär mal das Ganze Was du da in den + Button eingetragen hast

  • hatte noch nie was mit bots zutun, muss ich die busbot.amx igendwo eintragen ?? in der server.cfg

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich habe die Route recordet und alles nach der Anweisung von oben gemacht keine Errors oder sonst etwas .
    Bloß es funktionier nicht in der server.cfg steht auch drin
    maxnpc 20



    Wie oben schon steht hab ich ein GF Login System darum geht es nicht bloß wie löse ich das Problem ??

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen