Wie du siehst..wird da schon SHA-256 genutzt ![]()
Jetzt musste dir nur noch den Salt aus dem PHP Skript suchen und in Pawn verwenden ![]()
Wie du siehst..wird da schon SHA-256 genutzt ![]()
Jetzt musste dir nur noch den Salt aus dem PHP Skript suchen und in Pawn verwenden ![]()
Pass dein UCP doch lieber an? ![]()
Irgendwo müsste da ein hash('sha1', $pw) sein...das ändereste auf hash('sha256', $pw) und fertig ![]()
Einfach so:
new MyHash[64 + 1]; //+1 für NULL Byte
SHA256_PassHash(PlayerInfo[playerid][pUCPPassword], "IchBinEinSichererSalt", MyHash, sizeof MyHash); //Natürlich Salt anpassen xD
mysql_SetString("accounts", "UCPPassword", MyHash, "Name", PlayerInfo[playerid][pIngameName]);
Und musst natürlich die Abfrage ändern...ob er das richtige Passwort eingegeben hat..da musst du dann seinen inputtext auch hashen ![]()
Wieso nutzt du nicht SHA-256 (SHA2): https://wiki.sa-mp.com/wiki/SHA256_PassHash
Wurde doch seit 0.3.7 in Pawn implementiert ![]()
Wo ist der Fehler?
Der Code ist voller Fehler...
es gibt kein float: wenn dann nur Float: aber das braucht man nur an die Variable setzen, nicht an die Zahlen in Pawn, da es kein double gibt.
Du hast viele Klammern & viele Semikolons vergessen oder falsch gesetzt oder unnütze [ ] gesetzt..
Desweiteren ist pause, genauso wie goto schwachsinn...
Zudem war playerid gar nicht deklariert...
Also schreib den Code mal so:
forward InitDoors();
new Float:blastOpenR[]= {207.7000000,1875.5000000,13.9000000};
new Float:blastOpenL[]= {220.0000000,1875.5000000,13.9000000};
new Float:blastLockedR[]={215.8999900,1875.5000000,13.9000000};
new Float:blastLockedL[]={211.8999900,1875.5000000,13.9000000};
stock const Float:blastSpeed= 0.5;
new Float:dblastDoor[3];
public OnGameModeInit()
{
dblastDoor[0] = floatabs(blastOpenR[0]-blastOpenL[0]);
dblastDoor[1] = floatabs(blastOpenR[1]-blastOpenL[1]);
dblastDoor[2] = floatabs(blastOpenR[2]-blastOpenL[2]);
SetTimer("InitDoors", 1000, 1); //So wird das jede Sekunde aufgerufen
return 1;
}
public InitDoors()
{
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInRangeOfPoint(i,5,dblastDoor[0],dblastDoor[1],dblastDoor[2])) continue;
if(gPlayerTeamSelection[i] == SPAWN_TEAM1)
{
if(!IsObjectMoving(blastDoorR) || blastDoorL)
{
MoveObject(blastDoorL,blastOpenL[0],blastOpenL[1],blastOpenL[2],blastSpeed);
MoveObject(blastDoorR,blastOpenR[0],blastOpenR[1],blastOpenR[2],blastSpeed);
}
}
else
{
if(!IsObjectMoving(blastDoorL) || blastDoorR)
{
MoveObject(blastDoorR,blastLockedR[0],blastLockedR[1],blastLockedR[2],blastSpeed);
MoveObject(blastDoorL,blastLockedL[0],blastLockedL[1],blastLockedL[2],blastSpeed);
}
}
}
return 1;
}
Alles anzeigen
weiß jemand warum keine Wanteds nach einer 30 Sekunden gelöscht werden?
Du deklarierst pID weißt aber keinen Wert zu.
Sprich somit ist pID immer 0...
Kann man das Einstellen wen ein Kunde der Wanteds hat im Auto ist das man es für ihn löscht? egal wv Kunden im Auto sind
Ehh natürlich:
Das sieht eigentlich richtig aus...
Wie hast du den FrakEinstell3 definiert?
und am besten printest du dir mal den string ![]()
Was ist das Problem?
Dein Stack ist nur begrenzt groß.
Wenn du Speicher in einer Funktion (auch ein Befehl steht in einer Funktion) reservierst mit z.B. new test[5000]; werden 5000*4 Bytes im Stack alloziiert. Und dann kann es zu einer Stack / Heap Kollission kommen.
Deshalb #pragma dynamic was deinen Stack & deinen Heap um eine bestimmte Anzahl an Bytes vergrößert ![]()
Allerdings sollte das nicht notwendig sein...schau doch mal wo du große Arrays stehen hast..eventuell hast du sie unnötig groß gemacht bzw dich um eine 0 oder so vertippt ![]()
Warum finden voids in PAWN bzw. in SA-MP Scripts nie Verwendung? Sind doch super praktisch.
Es gibt weder void noch int in Pawn.
Das führt er bei dir nur aus, weil es vom Compiler ignoriert wird, da das in der Sektion #if defined filterscript steht und dies nirgends definiert wurde, also wird der komplette Codeblock ignoriert ![]()
Zudem gibt es leider nicht direkte Pointer in Pawn ![]()
...kopieren ohne Gehirn funktioniert halt nicht immer ![]()
CMD:freefromcar(playerid, params[])
{
if(Spieler[playerid][pFraktion] != 10) return SendClientMessage(playerid, COLOR_GREY, "Du bist nich bei der Fraktion!");
new giveplayerid,sit;
if(sscanf(params,"ud",giveplayerid,sit)) return SendClientMessage(playerid, COLOR_GREY, "Befehl: /freefromcar [playerid] [Sitz: 0 = vorne rechts, 1 = hinten links, 2 = hinten rechts]");
if(Spieler[giveplayerid][pCuffed] == 1) return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht Gefässelt oder in Handschellen!");
if(GetDistanceBetweenPlayers(playerid, giveplayerid) >= 15) return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht in deiner Nähe!");
if(!IsPlayerInAnyVehicle(giveplayerid) || !IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Du oder der spieler ist in keinem Fahrzeug!");
if(GetPlayerVehicleID(playerid) == GetPlayerVehicleID(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "Der spieler muss in einem Anderen Fahrzeug sitzen!");
if(Spieler[playerid][pCuffed] == 1) return SendClientMessage(playerid, COLOR_GREY, "Du bist gefesselt und kannst diesen Befehl grade nicht nutzen!");
if(GetPlayerState(giveplayerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "Der Spieler darf nicht der Fahrer sein!");
GameTextForPlayer(playerid, "~y~du musst nun 10 Sekunden dran bleiben", 1500, 3);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); //25821
format(string, sizeof(string), "* Jemand versucht %s aus dem Auto zu befreien",giveplayer);
ProxDetector(30.0, giveplayerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("FreeFromCar", 10000,0,"ddd",playerid, giveplayerid, sit);
format(string,sizeof(string),"%s hat %s aus den car gezogen ",sendername,giveplayer);
EnterToLog("freefromcar",string);
return 1;
}
//Und die Funktion:
stock GetDistanceBetweenPlayers(a, b)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(b,x,y,z);
return floatround(GetPlayerDistanceFromPoint(a,x,y,z));
}
Alles anzeigen
Einfach +1 am Ende rechnen? Nein oder ?
Nein, das würde ja keinen Sinn machen xD
forward MsgRandom();//Random Server Message
public MsgRandom()
{
static last;
for(new i,tmp; i < MAX_PLAYERS; i++)
{
if(pData[i][P_RandomServerMSG] == 1)
{
tmp = new_random(last, sizeof(RandomMessage));
SendClientMessage(i, -1, RandomMessage[tmp]);
last = tmp;
return 1;
}
}
return 1;
}
stock new_random(last, max)
{
new r;
do
{
r=random(max);
}
while(r == last);
return r;
}
Alles anzeigen
Das return 1; in der Schleife..sorgt übrigens dafür, dass das nur an 1ne Person gesendet wird ![]()
for(new i; i < sizeof(FinalRound[]); i++)
Achso, ja übersehen ![]()
Du hast nur ein 1 Dimensionales Array.
Da reicht:
for(new i; i<sizeof(FinalRound); i++)
Das müsste so gehen...wie hast du sie denn zugewiesen? ![]()
Hmm, was mache ich hier falsch?
Was...funktioniert denn nicht? ![]()
Hatte jemand schon diesen Fehler und kann da weiter helfen?
Jau, das ein Bug in SA:MP. Ist eine spezielle Art des Timebugs xD
Tritt genau dann auf, wenn du während du in einem Auto bist, gespawnt wirst ![]()
Das bedeutet, wenn du SpawnPlayer(playerid); und sich dieser Spieler in einem Auto befindet...landet er da...
Lösung...slap den spieler kurz hoch..oder setz ihn kurz ans Ende der Map oder an den 0 Punkt..what ever und dann lass ihn erst spawnen ![]()
new rows;
cache_get_row_count(rows);
if(rows == 0)
Das hier ist falsch.
Richtig wäre:
if(cache_get_row_count() == 0)
Okay, kannst du uns mal den Code zeigen, wie du ihn in das Interior setzt?
Und ein Interior ist nicht gleich einer Virtuellen Welt ![]()
Wie hast du COLOR_GREEN definiert?