Beiträge von Kaliber
-
-
Wenn er den Spieler erkennt, natürlich

-
Eventuell OnPlayerWeaponShot prüfen und schauen ob ein Spieler getroffen wurde..dieser sich im Auto befindet und gefesselt ist...dann kannste HP manuell abziehen evtl

-
Ist das normal oder kann man dagegen was machen ?
Er verliert keine HP mehr, wenn er durch TogglePlayerControllable gefreezt wurde.
Du könntest eine SpecialAction nutzen: SetPlayerSpecialAction(targetid,SPECIAL_ACTION_CUFFED);
Wenn du ihn in einem Auto "fesseln" willst, dann wird das aber denke ich mal nichts

-
Bist du auch der Fahrer der Aussteigt?
Hast du die if-Abfragen auch nach ganz oben von OnPlayerStateChange gepackt? Nicht das die blockiert werden o.ä.
Wenn das alles stimmt, dann printe dir halt mal was da so ausgegeben wird...ob das auch alles aufgerufen wird...
-
Hast du auch lastVeh global deklariert? (nach oben geschrieben?)
-
Hier mal ein Beispiel-Skript:
C
Alles anzeigennew lastVeh[MAX_PLAYERS]; //Unter OnPlayerStateChange if(newstate == PLAYER_STATE_DRIVER) lastVeh[playerid] = GetPlayerVehicleID(playerid); if(oldstate == PLAYER_STATE_DRIVER) { //Hier ist der Fahrer ausgestiegen: UnLockVehicle(lastVeh[playerid]); } //Die Funktion UnLockVehicle stock UnLockVehicle(veh) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(veh, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(veh, engine, lights, alarm, 0, bonnet, boot, objective); for(new i=GetPlayerPoolSize(); i!=-1; i--) { if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(veh,i,0,0); } } -
Kurze Frage, sind die Arbeiten an SA-MP eigentlich eingestellt, oder kann man noch vielleicht das ein oder andere Update erwarten?
Ich denke mal schon, dass da noch Updates kommen werden.

Zudem gibt es da einige, die Druck machen xD
https://www.change.org/p/kalco…0%D1%83%D0%BA%D0%B0%D1%85 -
Die dazugehörigen Zeilen..wären eventuell ganz interessant..bzw poste einfach mal so die Abschnitte oder alles

-
-
//edit gab es nicht im Dezember irgendwo ein Thread mit einer Mittelsmann Seite Entwicklung?? wo große Worte gespuckt wurden.
-
Gibts da Probleme mit den Compilern oder der Ausfuehrung?
Naja..wenn es der Compiler falsch interpretiert..gibts natürlich Probleme mit der Ausführung

Es kommt halt darauf an, was für einen Compiler du verwendest...wenn du einen C99 Compiler verwendest, dann sollte es da keine Probleme geben.
Dennoch ist dies manchmal ein möglicher Fehlergrund, wenn der Compiler eben falsch eingestellt ist...
-
jedoch wird auch da bei mir der Teil in der Schleife leider nicht geprintet.
Doch wird er...es wird nur nicht schön dargestellt...hier:
Schreib das über die untere for-Loop:
printf("\n\nSortiert:\n");
-
Versuchs doch mal so:
C
Alles anzeigen//Falls du IsNull nicht hast: #define IsNull(%0) (!%[0]||(%0[0]=='\1'&&!%0[1])) //Befehl ocmd:me(playerid, params[]) { if(IsNull(params)) return SendClientMessage(playerid, COLOR_GREY, "[OOC] Befehl: /me [Text]"); new string[144+1], Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z),GetPlayerName(playerid, string, MAX_PLAYER_NAME); format(string, sizeof(string), "* %s %s *", string, params); foreach(Player, i) { if(IsPlayerInRangeOfPoint(i, 6.5, X, Y, Z)) SendClientMessage(i, COLOR_ME, string); } return 1; } -
Alles anzeigen
int loop2;
for(loop2=0;loop2<size;loop2++)
{
printf("%d",array[loop2]);
}while(loop2<size)
{
printf("%d",array[loop2]);
loop2++;
}Also als 1. du resettest nicht die Variable loop2 (also setzt diese nicht wieder auf 0 vor der while Schleife
2. Wieso nutzt du da eine while-Schleife? Die Aufgabe ist perfekt für eine for-Schleife?
3. Wieso nutzt du da überhaupt noch eine Schleife? Schließlich steht das 1:1 über der While - Schleife..du hast da 2x den selben Code...
Und du verwendest wieder C99 Stil...lass doch mal Variablen-Deklarationen aus den Schleifen

Hier, schreib es so:
C
Alles anzeigenint main() { int size=0,loop,qrand; int *array; printf("Array-Groesse eingeben: "); scanf("%d", &size); // Allocate memory array = (int *) malloc(size * sizeof(int)); if(array != NULL) { printf("\nSpeicher ist reserviert\n"); printf("\nFilling array.\n"); for(loop=0;loop<size;loop++) { qrand=rand() %20; array[loop]=qrand; printf("%d",qrand); } } else printf("\nKein freier Speicher vorhanden.\n"); heapsort(array,size); for(loop=0;loop<size;loop++) { printf("%d",array[loop]); } printf("\nSpeicher ist freigegeben\n"); free(array); return 0; } -
DIALOG_STYLE_INPUT
Nein

Das hat etwas damit zu tun, dass du den String nicht richtig formatierst....
format(string,sizeof(string),"{EB0000}Der Fahrpreis muss zwischen 1$ und 1000$ liegen.\n");
format(string,sizeof(string),"%s{FFFFFF}Um als Taxifahrer zu arbeiten, gib hier den Fahrpreis ein. Du erhälst ihn alle 15 Sekunden.", string); -
Woran kann das liegen? Ich weiss aktuell nicht wo der Fehler liegt
Also bei mir wird es fehlerfrei ausgeführt.
Eventuell mal keinen C99 Stil verwenden
C
Alles anzeigenint main () { int zf,r,zn; printf("\n Filling array with %lu elements \n",sizeof(heaparray)); for(zf=0;zf<sizeof(heaparray);zf++) { r = rand() % 20; heaparray[zf]=r; printf("%d",r); } printf("\n\n "); printf("\nSorting..\n"); printf("\n\n "); if(sizeof(heaparray) != sizeof(heaparray)) return printf("Something went wrong during filling"); heapsort(heaparray,sizeof heaparray); printf("\n\n "); for(zn=0;zn<sizeof(heaparray);zn++) { printf("%d",heaparray[zn]); } return 0; } -
Naja, hier gäbe es 2 gute Möglichkeiten.
1. Du erstellst ein 2D-Array...1D = Kills...2D = ID und dann sortierst das nach Kills und hast die ID

2. Du durchsuchst einfach nur das Array:
C
Alles anzeigen//Initialisierung #define UNDEFINED -1 new killArray[MAX_PLAYERS] = {UNDEFINED, ...}; main() { //Test-Daten killArray[0] = 5; killArray[5] = 9; killArray[7] = 4; //Eigentliche Prozedur new playerid,kills; findMostKills(killArray,playerid,kills); printf("Spieler mit meisten Kills: %d (%d)",playerid,kills); //Out->"Spieler mit meisten Kills: 5 (9)" } //Such Funktion stock findMostKills(const arr[],&playerid,&kills,const size = sizeof(arr)) { playerid=0, kills=arr[0]; for(new i=1; i<size; i++) if(arr[i] > kills) kills=arr[i],playerid=i; } -
Map/HUD wie bekomme ich die schwarz ? Bzw. Kann man den HUD(Nur die kleine Karte) irgendwie ausblenden?
Entweder über den SpecateModus, dadurch verschwindet die HUD oder ein schwarzes TextDraw / Sprite drüber (gibt ein rundes sprite)

Vielleicht ist ein Fehler im Code?
Nein. Hier mal ein Zitat, was das ganz gut erklärt:
Im Durchschnitt ist Heapsort nur dann schneller als Quicksort, wenn Vergleiche auf den zu sortierenden Daten sehr aufwendig sind und gleichzeitig eine für Quicksort ungünstige Datenanordnung besteht (z. B. viele gleiche Elemente). In der Praxis ist bei unsortierten oder teilweise vorsortierten Daten Quicksort oder Introsort um einen konstanten Faktor (2 bis 5) schneller als Heapsort.
-