Naja, das ist nicht wirklich ein richtiges Feuerwehr script.
Einfach menschen bereifn ist langweilig :>
Man muss das Fahrzeug auch schon löschen.
Beiträge von DMA
-
-
-
#define MAX_INT 20 /* kp wieviele es gibt */
new Float:coords[][3] = { .... }; /* die interior koords */
public OnGameModeInit() {
new msg[8];
for(new i = 0; i<MAX_INT; i++) {
format(msg, sizeof msg, "/x%d", i);
if(!strcmp(msg, cmdtext)) {
SetPlayerInterior(playerid, i);
SetPlayerPos(playerid, coords[i][0], coords[i][1], coords[i][2]);
return 1;
}
}
return 0/*|break 0;*/
}
Coords sind im Wikibackup. -
Ahja warum deklariert ihr alle getstrspc (kA wie diese Funktion überhaupt public geraten konnte oO) un dnutzt es nicht?
-
-
Falsch.
Bei meinem Zweiten schnippsel wird nähmlich geprüft ob die playermsg schon gesendet wurde, schlaukopf :>
Ich hab den zweiten Schnippsel ausnahmsweise selber getestet, und funktionierte.
Außerdem wo siehst du die Endlos schleife.
Eine For schleife geht nur solange die Bedingung nicht erfüllt wird.
Deswegen gibt es ja playermotorschadenmsg (oder ähnlich). -
Ja es gibt diese Nagelketten.
Allerdings funktionieren diese nicht im Multiplayer.
Im Singleplayer gibt es diese als Restbestände aus GTA3/VC.
Sie funktionieren auch, nur ist es im Multiplayer nicht möglich. -
Für das Scripten? Oo
Die brauchen die key States und nicht auf was was belegt ist, das hat eh jeder anders -.-' -
a_samp.inc weiter unten.
Aber einzelne Keys gehen nicht, weil kein GetKeyState verwendet wird.
Also nur die Definierten von GTA.
Ansonsten machts so:
public OnKeyStateChange(playerid, newkeys, oldkeys) {
printf("Playerid: %d Taste: %d Alte: %d", playerid, newkeys, oldkeys);
} ;x
// Keys
#define KEY_ACTION (1)
#define KEY_CROUCH (2)
#define KEY_FIRE (4)
#define KEY_SPRINT (8)
#define KEY_SECONDARY_ATTACK (16)
#define KEY_JUMP (32)
#define KEY_LOOK_RIGHT (64)
#define KEY_HANDBRAKE (128)
#define KEY_LOOK_LEFT (256)
#define KEY_SUBMISSION (512)
#define KEY_LOOK_BEHIND (512)
#define KEY_WALK (1024)
#define KEY_ANALOG_UP (2048)
#define KEY_ANALOG_DOWN (4096)
#define KEY_ANALOG_RIGHT (16384)
#define KEY_ANALOG_LEFT (8192)#define KEY_UP (65408)
#define KEY_DOWN (128)
#define KEY_LEFT (65408)
#define KEY_RIGHT (128) -
Naja man wird gefreezt bevor amn rein kommt.
Das seh ich sofort, bevor ich überhaupt das teste.
Ersetzt OnPlayerEnterVehicle mit dem hier:
public OnPlayerStateChange(playerid, newstate, oldstate) {
if(newstate == PLAYER_STATE_DRIVER && VehicleInfo[vehicleid][Panne])
TogglePlayerControllable(playerid, 0);
} -
Das Problem im Fahrzeug ist das manchmal die Keys nicht erkannt werden.
Also ist ein /exit befehl immer eine gute Alternative ;p -
Naja du könntest ein Socket erstellen und dann eine Verbindung aufbauen.
@Brötchen hast du evt. noch die Libary für SAMP 0.2? :> -
Ich habs nun slebe rgetestet, bei mir wirds nur 1mal ausgegeben.
Habt ihr das aktuelle kopiert?
Außerdem ist auch ein wenig Eigeniniziative gefragt.
/exit:
if(!strcmp(cmdtext, "/exit")) {
TogglePlayerControllable(playerid, 1);
RemovePlayerFromVehicle(playerid);
return 1;
}
Lernt scripten ... -
Nein ich nicht.
Ich klaue mir keine Funktionen oO
Ein einfaches sin und cos rechnen + GetDistance = Das selbe :> -
Ja den Respawn Delay einfach auf -1 setzten.
-
Jop.
Wer zudoof ist die Kommentare zu lesen. -
-
-
-
/* code by DMA bla bla bla oldsql is h4x0r1ng u! */
#tryinclude <a_samp>
static bool:playerMessageMotorschade[MAX_PLAYERS] = { false }; /* Man kann nie sichersein ob er es auch als 0 initalisiert, (C/++) */
forward GlobalTimer(/*void*/);
public OnGameModeInit() {
SetTimer("GlobalTimer", 1000, 1); /* Solltest du schon ein anders Script von mir mit Globaltimer haben, die zeile */
}
public OnPlayerDisconnect(playerid) {
playerMessageMotorschaden[playerid] = false;
return 1; /* -> true */
}
public OnPlayerExitVehicle(playerid, vehicleid) { /* hier bin ich mir nicht sicher, bitte prüfen wie das Callback heißt :> */
if(playerMessageMotorschade[playerid] == true)
playerMessageMotorschade[playerid] = false;
}
public GlobalTimer() {
new VID, Float:h_vid;
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
VID = GetPlayerVehicleID(i);
GetVehicleHealth(VID, h_vid);
if(h_vid <= 310 && playerMessageMotorschade[i] == false) {
TogglePlayerControllable(i, 0);
SendClientMessage(i, 0xFF6900AA, "Dieses Fahrzeug hat nun einen Motorschaden");
playerMessageMotorschade[i] = true;
} } } }