Beiträge von IPrototypeI
-
-
Mit dem normalen MoveObject sollte es auf jedenfall gehen bei MoveDynamicObject hast du das native nich beachtet
darum kam es zu den fehlernnative MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0);
-
xD sry habs oben vergessen zu ändern
{$query = mysql_query('SELECT * FROM accounts WHERE name="'.$user.'" AND passwort="'.md5($pass).'"');
accounts ist hier ja die datenbank
und name oder passwort ist die tabelle
jedoch frage ich mich
$pass = addslashes($_REQUEST["password"]);
ist jedoch auf grund AND passwort geh ich auch davon aus das hier die tabelle gemeint ist und dafür solltest du den namen deiner Tabelle einfügen Key -
Alles anzeigen
ok ne, das geht mal garnicht was du da fabrizierst.
Also erstmal brauchst du defintiv mehr Ordnung in deinem Script. Ausserdem, wenn "mysql_SetInt" genau so funktioniert wie "dini_setInt" dann rate ich dir sehr stark an, dass du mal das ganze Mysql System umschreibst! Denn wenn mehrere User eine exe bekommen, dann kratzt der Server ab, dass kann ich dir versichern.
Dazu darfst du nicht einfach bei einem Disconnect sachen speichern! Denn wenn ein Spieler nicht eingeloggt ist, werden die Werte ja logischerweise nicht zugewiesen, was dann auch alles mit 0 abspeichert, daher anscheinend auch dein "Manchmal neu registrieren" problem.
Ich rate dir stark an, das System neu zu schreiben, denn momentan ist es pures Chaos

dazu ist es auch noch ratsam mit dem neuen mysql plugin zu arbeiten oder wenigstens OnQueryFinish zu verwenden um
Lags oder Servercrashes, die in Verbindung mit MySQL auftreten können zu vermieden -
entweder ein timer für alle autos oder bei erstellten autos beim letzten paramter kannst du die respawn time einstellen
http://wiki.sa-mp.com/wiki/CreateVehiclebei AddStaticVehicle müsstest du mit einem timer arbeiten jedoch macht das keinen großen unterschied zwischen addstatic und createvehicle
-
dan änder doch ganz einfach passwort in key um und das md5 entfernst du dir als vorlage
$user nimmstbsp:
{$query = mysql_query('SELECT * FROM accounts WHERE name="'.$user.'" AND passwort="'.md5($pass).'"');{$query = mysql_query('SELECT * FROM accounts WHERE name="'.$user.'" AND passwort="'.$pass.'"');ich geh mal davon aus aber naja ich bin kein php held eher gesagt hab ich noch nie groß mit php zu tun gehabt außer
das ich zusammen mit einem kumpel paar fehler gesucht habe bei seinem ucp für mta -
du solltest mal in dne scriptfiles schauen nach dem m_bot vllt steht dort dein name drinne was anderes ist mir nicht bekannt vllt mal die ip
ändern per hotspotshield falls es ein rangeban sein sollte obwohl die kannst du auch per console entbannen -
arbeite am besten mit sscanf da dies schneller ist und auch einfacher und du brauchst kein strtok
hier ein beispiel für solche ein command der sollte so gehen
ocmd:prison(playerid,params[])
{
new pID,geld,grund[64],string[128], pName[MAX_PLAYER_NAME], pIDName[MAX_PLAYER_NAME];
if(sscanf(params,"uds",pID,geld,grund)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /prison [ID/Name] [Betrag] [Grund]");
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht befugt !");
if(IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht da!");
GetPlayerName(pID, pIDName, sizeof(pIDName));
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "AdmCMD:Du hast %s in das Admin Prison gesteckt Grund: %s.", pIDName, grund);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "Du wurdest von Admin %s in das Admin Prison gesteckt Grund: %s.", pName, grund);
SendClientMessage(pID, COLOR_LIGHTRED, string);
GameTextForPlayer(pID, "~w~Willkommen im ~n~~r~ Admin Prison !", 5000, 3);
WantedPoints[pID] = 0;
WantedLevel[pID] = 0;
GivePlayerMoney(pID,-geld);
SetPlayerWantedLevel(pID,0);
PlayerInfo[pID][pJailed] = 2;
PlayerInfo[pID][pJailTime] = 3600;
ResetPlayerWeapons(playerid);
SetPlayerInterior(playerid,0);
return 1;
} -
test es mal so
if(strcmp(cmd,"/respawncars",true) == 0)
{
if(PlayerInfo[playerid][pLeader] == 1){
for(new v=0; v<sizeof(Copcars); v++){
for(new i=0;i< MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
if(GetPlayerVehicleID(i) != Copcars[v]){
SetVehicleToRespawn(Copcars[v]);
SendClientMessage(playerid, COLOR_WHITE,"* Fraktionsfahrzeuge respawnt.");
GivePlayerMoney(playerid, -1500);
}
}
}
}
}else{ return SendClientMessage(playerid,COLOR_RED," Du bist nicht Berechtigt!"); }
return 1;
} -
kennst du überhaupt das native von moveobjekt
MoveObject(MVTor3, 1548.6528,-1628.4587,9-13.3828, 9, 3.0);
MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed)
dann siehst ja den fehler
und zu den anderen errors könntest du mal bitte die direkt angeben
ahja der warning unreachable code kann auch durch eine zeilen verschiebung ausgelöst werden
bsp:
ForceClassSelection(playerid);
..TogglePlayerSpectating(playerid, 0); -
jo stimmt dann sollte man dem spieler ebenfalls eine variabel zuordnen

-
dan gib einer variabel den wert welchen du bei /event einstellen willst und wenn der spieler /event macht vergleichst du eine variabel mit der eingestellten
jedoch solltest die variabel die du vergleichst pro /event erhöhen bis der wert gleich ist -
Onplayerdisconnect musst du doch arbeiten !!
erstmal überlegen das posten. Er sollte erstmal eine Variabel anlegen welche er auch speichert und ladet.
Dan bei dem jeweiligen ereignis zieht er mit gettime das datum raus. welches er mit der anzahl der gewünschten Zeit addiert.
Diese er auch speichert und dies sollte er auch zum schluss wenn der spieler sich auch einloggt wieder abfragen oder ein timer machen der dies checkt jedoch ist das nicht so sinnvoll. Beim einloggen sollte er das datum vergleichen welches er auch noch speichern sollte und die varaibel auf 0 setzen. -
lässt du den wert auch speichern
-
das bringt mir auch nicht viel zeig mal dein logindialog und ich geh mal davon aus das das ganze auch gespeichert wird oder ?
-
mit der funktion
Function ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!BigEar[i])
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}
return 1;
}geht das sehr leicht
native:
ProxDetector(radius, playerid, string,Farbe1,Farbe2,Farbe3,Farbe4,Farbe5);und zur frage 2
dazu könntest du ein textdraw erstellen für den spieler und es auch wieder entfernen oder du setzt den spielervector an manche punkte wo es sehr dunkel ist
bsp tief ins meer. und wenn er enttiet wird musst die camera wieder hinter den Spieler setzen mit SetCameraBehindPlayer -
hast du überhaupt die function oder den stock Addfire im script
-
Besser gesagt was genau funktioniert nicht
-
das schau mal in der property datei nach oder es kann auch daran liegen das limits übergehst oder ist bei dir MAX_PLAYERS neu definiert welches deinem server nicht angepasst ist
und das mit dem payday ist imer Timer1 enthalten einfach wie schon gesagt mal nach dem beruf payday suchen strg +f
-
probiers mal so
format(query,sizeof query,"UPDATE `accounts` SET `Level` = %d SET `Geld` = %d SET `Adminlv` = %d WHERE `Name` = '%s.gtacsfun'", GetPlayerScore(playerid),GetPlayerMoney(playerid),pInfo[playerid][Administrator], PlayerName(playerid));
mysql_query(query);
mysql_free_result();hm meistens liegt entweder am name das dort ihrgend was durcheinander kommt
dann würde ich noch zur sicherheit mysql_real_escape_string benutzenhast schon probiert es zu printen ob er überhaupt duch geht. Jedoch versteh ich nicht wieso du das einzelnt machst und nicht zusammen packst in einen string.