den Fehler
Naja es wäre kein Error, sondern nur ein Warning.
Vielleicht ignoriert er diesen, weiß man ja nicht ![]()
Aber wenn der Code funktioniert, lass ihn doch einfach stehen...ich meine auf den Variablen-Namen kommt es jetzt auch nicht an ![]()
den Fehler
Naja es wäre kein Error, sondern nur ein Warning.
Vielleicht ignoriert er diesen, weiß man ja nicht ![]()
Aber wenn der Code funktioniert, lass ihn doch einfach stehen...ich meine auf den Variablen-Namen kommt es jetzt auch nicht an ![]()
Guten Nachmittag liebe Brotfische,
ich stelle euch nun ein System vor, was äußerst praktisch ist bei z.B. einem Tutorial oder einer Erklärung.
Es geht um Dialoge die man erst nach einer bestimmten Zeit wegklicken kann.
Funktionen:
//Funktionen
native ShowPlayerTimeDialog(playerid,time,header[],body[],const button[]); //returnt dialogid
native RestartTimeDialog(playerid,id,time=0);
//Callback
OnTimeDialogResponse(playerid, dialogid);
Beispiele:
Im folgenden Beispiel erstelle ich nun einen Dialog, der für 15 Sekunden angezeigt wird.
new id; //Oben im Skript
//Da wo der Dialog angezeigt werden soll
id = ShowPlayerTimeDialog(playerid,15,"{FF0000}Timer Dialog","{FFFFFF}Sie müssen diese Nachricht leider {FF0000}15 Sekunden{FFFFFF} lesen!","Bestätigen");
/*
Zur Information...da steht ja "Bestätigen", dieser Button-Text wird dann nach 15 Sekunden angezeigt!
*/
//Und dann der Callback irgendwo im Skript:
public OnTimeDialogResponse(playerid, dialogid)
{
if(dialogid == id)
{
SendClientMessage(playerid,-1,"uuuund Bestätigt! :)"); //Das wird erst aufgerufen, sobald Bestätigen als Button angezeigt wurde (also nach 15sek)
}
return 1;
}
Falls ihr jetzt diesen Dialog nochmal anzeigen lassen wollt, könnt ihr einfach folgendes machen:
RestartTimeDialog(playerid,id);
Ihr könnt aber auch eine neue Zeit einstellen, z.B. nur 10 Sekunden:
RestartTimeDialog(playerid,id,10);
Ihr bekommt einen Error?
Screenshots:
Download:
Source-Code: PasteBin
Direkter-Download: MediaFire
Schlusswort:
So das wars auch schon mit der kleinen Vorstellung ![]()
Falls ihr Fragen oder Probleme habt, einfach in den Thread damit ![]()
mfg. ![]()
Also...er redet nicht von konstanten "Variablen" (ich lass das einfach mal so stehen) an sich, sondern er redet von der Konstanen MAX_PLAYER_NAME.
Aber da sizeof ein unärer Operator ist, macht das nicht direkt einen Unterschied ob man das eine oder das andere nimmt.
Der Fehler, wieso es wahrscheinlich nicht funktioniert ist der, dass du die Variable Name schon irgendwo verwendest (evtl in einem Enum(erator)?) ![]()
mfg. ![]()
GetClosestPlayer(playerid, 1.0);
Ein radius von 1.0 ist ziemliche eng...mach mal lieber 5.0 oder 10.0, aber ja, dass könnte so funktionieren ![]()
mfg. ![]()
Schreib das mal so:
ocmd:sms(playerid, params[])
{
if(sInfo[playerid][handyguthaben]<50)return SendClientMessage(playerid,COLOR_RED,"Dein Handyguthaben reichtnicht aus");
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new text[128], pID, string[128];
if(sscanf(params,"us",pID,text)) return SendClientMessage(playerid, COLOR_RED,"/sms [Spieler] [Text]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Ein Spieler mit dieser ID ist nicht online!");
format(string, sizeof(string), "[Sms von %s] %s",name, text);
SendClientMessage(pID,COLOR_YELLOW,string);
GetPlayerName(pID, name, MAX_PLAYER_NAME);
format(string,sizeof string,"Sms an: %s mit dem Inahlt:%s",name,string);
SendClientMessage(playerid,COLOR_YELLOW,string);
sInfo[playerid][handyguthaben]=-50;
return 1;
}
mfg. ![]()
Ich benutz aber kein Passwort....
Dann leg mal einen Benutzer an mit Passwort und nutze das ![]()
Access denied for user 'root' localhost
Da steht es doch...du benutzt ein falsches MySQL Passwort ![]()
if(!strlen(inputtext) < 4)
Was willst du denn wissen?
Wenn du wissen willst ob der inputtext weniger als 4 Zeichen hat, dann:
if(strlen(inputtext) < 4)
wenn du wissen willst ob der inputtext leer ist:
if(!inputtext[0]) //oder if(!strlen(inputtext))
mfg. ![]()
sprich wie auf dem Bild und wenn man auf Password klickt das man dort das dann eintragen kann ?
Nein, leider nicht direkt ![]()
woran könnte das liegen?
Dass er irgendwas falsches abspeichert und dann miteinander vergleicht ![]()
...mach doch mal einen print-Debug ![]()
mfg. ![]()
Damit ist es möglich die Vehicle Seats abzufragen.
Besser wäre folgendes:
stock GetVehicleSeatCount(model) {
static const scMaxPassengers[] = {
0x10331113, 0x11311131, 0x11331313, 0x80133301, 0x1381F110, 0x10311103, 0x10001F10, 0x11113311, 0x13113311,
0x31101100, 0x30001301, 0x11031311, 0x11111331, 0x10013111, 0x01131100, 0x11111110, 0x11100031, 0x11130221,
0x33113311, 0x11111101, 0x33101133, 0x101001F0, 0x03133111, 0xFF11113F, 0x13330111, 0xFF131111, 0x0000FF3F
};
if (model < 400 || model > 611) return -1;
model -= 400,model = (scMaxPassengers[model >>> 3] >>> ((model & 7) << 2)) & 0xF;
return (model == 0xF) ? -1 : model;
}
stock GetVehicleFreeSeat(veh) {
new m = GetVehicleModel(veh);
if(!m) return -1;
new c = GetVehicleSeatCount(m)+1,bool:seat[0xF],x;
for(new i; i<MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
if(GetPlayerVehicleID(i) == veh) seat[GetPlayerVehicleSeat(i)] = true,x++;
}
if(x >= c) return -1;
for(new i; i<sizeof seat; i++) if(!seat[i]) return i;
return -1;
}
mfg. ![]()
//Edit: Code editiert
1. Dein Code wird nicht funktionieren, schreibe das mal so:
<?php session_start();
if(isset($_SESSION["user"])) {
echo '<script> window.location = "http://nova-mc.de/admin.php"; </script>';
} else {
$class = new Functions();
if($class->isUserCorrect($_POST["login_name"], $_POST["login_pass"])) {
echo '<script> window.location = "http://nova-mc.de/admin.php"; </script>';
} else {
echo '<script> window.location = "http://nova-mc.de/index.php#login"; </script>';
}
}
?>
Alles anzeigen
2. Du musst die Klasse auch inkludieren. Sprich: require_once('name.class');
mfg. ![]()
Zu dem mit den Filterscript habe alle Removes in OnplayerConnect eingefügt.
Dann musst du auch das Filterscript laden, bevor du auf den Server joinst ![]()
Also zu deinem Mann kann nicht zu viel haben. Bei mir war es so das ich alle Ampeln entfernt hatte und diese eingefügt habe. Dann konnte ich mich nicht mehr anmelden also beim Login.
Dann hast du da irgendeinen Fehler gemacht mit klammern oder returns oder was weiß ich...
Aufjedenfall funktioniert das auch wenn du da 1000 Zeilen davon reinpackst ![]()
mfg. ![]()
Also ich habe es mit einem Filterscript versucht.
Aber dort werden die RemoveBuildings nicht geladen.
Doch auch in einem Filterscript werden removeBuildings geladen. (wenn man es richtig macht)
Und zwar habe ich gemerkt das ich zu viele RemoveBuildingsForPlayer habe.
Man kann nicht zu viele RemoveBuildings haben ![]()
Den ich wollte gerne Alle Ampeln Entfernen und dachte jemand weiss vielleicht rat.
Füge diesen Code ein:
RemoveBuildingForPlayer(playerid, 1315, 2228.0859, -2506.7734, 15.8125, 60000.25);
RemoveBuildingForPlayer(playerid, 1315, 2213.9297, -2498.3984, 15.8125, 60000.25);
RemoveBuildingForPlayer(playerid, 3855, -2534.5781, 330.8672, 18.8203, 60000.25);
RemoveBuildingForPlayer(playerid, 3855, -2549.3047, 336.2109, 18.6172, 60000.25);
RemoveBuildingForPlayer(playerid, 1350, -2365.4609, 513.1719, 28.2109, 60000.25);
RemoveBuildingForPlayer(playerid, 1350, -2363.9063, 496.9844, 29.3594, 60000.25);
RemoveBuildingForPlayer(playerid, 1284, -1886.6250, 931.7031, 37.3047, 60000.25);
RemoveBuildingForPlayer(playerid, 1284, -1912.0625, 932.0156, 37.3047, 60000.25);
RemoveBuildingForPlayer(playerid, 1283, -1902.8828, 906.5313, 37.2422, 60000.25);
RemoveBuildingForPlayer(playerid, 1283, -1902.8516, 945.3125, 37.2422, 60000.25);
RemoveBuildingForPlayer(playerid, 1350, 1717.7813, 1265.4766, 9.7891, 60000.25);
RemoveBuildingForPlayer(playerid, 1350, 1737.2969, 1282.8281, 9.9688, 60000.25);
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. ![]()