Voll zu unübersichtlich hier
Ändert trotzdem nichts,dann ist das Wiki bsp halt scheiße :D. Kannst es ja mal ausprobieren, wird für jede SpielerID komplett durchlaufen die nicht verbunden ist
Voll zu unübersichtlich hier
Ändert trotzdem nichts,dann ist das Wiki bsp halt scheiße :D. Kannst es ja mal ausprobieren, wird für jede SpielerID komplett durchlaufen die nicht verbunden ist
Zu dem von Atroc.
ID0 wird immer gekickt. Kein Connect-Check, pip leerer String, Leerer String mit irgendwas vergleichen immer false / 0.
Tag mismatch.
Klar geht das :-O.
Macht mal wer weiter ?
ZitatVielleicht die undefinierte Größe und dann sizeof?
Warst du nicht mal Experte ^^? Hat damit nichts zu tun. Ist keine größe angegeben wird sie autom. angepasst. Für sizeof ist es kein Problem die Größe zu bekommen.
ZitatOder dass sizeof mit = i, über der Dimension liegt?
Sehr dicht dran. Erklärung fehlt aber trotzdem :p
//Edit: Und Hauke hat aufgelöst ... . :p
sizeof () wird 6 zurück geben.
Wir können auf das Array aber nur mit dem Index von 0 - 5 bzw 0 - sizeof() -1 zugreifen.
//Edit2 : Sucht ihr aus,wer weiter macht xD
Quatsch.Die sind super :).
new aArray[ ] = { 7 , 18 , 0xFF , 0b01011 , 154 , 1390 };
main() // <-- diese Zeile nur gelöscht.
{
for(new i = sizeof( aArray ) ; i > -1 ; i--) {
printf("%d",aArray[i]);
}
}
Die Klammern sollten nur zeigen,dass man das schon irgendwo aufruft und nicht sinnlos im Kopf rum steht.Geht also noch weiter,Fehler ist immernoch drin.
Auch nicht.
Wundert mich,dass ihr das nicht sehr.Vielleicht nochmal die Schleifen + Arrays üben :p
Ich würde sagen ja, Bsp:
stock string(string[])
{
return string;
}
Genial :D! Ja,Ich meine die Gleiche Benennung
stock test() {
new
sString[32];
sString = "123456789";
return sString;
}
Nö.Macht schon Sinn,wenn Ich mal Rückwärts zählen möchte.Vorallem macht deins jetzt noch weniger Sinn, und zeigt den Fehler nur noch mehr :/.
Sag Ich ja.
new aArray[ ] = { 7 , 18 , 0xFF , 0b01011 , 154 , 1390 };
{
for(new i = sizeof( aArray ) ; i > -1 ; i--) {
printf("%d",aArray[i]);
}
}
Ich war dran ... pff
#endif fehlt auch noch.
Gültigkeitsbereich der Variable ist nur im Loop ( for - Schleife ).
Kompiler müsste sagen,er kennt "i" nicht.
Kannst alles nachlesen in a_samp.inc
#define MAX_PLAYER_NAME (24)
#define MAX_PLAYERS (500)
#define MAX_VEHICLES (2000)
#define INVALID_PLAYER_ID (0xFFFF)
#define INVALID_VEHICLE_ID (0xFFFF)
#define NO_TEAM (255)
#define MAX_OBJECTS (400)
#define INVALID_OBJECT_ID (0xFFFF)
#define MAX_GANG_ZONES (1024)
#define MAX_TEXT_DRAWS (2048)
#define MAX_MENUS (128)
#define MAX_3DTEXT_GLOBAL (1024)
#define MAX_3DTEXT_PLAYER (1024)
#define MAX_PICKUPS (2048)
#define INVALID_MENU (0xFF)
#define INVALID_TEXT_DRAW (0xFFFF)
#define INVALID_GANG_ZONE (-1)
#define INVALID_3DTEXT_ID (0xFFFF)
Da SendClientMessage sowieso überprüft ob die playerid gültig ist,ist es sowieso egal ob das im Check ist oder nicht.Der Übersicht halber sollte es aber trotzdem in den Check :p
Dann ist killerid INVALID_PLAYER_ID und es crasht.
Hab es dort völlig übersehen:
public OnPlayerDeath(playerid, killerid, reason)
{
printf("Debug #1");
SpielerInfo[playerid][Death]++;
if(killerid != INVALID_PLAYER_ID) {
SpielerInfo[killerid][Kills]++;
}
printf("Debug #2 %d",duelstate[playerid]);
if(duelstate[playerid]==1)
{
printf("Debug #3");
if(killerid != INVALID_PLAYER_ID) {
SpielerInfo[killerid][duelkills]++; //Hier könnte es zu einem Crash kommen
}
SpielerInfo[playerid][dueldeaths]++;
printf("Debug #4");
SendClientMessage(playerid,ROT,"Sie sind gestorben!");
SendClientMessage(killerid,ROT,"Sie haben getötet!");
printf("Debug #5");
}
printf("Debug #6");
return 1;
}
INVALID_PLAYER_ID ist 2 ^ 16 ( 65536 ). Dein Array hat aber niemals so eine größe.Deswegen ist das "Out of Bounce" und an der Stelle crasht / stoppt dein Script und es geht nicht weiter.
//Edit:
Die Abfrage mit INVALID_PLAYER_ID ist sehr sehr wichtig unter OnPlayerDeath! Ohne die Abfrage kommt es oft zu problemen,zB wenn der Spieler Selsbtmord begangen hat.Die killerid ist dann INVALID_PLAYER_ID.Was dann passiert, siehst ja an deinem Code ;).
Das löschen aus einer Datei ist nicht ganz so leicht wie daraus lesen oder hinnein zu schreiben.
Leider find Ich dazu auch keine passende Funktion, obwohl ich mir eigentlich sicher bin es gab mal "fremoveline".
Vielleicht hat ja jemand diese Funktion noch :/.
public OnPlayerDeath(playerid, killerid, reason)
{
printf("Debug #1");
SpielerInfo[playerid][Death]++;
SpielerInfo[killerid][Kills]++;
printf("Debug #2 %d",duelstate[playerid]);
if(duelstate[playerid]==1)
{
printf("Debug #3");
if(killerid != INVALID_PLAYER_ID) {
SpielerInfo[killerid][duelkills]++; //Hier könnte es zu einem Crash kommen
}
SpielerInfo[playerid][dueldeaths]++;
printf("Debug #4");
SendClientMessage(playerid,ROT,"Sie sind gestorben!");
SendClientMessage(killerid,ROT,"Sie haben getötet!");
printf("Debug #5");
}
printf("Debug #6");
return 1;
}
Wenn die meisten mal anfangen würden mit Debug-Notes zu arbeiten, würde sie 1) ihr Fehler selber lösen und 2) das auch viel schneller.
Ich währe dafür, dass wir uns nur auf Pawno beschrenken ?
Edit:
Alles raus geamacht, war doch falsch .
Das ist ebenfalls ein Eigentor.PAWNO ist der Editor bzw IDE,PAWN die Sprache.
Wie gesagt,wäre dafür als Regel mit einzuführen dass nur die SA:MP Standart Funktionen genutzt werden dürfen.Alle Funktionen die dazu gehören und im SA:MP Server Paket als Include dabei sind.Keine zusätzlichen Plugins usw usf.
Wir sollten es lieber bei den Standart-SA:MP Funktionen belassen.
Da muss man sich ja erstmal durch die paar MYSQL Plugins klicken :\.
Ich verwechsel nichts.
Mit listitem bekommst du den Index des gewählten Items in der Liste.( 0 - IRGENDWAS ).
inputtext ist eigentlich für den speziellen fall das man ein DIALOG_MENU mit einer input-Box haben will. inputtext funktioniert aber auch bei DIALOG_MENU's mit Listen und gibt dir den Text,der in diesem gewähltem Eintrag steht.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DEIN_DIALOG) { // Dein DIALOG mit den Usernamen,muss Liste sein
printf("listindex %d mit Text %s",listitem,inputtext);
}
return 1;
}
Der inputtext ist dann dein gewählten Username ( In diesem speziellen Beispiel ).