oder
oder...du postest mal wie du deine Daten speicherst und machst evtl einen print-Debug oder einen MySQL-Debug und schaust mal in die Logs ![]()
mfg. ![]()
oder
oder...du postest mal wie du deine Daten speicherst und machst evtl einen print-Debug oder einen MySQL-Debug und schaust mal in die Logs ![]()
mfg. ![]()
Wieso setzt du "dist" auf 999999999.0?
Damit eine hohe Distanz ensteht und schnell eine kleinere gefunden wird ![]()
Aber du hättest auch meine Funktion einfach benutzen können ![]()
mfg. ![]()
Mein Problem liegt jetzt ja nicht an einem fehlenden Algorithmus, sondern daran, wie ich von der Distanzberechnung wieder auf die richtigen Koordinaten im Array verweise.
"dist" speichert ja die Distanz zu jedem Punkt und wird dann praktisch aufsteigend sortiert. Wie kann ich zurückverfolgen welche Distanz zu welchen Koordinaten gehören?
Achsoo ![]()
Jetzt verstehe ich was du da versuchst, schreibe es so:
public OnPlayerDeath(playerid, killerid, reason)
{
new Float:dist[3];
dist[0] = GetPlayerDistanceFromPoint(playerid, Hospitals[0][0], Hospitals[0][1], Hospitals[0][2]);
dist[1] = GetPlayerDistanceFromPoint(playerid, Hospitals[1][0], Hospitals[1][1], Hospitals[1][2]);
dist[2] = GetPlayerDistanceFromPoint(playerid, Hospitals[2][0], Hospitals[2][1], Hospitals[2][2]);
new idx = d_Sort(dist, sizeof dist);
PostDeathSpawn[playerid][0] = Hospitals[idx][0];
PostDeathSpawn[playerid][1] = Hospitals[idx][1];
PostDeathSpawn[playerid][2] = Hospitals[idx][2];
return 1;
}
stock d_Sort(const Float:x[], const anz) {
new t;
for (new i=1,Float:tmp=x[0]; i < anz; i++) if(x[i] < tmp) t=i,tmp=x[i];
return t;
}
mfg. ![]()
dBoden =CreateObject(13607, 1478.07996, -1799.66003, 227.06000, 0.00000, 0.00000, 0.00000);
MoveObject(dBoden,1478.07996, -1799.66003, 227.06000, 0.00000, 0.00000, 90.00000);
SetTimerEx("TurnObject", 750, 0, "dd", dBoden, 0);
Das MoveObject da mach mal zu:
MoveObject(dBoden,1478.07996, -1799.66003, 227.06000, OBJECT_SPEED, 0.00000, 0.00000, 90.00000);
mfg. ![]()
cache_get_data(rows, fields);
Schreib mal darunter:
printf("rows: %d | fields: %d",rows,fields);
Nur sieht das mit dem Payday jetzt so aus.
Zeig uns mal wie du dir das anzeigen lässt ![]()
Und zu dem Command...why no using sscanf?!
if(strcmp(cmd, "/ajail", true) == 0)
{
if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");
tmp = strtok(cmdtext, idx);
if(!tmp[0]) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten] [Grund]");
new playa, money, grund[64];
if(sscanf(tmp,"uds[64]",playa,money,grund)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /ajail [Spieler ID / Name] [Zeit in Minuten] [Grund]");
if(playa == playerid) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht dich selber einsperren!");
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playa][pAdmin]) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keinen höherrangigen Admin einsperren!");
if(!IsPlayerConnected(playa)) return SendClientMessage(playerid, COLOR_GRAD1, "Ein Spieler mit dieser ID ist nicht online!");
GetPlayerName(playa, giveplayer, sizeof(giveplayer)),GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du hast %s eingesperrt. Grund: %s", giveplayer,grund);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "* Du wurdest von Admin %s in das Admin-Jail gesperrt. Grund: %s", sendername,grund);
SendClientMessage(playa, COLOR_LIGHTRED, string);
ResetPlayerWeapons(playa),WantedPoints[playa] = 0;
PlayerInfo[playa][pJailed] = 1;
PlayerInfo[playa][pJailTime] = money*60;
SetPlayerInterior(playa, 3);
SetPlayerPos(playa, 197.8290,161.8141,1003.0300);
format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt.[Zu unrecht ? Melde dich im Teamspeak3]", money);
return SendClientMessage(playa, COLOR_LIGHTBLUE, string);
}
mfg. ![]()
aber nicht für Rot X Rot Y und Rot Z
Ja, weil die Geschwindigkeit zu hoch ist.
Mach es mal auf: 0.0001 ![]()
Und sind die X,Y,Z Koordinaten bei dem MoveObject exakt die selben wie von dem Objekt? Denn du musst es mindestens um 0.0001 in irgendeine Richtung verschieben ![]()
mfg. ![]()
OBJECT_SPEED
Welchen Wert hat denn diese Variable / Define? ![]()
symbol is assigned a value that is never used: "logstring"
Entweder kommentierst bzw löschst du die Deklaration der Variable oder schreibst new stock logstring; ![]()
mfg. ![]()
SortDeepArray(dist, 0, SORT_ASC); //ERROR LINE
Du sortierst ein 1 dimensionales Array und verwendest es danach nicht mehr? ![]()
Ich hab dir mal einen kleinen Algorithmus geschrieben, der 1 dimensionale Arrays sortiert:
//Schreib das so:
new Float:dist[3];
dist[0] = GetPlayerDistanceFromPoint(playerid, Hospitals[0][0], Hospitals[0][1], Hospitals[0][2]);
dist[1] = GetPlayerDistanceFromPoint(playerid, Hospitals[1][0], Hospitals[1][1], Hospitals[1][2]);
dist[2] = GetPlayerDistanceFromPoint(playerid, Hospitals[2][0], Hospitals[2][1], Hospitals[2][2]);
d_Sort(dist, sizeof dist);
//Und du solltest hier dann auch dist verwenden...
//unten im Skript
stock d_Sort(Float:x[], const anz) {
for (new i,Float:tmp,j; i < anz; i++) {
for (j=0; j < anz - i - 1; j++) {
if (x[j] > x[j + 1]) tmp = x[j],x[j] = x[j + 1],x[j + 1] = tmp;
}
}
return 1;
}
mfg. ![]()
Ich hab dir mal so ein kleines Skript erstellt:
<!DOCTYPE HTML><html><head><meta charset="UTF-8" /><title>4*4 Fläche</title><style type="text/css"><!--td:hover { background-color:red; }--></style><script language="javascript" type="text/javascript"><!--const width="64px",dicke="6px",x=4,y=4;function CreateGUI() { var doc = "<table border='1'>"; for(var i=0; i<x; i++) { doc = doc + "<tr>"; for(var j=0; j<y; j++) { doc = doc + "<td width='"+width+"' height='"+width+"' cellpadding='"+dicke+"'></td>"; } doc = doc + "</tr>"; } return document.getElementById("content").innerHTML = doc + "</table>";}--></script></head><body onload="CreateGUI();"><div id="content"></div></body></html>
Hoffe es hilft dir ein wenig ![]()
mfg. ![]()
//Edit: Die Klasse des Elements war unnötig...
Hau dir das mal drauf: http://www.microsoft.com/de-de/download/details.aspx?id=5555
und evtl Net-Framework updaten ![]()
mfg. ![]()
Guten Tag ich bin es schon wieder unzwar bekomme ich ein Error in der Zeile 68
Ein paar Zeilen drüber und drunter wären schon nicht schlecht ![]()
Bzw einfach mal den Codeblock posten wo es vorkommt ![]()
Soll das ein Scherz sein? ![]()
if(...)
{
//Undercover Licht eingeschaltet
}
else
{
//Undercover Licht eingeschaltet
}
merkste was? ![]()
Solltest evtl nur bei einem das Licht anmachen bzw ein Licht an das Auto attachen ![]()
mfg. ![]()
Sagt mir welchen code ihr brauch und ich zeig ihn euch.
Naja...vielleicht den von deinem Sirenen-Code? ![]()
Danke im Vorauus
Wie hast du Login und MD5_Init deklariert?
Wie kann ich die random Farben von spielern abschalten?
Indem du z.B. unter OnPlayerConnect SetPlayerColor(playerid,-1); schreibst ![]()
mfg. ![]()
Schreib das so:
ocmd@2:o,ooc(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(!params[0]) return SCM(playerid,COLOR_GRAU,"Info: /o oder /OOC [text]");
format(params,128,"[OOC]: %s: %s",SpielerName(i),params);
SendClientMessageToAll(-1,params);
return 1;
}
mfg. ![]()
Da ich eben versucht habe mit OCMD ein Godmode für Admins zu erstellen und es nicht klappte frage ich euch.
Mach es so:
//Schreib das oben ins Skript
#define FLOAT_INFINITY (Float:0x7F800000)
//Und das schreib im Befehl
SetPlayerHealth(playerid, FLOAT_INFINITY);
mfg. ![]()