return i;
zu:
return idx;
Dann frag das doch
Will die nähsten Koordinaten herausfinden und dort soll ein Checkpoint erstellt werden.
![]()
return i;
zu:
return idx;
Dann frag das doch
Will die nähsten Koordinaten herausfinden und dort soll ein Checkpoint erstellt werden.
![]()
//edit
erledigt, Seite nicht neu geladen
Keine Ahnung wie ich ein Beitrag lösche ![]()
Nabend, bin gerade irgendwie zu dämlich aber finde den Fehler nicht
[23:11:49] [ERROR] error #1064 while executing query "INSERT INTO `Drogenpflanzen`(`ID`, `X`, `Y`, `Z`, `RX`, `RY`, `RZ`, `Ersteller`, `Datum`) VALUES (0, 1098.699097, -303.529572, 72.092186, 0.000000, 0.000000, 0.000000, reaL., 1551737509)": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'reaL., 1551737509)' at line 1
[23:15:27] [ERROR] error #1064 while executing query "INSERT INTO `Drogenpflanzen`(`ID`, `X`, `Y`, `Z`, `RX`, `RY`, `RZ`, `Ersteller`, `Datum`) VALUES (0, 1096.704346, -300.652313, 72.092186, 0.000000, 0.000000, 0.000000, reaL., 1551737727)": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'reaL., 1551737727)' at line 1
mysql_format(handle, string, sizeof(string), "INSERT INTO `Drogenpflanzen`(`ID`, `X`, `Y`, `Z`, `RX`, `RY`, `RZ`, `Ersteller`, `Datum`) VALUES (%d, %f, %f, %f, %f, %f, %f, %e, %d)", i, Drogeni[i][drogenpf_x], Drogeni[i][drogenpf_y], Drogeni[i][drogenpf_z], Drogeni[i][drogenpf_rx], Drogeni[i][drogenpf_ry], Drogeni[i][drogenpf_rz], Drogeni[i][drogenpf_ersteller], Drogeni[i][drogenpf_datum]);
mysql_pquery(handle, string);
,'%e'
Du hast in deinem Namen ein Punkt, der wird das ganze wahrscheinlich stören deshalb die Hochkommas
Strings solltest du also immer in Hochkomma schreiben. '%s' wenn es um MySQL geht.
Du checkst nirgendwo ob der Spieler überhaupt connectet ist. Dazu ist der String dafür nur 128 Cells groß, was viel zu klein ist.
if(dialogid == DIALOG_RAKETE_ZIELAUSWAHL)
{
if(!response) return 0;
new strings[1024],LocationZone[MAX_ZONE_NAME];
new Float:x, Float:y, Float:z;
switch(listitem)
{
case 0:
{
if(CheckPointSetted[playerid] == 0) return SCM(playerid,-1,"Du hast auf der Karte kein Ziel markiert.");
}
case 1:
{
for(new i = 0; j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) continue;
GetPlayerPos(i, x, y, z);
Get2DZone(x,y, LocationZone, MAX_ZONE_NAME);
format(strings, sizeof(strings), "%s%s ( ID: %d ) Position: %s\n",strings,GetName(i),i,LocationZone);
}
ShowPlayerDialog(playerid,DIALOG_RAKETE_SPIELERAUSWAHL,DIALOG_STYLE_LIST,"Ziel Auswählen",strings,"Auswählen","Abbrechen");
}
}
}
Alles anzeigen
Und statt für Spielerloops MAX_PLAYERS zu verwenden solltest du [wiki]GetPlayerPoolSize[/wiki] verwenden.
Hey, ich möchte das man alle Admins sieht ob online oder Offline...
doch irgendwie möchte es nur mich Anzeigen.
CMD:admins(playerid)
{
new string[256], userId, adminstatus[35];
switch(accinfo[playerid][pLoginStatus])
{
case 0:{adminstatus="Offline";}
case 1:{adminstatus="Online";}
}
if(!accinfo[playerid][pLoginStatus])return SendClientMessage(playerid, COLOR_GREY, "Fehler: Du bist nicht auf deinem Account eingeloggt.");
strcat(string, ""HTML_SERVER"Rang\t "HTML_SERVER" Name\t Status\n");
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"adminlevel")>0)
{
if(accinfo[playerid][pAdminLvl] == 2000)
{
format(string, sizeof(string),""HTML_RED"%s"HTML_WHITE"%s\t"HTML_WHITE"%s\n", playerteamname(userId),accinfo[playerid][pName],adminstatus);
}
else if(accinfo[playerid][pAdminLvl] == 1338)
{
format(string, sizeof(string),""HTML_WHITE"%s"HTML_WHITE"%s\t"HTML_WHITE"%s\n", playerteamname(userId),accinfo[playerid][pName],adminstatus);
}
else if(accinfo[playerid][pAdminLvl] == 1337)
{
format(string, sizeof(string),""HTML_WHITE"%s"HTML_WHITE"%s\t"HTML_WHITE"%s\n", playerteamname(userId),accinfo[playerid][pName],adminstatus);
}
else if(accinfo[playerid][pAdminLvl] == 3)
{
format(string, sizeof(string),""HTML_WHITE"%s"HTML_WHITE"%s\t"HTML_WHITE"%s\n", playerteamname(userId),accinfo[playerid][pName],adminstatus);
}
else if(accinfo[playerid][pAdminLvl] == 2)
{
format(string, sizeof(string),""HTML_WHITE"%s"HTML_WHITE"%s\t"HTML_WHITE"%s\n", playerteamname(userId),accinfo[playerid][pName],adminstatus);
}
}
}
}
ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX, ""HTML_SERVER"Vegas Life: "HTML_WHITE"Aktive Team-Mitglieder", string, "Bestätigen", "");
return 1;
}
for(new i = 0; j = GetPlayerPoolSize(); i <= j; i++)
Versucht, wenn es möglich ist, die Schleife so zu schreiben:
for(new i=GetPlayerPoolSize(); i!=-1; i--)
So benötigt man nur eine Variable und in der Bedingung wird eine Konstante verwendet und keine Variable ![]()
doch irgendwie möchte es nur mich Anzeigen.
Wie sieht n playerteamname aus? ![]()
playerteamname(userId)
Du musst statt userId musst du dann auch i benutzen
Da userId tendentiell immer 0 ist da du die Variable nie erhöhst
ocmd:changename(playerid, params[])
{
new pID, SpielerName[32], query[256];
if(Spieler[playerid][pAdmin] < 5)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
if(Spieler[playerid][pAdminDuty] == 0)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMINDIENST);
if(sscanf(params, "us[32]", pID, SpielerName))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/changename [SpielerID/Name] [NeuerName]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der angegebene Spieler ist nicht eingeloggt!");
if(IsPlayerNPC(pID))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du kannst kein NPC ein anderen Namen geben!");
if(!strcmp(SpielerName, GetName(pID), true))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Spieler hat bereits den selben Namen!");
mysql_format(MySqlConnection, query, sizeof(query), "UPDATE `server_accounts` SET `Name`='%s' WHERE `Name`='%s'", SpielerName, GetName(pID));
mysql_tquery(MySqlConnection, query, "", "");
format(query, sizeof(query), "{FFFF00}Du hast den Name von {15951F}%s {FFFF00}zu {15951F}%s {FFFF00}umbenannt!", GetName(pID), SpielerName);
SendClientMessage(playerid, COLOR_WHITE, query);
format(query,sizeof(query),"{15951F}%s {FFFF00}(ID: {15951F}%i{FFFF00}) hat deinen Namen in {15951F}%s {FFFF00}umgeändert. Dein Account wurde geupdatet!", GetName(playerid), playerid, SpielerName);
SendClientMessage(pID, COLOR_WHITE, query);
SavePlayer(pID);
SetPlayerName(pID, SpielerName);
return 1;
}
Alles anzeigen
Ablauf:
Ich änder von den Spieler den Name wird er Ingame geändert.
Speicher ich die Accounts werden die Accounts verdoppelt.
Die Spalte für die Namen heißt ja "Name".
Weiß Jemand was ich da falsch mache?
Speicher ich die Accounts werden die Accounts verdoppelt.
Weiß Jemand was ich da falsch mache?
Wie sieht die Funktion GetName aus?
Inwiefern wird der Account doppelt angelegt?
2x mit dem Neuen Namen?
1x mit dem Neuen und 1x mit dem Alten?
Hey,
Gibt es eine möglichkeit ein switch(random(10)) auszutricksen indem man es vorhersagen kann?
Gibt es eine möglichkeit ein switch(random(10)) auszutricksen indem man es vorhersagen kann?
Was genau magst du machen?
Du kannst natürlich das Ergebnis in einer Variable speichern:
new x = random(10);
//Hier kennst du schon die Zufallszahl X
switch(x)
Dann hast du natürlich davor schon Zugriff drauf und kannst damit arbeiten, falls es das ist, was du meinst ![]()
strmid(Haus[Spieler[playerid][pHouseKey]][hName], inputtext, 0, strlen(inputtext), 32);
UpdateHouseLabel(i, Haus[i][hOwned]);
SaveHouse(i);
Kurze frage möchte das der Admin Administrativ es auch ändern kann die Beschreibung. -> (Falls unanständig)
Das Obere das ich zeige macht der Spieler Selber (Der Besitzer so zu sagen)
Ich meinte ob man den random switch vorhersagen kann mit Techniken
Hey,
Kurze frage die wartezeit bei selbstmord funktioniert nicht irgendwie man kann ständig selbstmord machen?
ocmd:selbstmord(playerid,params[])
{
new Float:Pos[3], SelbstmordStatusTimer;
if(!(Spieler[playerid][pFraktion] == 18))return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
if((Spieler[playerid][pSprengstoff] - 2) < 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Es ist nicht genügend Sprengstoff vorhanden.");
if(gettime() > SelbstmordStatusTimer)
{
SelbstmordStatusTimer = gettime() + (60*60);
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
new randompos = random(20),randexploderadius = random(40)+10;
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
randexploderadius = random(30)+10;
randompos = random(10);
CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
SetPlayerHealth(playerid, 0);
Spieler[playerid][pSprengstoff] -= 2;
ForEachPlayer(i)
{
if(IsPlayerInRangeOfPoint(i, 20.0, Pos[0], Pos[1], Pos[2]))
{
if(playerid != i)
{
Spieler[playerid][pKills]++;
SetPlayerHealth(i, 0);
new string[256];
OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]+2));
Spieler[playerid][pWanteds] += 2;
UpdateWantedTD(playerid);
format(string, sizeof(string), "{AA3333}Du hast ein Verbrechen begangen. (%s) Reporter: %s", "Mord", "Niemand");
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "{FFFF00}Dein aktuelles Wanted Level: %d", Spieler[playerid][pWanteds]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
}
}
else
{
new SelbstmordTime = SelbstmordStatusTimer-gettime(), string[128];
format(string,sizeof(string),"{AFAFAF}Du kannst erst in %i:%02d Minuten Selbstmord machen.", floatround(SelbstmordTime/60), floatround(SelbstmordTime%60));
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
return 1;
}
Alles anzeigen
Ich meinte ob man den random switch vorhersagen kann mit Techniken
Ja, kannst du so doch...weil du doch weißt, was x für einen Wert hat ![]()
Also nur Serverseitig per skritping...als User kannst du da gar nichts vorhersagen..sonst wäre die random Funktion ziemlich nutzlos ![]()
Das steht doch gerade für zufällig ![]()
Hey,
Kurze frage die wartezeit bei selbstmord funktioniert nicht irgendwie man kann ständig selbstmord machen?
CAlles anzeigenocmd:selbstmord(playerid,params[]) { new Float:Pos[3], SelbstmordStatusTimer; if(!(Spieler[playerid][pFraktion] == 18))return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION); if((Spieler[playerid][pSprengstoff] - 2) < 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Es ist nicht genügend Sprengstoff vorhanden."); if(gettime() > SelbstmordStatusTimer) { SelbstmordStatusTimer = gettime() + (60*60); GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); new randompos = random(20),randexploderadius = random(40)+10; CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); randexploderadius = random(30)+10; randompos = random(10); CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius); SetPlayerHealth(playerid, 0); Spieler[playerid][pSprengstoff] -= 2; ForEachPlayer(i) { if(IsPlayerInRangeOfPoint(i, 20.0, Pos[0], Pos[1], Pos[2])) { if(playerid != i) { Spieler[playerid][pKills]++; SetPlayerHealth(i, 0); new string[256]; OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]+2)); Spieler[playerid][pWanteds] += 2; UpdateWantedTD(playerid); format(string, sizeof(string), "{AA3333}Du hast ein Verbrechen begangen. (%s) Reporter: %s", "Mord", "Niemand"); SendClientMessage(playerid, COLOR_WHITE, string); format(string, sizeof(string), "{FFFF00}Dein aktuelles Wanted Level: %d", Spieler[playerid][pWanteds]); SendClientMessage(playerid, COLOR_WHITE, string); } } } } else { new SelbstmordTime = SelbstmordStatusTimer-gettime(), string[128]; format(string,sizeof(string),"{AFAFAF}Du kannst erst in %i:%02d Minuten Selbstmord machen.", floatround(SelbstmordTime/60), floatround(SelbstmordTime%60)); SendClientMessage(playerid, COLOR_WHITE, string); return 1; } return 1; }
Das liegt daran, dass SelbstmordStatusTimer eine lokale Variable ist, beim ausführen des Befehls also immer 0 ist.
Du musst dies zu einer globalen Variable ändern, die du dem Spieler zuweist.
Die globale Variable erstellst du einfach ganz oben in deinem Script so: new SelbstmordStatusTimer[MAX_PLAYERS];
Und in deinem Befehl ersetzt du jedes SelbstmordStatusTimer mit SelbstmordStatusTimer[playerid]
Hey,
Kurze frage lade meine Objecte per Filterscript.. weiß nicht ob das so schlau ist...
Aber wen der Server neu startet sind die Gebäude immer weg und muss die Filterscripts neu laden weiß jemand eine andere Lösung?