hast du auch diesen Sekunden timer unter ongamodeinit erstellt?
Das meinte er damit
hast du auch diesen Sekunden timer unter ongamodeinit erstellt?
Das meinte er damit
Mir wird leider nichts Angezeigt bzgl. Tacho....
Also ich habe mir das Script von MrMonat mal runtergeladen und verglichen, ich sehe da keine Unterschiede. Müsste alles funktionieren eigentlich.
Danke hat funktioniert werde es nun Ingame testen und davon berichten
Gerne doch:) Sag bescheid, wenns geklappt hat
hab dort versucht noch eine Klammer ")" zu setzen trotzdem kriege ich dann sogar 6 Errors
format(string,sizeof(string,"%ikm/h", getPlayerSpeed(i));
Änder mal die Zeile:
format(string,sizeof(string,"%ikm/h", getPlayerSpeed(i));
zu:
format(string,sizeof(string),"%ikm/h", getPlayerSpeed(i));
Hab ein Fehler oben gemacht, tut mir leid. so müsste es richtig sein.
änder das:
rtn = floatsqroot(x*x + y*y + z*z); //Betroffene zeile (840)
return floatround(rtn * 100 * 1.61); //Betroffene zeile (841)
zu:
new Float:rtn;
rtn = floatsqroot(x*x + y*y + z*z); //Betroffene zeile (840)
return floatround(rtn * 100 * 1.61); //Betroffene zeile (841)
Hoffentlich hat da einer eine Lösung...
du hast das forward vergessen, schreib es einfach über dein public "sekunde"
forward sekunde();
Das wäre der erste Fehler
Bei der Zeile 704 musst du eine weitere ")" Klammer setzen.
Änder mal das:
GetVehicleVelocity(GetPlayerVehicleID(playerid, x, y, z);
Zu:
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
und wegen dem Fehler: undefinded Symbol(zeile: 839 und 840)
schreibst du vor das "rtn =" das hier:
new Float:rtn;
Müsste alles gewesen sein
Gruß Kevin
Cops and Robbers war schon immer eine Art Roleplay nur das es dort nicht so extrem ist wir auf einem puren Roleplay Server. Deswegen ist es auch bei den meisten CnR Servern verboten random leute zu killen da es meistens kein reiner dm server ist.
Richtig, aber wir haben uns etwas neues überlegt
Wir machen einen
as Label soll nur für den pMember Angezeigt werden der den Wert 1 hat. Attachet ist das woanders. Denn es soll ja nicht nur der Attechet werden der pMember == 1 ist
if(Spieler[i][Fraktion] == 1)
{
new PlayerText3D:label;
for(new pwtds=0; pwtds<MAX_PLAYERS; pwtds++)
{
if(Spieler[pwtds][Wanteds] > 0)
{
new string[50];
format(string,sizeof(string),"(%d) %s\nWanteds: %d\nWantedgrund: %s",pwtds,SpielerName(pwtds),Spieler[pwtds][Wanteds],Spieler[pwtds][WantedGrund]);
label = CreatePlayer3DTextLabel(i,string,COLOR_WHITE,0.0,0.0,1.0,20.0,pwtds,INVALID_VEHICLE_ID,1);
}
else if(Spieler[pwtds][Wanteds] == 0)
{
DeletePlayer3DTextLabel(pwtds,label);
}
}
}
Hier bitteschön, funktioniert einwandfrei. Musst nur die einzelnen Variabeln ändern. Das ganze Paket packst du in einen 1-Sekunden Timer, kann Global sein.
vergiss die For-Schleife nicht
for(new i=0; i<MAX_PLAYERS; i++)
Gruß, Kevin
Hey,
habe folgenden Error mit MySQL:
[ERROR] CMySQLConnection::Connect - (error #1129) Host '(mein hoster)' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
Das Problem kam einfach so, wollte mal mein Server starten (beim Anbieter) und dann das.
Der Server startet->fährt direkt wieder runter.
Ich habe schon probiert diesen Befehl in MySQL einzugeben, leider erfolgslos... Die Supporter von meinem Anbieter haben auch noch nicht geantwortet -.-
Hätte jemand eine Idee? Gemacht habe ich nichts, Server war ein Tag offline, davor hat er funktioniert und ich habe nichts geändert, weder in der DB noch am Script.
Habe mal probehalber versucht die DB zu löschen und ein Backup von meinem Script reinzuhauen, wieder ohne Erfolg.
Gruß und danke im Voraus
Kevin
ein normaler gmx hat wohl nicht gereicht also hab ich einfach mal den server ,,ganz" neu gestartet danke für eure Hilfsversuche!
Pack doch einfach dein "SpielerSpeichern" unter OnGameModeExit rein, dann müsste alles gespeichert werden, nach einem gmx.
Gruß Kevin
Änder aWeaponNames[car - 400] zu aWeaponNames[car].
Dann müsste es funktionieren. Wenn nicht, zeig uns mal dein aWeaponNames.
... Danke hat funktioniert
Heyho,
hab hier folgendes Problem.
Ich habe ein givegun Befehl erstellt, der sowohl per ID als auch per Name Waffen vergeben kann.
Hier mal der Befehl:
ocmd:givegun(playerid,params[])
{
if (Spieler[playerid][Adminlevel] < 2)return SendClientMessage(playerid, COLOR_GRAD1, "* Du hast nicht die benötigten Rechte.");
new pID,car,vehicle[32],muni;
if(sscanf(params, "us[32]i", pID,vehicle,muni))return SendClientMessage(playerid, COLOR_GRAD2, "** FEHLER: /givegun [ID/Name] [Waffenname/WaffenID] [Munition]");
if(IsNumericString(vehicle)) car = strval(vehicle);
else car = GetWeaponModelIDFromName(vehicle);
if(car < 1 || car > 47) { SendClientMessage(playerid, COLOR_GREY, "* Die Waffen-ID kann nicht unter 1 und über 47 sein oder du hast ein falschen Namen eingegeben."); return 1; }
GivePlayerWeapon(pID,car,muni);
new string[128];
format(string, sizeof(string), "* Du hast dir eine %s (ID: %d) mit %d Schuss gegeben.", aWeaponNames[car - 400],car,muni);
SendClientMessage(playerid,COLOR_ORANGE,string);
return 1;
}
Das Problem ist nur, dass er mir anzeigt, dass es den Befehl nicht gibt, aber er trotzdem mir die Waffe gibt, egal ob per name oder ID.
Jetzt habe ich folgendes getestet:
Wenn ich das format rausmache, funktioniert es ohne den fehler.
Könnte wer helfen?
Gruß Kevin
P.S.: Nicht wundern wieso da car und vehicle ist, hab ich von meinem /veh einfach kopiert und geändert.
Alles anzeigenstock SendLongClientMessage(playerid, color, const string[])
{
new tmp[128],l=strlen(string);
if(l < 100) return SendClientMessage(playerid,color,string);
new space = strfind(string," ",false,80);
if(space == -1) return SendClientMessage(playerid,color,string);
strmid(tmp,string,0,space,sizeof(tmp)),strcat(tmp,"...",sizeof(tmp));
SendClientMessage(playerid,color,tmp);
strmid(tmp,string,space+1,l,sizeof(tmp)),strins(tmp,"...",0,sizeof(tmp));
SendClientMessage(playerid,color,tmp);
return 1;
}
Danke dir, funktioniert einwandfrei
Hey, wie kann man machen, dass wenn man etwas schreibt und es zu lang ist, dass es automatisch in die 2. zeile übergeht?
Gruß & danke
Die DrawDistance ist auch ein Float, also das im Enum ergänzen
Hm, komisch. habe es davor auch probiert und dasselbe
Aber nun hats funktioniert, danke dir
Huhu, Titel sagt alles.
Hier der Code:
enum labelsys
{
labeltext[70],
labelcolor,
Float:labelx,
Float:labely,
Float:labelz,
drawdistance,
virtualworld,
labellos
}
new CLabel[][labelsys] = {
{"Ballas\nBetrete die Fraktion mit /changeteam", COLOR_LILA, 1939.1422,-1114.7340,27.4523, 10.0, 0,0},
{"Grove-Street\nBetrete die Fraktion mit /changeteam", COLOR_GREEN, 2495.4912,-1690.4358,14.7656, 10.0, 0,0},
{"Irish Crime Family\nBetrete die Fraktion mit /changeteam", COLOR_WHITE, -2119.6055,-194.8620,35.3203, 10.0, 0,0},
{"Yakuza\nBetrete die Fraktion mit /changeteam", COLOR_WHITE, -1550.4174,1168.6066,7.1875, 10.0, 0,0},
{"Vagos\nBetrete die Fraktion mit /changeteam", COLOR_YELLOW, 2196.1658,1677.1252,12.3672, 10.0, 0,0},
{"Triaden\nBetrete die Fraktion mit /changeteam", COLOR_BLUE, -2719.7720,-318.7823,7.8438, 10.0, 0,0},
{"Wheelman\nBetrete die Fraktion mit /changeteam", COLOR_BLUE, -525.4808,-505.8334,25.5234, 10.0, 0,0},
{"Hitman\nBetrete die Fraktion mit /changeteam", COLOR_WHITE, 2637.2664,-1991.8729,13.9935, 10.0, 0,0}
};
for(new i=0; i < sizeof(CLabel); i++)
{
Create3DTextLabel(CLabel[i][labeltext], CLabel[i][labelcolor], CLabel[i][labelx], CLabel[i][labely], CLabel[i][labelz], CLabel[i][drawdistance], CLabel[i][virtualworld],CLabel[i][labellos]);
}
Sobald ich die Forschleife aus ongamemodeinit entferne kommen keine warnungen mehr.
Jemand eine Idee?
Gruß Kevin
P.S: Warnungen kommen ab dem "new CLabel"
Danke an beide, hat jetzt endlich geklappt!
Hier der komplette, funktionierende Befehl:
ocmd@2:veh,v(playerid,params[])
{
if (Spieler[playerid][Adminlevel] < 2)return SendClientMessage(playerid, COLOR_GRAD1, "* Du hast nicht die benötigten Rechte.");
new car,color1,color2,vehicle[32];
if(sscanf(params, "s[32]ii", vehicle,color1,color2))return SendClientMessage(playerid, COLOR_GRAD2, "** FEHLER: /(v)eh [carid/carname] [farbe1] [farbe2]");
if(IsNumericString(vehicle)) car = strval(vehicle);
else car = GetVehicleModelIDFromName(vehicle);
if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "* Die Fahrzeug-ID kann nicht unter 400 und über 611 sein oder du hast ein falschen Namen eingegeben."); return 1; }
if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
new string[128];
new Float:X,Float:Y,Float:Z,Float:A;
GetPlayerPos(playerid, X,Y,Z);
GetPlayerFacingAngle(playerid,A);
GetXYInFrontOfPlayer(playerid, X, Y, 5.0);
new carid = AddStaticVehicleEx(car, X,Y + 2.0,Z, A + 90.0, color1, color2, 360);
LinkVehicleToInterior(carid,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));
CreatedCars[CreatedCar] = carid;
CreatedCar ++;
format(string, sizeof(string), "* Fahrzeug %d (%s) [Model: %d CarId: %d] wurde gespawned.", CreatedCar,aVehicleNames[car - 400],car,carid);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
MfG
Kevin
Hallo,
ich möchte gerne ein /vehicle Befehl der fahrzeuge spawnt. Man könnte entweder die ID vom Fahrzeug (411(infernus)) eingeben oder direkt infernus.
Ich bin schon soweit gekommen, per ID klappt alles wunderbar. Hat einer eine Idee wie man den Befehl für beides hinbekommt?
ocmd@2:veh,v(playerid,params[])
{
if (Spieler[playerid][Adminlevel] < 2)return SendClientMessage(playerid, COLOR_GRAD1, "* Du hast nicht die benötigten Rechte.");
new car,color1,color2;
if(sscanf(params, "iii", car,color1,color2))return SendClientMessage(playerid, COLOR_GRAD2, "** FEHLER: /(v)eh [carid/carname] [farbe1] [farbe2]");
//car = GetVehicleModelIDFromName(vehicleid);
if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "* Die Fahrzeug-ID kann nicht unter 400 und über 611 sein oder du hast ein falschen Namen eingegeben."); return 1; }
if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein"); return 1; }
if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "* Die Farbe kann nicht unter 0 und über 126 sein."); return 1; }
new string[128];
new Float:X,Float:Y,Float:Z,Float:A;
GetPlayerPos(playerid, X,Y,Z);
GetPlayerFacingAngle(playerid,A);
GetXYInFrontOfPlayer(playerid, X, Y, 5.0);
new carid = AddStaticVehicleEx(car, X,Y + 2.0,Z, A + 90.0, color1, color2, 360);
LinkVehicleToInterior(carid,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(carid,GetPlayerVirtualWorld(playerid));
CreatedCars[CreatedCar] = carid;
CreatedCar ++;
format(string, sizeof(string), "* Fahrzeug %d (%s) [Model: %d CarId: %d] wurde gespawned.", CreatedCar,aVehicleNames[car - 400],car,carid);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
stock GetVehicleModelIDFromName(vname[])
{
for(new i = 0; i < 211; i++)
{
if ( strfind(aVehicleNames[i]/*zieht sich ausm new den namen vom auto raus*/, vname, true) != -1 )
return i + 400;
}
return -1;
}
Danke im Voraus
Nummer 1: IsPlayerInRangeOfPoint ist an der Stelle nutzlos, da das 3D Label selbst überprüft ob es sichtbar ist, dafür ist drawdistance zuständig.
Nummer 2: GetPlayerPos kannst du entfernen und die Koordinaten bei CreatePlayer3DLabel kannst du jeweils auf 0.0 setzten. Die Koordinaten sind relativ zum attachten Spieler und daher ist es total klar das es irgendwo angezeigt wird.
Nummer 3: Frag in deiner obersten Schleife ab ob der Spieler überhaupt Wanteds hat
Danke jetzt funktioniert alles!