Ich werde dir keinen Code präsentieren.
Aber ein paar Hilfen kann ich dir geben:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Wird aufgerufen, sobald etwas mit einem Dialog passiert. ( Buttons, listitems..)
// Hier musst du die DialogID abfragen. Geht mit "if & else" oder mit "switch & case".
if(dialogid == DEIN_DIALOG /* Name oder ID, ist egal */ )
{
if(!response)
{
// Solltest du auf den letzten Button geklickt haben, wird dieser Codeblock aufgerufen.
// Da du aber möchtest, dass das Ganze beim ersten Button geschieht,
// kannst du das auch so schreiben:
// if(!response)return 1;
// Das bewirkt, dass, wenn man auf den letzten Button klickt, nichts weiter gemacht wird. Der Dialog wird einfach geschlossen.
// Dann kannst du mit "CreateVehicle(462, x, y, z, r, c1 , c2, d);" weiterarbeiten.
}
}
}
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Ich werde dir keinen Code präsentieren.
Aber ein paar Hilfen kann ich dir geben:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Wird aufgerufen, sobald etwas mit einem Dialog passiert. ( Buttons, listitems..)
// Hier musst du die DialogID abfragen. Geht mit "if & else" oder mit "switch & case".
if(dialogid == DEIN_DIALOG /* Name oder ID, ist egal */ )
{
if(!response)
{
// Solltest du auf den letzten Button geklickt haben, wird dieser Codeblock aufgerufen.
// Da du aber möchtest, dass das Ganze beim ersten Button geschieht,
// kannst du das auch so schreiben:
// if(!response)return 1;
// Das bewirkt, dass, wenn man auf den letzten Button klickt, nichts weiter gemacht wird. Der Dialog wird einfach geschlossen.
// Dann kannst du mit "CreateVehicle(462, x, y, z, r, c1 , c2, d);" weiterarbeiten.
}
}
}
Kriege 3 Errors:(18152) : error 017: undefined symbol "dialogid"
(18157) : error 017: undefined symbol "dialogid"
(18159) : error 017: undefined symbol "response"Hier der Abschnitt:
if(strcmp(cmd, "/roller", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1241.1827,-1728.8977,13.5768))
{
if(UnrentRoller[playerid] == 0)
{
ShowPlayerDialog(playerid,DIALOG_RROLLER,DIALOG_STYLE_MSGBOX, "{00FFA0}Roller Mieten","{FEFEFE}Möchtest du einen Roller für {FF4600}40${FEFEFE} mieten ?","Mieten","Nein");
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Wird aufgerufen, sobald etwas mit einem Dialog passiert. ( Buttons, listitems..)
// Hier musst du die DialogID abfragen. Geht mit "if & else" oder mit "switch & case".if(dialogid == 1 //Name oder ID ist egal )
{
if(!response)return 1;
{
// Solltest du auf den letzten Button geklickt haben, wird dieser Codeblock aufgerufen.
// Da du aber möchtest, dass das Ganze beim ersten Button geschieht,
// kannst du das auch so schreiben:
// if(!response)return 1;
// Das bewirkt, dass, wenn man auf den letzten Button klickt, nichts weiter gemacht wird. Der Dialog wird einfach geschlossen.// Dann kannst du mit "CreateVehicle(462, x, y, z, r, c1 , c2, d);" weiterarbeiten.
CreateVehicle(462, 1243.5552, -1707.7450, 12.9824, 82.2873, 3, 3, 300);
}
}
}
}
return 1;
} -
Da hab' ich mich falsch ausgedrückt.
"public OnDialogResponse" sollst du nicht mit in deinen Command kopieren. Das gibt es bereits in deinem Script.
Lösch den Teil such nach diesem Callback. Da kannst du das dann einfügen. ( Das ab Zeile 9 ) -
"public OnDialogResponse" sollst du nicht mit in deinen Command kopieren. Das gibt es bereits in deinem Script.
Lösch den Teil such nach diesem Callback. Da kannst du das dann einfügen. ( Das ab Zeile 9 )
Jetzt 4 Errors:C:\Documents and Settings\Denýs\Desktop\hypercam\Life Of Sun By ROnNNNY [VERÖFFENTLICHT]\gamemodes\LoS.pwn(18152) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Denýs\Desktop\hypercam\Life Of Sun By ROnNNNY [VERÖFFENTLICHT]\gamemodes\LoS.pwn(18152) : error 017: undefined symbol "dialogid"
C:\Documents and Settings\Denýs\Desktop\hypercam\Life Of Sun By ROnNNNY [VERÖFFENTLICHT]\gamemodes\LoS.pwn(18152) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Denýs\Desktop\hypercam\Life Of Sun By ROnNNNY [VERÖFFENTLICHT]\gamemodes\LoS.pwn(18152) : fatal error 107: too many error messages on one lineScript:
if(strcmp(cmd, "/roller", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1241.1827,-1728.8977,13.5768))
{
if(UnrentRoller[playerid] == 0)
{
ShowPlayerDialog(playerid,DIALOG_RROLLER,DIALOG_STYLE_MSGBOX, "{00FFA0}Roller Mieten","{FEFEFE}Möchtest du einen Roller für {FF4600}40${FEFEFE} mieten ?","Mieten","Nein");
}
Function OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Wird aufgerufen, sobald etwas mit einem Dialog passiert. ( Buttons, listitems..)
// Hier musst du die DialogID abfragen. Geht mit "if & else" oder mit "switch & case".if(dialogid == 1 //Name oder ID ist egal )
{
if(!response)return 1;
{
// Solltest du auf den letzten Button geklickt haben, wird dieser Codeblock aufgerufen.
// Da du aber möchtest, dass das Ganze beim ersten Button geschieht,
// kannst du das auch so schreiben:
// if(!response)return 1;
// Das bewirkt, dass, wenn man auf den letzten Button klickt, nichts weiter gemacht wird. Der Dialog wird einfach geschlossen.// Dann kannst du mit "CreateVehicle(462, x, y, z, r, c1 , c2, d);" weiterarbeiten.
CreateVehicle(462, 1243.5552, -1707.7450, 12.9824, 82.2873, 3, 3, 300);
}
}
}
}
return 1;
} -
Du hast trotzdem nicht gemacht, was ich dir geschrieben habe.
Lösche den kompletten Teil ab "Function OnDialog.." ( Zeile 9 - 28 )
Diesen Teil ( ohne "public OnDialog.. " !! ) fügst du nun unter "OnDialogResponse" ein. Dieses Callback wurde bereits standardmäßig erstellt. Such es einfach. -
Lösche den kompletten Teil ab "Function OnDialog.." ( Zeile 9 - 28 )
Diesen Teil ( ohne "public OnDialog.. " !! ) fügst du nun unter "OnDialogResponse" ein. Dieses Callback wurde bereits standardmäßig erstellt. Such es einfach.
Ok habs aber hab noch ein Error:C:\Documents and Settings\Denýs\Desktop\hypercam\Life Of Sun By ROnNNNY [VERÖFFENTLICHT]\gamemodes\LoS.pwn(46237) : error 029: invalid expression, assumed zero
Zeile 46237ist nur das hier: {
-
Bisschen mehr Code wäre gut. Paar Zeilen drüber und drunter.
-
Wie mache ich den Tank zweistellig?
format(string2,sizeof(string2),"~r~Tank:~g~ %.id ", Tank);
format(string4,sizeof(string4),"~r~Zustand:~g~ %.1f",leben/10) -
Bisschen mehr Code wäre gut. Paar Zeilen drüber und drunter.
SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug.");
return 1;
}}
}
if(dialogid == DIALOG_RROLLER //Name oder ID ist egal )
{
if(!response)return 1;
{
CreateVehicle(462, 1243.5552, -1707.7450, 12.9824, 82.2873, 3, 3, 300);
}
}
if(dialogid == DIALOG_AUTOREPARIEREN)
{Bei der Zeile 8 ist der Error drinnen
-
-
-
SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug.");
return 1;
}}
}
if(dialogid == DIALOG_RROLLER //Name oder ID ist egal )<--- Die Klammer wird ausgesperrt. Also muss du die Klammer vor dem // machen..
{
if(!response)return 1;
{
CreateVehicle(462, 1243.5552, -1707.7450, 12.9824, 82.2873, 3, 3, 300);
}
}
if(dialogid == DIALOG_AUTOREPARIEREN)
{Bei der Zeile 8 ist der Error drinnen
-
Was war nochmal der Shortcut um zu einer Zeile zu springen :D?
Ich vergesse das immer ._. -
STRG + G
-
Könnte jemand mir dabei helfen:
C:\Documents and Settings\Denýs\Desktop\hypercam\Life Of Sun By ROnNNNY [VERÖFFENTLICHT]\gamemodes\LoS.pwn(46237) : error 029: invalid expression, assumed zero
Zeilen:
SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Fahrzeug.");
return 1;
}}
}
if(dialogid == DIALOG_RROLLER //Name oder ID ist egal )<--- Die Klammer wird ausgesperrt. Also muss du die Klammer vor dem // machen..
{ //Zeile 46237
if(!response)return 1;
{
CreateVehicle(462, 1243.5552, -1707.7450, 12.9824, 82.2873, 3, 3, 300);
}
}
if(dialogid == DIALOG_AUTOREPARIEREN)
{ -
Hinter DIALOG_RROLLER fehlt eine Klammer zu: )
Steht sogar im Kommentar dahinter. -
Hi, ich bin gerade dabei einen delveh Befehl zu machen, funktioniert auch, aber ich will die Cars dann noch aus der DB löschen.
Dazu erstmal eine kleine Frage:
cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,f1,f2,-1);
wird in der id_x is dann die VehicleID gespeichert?Und ist die Vehicleid die ID die In Game bei /dl angezeigt wird?
-
Ja, und ja.
-
Jetzt hänge ich garade bei was.
ocmd:delveh(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, ROT, "Du musst in einem Fahrzeug sitzen!");mysql_query("DELETE FROM cars WHERE ???='%i'",
DestroyVehicle(GetPlayerVehicleID(playerid));
return 1;
}in der Datenbank habe ich eine ID gespeichert, die Für jedes Fahrzeug beim 1 mal erstellen gesetzt wird und einfach immer hochgezählt wird.
Dann noch Besitzer, Kooridnaten und Farbe.Ist es jetzt überhaupt möglich abzufragen welches Auto ich rauslöschen will?
Ich will es ja auch so machen, dass man auch Fahrzeuge der anderen löschen kann.Hätte jetzt versucht mit der id_x zu arbeiten, also der vehicleid, die ja beim Connecten wenn das Car erstellt wird gesetzt wird.. Aber keine Ahnung wie ich abfragen soll
um welches Auto es sich in der DB handelt.. -
mysql_fetch_int();
Wie heißt diese Funktion in den neueren MySQL Plugin Versionen?
(Das kommt glaube noch aus R7) -
http://wiki.sa-mp.com/wiki/MySQL/R33#cache_get_row_int
Bzw
http://wiki.sa-mp.com/wiki/MyS…che_get_field_content_int@Kontrax:
Mache eine Schleife durch alle deine so erstellten Fahrzeuge (id_x) und frage ab, ob das gleich GetPlayerVehicleID ist. Wenn ja, dann ist das i der Schleife der Index, damit kannst du dann auf die Datenbank zugreifen, mit WHERE id = %d
Wobei das id eben der Datenbank ID entspricht.