Wie könnte man es anstellen? Kannst du mir eventuell ein Ansatz geben?
Da gibt es viele..hier ein Beispiel: http://forum.sa-mp.com/showthread.php?t=71136 ![]()
Wie könnte man es anstellen? Kannst du mir eventuell ein Ansatz geben?
Da gibt es viele..hier ein Beispiel: http://forum.sa-mp.com/showthread.php?t=71136 ![]()
@Jeffry aber wenn man die Restaurant etc. entfernt bleiben doch nur noch die PayNsprays oder? Sonst bekommt man nur vom Script her Geld.
Was Jeffry meint ist dass es über ein eigenes Geldsystem schon sicher ist aber die Standardfunktionen im Spiel die im Zusammenhang mit dem Geld stehen, (Automaten, Pay n Sprays, Casino etc.) funktionieren dann nicht richtig bzw. macht man weder Gewinn noch Verluste außer man scriptet diese Systeme selbst.
Dir fehlt die playerid in der IsPlayerInDynamicArea funktion
Was Jeffry meint ist dass es über ein eigenes Geldsystem schon sicher ist aber die Standardfunktionen im Spiel die im Zusammenhang mit dem Geld stehen, (Automaten, Pay n Sprays, Casino etc.) funktionieren dann nicht richtig bzw. macht man weder Gewinn noch Verluste außer man scriptet diese Systeme selbst.
Ah okay, ich verstehe... Aber wenn man richtige Abfragen bei den Automaten & den Pay n Sprays hinzufügt, dann ist das normale Geldsystem doch theoretisch sicher oder?
if(IsPlayerInDynamicArea(TrashCans_InteractionField[CurrentTrashcanArea[playerid]]))
so ist es definiert:
new CurrentTrashcanArea[MAX_PLAYERS] = {-1,...};
da ist doch playerid oder nicht?
Alles anzeigen
if(IsPlayerInDynamicArea(TrashCans_InteractionField[CurrentTrashcanArea[playerid]]))
so ist es definiert:
new CurrentTrashcanArea[MAX_PLAYERS] = {-1,...};
da ist doch playerid oder nicht?
Ich glaube er meint:
if(IsPlayerInDynamicArea(playerid, TrashCans_InteractionField[CurrentTrashcanArea[playerid]]))
Ich glaube er meint:if(IsPlayerInDynamicArea(playerid, TrashCans_InteractionField[CurrentTrashcanArea[playerid]]))
Danke der warning ist weg ![]()
case DIALOG_BUYPRIVATEVEHICLE:
{
new string[128];
if(!response)
{
SetCameraBehindPlayer(playerid);
UnfreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
return 1;
}
if(response)
{
for(new i=0;i<sizeof(autoVehicles);i++)
{
if(GetPlayerVehicleID(playerid) == autoVehicles[i])
{
if((GetMoney(playerid) - VehicleShop[i][Preis]) < 0)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, ERROR_MONEY);
SetCameraBehindPlayer(playerid);
UnfreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
return 1;
}
if(GetPlayerVehicleCount(playerid) >= MAX_PLAYER_VEHICLES)
{
SendClientMessage(playerid, COLOR_GREY, "Du kannst keine weiteren Fahrzeuge kaufen.");
SetCameraBehindPlayer(playerid);
UnfreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
return 1;
}
GiveMoney(playerid, -VehicleShop[i][Preis]);
format(string, sizeof(string), "Dein Fahrzeug (%s) steht am Autohaus bereit.", VehicleShop[i][Name]);
SendClientMessage(playerid, COLOR_WHITE, string);
CreatePlayerVehicle(playerid, VehicleShop[i][modelid], VehicleShop[i][buySpawnX], VehicleShop[i][buySpawnY], VehicleShop[i][buySpawnZ], VehicleShop[i][buySpawnA], COLOR_HEX_DARKBLUE"- TÜV -", (VehicleShop[i][Preis]/2), 0, 1, 1);
SetCameraBehindPlayer(playerid);
UnfreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
if(Spieler[playerid][pTutorial] > 0)
{
ShowTutorial(playerid, "Du hast dich also fuer~n~dieses Auto entschieden.~n~Wenn du ein schoenen~n~Ort findest, indem du~n~dein Auto parken moechtest,~n~tippe /parken ein. Achja,~w~dein Auto verliert jedes~mal, wenn der Motor~n~eingeschaltet ist, an Benzin~n~Du solltest also immer~n~auf dein Tank achten.~n~~n~Steige in dein gekauftes~n~~b~Fahrzeug ~w~ein und fahre~n~zum ~r~Checkpoint~w~!");
SchonGewusst(playerid, "Wir besitzen auch eine~n~~b~Fachebook ~w~Page");
SetPlayerCheckpointEx(playerid, 1003.9152,-939.3000,42.1797, 2.0, CP_TUTORIAL_10, CP_TYPE_TUTORIAL);
}
return 1;
}
}
}
}
Alles anzeigen
da besteht immer noch das problem mit ShowTutorial.
Bei jeden anderen Funktioniert es so aber wen man beim Autohaus angekommen ist geht ja dann der Checkpoint weg. dann muss man sich ein Auto kaufen. Hat man sich ein Auto gekauft sollte der Nexte Checkpoint kommen der kommt ja aber der Text wird nicht angezeigt
Gut'n zusammen!
Ich hatte da eine Idee, im Tutorial möchte ich gerne das ein NPC ein Zug im Bahnhof rein fährt (Spieler ist eine Virtuelle Welt) und im Bahnhof hält.
Nun ist meine Frage, kann ich ein NPC in eine Virtuelle Welt "stecken"?
Und, führt es zu Probleme wenn sich zB 5 Leute gleichzeitig im Tutorial befinden? Das also 5 Züge, in einer anderen Virtuellen Welt.
MfG.
Aaron!
Das ist kein Problem, das sollte funktionieren.
Allerdings ist das halt nicht so optimal diese Idee...da wenn 30 Leute im Tutorial sind..brauchst auch 30 NPCs ![]()
Gibt es eine andere Möglichkeit einen Zug zu bewegen?
MfG.
Aaron!
Gibt es eine andere Möglichkeit einen Zug zu bewegen?
Wenn, dann nur mit SetVehicleVelocity hab ich aber nie probiert und sieht wahrscheinlich nicht so spektakulär aus, wenn es überhaupt geht ![]()
Wenn, dann nur mit SetVehicleVelocity hab ich aber nie probiert und sieht wahrscheinlich nicht so spektakulär aus, wenn es überhaupt geht
Funktioniert bei Zügen leider nicht - sind dadurch weder zu beschleunigen noch zu stoppen.
CMD:bankrob(playerid)
{
new cops, string[128],Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
if(Spieler[playerid][pLevel] < 3)return SendClientMessage(playerid, COLOR_GREY, "Das kannst du erst ab Level 3!");
if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1424.2394,-1003.7420,1639.7843))return SendClientMessage(playerid, COLOR_GREY, "Du befindest dich nicht am Banktresor.");
if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 6 || Spieler[playerid][pFraktion] == 15)return SendClientMessage(playerid, COLOR_GREY, "Du kannst als Beamter keine Bank ausrauben.");
if(gettime() < BankRobTime)return SendClientMessage(playerid, COLOR_GREY, "Die Bank wurde vor kurzem ausgeraubt, komm später wieder!");
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(Spieler[i][pFraktion] == 1)
{
cops++;
}
}
}
//if(cops < 1)return SendClientMessage(playerid, COLOR_GREY, "Es müssen mindestens 2 Beamte online sein!");
BankRobTime = gettime()+(60*60); // Erst in 1 Stunde wieder
OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]+6));
Spieler[playerid][pWanteds] += 6;
SendClientMessage(playerid, COLOR_RED, "Du hast ein Verbrechen begangen. (Bankraub) Reporter: Unbekannt");
format(string, sizeof(string), "Dein aktuelles Wanted Level: %d", Spieler[playerid][pWanteds]);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "HQ: %s (ID: %d) hat ein Verbrechen begangen: Bankraub, over.", GetName(playerid), playerid);
SendFraktionMessage(1, COLOR_COP_MELDUNG, string);
format(string, sizeof(string), "HQ: Reporter: Unbekannt, Aktuelles Wantedlevel: %d, over.", Spieler[playerid][pWanteds]);
SendFraktionMessage(1, COLOR_COP_MELDUNG, string);
format(Spieler[playerid][pWantedReason], 32, "Bankraub");
UpdateWantedTD(playerid);
pIsRobbingBank[playerid] = 1;
pRobbingTimer[playerid] = 240;
if((x > -992.5172 && x < 4000.0000) && (y < 528.0000 && y > -4000.0000))//Los Santos
{
SendFraktionMessage(1, COLOR_COP_MELDUNG, "HQ: An alle Einheiten, die Los Santos Bank wird überfallen!");
format(string, sizeof(string), "%s raubt die Bank in Los Santos aus!", GetName(playerid));
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
}
if((x > -4000.0000 && x < -992.5172) && (y < 4000.0000 && y > -4000.0000))//San Fierro
{
SendFraktionMessage(1, COLOR_COP_MELDUNG, "HQ: An alle Einheiten, die San Fierro Bank wird überfallen!");
format(string, sizeof(string), "%s raubt die Bank in San Fierro aus!", GetName(playerid));
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
}
if((x > -992.5172 && x < 4000.0000) && (y < 4000.0000 && y > 528.0000))//Las Venturas
{
SendFraktionMessage(1, COLOR_COP_MELDUNG, "HQ: An alle Einheiten, die Las Venturas Bank wird überfallen!");
format(string, sizeof(string), "%s raubt die Bank in Las Venturas aus!", GetName(playerid));
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
}
return 1;
}
Alles anzeigen
Hallo,
Ich hab eine frage wen ich die Bank in San Fierro ausraube wird aber ausgegeben das ich die bank in Los Santos ausraube warum?
Ich hab da ein Problem, ich wollte gerade ein Zug Erstellen, der immer am Bahnhof stehen soll, leider steht dort kein Zug.
CreateVehicle(538, 1779.4401, -1953.9058, 15.0431, -90.0000, -1, -1, 100);
Bild wo der Zug stehen soll/sollte: http://imgur.com/a/LkdJv
MfG.
Aaron!
Bin mir ziemlich sicher das Züge per AddstaticVehicle erstellt werden müssen ![]()
@JustMe.77 Ja, stimmt. ![]()
Kannst du mir jetzt noch Verraten wie ich das Unzugänglich machen kann?
MfG.
Aaron!
Wie kann man es machen, dass wenn man an einem Punkt die Taste "F" drückt in ein Interior geportet wird?
Habe das noch nicht wirklich gemacht aber eventuell per OnPlayerEnterVehicle abfragen ob er in den Zug einsteigt und dort dann das betreten des Zuges verweigern.
Weitere Möglichkeit (bin mir nicht sicher ob das geht) wäre ein Bot in den Zug zu platzieren sodass der Fahrer Sitz besetzt ist und du nicht rein kannst.
Du fragst bei OnPlayerKeyStateChange ab ob der Spieler die Taste F drückt und wenn er dann in der Nähe der Position ist, teleportierst du ihn.
IsPlayerInRangeOfPoint
OnPlayerKeyStateChange
Kann dir später ein Beispiel machen wenn ich am PC bin ![]()
@JustMe.77 Stimmt, weißt du welcher Public Abfragt ob er in das Fahrzeug einsteigt?
Es gibt ja zwei, das einer wenn er Einsteigen will und der andere wenn er im Fahrzeug schon drin ist.
Brauche den wo er Einsteigen will, kennst du diesen vielleicht zufällig?
MfG.
Aaron!