Du musst doch wissen, welchen Dialog du gerade angezeigt bekommst.
Falls nicht, setze in beide einen print rein und schaue, welcher aufgerufen wird, wenn nichts mehr passiert (beim Klick).
Beiträge von Jeffry
-
-
Ich welchem der beiden case's hängt es denn?
-
Woran kann das liegen?
pID entspricht deinem HackAntrag[playerid]. Ich habe alle diese Aufkommen durch pID ersetzt, und pID ganz oben (siehe Kommentar) deklariert und instanziiert, mit dem Wert von HackAntrag[playerid].
So ist der Code etwas leserlicher.wanteds war ebenfalls immer 0. Dies entspricht deinem HackWanteds[playerid], was wiederum WantedsHack ist. Ich habe also "wanteds" mit WantedsHack ersetzt.
Die Schleife habe ich entfernt, da diese keien Wirkung hatte.
Ebenfalls die if-Abfrage.Damit sieht der Code dann so aus:
else if(strcmp(option, "hacken", true) == 0)
{
new Float:X, Float:Y, Float:Z;
new pID = HackAntrag[playerid]; //Damit es einfacher ist. pID entspricht HackAntrag[playerid].
if(pID != INVALID_PLAYER_ID)
{
if(HackAntrag[pID] != INVALID_PLAYER_ID)
{
if(IsLoggedIn(pID))
{
GetPlayerPos(pID, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe vom Spieler.");
new WantedsHack = HackWanteds[playerid];
new Geld = HackBetrag[playerid];
if(GetMoney(pID) < Geld)return SendClientMessage(playerid, COLOR_GREY, "Dein Partner hat nicht genügend Geld.");
if(WantedsHack < 0 || WantedsHack > 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur zwischen 1 und 5 Wanteds löschen.");
if(Spieler[pID][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds.");
OnWantedChange(pID, Spieler[pID][pWanteds], (Spieler[pID][pWanteds]-wanteds));
Spieler[pID][pWanteds] -= wanteds;
if(Spieler[pID][pWanteds] <= 0)Spieler[pID][pWanteds] = 0;
new string[145];
GetPlayerName(pID, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Du hast %s den Hackbetrag genommen (+$%d).", string, Geld);
SendClientMessage(playerid, COLOR_GREEN, string);
GiveMoney(playerid, Geld);
GiveMoney(pID, -Geld);
HackBetrag[playerid] = 0;
HackBetrag[pID] = 0;
HackWanteds[playerid] = 0;
HackWanteds[pID] = 0;
HackAntrag[pID] = INVALID_PLAYER_ID;
}
}
}
return 1;
} -
Einen Rat bitte was ich nicht beachtet habe?
Die classid ist die ID, die AddPlayerClassEx zurück gibt, also der return Wert.
Damit muss es so aussehen:
switch(classid)
{
case 0..2:
{
GameTextForPlayer(playerid, "~g~Paramedic", 6000, 4);
SetPlayerColor(playerid, 0x0000FFFF);
}
case 3..5:
{
GameTextForPlayer(playerid, "~g~Newsreporter", 6000, 4);
SetPlayerColor(playerid, 0x0000FF00);
}
}Was du bei AddPlayerClassEx als 0 und 1 angegeben hast, ist die teamid (SetPlayerTeam/GetPlayerTeam).
-
cache_get_data(rows,fields);
Zu
cache_get_row_count(rows); -
Wenn das Tog für die Polizei steht, dann so:
for(new i=0; i<MAX_PLAYERS; i++)
{
if(Tog[i][Mitglieder] == 1)
{
//Polizist:
//i ist in dem Fall er selber, marker die anderen
for(new marker=0; marker<MAX_PLAYERS; marker++)
{
if(IsPlayerNPC(marker))
{
SetPlayerMarkerForPlayer(i,marker, (GetPlayerColor(marker) & 0xFFFFFF00) ); //Unsichtbar, Farbe im Chat bleibt
}
if(Spieler[marker][Fraktion] == 1 && Spieler[i][Fraktion] == 1)
{
SetPlayerMarkerForPlayer(i,marker,0x0073FFFF); //blaue farbe
}
}
}
else
{
//Alle anderen:
for(new marker=0; marker<MAX_PLAYERS; marker++)
{
SetPlayerMarkerForPlayer(i,marker, (GetPlayerColor(marker) & 0xFFFFFF00) ); //Unsichtbar, Farbe im Chat bleibt
}
}
} -
Dart ist einfach geil
Bin morgen auf das Match barneveld gg Taylor gespannt.. Ich hoffe ja dass Taylor gewinnt. #ThePowerIch auch!
Ich würde es Taylor gönnen, dass er die WM nochmal gewinnt und dann mit dem WM Sieg seine Karriere beenden kann. Dafür muss er aber noch mindestens eine Schippe drauf legen, sowohl im Scoring als auch auf die Doppels.Wenn's Taylor nicht macht, dann hoffentlich Snakebite

-
Du hast die Änderung aus Post #14 nicht gemacht.
mysql_pquery(MySqlConnection,"SELECT * FROM accounts","OnQueryFinish","siii","SELECT * FROM accounts",_SQL_REGISTREDACCS_COUNT,playerid,MySqlConnection);
zu:
mysql_pquery(MySqlConnection,"SELECT * FROM accounts","OnQueryFinish","siii","SELECT * FROM accounts",_SQL_REGISTREDACCS_COUNT,playerid, _:MySqlConnection); -
wie kann ich beheben
ocmd:editn2(playerid,params[])
{
if(PlayerInfo[playerid][pAdmin] >= 7)
{
new string[1024];
format(string,sizeof(string),"{87FF00}Navipunkt hinzufügen{FFFFFF}");
for(new n = 1; n <sizeof(NaviInfo); n++)
{
if(NaviInfo[n][naAktiv] == 1)
{
format(string,sizeof(string),"%s\n%s",string,NaviInfo[n][naName]);
}
}
ShowPlayerDialog(playerid,DIALOG_NAVI_EDIT,DIALOG_STYLE_LIST,"Navigations System Bearbeiten",string,"Bearbeiten","Abbrechen");
}
else SendClientMessage(playerid,COLOR_GREY,"Du bist kein admin");
return 1;
} -
Simpel aber laeuft
Nein, das wird nicht funktionieren.
Grund ist, dass, wenn die erste ID im ValidSounds-Array nicht der targetsoundid entspricht, die Schleife mit der Fehlermeldung abgebrochen wird, da da else in der Schleife ist.Außerdem ist targetsoundid in dem Code nicht deklariert, das wird zu einem Fehler führen.
Korrekt wäre es so:
if(strcmp(cmd, "/sound", true) == 0)
{
new tmp[20], targetsoundid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /sound [soundid]");
targetsoundid = strval(tmp);
for(new i=0; i < sizeof(ValidSounds); i++)
{
if(targetsoundid == ValidSounds[i])
{
PlayerPlaySound(playerid, targetsoundid, 0,0,0);
//printf("Playing SoundID: %i",targetsoundid);
return 1;
}
}
SendClientMessage(playerid, 0xFF0000FF, "Invalid SoundID!");
//printf("Tried to playback invalid SoundID: %i",targetsoundid);
return 1;
}Zusätzlich wird vor diesem Code (meist ist das direkt unter OnPlayerCommandText zu finden) folgendes benötigt:
new cmd[20], idx;
cmd = strtok(cmdtext, idx);Anbei das Array mit den Sound IDs: http://pastebin.com/sA5DNFaw (von: https://wiki.sa-mp.com/wiki/SoundID)
Zusätzlich ist anzumerken, dass für diesen Code die strtok Funktion vorausgesetzt wird (daher die gl_common.inc). Die gl_common.inc nutzt allerdings eine veraltete strtok Funktion.
Meine strtok 2.0 Funktion findet sich hier:
http://wiki.sa-mp.com/wiki/Code_Snippets#Strtok -
GeTmyselfmade.pwn(9600) : warning 213: tag mismatch
Diese Warnung noch immer?
Wie sieht denn die Zeile dazu jetzt aus? -
das weg oder wie ?
Ja.
Außerdem
format(query, sizeof(query), "DELETE FROM `ATMs` WHERE `ID` = '%d'", id);
zu:
format(query, sizeof(query), "DELETE FROM `ATMs` WHERE `ID` = '%d'", ATMInfo[id][ID]); -
format(query, sizeof(query), "INSERT INTO `ATMs` (`ID`, `X`, `Y`, `Z`, `A`) VALUES ('%d', '%d', '%d', '%d', '%d')", i, Pos[0], Pos[1], Pos[2], Pos[3]);
zu:
format(query, sizeof(query), "INSERT INTO `ATMs` (`ID`, `X`, `Y`, `Z`, `A`) VALUES ('%d', '%02f', '%02f', '%02f', '%02f')", i, Pos[0], Pos[1], Pos[2], Pos[3]); -
Wer guckt sich denn freiwillig diese gehypte Dart WM an?
Schau ich schon seit 4 Jahren. Das war noch vor dem großen Hype hier. Ich finde es klasse.
Ich geb mir auch oft Snooker
Ja mann, ich auch

-
@Jeffry wann hast mal wieder TS?
Schwierig grade. Ist Darts WM aktuell

Und ab Montag geht's wieder in die Arbeit.Schätze erst so gegen Ende Januar wirds ruhiger und ich komm mal dazu.
-
MySqlConnection
zu:
_:MySqlConnectionDas entfernt den Tag und macht MySqlConnection wieder zu einer Zahl, die dann korrekt übergeben werden kann.
-
if(NaviInfo[n][naAktiv] == 1)
Scheint so, als ist das hier immer 0, daher wird nachfolgendes nicht mehr aufgerufen und der "string" bleibt leer. Damit wird der Dialog nicht angezeigt.
-
Entferne das "true".
-
Dann bitte ich darum:
Poste bitte deinen aktuellen Code nochmal und erneut einen Screenshot der Tabelle mit den ATM-Daten.
-
Das muss in einen Timer der hin und wieder aufgerufen wird.
Prinzipiell kannst du es einfach so machen:
SetWorldTime(stunde);Ohne die ganzen if Abfragen.