Beiträge von Kaliber
-
-
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
C
Alles anzeigenCMD: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)); } -
Einfach +1 am Ende rechnen? Nein oder ?
Nein, das würde ja keinen Sinn machen xD
C
Alles anzeigenforward 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; }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?
-
GetVehicleDistanceFromPoint(GetPlayerVehicleID(playerid), x, y, z);
Die Funktion heißt TaxiBisBeiDir...nunja ich denke mal die Person selbst sitzt nicht im Taxi...also ist hier die Angabe der Vehicleid falsch!

Musst die des Taxis nehmen...

-
if(Health < pHealth[i ])
..ich glaube du wolltest hier schreiben..if((pHealth[i] < Health)
Allerdings..wird man dann immernoch gebannt, wenn man an einen Automaten geht...
und das return 1; in Zeile 46. macht keinen Sinn

-
Deine ganzen Varianten sind identisch.
Du musst wissen, bevor deine .pwn Datei zu einer .amx Datei wird, wird dein Skript kompiliert.
Und bevor das passiert, kommt der pre-kompiler und verarbeitet deine #define.
Und zwar werden diese einfach ersetzt:
//Variante 1
new x;
printf("%d",x);//Variante 2
#define ROFL "%d",x
new x;
printf(ROFL);Nach dem pre-compiler wird Variante 2 zu Variante 1.
Insofern, sparst du mit einem #define meistens nur Schreibarbeit und machst es eventuell ein wenig übersichtlicher, wenn du es richtig einsetzt.
und es ist egal wie du bzw ob du Klammern setzt und Umbrüche lässt. Das wird so oder so alles entfernt während des compilen und umgewandelt

Das dient alles lediglich der Übersicht, macht aber keinen "Ressourcen" unterschied

-
Unter TextDrawSetString schreib mal
TextDrawShowForPlayer(playerid, euroupdate[playerid]);
-
aber iwie haut das nicht hin setze ich die klammern falsch oder ich weiß es nicht
...erkläre mir doch mal die Klammer in Zeile 7?

...lösche diese

-
Ne frage warum wird nur bis Test3 geprintet ?
Dann ist ein Fehler im Query...

Check mal die Logs :b