SendClientMessage(playerid,COLOR_INTRO,intronachricht[128]);
format(intronachricht[128],128,"Hi %s willkommen auf noLife.",playernamecon[24]);
GetPlayerName(playerid,playernamecon[24],24);
zu
SendClientMessage(playerid,COLOR_INTRO,intronachricht);
format(intronachricht,128,"Hi %s willkommen auf noLife.",playernamecon);
GetPlayerName(playerid,playernamecon,24);
Beiträge von malE
-
-
f_Friend_2[playerid](i) sind mit Spielernamen ( Freunde ) gefüllt. Damit auch die Freunde von 'playerid' angezeigt werden, wenn diese mal nicht Online sind.
Deswegen kann ich schon mal nicht IsPlayerConnected() benutzen.So sieht die Funktion von Jeffry aus.
Code
Alles anzeigenstock ReturnPlayerID(l_PlayerName[]) //©Jeffry { new l_name[MAX_PLAYER_NAME]; for(new i = 0; i < MAX_PLAYERS; i++) { if(GetPlayerName(i, l_name, MAX_PLAYER_NAME)) { if(!strcmp(l_name,l_PlayerName, true)) return i; } } for(new i = 0; i < MAX_PLAYERS; i++) { if(GetPlayerName(i, l_name, MAX_PLAYER_NAME)) { if(strfind(l_name,l_PlayerName,true)!=-1) return i; } } return INVALID_PLAYER_ID; }
-
Außerdem ist mir aufgefallen, dass du MAX_FRIENDS global definiert hast, was ist aber wenn ein Spieler weniger als die definierte Anzahl hat? Dann wird der for-Loop zwar ausgeführt, f_Friend_2[playerid][i] ist aber leer.
Vielleicht liegt es daran. Hast du vielleicht eine Lösung dafür?
-
Dann hast du vielleicht nicht unterstütze Zeichen in deinem Dialog oder du hast ein leeres Feld, son Problem hatte ich schonmal.
ShowPlayerDialog(playerid, DIALOG_FREUNDE_LIST, DIALOG_STYLE_LIST, "{10549E}• Freundesliste", str, "Auswählen", "Schließen");
vielleicht ist der 'str' leer oder es ist dieses Zeichen mit einer falschen Kodierung '•'An dem '•' liegt es nicht, da ich es schon bei anderen Dialogen problemlos benutze.
Es sollte auch eigentlich nicht daran liegen, dass evt. der String leer ist. Trotzdem danke für deine Bemühung.
Ich bin selbst plan- und ratlos. -
Crasht dein GTA, oder crasht dein Server?
Nur mein GTA crasht.
-
Warum crasht GTA wenn ich dieses listitem öffne?
Es werden alle Freunde von 'playerid' angezeigt und abfragt ob Freund[i] online ist.
Code
Alles anzeigenif(listitem == 2) { // Es werden alle Freunde von 'playerid' angezeigt und abfragt ob Freund online ist. new str[1300], status[32]="n/a"; for(new i=0; i < MAX_FRIENDS; i++) { printf("f_Friend_2: %s", f_Friend_2[playerid][i]); if(ReturnPlayerID(f_Friend_2[playerid][i]))status="online"; else status="offline"; format(str, sizeof(str), "{FFFFFF}%sFreund %s (%s)\n", str, f_Friend_2[playerid][i], status); } ShowPlayerDialog(playerid, DIALOG_FREUNDE_LIST, DIALOG_STYLE_LIST, "{10549E}• Freundesliste", str, "Auswählen", "Schließen"); }
-
Brauche noch Hilfe bei meinem Problem.
[SAMMELTHREAD] Kleine Scripting Fragen -
Habe ein Problem beim auflisten der Freunden eines Spielers.
Codeif(listitem == 2) { SendClientMessage(playerid, -1, "[DEBUG] listitem 2 ( friendlist )"); new str[1500]; for(new i=0; i < MAX_FRIENDS; i++) { format(str, sizeof(str), "{FFFFFF}%s%s ( %s )\n", str, PlayerInfo[f_Friend[playerid][i]][p_Name], "{808080}unbekannt"); } ShowPlayerDialog(playerid, DIALOG_FREUNDE_LIST, DIALOG_STYLE_LIST, "{10549E}• Freundesliste", str, "Auswählen", "Schließen"); }
Was bedeutet das
Code[22:06:40] [debug] Run time error 4: "Array index out of bounds" [22:06:40] [debug] Accessing element at index 65535 past array upper bound 999 [22:06:40] [debug] AMX backtrace: [22:06:40] [debug] #0 00001278 in public OnDialogResponse (0, 2, 1, 2, 3048144) from Friends-Skript.amx
Wie kann ich reibungslos Murat| aus dem String entfernen?
Mustafa.|Murat|John_Miller|NINO -
Du erstellst auch ein Vehicle ( CreateVehicle ).
Du musst CreateObject benutzen.Ersetze CreateVehicle durch CreateObject
-
Habe es nicht getestet, aber so sollte es eigentlich funktionieren.
Code
Alles anzeigenpublic OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { if(hittype == BULLET_HIT_TYPE_VEHICLE && weaponid == 23) // Bedingung: Spieler schießt auf ein Auto & mit einer Waffe (ID:23) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(hitid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(hitid, 0, 0, alarm, doors, bonnet, boot, objective); SendClientMessage(playerid, -1, "Du hast das Fahrzeug mit deiner EMP-Kanone ausgeschaltet."); } return 1; }
-
Jede Minute, aber ich nimms dir nicht übel!
-
Es ist extrem ressourcenfressend wenn du jedes mal ein Timer erstellt sobald ein Spieler connected!
Code
Alles anzeigen// OnGameModeInit SetTimer("Payday", 1000*60, true); forward Payday(); public Payday() { if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue; PlayerInfo[i][p_Payday] ++; if(PlayerInfo[i][p_Payday] >= 60) { PlayerInfo[i][p_Payday] = 0; // Dein Code z.B GivePlayerMoney(i, 300); } }
-
Stimmt! Hatte es nämlich irgendwo gesehen, dass man so arbeiten kann.
War mir aber nicht sicher ob es nun bei switch oder if war.
Danke! -
-
Code
Alles anzeigennew Float:angle; GetVehicleZAngle(GetPlayerVehicleID(playerid), angle); if(angle == 46) { // Was soll passieren } // ich würde dir es so empfehlen. if(angle > 46 && angle < 60) // 60 musst du ggf. ändern, habe einfach irgendeine zahl eingetragen { }
// Edit:
Allerdings würde ich die Rotation vom Anhänger Abfragen, anstatt die vom Roadtrain. -
Komisch, diese Version von dir funktioniert.
Als ich es getestet hatte, war meine Version ca. 95% wie deine Aufgebaut, wahrscheinlich hatte ich irgendwo ein dummen Fehler.// Edit:
Danke! -
Dann nutze ein Index, z.B. 0 -> Business
1 -> HausGruß.
Wäre nett wenn du mir das ausführlich bzw genauer erklären wurdest.
-
Daran hakt es nicht.
Mein Problem liegt in OnDialogResponse.
Dort weiß ich nicht wie ich es schreiben soll.
Denn die Markierung für den Spieler soll richtig gesetzt werden, aber wie? Weil ich ja die Aufträge zwischen Haus oder Business Auftrag bestimmen muss, damit ich z.b den Checkpoint für den Spieler richtig setzen kann. -
Wie kann ich die beiden Enum in einem Befehl unterbringen?
Hatte es schon so versucht gehabt, aber es scheiterte dann beim Anzeigen bzw. bei OnDialogResponse, wo ich die Aufträge an den Spieler verteilt habe.Code
Alles anzeigenocmd:auftragsliste(playerid, params[]) { if(PlayerInfo[playerid][p_Job] != 2)return 1; new str[1024], zone[MAX_ZONE_NAME], preis; for(new i=0; i < sizeof(HausInfo); i++) { if(HausInfo[i][h_Bestellt] != true)continue; preis = (100-HausInfo[i][h_Produkte])*12; GetKamera2DZone2(HausInfo[i][h_X], HausInfo[i][h_Y], zone, MAX_ZONE_NAME); format(str, sizeof(str), "%s\t%d/100\t$%s\t%s\n", str, HausInfo[i][h_Produkte], ConvertMoney(preis), zone); } for(new i=0; i < sizeof(Business); i++) { if(Business[i][b_bestellt] != true)continue; //... } format(str, sizeof(str), "Produkte\tVerdienst\tStandort\n%s", str); ShowPlayerDialog(playerid, DIALOG_AUFTRAGSLISTE, DIALOG_STYLE_TABLIST_HEADERS, "{FBBA42}Auftragsliste", str, "Auswählen", "Schließen"); return 1; } // OnDialogResponse if(dialogid == DIALOG_AUFTRAGSLISTE) { if(!response)return 1; new counter = -1; for(new i=0; i < sizeof(HausInfo); i++) { if(HausInfo[i][h_Bestellt] != true)continue; counter++; if(counter == listitem) { SetPlayerCheckpoint(playerid, HausInfo[i][h_X], HausInfo[i][h_Y], HausInfo[i][h_Z], 3); SendClientMessage(playerid, COLOR_JOB, "Du hast den Auftrag angenommen, begebe dich nun zum Marker."); PlayerInfo[i][p_ImAuftrag] = counter; SetPVarInt(playerid, "Haus", 1); break; } } }
-
Habe alles ausgeklammert, aber es stürzt immer noch ab.
-
Es stürzt ab wenn ich, mysql_close(handle); aus OnGameModeExit() ausklammere.
Es stürzt nicht ab wenn ich, mysql_close(handle); nicht aus OnGameModeExit() ausklammere, jedoch taucht diese [WARNING] CMySQLConnection::Disconnect - no connection available Meldung in der MySQL Log auf.Aber mir sind keine Problemen aufgefallen wenn das warning in der MySQL Log kommt.