[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Nein Dimensionen sind was anderes.
Code
Alles anzeigennew fscp_strecke1[][][fahrschulcheckpoints] = {//Erste Dimension {//Zweite Dimension //Route 1 {0.0,0.0,0.0},//Dritte Dimension {0.0,0.0.0.0}//Dritte Dimension }, {//Zweite Dimension //Route 2 {0.0,0.0,0.0},//Dritte Dimension {0.0,0.0,0.0}//Dritte Dimension } }
Ich bin mir nicht sicher ob du das so angeben kannst:
Musst du mal probieren, hab länger nicht mehr mit PAWN gearbeitet. -
Nein dann kommt
Error 001 expected token: "]",but found "-integer value-"
warning 215: expression Has no effect -
Von wo holst du diesen MYSQL_Handler her?
Du gehts nämlich durch die Rows dieses Handlers durch.Die hole ich mir her.
stock MySQL_SetupConnection(ttl = 3){print("|-> Die MySQL Verbindung wird Getestet! <-|");MySQL_Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);if(mysql_errno(MySQL_Handle) != 0){if(ttl > 1){printf("|-> Die Verbindung zur MySQL Datenbank (%s) konnte nicht hergestellt werden! <-|", MYSQL_DATA);printf("|-> Es wird ein neuer Verbindungsversuch gestartet! (TTL: %d) <-|", ttl-1);return MySQL_SetupConnection(ttl-1);}else{printf("|-> Die Verbindung zur MySQL Datenbank (%s) konnte nicht hergestellt werden! <-|", MYSQL_DATA);print("|-> Bitte prüfe die Verbindungsdaten, und versuche es erneuert! <-|");print("|-> Der Server wird nun Geschlossen! <-|");return SendRconCommand("exit");}}printf("|-> Die Verbindung zur MySQL Datenbank (%s) wurde erfolgreich hergestellt! <-|", MYSQL_DATA);printf("|-> Die MySQL Handle: %d <-|", MySQL_Handle);return 1;}
Sobald ich ein Port erstelle kann ich ihn auch aufrufen, nach dem ich aber ein Server Restart gemacht habe, nicht mehr!
-
Du kannst in sizeof die Dimensionen mit angeben (glaub ich zumindest).Quasi:
Codesizeof(fscp_streacke1) //Gesamt sizeof(fscp_streacke1[]) //Erste Dimension sizeof(fscp_streacke1[][]) //Zweite Dimension sizeof(fscp_streacke1[][][]) //Dritte Dimension
@The Sensei
Was genau geht denn nicht / nur ab und zu?Also ich hab hier meine Deklaration :
static const f_rang[][] = {
{"Trainee","Police Officer","Detective","Sergeant","Lieutenant","Captain","Commander","Deputy Chief of Police","Assistant Chief of Police","Chief of Police"}, //SAPD
{"Trainee","Police Officer I","Police Officer II","Sergeant","Lieutenant","Captain","Deputy Chief","Assistant Sheriff","Undersheriff","Sheriff"}}; //LVPDund hier meinen Code wie ich dies benutzen will.
if(PlayerInfo[playerid][pFraction] > 0){
format(string,sizeof(string),""#info_farbe"Du bist derzeitig beim %s als %s tätig.", f_name[PlayerInfo[playerid][pFraction]], f_rang[PlayerInfo[playerid][pFraction]][PlayerInfo[playerid][pFrank]]);
SendClientMessage(playerid,-1,string);
}Eigentlich ist doch alles richtig...
-
Ich hab keine Warnings/Errors
Supi
Bedenke, dass die Arrays bei 0 Anfangen, also machst du entweder einen Platzhalter für den Rang...oder ziehst -1 beim Rang ab.
sizeof(fscp_streacke1) //Gesamt
sizeof(fscp_streacke1[]) //Erste Dimension
sizeof(fscp_streacke1[][]) //Zweite Dimension
sizeof(fscp_streacke1[][][]) //Dritte DimensionDas ist so nicht ganz richtig...
sizeof(x) gibt die 1. Dimension zurück
sizeof(x[]) die 2.
sizeof(x[][]) die 3. -
-
@Kaliber
Danke für die Info. Länger nicht mehr mit PAWN gearbeitet.Wie Kaliber schon erwähnte noch das -1 machen da arrays bei 0 anfangen.
-
Supi
Bedenke, dass die Arrays bei 0 Anfangen, also machst du entweder einen Platzhalter für den Rang...oder ziehst -1 beim Rang ab.Das ist so nicht ganz richtig...
sizeof(x) gibt die 1. Dimension zurück
sizeof(x[]) die 2.
sizeof(x[][]) die 3.Er zeigt mir an das die SetPlayerSkin zeile Falsch sein soll. Warscheinlich ein Klammerfehler doch ich finde keinen.
ocmd:makeleader(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,4) || !IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,""#error_farbe"Keine Berechtigung");
new pID, fraction, string[128];
if(sscanf(params,"ui",pID,fraction))return SendClientMessage(playerid,-1,"Tippe: /makeleader [spieler] [fraktion]");
if(fraction<0||fraction>14)return SendClientMessage(playerid,-1,""#error_farbe"Bitte gültigen Fraktion angeben.");
PlayerInfo[pID][pFraction] = fraction;
PlayerInfo[pID][pFrank] = 10;
SetPlayerSkin(pID, f_skins[[pID][pFraction]-1][[pID][pFrank]-1]);
SaveUserStats(pID);
format(string, sizeof(string),""#info_farbe"%s hat dich zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],f_name[PlayerInfo[pID][pFraction]]);
SendClientMessage(pID,-1,string);
format(string, sizeof(string),""#success_farbe"Du hast erfolgreich %s zum Leader der Fraktion %s gemacht.",PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
SendClientMessage(playerid,-1,string);
format(string, sizeof(string) ,"%s hat %s zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
Log("AdminLog",string);
return 1;
} -
Aber da nehme ich auch Route um zu wissen welche Strecke es ist geht das nicht auch iwie bei sizeof?
Code
Alles anzeigenenum Fahrschulcheckpoints { Float:fscp_x, Float:fscp_y, Float:fscp_z, Float:fscp_rad } new fscp_strecke1[][][Fahrschulcheckpoints] = { { {1420.4747,-1650.9874,12.9183,4.0}, {1442.0400,-1527.3809,12.9318,4.0}, {1457.3605,-1181.8098,22.1781,4.0}, {1484.7733,-1046.9332,23.2085,4.0}, {1380.0831,-1033.3884,25.8709,4.0}, {1374.9781,-958.5410,33.6481,4.0}, {1191.7825,-935.7949,42.2936,4.0}, {1004.8117,-956.1220,41.1875,4.0}, {588.9537,-1222.1122,17.3355,4.0}, {498.8979,-1331.8008,15.4384,4.0}, {441.8085,-1505.4916,30.4206,4.0}, {613.9475,-1592.6312,15.5575,4.0}, {640.2908,-1419.9365,13.0931,4.0}, {799.9543,-1342.6307,12.9321,4.0}, {945.2153,-1232.6627,16.2017,4.0}, {1146.2305,-1403.1858,13.0817,4.0}, {1299.4003,-1838.3225,12.9320,4.0}, {1417.2319,-1735.1187,12.9399,4.0}, {1420.4747,-1650.9874,12.9183,4.0} }, { {1420.4747,-1650.9874,12.9183,5.0}, {1442.0400,-1527.3809,12.9318,5.0}, {1457.3605,-1181.8098,22.1781,5.0}, {1484.7733,-1046.9332,23.2085,5.0}, {1380.0831,-1033.3884,25.8709,5.0}, {1374.9781,-958.5410,33.6481,5.0}, {1191.7825,-935.7949,42.2936,5.0}, {1004.8117,-956.1220,41.1875,5.0}, {588.9537,-1222.1122,17.3355,5.0}, {498.8979,-1331.8008,15.4384,5.0}, {441.8085,-1505.4916,30.4206,5.0}, {613.9475,-1592.6312,15.5575,5.0}, {640.2908,-1419.9365,13.0931,5.0}, {799.9543,-1342.6307,12.9321,5.0}, {945.2153,-1232.6627,16.2017,5.0}, {1146.2305,-1403.1858,13.0817,5.0}, {1299.4003,-1838.3225,12.9320,5.0}, {1417.2319,-1735.1187,12.9399,5.0}, {1420.4747,-1650.9874,12.9183,5.0} } }; new route = afsinfo[playerid][afs_Route],string[128]; SetPlayerCheckpoint(playerid,fscp_strecke1[route][0][fscp_x],fscp_strecke1[route][0][fscp_y],fscp_strecke1[route][0][fscp_z],fscp_strecke1[route][0][fscp_rad]);
-
-
Aber da nehme ich auch Route um zu wissen welche Strecke es ist geht das nicht auch iwie bei sizeof?
Code
Alles anzeigenenum Fahrschulcheckpoints { Float:fscp_x, Float:fscp_y, Float:fscp_z, Float:fscp_rad } new fscp_strecke1[][][Fahrschulcheckpoints] = { { {1420.4747,-1650.9874,12.9183,4.0}, {1442.0400,-1527.3809,12.9318,4.0}, {1457.3605,-1181.8098,22.1781,4.0}, {1484.7733,-1046.9332,23.2085,4.0}, {1380.0831,-1033.3884,25.8709,4.0}, {1374.9781,-958.5410,33.6481,4.0}, {1191.7825,-935.7949,42.2936,4.0}, {1004.8117,-956.1220,41.1875,4.0}, {588.9537,-1222.1122,17.3355,4.0}, {498.8979,-1331.8008,15.4384,4.0}, {441.8085,-1505.4916,30.4206,4.0}, {613.9475,-1592.6312,15.5575,4.0}, {640.2908,-1419.9365,13.0931,4.0}, {799.9543,-1342.6307,12.9321,4.0}, {945.2153,-1232.6627,16.2017,4.0}, {1146.2305,-1403.1858,13.0817,4.0}, {1299.4003,-1838.3225,12.9320,4.0}, {1417.2319,-1735.1187,12.9399,4.0}, {1420.4747,-1650.9874,12.9183,4.0} }, { {1420.4747,-1650.9874,12.9183,5.0}, {1442.0400,-1527.3809,12.9318,5.0}, {1457.3605,-1181.8098,22.1781,5.0}, {1484.7733,-1046.9332,23.2085,5.0}, {1380.0831,-1033.3884,25.8709,5.0}, {1374.9781,-958.5410,33.6481,5.0}, {1191.7825,-935.7949,42.2936,5.0}, {1004.8117,-956.1220,41.1875,5.0}, {588.9537,-1222.1122,17.3355,5.0}, {498.8979,-1331.8008,15.4384,5.0}, {441.8085,-1505.4916,30.4206,5.0}, {613.9475,-1592.6312,15.5575,5.0}, {640.2908,-1419.9365,13.0931,5.0}, {799.9543,-1342.6307,12.9321,5.0}, {945.2153,-1232.6627,16.2017,5.0}, {1146.2305,-1403.1858,13.0817,5.0}, {1299.4003,-1838.3225,12.9320,5.0}, {1417.2319,-1735.1187,12.9399,5.0}, {1420.4747,-1650.9874,12.9183,5.0} } }; new route = afsinfo[playerid][afs_Route],string[128]; SetPlayerCheckpoint(playerid,fscp_strecke1[route][0][fscp_x],fscp_strecke1[route][0][fscp_y],fscp_strecke1[route][0][fscp_z],fscp_strecke1[route][0][fscp_rad]);
Denke man kann bei sizeof() nur die Dimensionen auslesen. Vielleicht hat @Kaliber @Jeffry noch eine Idee
-
Aber da nehme ich auch Route um zu wissen welche Strecke es ist geht das nicht auch iwie bei sizeof?
Code
Alles anzeigenenum Fahrschulcheckpoints { Float:fscp_x, Float:fscp_y, Float:fscp_z, Float:fscp_rad } new fscp_strecke1[][][Fahrschulcheckpoints] = { { {1420.4747,-1650.9874,12.9183,4.0}, {1442.0400,-1527.3809,12.9318,4.0}, {1457.3605,-1181.8098,22.1781,4.0}, {1484.7733,-1046.9332,23.2085,4.0}, {1380.0831,-1033.3884,25.8709,4.0}, {1374.9781,-958.5410,33.6481,4.0}, {1191.7825,-935.7949,42.2936,4.0}, {1004.8117,-956.1220,41.1875,4.0}, {588.9537,-1222.1122,17.3355,4.0}, {498.8979,-1331.8008,15.4384,4.0}, {441.8085,-1505.4916,30.4206,4.0}, {613.9475,-1592.6312,15.5575,4.0}, {640.2908,-1419.9365,13.0931,4.0}, {799.9543,-1342.6307,12.9321,4.0}, {945.2153,-1232.6627,16.2017,4.0}, {1146.2305,-1403.1858,13.0817,4.0}, {1299.4003,-1838.3225,12.9320,4.0}, {1417.2319,-1735.1187,12.9399,4.0}, {1420.4747,-1650.9874,12.9183,4.0} }, { {1420.4747,-1650.9874,12.9183,5.0}, {1442.0400,-1527.3809,12.9318,5.0}, {1457.3605,-1181.8098,22.1781,5.0}, {1484.7733,-1046.9332,23.2085,5.0}, {1380.0831,-1033.3884,25.8709,5.0}, {1374.9781,-958.5410,33.6481,5.0}, {1191.7825,-935.7949,42.2936,5.0}, {1004.8117,-956.1220,41.1875,5.0}, {588.9537,-1222.1122,17.3355,5.0}, {498.8979,-1331.8008,15.4384,5.0}, {441.8085,-1505.4916,30.4206,5.0}, {613.9475,-1592.6312,15.5575,5.0}, {640.2908,-1419.9365,13.0931,5.0}, {799.9543,-1342.6307,12.9321,5.0}, {945.2153,-1232.6627,16.2017,5.0}, {1146.2305,-1403.1858,13.0817,5.0}, {1299.4003,-1838.3225,12.9320,5.0}, {1417.2319,-1735.1187,12.9399,5.0}, {1420.4747,-1650.9874,12.9183,5.0} } }; new route = afsinfo[playerid][afs_Route],string[128]; SetPlayerCheckpoint(playerid,fscp_strecke1[route][0][fscp_x],fscp_strecke1[route][0][fscp_y],fscp_strecke1[route][0][fscp_z],fscp_strecke1[route][0][fscp_rad]);
funktioniert immer noch nicht die gleichen fehler;
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 029: invalid expression, assumed zero
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : warning 215: expression has no effect
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 001: expected token: ";", but found "]"
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 029: invalid expression, assumed zero
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
funktioniert immer noch nicht die gleichen fehler;C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 029: invalid expression, assumed zero
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : warning 215: expression has no effect
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 001: expected token: ";", but found "]"
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 029: invalid expression, assumed zero
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Eher so oder?
-
Nur noch dieser Fehler;
C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
-
Nur noch dieser Fehler;C:\Users\Patrick\Desktop\San Andreas\gamemodes\Hightech_Reallife.pwn(234) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Wie hast du den "f_skins" definiert?
-
static const f_skins[][][] = { //Es geht nach Ranks
{301,284,265,266,267,280,281,286,283,283},//LSPD
{302,303,282,282,282,310,311,285,288,288}};Jede Zeile für eine Frak & jede Spalte für nen Rank
-
SetPlayerSkin(pID, f_skins[PlayerInfo[pID][pFraction]][PlayerInfo[pID][pFrank]]);
Diese zeile so schreiben:
SetPlayerSkin(pID, f_skins[ PlayerInfo[pID][pFraction] ][ PlayerInfo[pID][pFrank]-1 ]);
Man kann nur Arrays gleicher Länge für eine Dimension nutzen.
Lösung, pack es in 2 Variablen, dann haste auch kein Problem mehr mit sizeof
-
-
Kaliber was soll ich in eine Variable packen ?
Na..teilst das auf, halt in 2 Variablen...für die jeweiligen Routen...
C
Alles anzeigennew route1[][Fahrschulcheckpoints] = { {1420.4747,-1650.9874,12.9183,4.0}, {1442.0400,-1527.3809,12.9318,4.0}, {1457.3605,-1181.8098,22.1781,4.0}, {1484.7733,-1046.9332,23.2085,4.0}, {1380.0831,-1033.3884,25.8709,4.0}, {1374.9781,-958.5410,33.6481,4.0}, {1191.7825,-935.7949,42.2936,4.0}, {1004.8117,-956.1220,41.1875,4.0}, {588.9537,-1222.1122,17.3355,4.0}, {498.8979,-1331.8008,15.4384,4.0}, {441.8085,-1505.4916,30.4206,4.0}, {613.9475,-1592.6312,15.5575,4.0}, {640.2908,-1419.9365,13.0931,4.0}, {799.9543,-1342.6307,12.9321,4.0}, {945.2153,-1232.6627,16.2017,4.0}, {1146.2305,-1403.1858,13.0817,4.0}, {1299.4003,-1838.3225,12.9320,4.0}, {1417.2319,-1735.1187,12.9399,4.0}, {1420.4747,-1650.9874,12.9183,4.0} }; new route2[][Fahrschulcheckpoints] = { {1420.4747,-1650.9874,12.9183,5.0}, {1442.0400,-1527.3809,12.9318,5.0}, {1457.3605,-1181.8098,22.1781,5.0}, {1484.7733,-1046.9332,23.2085,5.0}, {1380.0831,-1033.3884,25.8709,5.0}, {1374.9781,-958.5410,33.6481,5.0}, {1191.7825,-935.7949,42.2936,5.0}, {1004.8117,-956.1220,41.1875,5.0}, {588.9537,-1222.1122,17.3355,5.0}, {498.8979,-1331.8008,15.4384,5.0}, {441.8085,-1505.4916,30.4206,5.0}, {613.9475,-1592.6312,15.5575,5.0}, {640.2908,-1419.9365,13.0931,5.0}, {799.9543,-1342.6307,12.9321,5.0}, {945.2153,-1232.6627,16.2017,5.0}, {1146.2305,-1403.1858,13.0817,5.0}, {1299.4003,-1838.3225,12.9320,5.0}, {1417.2319,-1735.1187,12.9399,5.0}, {1420.4747,-1650.9874,12.9183,5.0} };
-
Gibt es eine Abfrage, dass das Script erkennt ob ein Spieler sich zu schnell dreht? (Für Anti cheat)
-