OKai Ich bekomme keine Errors mehr, aber es kommt auch kein Auto wenn ich Alpha auswähle
Beiträge von Hagi
-
-
Ich habe ein Problem mit Untermenüs:
ganz oben
new Menu:Auto;
new Menu:Sport;
new Menu:Alpha;gamemode
Auto = CreateMenu("Auto",2,200.0,100.0,150.0,150.0);
AddMenuItem(Auto,0, "Sport");
Sport = CreateMenu("Sport",2,200.0,100.0,150.0,150.0);
AddMenuItem(Sport,0,"Alpha");Menu row
public OnPlayerSelectedMenuRow(playerid, row)
{
TogglePlayerControllable(playerid,0);
new Menu:Menu = GetPlayerMenu(playerid);new Float:x,Float:y,Float:z;
new Float:rot;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,rot);if(Menu == Auto)
{
switch(row)
{
case 0:// Sport
{
ShowMenuForPlayer(Sport,playerid);
}if(Menu == Alpha)
{
CreateVehicle(602,x,y,z,rot,-1,-1,-1);
{}
}return 1;
}Bekomme diese Errors / Warnings
Zitatgamemodes\car.pwn(82) : error 002: only a single statement (or expression) can follow each "case"
gamemodes\car.pwn(82 -- 83) : error 028: invalid subscript (not an array or too many subscripts): "Menu"
gamemodescar.pwn(84) : warning 217: loose indentation
gamemodes\car.pwn(85) : warning 217: loose indentationBezieht sich auf:
1.if(Menu == Alpha)
2.if(Menu == Alpha)
{
3.CreateVehicle(602,x,y,z,rot,-1,-1,-1);
4.{Also der Teil
if(Menu == Alpha)
{
CreateVehicle(602,x,y,z,rot,-1,-1,-1);
{Sagt mir bitte wo der Fehler ist und wie ich ihn beheben kann.
-
Wo ist der unterscheid zwischen
CreateVehicle
CreateStaticVehicle -
Wie macht man denn ein Untermenü ?
-
mach mal
altgr + ( die Taste rechts neben dem kleinen Pfeil nach oben auf der rechten Seite der Tastatur.)
Dann solltest du ||||| bekommen.
-
Danke aber Keks of Death, dass raff ich im Moment noch nicht.
Hier mal das komplette script wie ich es bisher habe. Es funktioniert nicht.
Und zwar hebt man als Spieler das Ding sofort auf.
Und im Auto kann man es auch sofort aufheben.
Aber es passiert nicht keine Explosion
Ist meiner Meinung nach wohl ein return Fehler. Weiß aber nicht genau wo.#include <a_samp>
new mine;
new minescharf;new automine;
new autominescharf = 0;#define rot 0xFF0000FF
#define blau 0x0000FFFF#define Max_Mienen 10
forward mine1();
forward automine1();#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}public OnFilterScriptExit()
{
return 1;
}#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}#endif
public OnGameModeInit()
{
UsePlayerPedAnims();
SetGameModeText("Mine");
AddPlayerClass(0, 2050.3783, 1343.1572, 17.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddStaticVehicleEx(567,2050.3783, 1343.1572, 156.3746,0,-1,-1,-1);
return 1;
}public OnGameModeExit()
{
return 1;
}public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mine", cmdtext, true) == 0)
{
if (IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,blau," Du kannst eine Mine nur ausßerhalb eines Fahrzeuges legen");
return 1;
}
else
{
SendClientMessage(playerid,blau,"In 5 Sekunden wird die Mine scharf gemacht.");
SetTimer("mine1",5000,0);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
mine = CreatePickup(1654,3,x,y,z-0.5);
return 1;
}
}if (strcmp("/automine", cmdtext, true) == 0)
{
if (IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,blau," Du kannst eine Mine nur ausßerhalb eines Fahrzeuges legen");
return 1;
}
else
{
SendClientMessage(playerid,blau,"In 5 Sekunden wird die Mine scharf gemacht.");
SetTimer("automine1",5000,0);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
mine = CreatePickup(1654,14,x,y,z-0.5);
return 1;
}
}return 0;
}public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == mine)
{
if(minescharf == 1)
{
if(IsPlayerInAnyVehicle(playerid))
{
}
else
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateExplosion(x,y,z,7,10);
minescharf = 0;
return 1;
}
}
else
{
SendClientMessage(playerid,rot," !!! Achtung mine ist 'NOCH' nicht scharf. Renn so schnell du kannst !!!");
return 1;
}
}if(pickupid == automine)
{
if(autominescharf == 1)
{
if(IsPlayerInAnyVehicle(playerid))
{
new Float:x,Float:y,Float:z;
new auto;
auto = GetPlayerVehicleID(playerid);
GetVehiclePos(auto,x,y,z);
CreateExplosion(x,y,z,7,10);
}
else
{
}
}
else
{
SendClientMessage(playerid,rot," !!! Achtung mine ist 'NOCH' nicht scharf. Fahr so schnell du kannst weg !!!");
}
}return 1;
}public mine1()
{
minescharf = 1;
return 1;
}public automine1()
{
autominescharf = 1;
return 1;
} -
Ja Also ich hatte auch schon per Timer versucht, dass wenn der Timer abgelaufen ist, erst das Pickup erstellt wird. Aber dann muss man im Timer also im public x,y,z definieren und das beziehts sich ja auf die Playerpos die bei /mine existierte. Und leider gehts net, dass man bei /mine definiert und beim public einsetzt und erstellt.
@1: Da haben wir wohl gleichzeitig geschrieben XD. Ich probiers mal.
@2: Und wennich jetzt wollte, dass jeder Spieler nur 1 Mine legen kann. Muss ich dann
new minegelegt = 0;
machen und dann beim Mine gelegt
minegelegt = 1;
und dann bei /mine noch eine abfrage machen ?
if(minegelegt == 0);
{
xyz tatata befehl etc.
}
else
{
SendClientMessage(playerid,rot,"Du kannst nur eine Mine legen");
} -
Also ich will ein Minenscript machen.
Hier mal der auszug aus dem script
new mine;
#define rot 0xFF0000FF
#define blau 0x0000FFFFpublic OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mine", cmdtext, true) == 0)
{
if (IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,blau," Du kannst eine Mine nur ausßerhalb eines Fahrzeuges legen");
}
else
{
SendClientMessage(playerid,blau,"In 5 Sekunden wird die Mine scharf gemacht.");
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
mine = CreatePickup(1654,3,x,y,z-0.5);
return 1;
}
}
return 0;
}public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == mine)
{
if(IsPlayerInAnyVehicle(playerid))
{
}
else
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateExplosion(x,y,z+5,2,10);
}
}
return 1;
}So nun hab ich zwei bzw. drei Probleme
1. Die Mine soll erst nach 5 Sekunden pickupable sein, damit der Minenleger nicht gleich eine gewischt bekommt.
2. Die Entsethende Explosion funktioniert irgentwie nur ein mal.
Und sobald man eine neue Mine erstelle, gibt es keine Eyplosion, also beim Aufnehmen der Mine. Das soll aber anders sein, so dass es immer bei jeder mine eine Explosion gibt.3. Welche Eyplisionsart und welchen Radius würdet ihr empfehlen, dass auch alle Autos und Personen in der Nähe was abbekommen bzw. Sterben
Freue mich schon auf schnelle Hilfe, so wie immer hier
-
Poste mal die Zeile auf die sich der Error bezieht
-
Sieht so aus wie Paintball.
Nice gemacht -
Der Command funktioniert bis public respaw2() auf jeden fall weil mir der Contown-Text bis Respawn in 1 angezeit wird.
Also muss mit dem Befehl was nicht stimmen.Okai funktioniert alles und beim Carrespawn war ein return 1; zu viel
-
Nun endlich ist mein erstes richtiges Gamemode fertig gestellt.
Team - Deathmatch - San Fierro [ GAMEMODE]
Teams
-Police:
Befindet sich im SFPD und hat 3 Skins zur Auswahl ( Cop, SWAT , FBI )
Verfügbare Vehicle :
SFPD 7
Enforcer 4
FBI Ranger 8
Wasserwerfer Entfernt
SAPD Transporter 2
Patriot 4
Maverick SAPD 2
Gesamt : 27 Vehicle
Autofarbe: Schwarz-Weiß bzw. Blau-Mafia:
Befindet sich auf einem Firmengelände im Süden von San Fierro und hat ebenfalls 3 Gangster Skind zur Auswahl.
Verfügbare Vehicle:
Club 2
Flash 2
Euros 2
Alpha 2
Sultan 2
Jester 2
Uranus 2
Maverick 2
Burrito 4
Gesamt: 22 Vehicle
Autofarbe: weißBeschreibung
Die Teamsversuchen sich gegenseitig abzuschießen
Befehle
/help = Zeigt Regeln,Befehle und eine Beschreibung/police = Öffnet für die Polizei das Policetor
/mafia = Öffnet für die Mafia das Mafiator
/weapons = Zieht dem spieler 5000 $ ab und gibt ihm eine M4 (999), UZI (999), Shotgun (999), Desert Eagle (999), Katana (1), Schlagring (1)
Besonderheiten
- Die Teams können nur ihre eigenen Autos benutzen
-Beide Teams haben die Möglichkeit per Knopfdruck (Pickup) ihr Tor zu öffnen. Empfiehlt sich für mehrere Spieler
- Es befinden sich in den HQs, und für alle zugänglich, ein Lebens und Armor Upgrade (Pickup)
- Der Server kann per /endround neu gestartete werden, sofern man alsAdmin eingeloggt ist. Es beginnt ein 10 Sekunden Countdown.
- Die Autos respawnen erst wenn sie zerstört werden
oder
- Man per /carrespawn , als Admin, die Autos auf ihren Ursprungsplatz setzt- Eine Nachricht von wem man getötet wurde.
- Eine Nachricht wen man getötet hat.
- Bei Tot verliert man 2500 $
- Wenn man jemanden abschießt bekommt man 5000 $
Nachteile
-
Kein Register SystemMit Version 4 gibt es ein Register SystemVersion 2
Version 2 ist nun fertig und hochgeladen.
- Ein paar Bugs wurden behoben
- Ein Admin-Login-System wurde eingefügt
- Admin-Health ( Admin ist wenn er duty ist unsterblich )
- Man kann nun als Beifahrer in gegnerische Autos- Join / Leave Nachricht wurde eingefügt
- Kick-Nachrichten nun mit Namensangaben
- Neues Anti- Waffencheat
- Wasserwerfer der Police durch FBI Ranger ersetztVersion 3
Version 3 ist nun fertig und hochgeladen.
- Kleinere Bugfixes.
- Adminleben-System wurde gefixt.
- Es gibt nun Adminbefehle --> /adminlogin --> /ah.
- Der Marker zum Gegner wurde auf Radius 0 gesetzt. Nun stört er nicht mehr.
- Versionstextdraw eingefügt
- Nach 3 mal Teamkill wird man auto. gekickt.
- Ein Votingsystem für Wetter und UhrzeitVersion 4 BETA
Version 4 BETA ist nun fertig und hochgeladen.
- Kleinere Bugfixes
- Votingsystem entfernt
- Mitloggen fast aller Commands und Chats in der server.log Datei
- Einige Commands mit SSCANF ausgebaut
- Neue Admin-Commands --> /ah
- Registersystem mit Speicherung der Kills, Tode, Admin, Warn, Geld, Prison, Ban
- Adminbase mit Adminfahrzeugen
- Admin-Chat
- Team-Chat
- World Boundries um SFVersion 4
Version 4 ist nun fertig und hochgeladen.
- Adminlevel 2 hinzugefügt. Befehle /endround /carrespawn /ban /warn /makeadmin nur für diesen Admin-Level
- Script nun auf SAMP-Version 0.3
---------------------------------(C)opyright by Hagi.
Für Privatzwecke erlaubt.
Bei Anderen Zwecken bitte mit mir abklären.Downloadlink: Mafia-Police V4
Pastebin : Mafia-Police V 4
Dini.inc : Dini.incScreens: Entschuldigt das der Player so komisch aussieht, aber ich hab keine Nvida Graka.
-
-
Also ganz oben
forward respawn5();
forward respawn4();
forward respawn3();
forward respawn2();
forward respawn1();dann bei PlayerCommand
f(strcmp("/carrespawn",cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid) == 1)
{
GameTextForAll("Die Autos werden in 5 Sekunden auf Respawn gesetzt",1000,5);SetTimer("respawn5",1000,0);
}
else
{
SendClientMessage(playerid, rot, "Du bist nicht autorisiert um diesen Befehl ausführen zu können");
return 1;
}
}return 1;
und dann unten
public respawn5()
{
GameTextForAll("Die Autos werden in 4 Sekunden auf Respawn gesetzt",1000,5);
SetTimer("respawn4",1000,0);
}public respawn4()
{
GameTextForAll("Die Autos werden in 3 Sekunden auf Respawn gesetzt",1000,5);
SetTimer("respawn3",1000,0);
}public respawn3()
{
GameTextForAll("Die Autos werden in 2 Sekunden auf Respawn gesetzt",1000,5);
SetTimer("respawn2",1000,0);
}public respawn2()
{
GameTextForAll("Die Autos werden in 1 Sekunden auf Respawn gesetzt",1000,5);
SetTimer("respawn1",1000,0);
}public respawn1()
{
for(new v = 0; v < MAX_VEHICLES; v++)
{
SetVehicleToRespawn(v);
return 1;
}
return 1;
} -
Ja der wird ausgelöst durch einen command der dann per timer auf den public zugreift.
Aber das ist alles richtig. DAran kann es eigentlich nicht liegen -
Also ich habe vor einiger Zeit schon mal gefragt und eine Antwort bekommen sie auch funktioniert hat.
Aber irgentwie funktioniert sie jetzt nicht mehr.Außer dem hier hab ich nix anderes für den Carrespawn drin
public respawn1()
{
for(new v = 0; v < MAX_VEHICLES; v++)
{
SetVehicleToRespawn(v);
return 1;
}
return 1;
}Weiß vileicht woran es liegen kann das es nicht mehr funktioniert.
Hab ich vieleicht ausversehen was gelöscht, kann das sein ?Desweiteren bekommt man wenn man jemanden tötet diese Nachricht
new string[256], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "Du hast --> %s <-- umgebracht", name);
GameTextForPlayer(killerid,string,3000,3);nun soll auch derjenige der getötet wurde eine Nachricht bekommen
new string2[256], name2[MAX_PLAYER_NAME];
GetPlayerName(killerid, name, sizeof(name2));
format(string2, sizeof(string), "Du wurdest von --> %s <-- umgebracht", name2);
GameTextForPlayer(playerid,string,3000,3);Das Problem ist nur das dann bei den der getötet wurde steht, dass er von sich selber getötet wurde.
Weiß einer woran das liegt?Wäre toll wenn ihr mir helfen könnet.
-
Danke hat funktioniert
-
Also hier der script-schnipsel
// Police
new newcarp = GetPlayerVehicleID(playerid);
new carmodelp = GetVehicleModel(newcarp);
if(carmodelp == 497 || carmodelp == 427 || carmodelp == 490 || carmodelp == 601 || carmodelp == 470 || carmodelp == 528 || carmodelp == 597 )
{
if(gTeam[playerid] == TEAM_POLICE)
{
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,rot,"Du bist nicht Teil der Polizei");
}
}return 1;
// Mafia
new newcarm = GetPlayerVehicleID(playerid);
new carmodelm = GetVehicleModel(newcarm);
if(carmodelm == 602 || carmodelm == 589 ||carmodelm == 587 || carmodelm == 565 || carmodelm == 560 || carmodelm == 559 || carmodelm == 558 || carmodelm == 487 || carmodelm == 482 )
{
if(gTeam[playerid] == TEAM_MAFIA)
{
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,rot,"Du bist nicht Teil der Mafia");
}
}return 1;
Und zwar funktioniert die erste abfrage. Und die MAfia kann auch nicht in die Police Cars rein.
Aber die zeite abfrage funktioniert nicht obwolh sie eigentlich genau so geschrieben wurde, bis auf die benennung.der Error ist
Zitatunreachable code
und zwar hier an dieser Stelle
new newcarm = GetPlayerVehicleID(playerid);
weiß einer wie ich das beheben kann ?
-
Eine Möglichkeit kann sein, dass du eine andere Version des Client hast als der Server ist.
Beispiel du hast 0.2x client under der server ist 0.2.2 ( glaube so ein gabs mal)
Überprüf das mal -
Zitat
gamemodes\Mafia-Police.pwn(502) : warning 219: local variable "newcar" shadows a variable at a preceding level
gamemodes\Mafia-Police.pwn(520) : warning 225: unreachable code
gamemodes\Mafia-Police.pwn(792) : warning 203: symbol is never used: "newcar"Funzt immer noch net
Und hab nur 1 mal oben new newcar;