Achso öhm xD
Naja dies funktioniert zwar, aber wenn ich in ein anderes Auto steige, das 1000 Zustand hat, hat es trz ein Motorschaden. (dies tretet nur auf, wenn ich zuvor einen Motorschaden hatte an einem anderen Fahrzeug.)
Was soll ich tun?
Beiträge von xSoldier
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
-
-
Stimmt das so? Jeffry:
Wenn ich los fahre, steht da sofort: Error Motorschaden..if(strcmp(cmd, "/motor",true) == 0)
{
if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, COLOR_GRAD1, "{FFFFFF}Fahrräder haben {FF0000}keinen{FFFFFF} Motor ...");
return 1;
}
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
new engine,lights,alarm,doors,bonnet,boot,objective;
new vid = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(mSchaden[playerid] == 1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Motoschaden!");
if(vid != INVALID_VEHICLE_ID)
{
if(engine == VEHICLE_PARAMS_ON)
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
OnPlayerCommandText(playerid,"/me stellt den Motor ab!");
}
else
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
OnPlayerCommandText(playerid,"/me betätigt die Zündung. Der Motor springt an!");
}
}
return 1;
} -
Danke Jeffry:
1 Frage noch, wie Frage ich ab ob der einen Motorschaden hat?
denn dann soll der Motor nicht mehr starten könnenif(strcmp(cmd, "/motor",true) == 0)
{
if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, COLOR_GRAD1, "{FFFFFF}Fahrräder haben {FF0000}keinen{FFFFFF} Motor ...");
return 1;
}
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
new engine,lights,alarm,doors,bonnet,boot,objective;
new vid = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(vid != INVALID_VEHICLE_ID)
{
if(engine == VEHICLE_PARAMS_ON)
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
OnPlayerCommandText(playerid,"/me stellt den Motor ab!");
}
else
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
OnPlayerCommandText(playerid,"/me betätigt die Zündung. Der Motor springt an!");
}
}
return 1;
} -
Das mit der Schleife hatte ich bereits versucht, leider nur mit dem gleichen Error
-
Hallo,
wie die Überschrift schon verrät habe ich einen Bug im Motorschaden System.forward VehicleHealth(playerid);
OnGameModeInit:
SetTimer("VehicleHealth", 6000, 1);forward VehicleHealth(playerid);
public VehicleHealth(playerid)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
new Float:health;
new veh = GetPlayerVehicleID(playerid);
GetVehicleHealth(veh, health);
if(health > 400)
{
SendClientMessage(playerid,0xFF0000FF,"Du hast einen Motorschaden!");
return 1;
}
}
}Kriege leider immer diesen Error:
(51227) : error 030: compound statement not closed at the end of file (started at line 51212)Zeile:
if(IsPlayerConnected(playerid))Zeile 2:
Nicht vorhanden!Würde mich sehr um eine positive Antwort freuen, wie ich das beheben kann.
Liebe Grüße,
Soldier -
Ja, aber wie mache ich das das es jede Fraktion abließt und man muss in der nähe eines tores sein?
-
Hallo wie die Überschrift schon verrärt, möchte ich einen /aufbrechen (Tore knacken) für die Hitmen machen.
Weiß aber nicht genau wie, ich möchte das professionell machen, mit 10 Sekunden warten um was Tor aufzuknacken usw..
Bloß die Frage ist wie soll ich das anstellen? bzw anfangen.Tore gehen zurzeit bei mir so auf:
if(strcmp(cmd,"/btor",true) == 0)
{
if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14)
{
MoveObject(ballastor,1123.0999755859, -1207.0999755859, 13.699999809265,3.0);
SetTimer("CloseBallasTor", 5000, 0);
SendClientMessage(playerid, COLOR_RED, "Tor wird geöffnet 5 Sekunden Zeit!");
}
else SendClientMessage(playerid,COLOR_RED," Du bist kein Ballas Homie");
return 1;
}
Gibt es da Tutorial oder könnt ihr mir einen Tipp geben?
Würde mich freuen auf schnelle Antworten.Liebe Grüße,
Soldier//EDIT
Habe etwas gemacht, aber ich komme da nicht genau weiter, da es dann das Tor nicht mehr schließt.if(strcmp(cmd, "/knacken", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
{
SetTimerEx("Knacken",1000*1,true,"i",playerid);
}
}
}forward Knacken(playerid);
public Knacken(playerid)
{
MoveObject(MVTor,1596.853027, -1638.482666, 15.300621,3);
} -
Okay, danke dir
-
Ahh hmm komisch nun funktioniert es :O
Danke, aber habe noch eine Frage.
Wie kann ich abfragen ob min. 3 Spieler der anderen Fraktion online sind um einen Gangwar starten zu können?if(strcmp(cmdtext,"/capture",true)==0){
if(IsAFightFaction(GetPlayerFaction(playerid))){
for(new fs;fs<sizeof(FightSystem);fs++){
if((FightSystem[fs][fsOwnerFaction] == GetPlayerFaction(playerid) && FightSystem[fs][fsFightTime]) || FightSystem[fs][fsAttackFaction] == GetPlayerFaction(playerid))
return SendClientMessage(playerid,FS_COL_GREY,"** Deine Gang / Mafia ist bereits in einem Fight.");
}
new TempZone = GetPlayerFightzone(playerid);
if(TempZone != -255){
if(!IsAFightFaction(FightSystem[TempZone][fsOwnerFaction]))
return SendClientMessage(playerid,FS_COL_GREY,"Gebiet wurde ausgeschaltet.");
if(FightSystem[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
return SendClientMessage(playerid,FS_COL_GREY,"** Diese Zone gehört bereits euch.");
if(FightSystem[TempZone][fsFightTime] || FightSystem[TempZone][fsAttackFaction] != -255)
return SendClientMessage(playerid,FS_COL_GREY,"** In diesem Gebiet wird bereits geschossen.");
if(FightSystem[TempZone][fsLastFight]){
new fsText[178];
format(fsText,sizeof(fsText),"Ganggebiet: Dieses Ganggebiet wurde bereits Angegriffen, wartet noch: '%d' Minuten.",FightSystem[TempZone][fsLastFight]);
SendClientMessage(playerid,FS_COL_GREY,fsText);
return 1;
}
for(new fs;fs<sizeof(FightSystem);fs++){
if(FightSystem[fs][fsOwnerFaction] == FightSystem[TempZone][fsOwnerFaction] && FightSystem[fs][fsAttackFaction] != -255)
return SendClientMessage(playerid,FS_COL_GREY,"Ganggebiet: Die Gang / Mafia der das Ganggebiet gehört hat bereits ein Kampf.");
}
new fsTextToOwner[255];
format(fsTextToOwner,sizeof(fsTextToOwner),">>> Fight <<< | Ihr werdet von: %s angegriffen, setzt euch zur wehr!",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
new fsName[MAX_PLAYER_NAME];
GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
new fsTextToAttack[255];
printf("fsOwnerFaction: %d - FactionName: %s",FightSystem[TempZone][fsOwnerFaction],GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
format(fsTextToAttack,sizeof(fsTextToAttack),">>> Fight <<< | %s hat ein Kampf mit: %s begonnen, macht sie Platt!",fsName,GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
new fsText[64];
format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
TextDrawSetString(FightSystem[TempZone][fsWinFaction],fsText);
TextDrawSetString(FightSystem[TempZone][fsWinKills],"~y~00 Kills");
format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
TextDrawSetString(FightSystem[TempZone][fsLoseFaction],fsText);
TextDrawSetString(FightSystem[TempZone][fsLoseKills],"~y~00 Kills");
TextDrawSetString(FightSystem[TempZone][fsTime],"Verbl. Zeit: 10 Minuten");//ZEIT
for(new i;i<MAX_PLAYERS;i++){
if(IsPlayerConnected(i)){
GangZoneFlashForPlayer(i,FightSystem[TempZone][fsZoneID],GetZoneColorOfFaction(GetPlayerFaction(playerid)));
if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction]){
PlayerPlaySound(i,1058,0.0,0.0,0.0);
SendClientMessage(i,FS_COL_YELLOW,fsTextToOwner);
TextDrawShowForPlayer(i,Fight);
TextDrawShowForPlayer(i,FightUnderline);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
}
if(GetPlayerFaction(i) == GetPlayerFaction(playerid)){
PlayerPlaySound(i,1058,0.0,0.0,0.0);
SendClientMessage(i,FS_COL_YELLOW,fsTextToAttack);
TextDrawShowForPlayer(i,Fight);
TextDrawShowForPlayer(i,FightUnderline);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
}
}
}
FightSystem[TempZone][fsAttackFaction] = GetPlayerFaction(playerid);
FightSystem[TempZone][fsKillsOfOwner] = 0;
FightSystem[TempZone][fsKillsOfAttack] = 0;
FightSystem[TempZone][fsFightTime] = 10; //ZEIT
FightSystem[TempZone][fsCTF][0] = -255;
FightSystem[TempZone][fsCTF][1] = 0;
FightSystem[TempZone][fsCTF][2] = 0;
return 1;
}return SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keinem Gebiet!");
}else SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keiner Gang / Mafia.");
return 1;
}return 0;
} -
Wie ich es vorhin geändert hatte:
stock GetZoneColorOfFaction(Faction){
if(Faction == 5) return 0x00FF78AA; //LCN
else if(Faction == 5) return 0x00FF78AA; //LCN
else if(Faction == 13) return 0x4BBC00AA; //GS
else if(Faction == 14) return 0x6E00FFAA; //Ballas
else if(Faction == 6) return 0xFFABFFAA; //Yakuza
else return 0x009BFFAA; //NoN-Gang
}
Ich hatte am Ende FF weggemacht und AA gesetzt aber funktioniert nicht.So funktioniert es bei mir (aber ich möchte das man durchsehen kann)
stock GetZoneColorOfFaction(Faction){
if(Faction == 5) return 0x00FF78FF; //LCN
else if(Faction == 5) return 0x00FF78FF; //LCN
else if(Faction == 13) return 0x4BBC00FF; //GS
else if(Faction == 14) return 0x6E00FFFF; //Ballas
else if(Faction == 6) return 0xFFABFFFF; //Yakuza
else return 0x009BFFFF; //NoN-Gang
} -
Jeffry:
Wenn ich das änder, zeigt es keine Gangzonen mehr an. -
Meinst du das?
stock GetZoneColorOfFaction(Faction){
if(Faction == 5) return 0x00FF78FF; //LCN
else if(Faction == 5) return 0x00FF78FF; //LCN
else if(Faction == 13) return 0x4BBC00FF; //GS
else if(Faction == 14) return 0x6E00FFFF; //Ballas
else if(Faction == 6) return 0xFFABFFFF; //Yakuza
else return 0x009BFFFF; //NoN-Gang
} -
Hallo liebes Breadfish,
wie die Überschrift verrät, soll meine Gangzone richtig angezeigt werden, das man durch sehen kann und nicht z.B pur Grün.So siehts momentan aus:
So soll es aussehen:
Würde mich sehr um schnelle antworten freuen.
Liebe Grüße,
Soldier -
Okay, danke ich werde das gleich ausprobieren.
Hab aber noch eine Frage, kann man das so machen das man mit der Taste Z auf dem Motorrad es abschließen kann und zu Fuß? -
Hallo,
wie die Überschrift schon sagt, suche ich diesen Befehl wie ich das genau mache.
Ich habe keinen Code in dieser Liste gefunden mit der Taste "Z".
http://wiki.sa-mp.com/wiki/KeysWürde mich sehr um antworten freuen.
-
Finde nichts..
forward DropPlayerWeapons(playerid);
public DropPlayerWeapons(playerid)
{
new Float:x,Float:y,Float:z,dpw_model[MAX_PLAYERS];
dpw_model[playerid] = GetPlayerWeapon(playerid);
GetPlayerPos(playerid,x,y,z);
pickup[playerid] = CreatePickup(waffenarray[dpw_model[playerid]],3,x,y,z,-1);
SetTimerEx("DeletePickup",DeleteTime*1000,false,"d",pickup[playerid]);
GetPlayerWeaponData(playerid,GetWeaponSlot2(PICKUP_MODELW[playerid]),PICKUP_MODELW[playerid],PICKUP_AMMOW[playerid]);
return 1;
}Vom aufheben, hab ich nichts.
Könnte es theoretisch auch an dies liegen?if(strcmp(cmd , "/createpickup", true) == 0)
{
new Float: X, Float: Y, Float: Z, world;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerVirtualWorld(playerid,world);
CreatePickup(346,1, X, Y, Z, world);
return 1;
}if(strcmp(cmd, "/createpickup", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /createpickup [Model] [Type]");
SendClientMessage(playerid, COLOR_GRAD2, "Optionen: | 1240 - Heal | 1242 - Armor | 342 - Granaten | 348 - Deagle |");
SendClientMessage(playerid, COLOR_GRAD2, "Optionen: | 349 - Shotgun | 350 - Sawnoff Shotgun | 355 - AK-47 | 356 - M4 |");
SendClientMessage(playerid, COLOR_GRAD2, "Optionen: | 372 - Tec-9 | 357 - Rifle | 358 - Sniper");
return 1;
}
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X,Y,Z);
new model;
model = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /createpickup [Model] [Type = 2]");
SendClientMessage(playerid, COLOR_GRAD2, "Optionen: | 1240 - Heal | 1242 - Armor | 342 - Granaten | 348 - Deagle |");
SendClientMessage(playerid, COLOR_GRAD2, "Optionen: | 349 - Shotgun | 350 - Sawnoff Shotgun | 355 - AK-47 | 356 - M4 |");
SendClientMessage(playerid, COLOR_GRAD2, "Optionen: | 372 - Tec-9 | 357 - Rifle | 358 - Sniper");
return 1;
}
new type;
type = strval(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1337)
{
if((model >= 1210 && model <= 1325) && (model >= 321 && model <= 372)) { SendClientMessage(playerid, COLOR_GRAD2, "HINT: Only Models above 1210, and below 1325; above 321 and below 373 are allowed!"); return 1; }
if(type == 2) { SendClientMessage(playerid, COLOR_GRAD2, "Info: Nur Type ID 3 ist erlaubt."); return 1; }
CreateDynamicPickup(model, type, X,Y,Z);
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s hat ein Pickup erstellt (X:%f Y:%f Z:%f) [Model: %d - Type: %d]",d,m,y,h,mi,s,sendername,X,Y,Z,model,type);
SperreLog(string);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du darfst das nicht");
}
}
return 1;
} -
Bin zwar die Errors los, aber ich kriege immernoch 10 Schuss..
-
Stimmt das so?
GetPlayerWeaponData(playerid,GetWeaponSlot(PICKUP_MODELW[playerid]),PICKUP_MODELW[playerid],PICKUP_AMMOW[playerid]);Kriege den Error, das GetWeaponSlot schon definiert ist.
Er zeigt in diese Zeile:
stock GetWeaponSlot(weaponid)Errors:
C:\Users\Matze\Desktop\Server\WOS Script 2.0\gamemodes\Dark.pwn(51134) : error 025: function heading differs from prototype
C:\Users\Matze\Desktop\Server\WOS Script 2.0\gamemodes\Dark.pwn(51135) : error 021: symbol already defined: "GetWeaponSlot" -
Okay, danke aber was bedeutet das?
case 0,1: return 0;und wo soll GetPlayerWeaponData hin?
-
Ich hatte das so gemacht:
new waffenarray[] =
{
-1, // Schlagring
331, // - Brass Knuckles
333, // Golf Club
334, // Night Stick
335, // Knife
336, // baseball bat
337, // shovel
338, // pool cue
339, // katama
341, // chainsaw
321, // regular dildo
322, // white dildo
323, // Medium, white vibrator
324, // smaill, silver vibrator
325, // flowers
326, // cane
342, // grendade
343, // tear gas
344, // molotov
-1, // RPG rocket - we can't pick up those, do we oO
-1, // Heat-Seeking Rocket
-1, // Hydra rocket
346, // colt 45
347, // colt 45 + silencer
348, // deagle
349, // shotgun
350, // sawn-off
351, // spaz
352, // micro-uzi
353, // mp5
355, // ak47
356, // m4
372, // tec9
357, // country rifle
358, // sniper rifle
359, // rocket launcher
360, // heat-seeking rocket launcher
361, // flamethrower
362, // minigun
363, // sachtel charges
-1, // detonator
365, // spray can
366, // fire extinguisher
367, // camera
-1, // night-vision goggles
-1, // heat-vision goggles
371 // parachute
};