Magst du mir mall den Error schicken ?
[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
-
-
public OnGameModeExit()
{
new fkasse[100];
format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt");
if(dini_Exists(fkasse))
{
dini_IntSet(fkasse,"Grove",Kasse[Grove]);
}for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))
{
sSpieler[i][sLogin] = 0;
SpielerSpeichern(i);
aDuty[i] = 0;
LieferantStart[i] = 0;
LieferantLieferschein[i] = 0;
PilotWare[i] = 0;
Mute[i] = 0;
Fahrschule[i] = 0;
Automiete[i] = 0;
GmbHWarenLSPD[i] = 0;
}
}
return 1;
}C:\Users\PM\Desktop\SA-MP Server\gamemodes\selfmade.pwn(415) : warning 213: tag mismatch
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Warning.
-
-
Welche zeile ist der Fehler denn? Wir sehen hier ja nur 1-28.
-
Beitrag von NoxiZ ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Problem selbst gefunden trotzdem danke (). -
Gut nächstes problem!
ich habe alle für die Fraktionskassen im Script nun funktionieren aber alle commands mit integern nichtmehr.
wenn ich z.b. mich zum ballas leader machen will mit /makeleader 0 2 werd ich in die fraktion mit wert 1 gesetzt.
außerde funktionier die funktion if(pid == INVALID_PLAYER_ID) nichtmehr, weil dort mit return der befehl trotzdem ausgeführt wird.ich poste mal alles was mit dem frakkassen zutun hat, vlt ist da ein gravierender fehler drin:
enum Fraktionskassen
{
Grove,
Ballas,
LSPD,
LSMD,
FS,
Transport
};
new Kasse[Fraktionskassen];public OnGameModeInit()
{
SetGameModeText("Selfmade");
DisableInteriorEnterExits(); //Deaktiviert alle Interiors
UsePlayerPedAnims(); //Aktiviert CJ Walkstyle für alle Skins
EnableStuntBonusForAll(0); //Deaktiviert den Stuntbonus für alle Spieler
new fkasse[100];
format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt");
if(dini_Exists(fkasse))
{
Fkasseladen();
print("Fraktionskassen.txt wurde geladen!");
}
else
{
CreateFkasse();
}public OnGameModeExit()
{
Fkassespeichern();ocmd:fkasse(playerid,params[])
{
new leader[256];
new geldgs = Kasse[Grove],geldbs = Kasse[Ballas],geldpd = Kasse[LSPD],geldmd = Kasse[LSMD],geldfs = Kasse[FS], geldgmbh = Kasse[Transport];
if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,FehlerRot,"Du bist kein Leader!");
if(sSpieler[playerid][Leader] == 1)
{
Kasse[Grove] = geldgs;
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldgs);
SendClientMessage(playerid,FrakGrau,leader);
}
if(sSpieler[playerid][Leader] == 2)
{
Kasse[Grove] = geldbs;
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldbs);
SendClientMessage(playerid,FrakGrau,leader);
}
if(sSpieler[playerid][Leader] == 3)
{
Kasse[Grove] = geldpd;
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldpd);
SendClientMessage(playerid,FrakGrau,leader);
}
if(sSpieler[playerid][Leader] == 4)
{
Kasse[Grove] = geldmd;
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldmd);
SendClientMessage(playerid,FrakGrau,leader);
}
if(sSpieler[playerid][Leader] == 5)
{
Kasse[Grove] = geldfs;
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldfs);
SendClientMessage(playerid,FrakGrau,leader);
}
if(sSpieler[playerid][Leader] == 6)
{
Kasse[Grove] = geldgmbh;
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldgmbh);
SendClientMessage(playerid,FrakGrau,leader);
}
return 1;
}//FRAKTIONSKASSEN
stock CreateFkasse()
{
new fkasse[100];
format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt");
dini_Create(fkasse);
dini_IntSet(fkasse,"Grove",0);
dini_IntSet(fkasse,"Ballas",0);
dini_IntSet(fkasse,"LSPD",0);
dini_IntSet(fkasse,"LSMD",0);
dini_IntSet(fkasse,"Fahrschule",0);
dini_IntSet(fkasse,"Transport GmbH",0);
return 1;
}stock Fkassespeichern()
{
new fkasse[100];
format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt");
if(dini_Exists(fkasse))
{
dini_IntSet(fkasse,"Grove",Kasse[Grove]);
dini_IntSet(fkasse,"Ballas",Kasse[Ballas]);
dini_IntSet(fkasse,"LSPD",Kasse[LSPD]);
dini_IntSet(fkasse,"LSMD",Kasse[LSMD]);
dini_IntSet(fkasse,"Fahrschule",Kasse[FS]);
dini_IntSet(fkasse,"Transport GmbH",Kasse[Transport]);
}
return 1;
}stock Fkasseladen()
{
new fkasse[100];
format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt");
if(dini_Exists(fkasse))
{
Kasse[Grove] = dini_Int(fkasse,"Grove");
Kasse[Ballas] = dini_Int(fkasse,"Ballas");
Kasse[LSPD] = dini_Int(fkasse,"LSPD");
Kasse[LSMD] = dini_Int(fkasse,"LSMD");
Kasse[FS] = dini_Int(fkasse,"Fahrschule");
Kasse[Transport] = dini_Int(fkasse,"Transport GmbH");
}
return 1;
}da muss was sein, weil die commands vor dem einfügen dieser zeilen einwandfrei funktioniert haben.
-
ocmd:fkasse(playerid,params[])
{
new leader[256];
new geldgs = Kasse[Grove],geldbs = Kasse[Ballas],geldpd = Kasse[LSPD],geldmd = Kasse[LSMD],geldfs = Kasse[FS], geldgmbh = Kasse[Transport];
if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,FehlerRot,"Du bist kein Leader!");
if(sSpieler[playerid][Leader] == 1)
{
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldgs);
SendClientMessage(playerid,FrakGrau,leader);
return 1;
}
else if(sSpieler[playerid][Leader] == 2)
{
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldbs);
SendClientMessage(playerid,FrakGrau,leader);
return 1;
}
else if(sSpieler[playerid][Leader] == 3)
{
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldpd);
SendClientMessage(playerid,FrakGrau,leader);
return 1;
}
else if(sSpieler[playerid][Leader] == 4)
{
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldmd);
SendClientMessage(playerid,FrakGrau,leader);
return 1;
}
else if(sSpieler[playerid][Leader] == 5)
{
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldfs);
SendClientMessage(playerid,FrakGrau,leader);
return 1;
}
else if(sSpieler[playerid][Leader] == 6)
{
format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldgmbh);
SendClientMessage(playerid,FrakGrau,leader);
}
return 1;
}schreib mir mal eine PN ich helfe dir gerne
LG,
Genadj_Andrenov -
Gut nächstes problem!
ich habe alle für die Fraktionskassen im Script nun funktionieren aber alle commands mit integern nichtmehr.
wenn ich z.b. mich zum ballas leader machen will mit /makeleader 0 2 werd ich in die fraktion mit wert 1 gesetzt.
außerde funktionier die funktion if(pid == INVALID_PLAYER_ID) nichtmehr, weil dort mit return der befehl trotzdem ausgeführt wird.ich poste mal alles was mit dem frakkassen zutun hat, vlt ist da ein gravierender fehler drin:
enum Fraktionskassen{ Grove, Ballas, LSPD, LSMD, FS, Transport};new Kasse[Fraktionskassen];public OnGameModeInit(){ SetGameModeText("Selfmade"); DisableInteriorEnterExits(); //Deaktiviert alle Interiors UsePlayerPedAnims(); //Aktiviert CJ Walkstyle für alle Skins EnableStuntBonusForAll(0); //Deaktiviert den Stuntbonus für alle Spieler new fkasse[100]; format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt"); if(dini_Exists(fkasse)) { Fkasseladen(); print("Fraktionskassen.txt wurde geladen!"); } else { CreateFkasse(); }public OnGameModeExit(){ Fkassespeichern();ocmd:fkasse(playerid,params[]) { new leader[256]; new geldgs = Kasse[Grove],geldbs = Kasse[Ballas],geldpd = Kasse[LSPD],geldmd = Kasse[LSMD],geldfs = Kasse[FS], geldgmbh = Kasse[Transport]; if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,FehlerRot,"Du bist kein Leader!"); if(sSpieler[playerid][Leader] == 1) { Kasse[Grove] = geldgs; format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldgs); SendClientMessage(playerid,FrakGrau,leader); } if(sSpieler[playerid][Leader] == 2) { Kasse[Grove] = geldbs; format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldbs); SendClientMessage(playerid,FrakGrau,leader); } if(sSpieler[playerid][Leader] == 3) { Kasse[Grove] = geldpd; format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldpd); SendClientMessage(playerid,FrakGrau,leader); } if(sSpieler[playerid][Leader] == 4) { Kasse[Grove] = geldmd; format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldmd); SendClientMessage(playerid,FrakGrau,leader); } if(sSpieler[playerid][Leader] == 5) { Kasse[Grove] = geldfs; format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldfs); SendClientMessage(playerid,FrakGrau,leader); } if(sSpieler[playerid][Leader] == 6) { Kasse[Grove] = geldgmbh; format(leader,sizeof(leader),"Es sind %d$ in der Fraktionskasse!",geldgmbh); SendClientMessage(playerid,FrakGrau,leader); } return 1;}//FRAKTIONSKASSENstock CreateFkasse(){ new fkasse[100]; format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt"); dini_Create(fkasse); dini_IntSet(fkasse,"Grove",0); dini_IntSet(fkasse,"Ballas",0); dini_IntSet(fkasse,"LSPD",0); dini_IntSet(fkasse,"LSMD",0); dini_IntSet(fkasse,"Fahrschule",0); dini_IntSet(fkasse,"Transport GmbH",0); return 1;}stock Fkassespeichern(){ new fkasse[100]; format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt"); if(dini_Exists(fkasse)) { dini_IntSet(fkasse,"Grove",Kasse[Grove]); dini_IntSet(fkasse,"Ballas",Kasse[Ballas]); dini_IntSet(fkasse,"LSPD",Kasse[LSPD]); dini_IntSet(fkasse,"LSMD",Kasse[LSMD]); dini_IntSet(fkasse,"Fahrschule",Kasse[FS]); dini_IntSet(fkasse,"Transport GmbH",Kasse[Transport]); } return 1;}stock Fkasseladen(){ new fkasse[100]; format(fkasse,sizeof(fkasse),"/Fraktionskassen.txt"); if(dini_Exists(fkasse)) { Kasse[Grove] = dini_Int(fkasse,"Grove"); Kasse[Ballas] = dini_Int(fkasse,"Ballas"); Kasse[LSPD] = dini_Int(fkasse,"LSPD"); Kasse[LSMD] = dini_Int(fkasse,"LSMD"); Kasse[FS] = dini_Int(fkasse,"Fahrschule"); Kasse[Transport] = dini_Int(fkasse,"Transport GmbH"); } return 1;}
da muss was sein, weil die commands vor dem einfügen dieser zeilen einwandfrei funktioniert haben.
Hey, du hast bei OnGameModeExit die Klammer } nicht. genauso wie bei OnGameModeInit.
-
Beitrag von psyk. ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Hey,
wenn ich es so einstelle, dass man Leute auf der MiniMap sehen kann habe ich das Problem, dass die Bots auch angezeigt werden in der Farbe. Weiß jemand zufällig wie ich dies beheben kann? Und zudem wie stelle ich die Farbe "Transparent" auf der Minimap beim normalen User ein?Mfg
Drake. -
-
Yo, wieso lässt sich nur ID 0 von der Datenbank editieren?
stock GetClosestTree(playerid)
{
for(new i = 0; i < MAX_TREES; i++)
{
if(IsPlayerInRangeOfPoint(playerid, TREE_RANGE, TreeInfo[i][Tree_X], TreeInfo[i][Tree_Y], TreeInfo[i][Tree_Z]) && TreeInfo[i][Tree_Editmode] == 1)
{
SetPlayerProgressBarValue(playerid, CutProgressBar[playerid], TreeInfo[i][Tree_HP]);
return i;
}
i++;
}
return -1;
}CMD:editbaum(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
{
return SendClientMessage(playerid, TREE_RED, "Du darfst diesen Befehl nicht benutzen!");
}
new id = GetClosestTree(playerid);if(id != -1)
{
DestroyDynamic3DTextLabel(TreeInfo[id][Tree_Label_ID]);
PlayerBank[playerid][pEditingID] = id;
SendClientMessage(playerid, TREE_RED, "{FFFF00}~k~~PED_SPRINT~{FFFFFF} halten um die Kamerasicht zu ändern."); //Taste wird von Spielereinstellung erkannt, nicht ändern!
EditDynamicObject(playerid, TreeInfo[id][Tree_Object]);
return 1;
}
else
{
SendClientMessage(playerid, TREE_RED, "Du musst in der Nähe von einem Baum sein um es editieren zu können!");
}
return 1;
} -
stock GetClosestTree(playerid)
{
for(new i = 0; i < MAX_TREES; i++)
{
if(IsPlayerInRangeOfPoint(playerid, TREE_RANGE, TreeInfo[i][Tree_X], TreeInfo[i][Tree_Y], TreeInfo[i][Tree_Z]) && TreeInfo[i][Tree_Editmode] == 1)
{
SetPlayerProgressBarValue(playerid, CutProgressBar[playerid], TreeInfo[i][Tree_HP]);
return i;
}
i++; //was das
}
return -1;
}Warum hast du da 2x i++?
Du überspringst somit immer einen Baum. -
Achso, habe ich übersehen, danke !
(Hatte vorher andere Looping Methoden verwendet, deswegen war es 2 mal vorhanden) -
Ne Frage:
Hat jemand ne gute Textdrawposition für unten Mitte perfekt? Finde keins... -
Hat jemand ne gute Textdrawposition für unten Mitte perfekt? Finde keins...
...das kommt auf die Länge des TextDraws logischerweise an...
Eventuell nutzt du einfach einen TextDraw-Editor wie z.B.: http://forum.sa-mp.com/showthread.php?t=543002
-
Problem ist die funktionieren bei mir irgendwie nicht -_-
-
Code
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); for(new i = 0; i < sizeof(pCarshop); i++) { if(pCarshop[i][shopVehicleID] != vehicleid) continue; new header[64], DialogString[4096]; format(header, sizeof(header), "{FFFFFF}%s", Fahrzeugname[pCarshop[i][shopModelID] - 400]); strdel(DialogString, 0, sizeof(DialogString)); format(DialogString, sizeof(DialogString), "{247BA6}Fahrzeugpreis:{FFFFFF} %s\nKraftstoffverbrauch: {FFFFFF}Coming Soon\n{247BA6}Tankfassungsvermögen: {FFFFFF}Coming Soon\n{247BA6}Mindestlevel: {FFFFFF}Coming Soon\n{247BA6}KFZ Steuer: {FFFFFF}Coming Soon", pCarshop[i][shopPrice]); ShowPlayerDialog(playerid, DIALOG_CARSHOP, DIALOG_STYLE_MSGBOX, header, DialogString, "Kaufen", "Aussteigen"); } }
Hey, kann mir jemand sagen warum mir der Dialog nicht angezeigt wird?
-
Versuchs mal so:
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
new header[64], DialogString[4096];
for(new i = 0; i < sizeof(pCarshop); i++)
{
if(pCarshop[i][shopVehicleID] != vehicleid)
continue;
format(header, sizeof(header), "{FFFFFF}%s", Fahrzeugname[pCarshop[i][shopModelID] - 400]);
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString), "{247BA6}Fahrzeugpreis:{FFFFFF} %s\nKraftstoffverbrauch: {FFFFFF}Coming Soon\n{247BA6}Tankfassungsvermögen: {FFFFFF}Coming Soon\n{247BA6}Mindestlevel: {FFFFFF}Coming Soon\n{247BA6}KFZ Steuer: {FFFFFF}Coming Soon", pCarshop[i][shopPrice]);
}
ShowPlayerDialog(playerid, DIALOG_CARSHOP, DIALOG_STYLE_MSGBOX, header, DialogString, "Kaufen", "Aussteigen");
} -
Code
if(IsPlayerDesktop(i)) { new Temp[32]; format(Temp, 32, "%s ist seit %i Sekunden im Menü.", Playername(i), pInfo[i][pDesktopTime]); SetPlayerChatBubble(i, Temp, 0xAA3333FF, 10.0, 1200); }
Hey, auf wieviel muss man das setzen...?
bei 10000 geht es nur Name ist seit .. Sekunden im
das Menü zeigt er nicht
-
Code
if(IsPlayerDesktop(i)) { new Temp[32]; format(Temp, 32, "%s ist seit %i Sekunden im Menü.", Playername(i), pInfo[i][pDesktopTime]); SetPlayerChatBubble(i, Temp, 0xAA3333FF, 10.0, 1200); }
Hey, auf wieviel muss man das setzen...?
bei 10000 geht es nur Name ist seit .. Sekunden im
das Menü zeigt er nicht
Mach mal so:
if(IsPlayerDesktop(i))
{
new Temp[64];
format(Temp, sizeof(Temp), "%s ist seit %i Sekunden im Menü.", Playername(i), pInfo[i][pDesktopTime]);
SetPlayerChatBubble(i, Temp, 0xAA3333FF, 10.0, 1200);
} -