lol, zeig ma genau wie´s nu bei dir aussieht un die zeile wo der error kommt oO
Beiträge von Jaybinda
-
-
lol nein, du musst das mit dem velocity1 unter der if abfrage machen!!! Das is ganz wichtig. Und am besten definierst du das noch für alle spieler, damit es nit zu verwächslungen kommt
-
egal, entweder bei ongamemodeinit settimer un dann ne schleife im pulic oda beim einsteigen settimerex, dann aber ohne schleife
MFG, Robdeflop®
-
SendClientMessage(playerid, COLOR_BLA,"Cops:");
for(new i; i < MAX_PLAYERS;i++)
{
if(ISCOPIMDIENST[i])
{
GetPlayerName(i, name, sizeof(name));
SendClientMessage(playerid, COLOR_BLA,name);
}
}Aber ISCOPIMDIENST musst du auf dein script anpassen.
MFG, Robdeflop®
-
OMG xD
Machs so:
if(IsPlayerInAnyVehicle(playerid))
{
new Float:Velocity[3];
GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
new Float:geschwindigkeit = floatsqroot(Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2]) * 100;
if(geschwindigkeit > 100 && geschwindigkeit1 < 5)
{
//bla
}
new Float:Velocity1[3];
GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity1[0], Velocity1[1], Velocity1[2]);
new Float:geschwindigkeit1 = floatsqroot(Velocity1[0]*Velocity1[0] + Velocity1[1]*Velocity1[1] + Velocity1[2]*Velocity1[2]) * 100;
}Das sollte eig gehen bin mir aber nit sicher, habs so grad hingestrudelt. Das musst du halt in nen Timer machen, am besten von einer halben sekunde, wenn das der server aushält
-
davon is alles geschwindigkeit damit is z.B. gemeint, mit welcher geschwindigkeit mach sich in richtung x, y und z bewegt. Das musst du nur zusammenrechnen, un wenn das schnell auf 0 sinkt, oda fast 0, dann machst du halt setplayerdrunklevel oda wie das heißt^^
new Float:geschwindigkeit = floatsqroot(X*X + Y*Y + Z*Z) ;
Damit rechnest du z.B. die geschwindigkeit. Aber so würdest du bei sagen wir ma vollspeed mit infi nur ca 3 rauskommen, musst du noch höher rechnen, damit du damit was anfangen kannst ;=
MFG, Robdeflop®
-
Hi
Das liegt daran dass das was du benutzt für CMD´s is, wo man mehrere sachen eingibt. z.B. SetCarColor Farbe1 Farbe2. Der trennt immer beim leerzeichen. Du brauchst ne funktion die das nicht macht. So eine ist z.B. bei nem PM cmd dabei. Hier is aber auch eine, die du verwenden kannst:
stock bigstrtok(const string[], &idx)
{
new length = strlen(string);
while ((idx < length) && (string[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = string[idx];
idx++;
}
result[idx - offset] = EOS;
return result;
}Verwendung:
new Nachricht[200];
Nachricht = bigstrtok(cmdtext, idx);MFG, Robdeflop®
MFG, Robdeflop® -
IRC? xD war doch iwas bei minecraft
Aber wenn du es nit savest musst du es nach jedem server restart wieder neu machen xD Außer du machst einen standardtext, der nachm GMX in nen array gesaved wird, den du dann ändern kannst. Damit nit nix kommt wenn man connected.
MFG, Robdeflop®
-
Hi
Du musst das nur in ne datei saven, un dann beim onplayerconnect abrufen Ich denke du hast sicherlich ein register sys in deinem script drinne, von da kannst ja abguggn wie das mit den dateien gehnt. Bei dem CMD isses glaube ich so, dass du strtok nit verwenden kannst, da die einzelnen von einem leerzeichen getrennt werden. Kann mich aber auch irren!!! Also brauchst du ne andere funktion, bei PM cmd´s is die meistens dabei
MFG, Robdeflop®
EDIT: Achja, hier is z.B. so eine Funktion^^
stock bigstrtok(const string[], &idx)
{
new length = strlen(string);
while ((idx < length) && (string[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = string[idx];
idx++;
}
result[idx - offset] = EOS;
return result;
}Bei dem normalen Strtok sieht die while schleife so aus:
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))Da ist noch das drinne "(string[index] > ' ')". Das das was in den ' steht, zeigt von was der cmd getrennt wird.
Nur damit du siehst wie das funzt -
Hi
Du musst das zu ner variable umwandeln^^ Das geht mit strval.
Die benutzung würde so aussehen: new variable = strval(inputtext);MFG, Robdeflop®
-
lol, übersetz ma die warns auf deutsch xD Sin net definiert.
Du hast die im enum nit definiert Oda du hast die falsch geschriebenEDIT: M33p4r34l war schneller
-
lol, so wie ich es hab hab ich es in meinem script un das funzt oO
-
Hi
if(strcmp(HouseInfo[i][hNameVonAnderem], plname, true) == 0)
{
//hier den kram wenn das überein stimmt
}
else
{
//hier den kram wenn es nit stimmt :D
}MFG, Robdeflop®
-
Indem du den Spieler in ein Team steckst xD Aber noch vor OnPlayerSpawn.
Bei dir dann z.B. "Team[playerid] = TEAM_BLA;" Iwo z.B. bei OnPlayerConnect oda OnPlayerClassResponse oda so.
MFG, Robdeflop®
-
Hi
Meinst du vielleicht den Airport in LS? Das würde eher zutreffen xD
Ich denke das is so weil du dem spieler keinem Team zugewiesen hast. Deswegen werden die if fragen nit erfüllt und der server setzt einen automatisch bei den AirportMFG, Robdeflop®
-
-
Also waffen wegnehmen mit ResetPlayerWeapons Ob man gangzones abfragen kann, kp
Ansonsten muss halt z.B. ne Funktion erstellen, mitder du das abfragen kannst
z.B. hier sowas:public Gebiet(playerid, Float:FX, Float:fX, Float:FY, Float:fY)
{
new Float:gebietX, Float:gebietY, Float:unused;
GetPlayerPos(playerid, gebietX, gebietY, unused);
if(gebietX > fX && gebietX < FX && gebietY > fY && gebietY < FY)
{
return 1;
}
return 0;
}Das sollte so gehen
-
Ganz oben im script unter den defines, am besten bei die anderen forwards:
forward ZoneAbfrage();
unter ongamemodeinit:
SetTimer("ZoneAbfrage", 1000, 1);
Das is ein ein-sekunden timer
Ganz unten im script
public ZoneAbfrage()
{
for(new i; i<MAX_PLAYERS;i++)
{
dann hier den kram rein mit den abfragen, ob der typ in der zone is anstatt playerid musst du i benutzen
}
return 1;
}Sollte gehen xD
MFG, Robdeflop®
-
Ja aber nur wenn playerid definiert is xD Welche funktion denn?
MFG, Robdelfop®
EDIT: Wenn du das in die Funktio public IsPlayerAtEnterExit(playerid) reinmachen willst, und playerid auch richtig ausgegeben wird, dann kannst du die schleife weglassen un das i durch playerid verwenden
MFG, Robdeflop®
-
Zitat
Also ist im Wike-Beispiel das Format nur da,weil die Model/Car-ID ausgelesen wird ?
Ja
ZitatIch möchte zB einfach schreiben:
Los Santos Police Department
Betreten: /enter
(Das mit dem Zeilenumbruch ist klar).Dafür brauchst du keinen format
ZitatWofür steht das ? Muss ich bei meinem System auch so etwas einbauen. Ich bin am Punkt X und Meldung Y soll erscheinen.
for(new i = 0; i<MAX_PLAYERS; i++)
Das ist eine schleife. MAX_PLAYERS is nix anderes als einen, wert, ich glaub der is 500, also die maximale anzahl an spielern die auf einem server gleichzeitig sein kann. Mit so einer schleife kann man alle playerid´s von 0 bis 499(?) durchlaufen lassen xD Ich hoff ich hab mich klar ausgedrückt
MFG, Robdeflop®