Normalerweise sollte dies möglich sein,so ist es zumindenst bei meiner Fahrschule gewesen, also ein Kollege von mir macht Klasse B und A1 Motorrad halt.
Der muss allerdings erst Klasse B fertig haben und dann sofort hinterhr A1 machen.
Beiträge von [PeL]Smiley
-
-
Ich habe das jetzt so,könnte das funktionieren?
#define MAX_FRACS 20
#define GUI_RANK 9993
#define GUI_RANK1 9994
#define GUI_RANK2 9995
#define GUI_RANK3 9996
#define GUI_RANK4 9997
#define GUI_RANK5 9998
#define GUI_RANK6 9999
enum rank_data {
rRang1[64],
rRang2[64],
rRang3[64],
rRang4[64],
rRang5[64],
rRang6[64],
};
new rInfo[MAX_FRACS][rank_data];ocmd:editrang(playerid, params[]) {
new string[128];
SpielerInfo[playerid][pFraktion] = 1;
new rID = SpielerInfo[playerid][pFraktion];
LoadRang(rID);
format(string,sizeof(string), "%s\n%s\n%s\n%s\n%s\n%s",
rInfo[rID][rRang1],
rInfo[rID][rRang2],
rInfo[rID][rRang3],
rInfo[rID][rRang4],
rInfo[rID][rRang5],
rInfo[rID][rRang6]);
ShowPlayerDialog(playerid, GUI_RANK, DIALOG_STYLE_LIST, "Ränge Verwalten", string, "Ändern", "Abbrechen");
return 1;
}
stock LoadRang(frakid) {
for(new i = 0; i < MAX_FRACS; i++) {
new string[128];
format(string,sizeof(string), "%d", frakid);
format(rInfo[i][rRang1],64,"%s",mysql_GetString("samp_rangs", "Rang1", "ID", string));
format(rInfo[i][rRang2],64,"%s",mysql_GetString("samp_rangs", "Rang2", "ID", string));
format(rInfo[i][rRang3],64,"%s",mysql_GetString("samp_rangs", "Rang3", "ID", string));
format(rInfo[i][rRang4],64,"%s",mysql_GetString("samp_rangs", "Rang4", "ID", string));
format(rInfo[i][rRang5],64,"%s",mysql_GetString("samp_rangs", "Rang5", "ID", string));
format(rInfo[i][rRang6],64,"%s",mysql_GetString("samp_rangs", "Rang6", "ID", string));
}
}
Jeffry -
Hallo Liebe Breadfish Leute,
ich wollte euch nachfragen ob es ein tutorial gibt für ein Dynamisches Fraktionsrang und Lohn System gibt?Danke im voraus
-
Dann ist möglicherweise das zu klein:
new string[256];
zu:
new string[512];Wenn es noch immer nicht da steht poste mal den Code.
Jetzt hat es funktioniert,danke -
ocmd:stats(playerid,params[])
{
new string[256];
format(string, sizeof(string),""COLB"|===============Allgemeine Informationen===============|\n"COLO"Name: "COLW"%s\n"COLO"Level: "COLW"%d\n"COLO"Geld: "COLW"%d\n"COLO"Adminlevel:"COLW"%d\n"COLO"Fraktion:"COLW"%s\n"COLO"Rang:"COLW"%d\n"COLO"Perso:"COLW"%s",
GetName(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pAdminlevel],GetFrakName(SpielerInfo[playerid][pFraktion]),SpielerInfo[playerid][pRang],(SpielerInfo[playerid][pPerso]==1) ? ("Ja") : ("Nein") );
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,""COLO"[4YR]Statistiken",string,"Ok","");
return 1;
}Wenn du es nur anzeigen lassen willst wenn du einen Perso hast:
if(SpielerInfo[playerid][pPerso]==0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Perso.");Jetzt steht da nur: "Perso:" mehr nicht
-
Und wie mache ich das?
-
Wie kann ich im /stats befehl anzeigen lassen das man einen Perso besitz also : Personalausweis: Ja/oder Bestanden
pPerso
ocmd:stats(playerid,params[])
{
new string[256];
format(string, sizeof(string),""COLB"|===============Allgemeine Informationen===============|\n"COLO"Name: "COLW"%s\n"COLO"Level: "COLW"%d\n"COLO"Geld: "COLW"%d\n"COLO"Adminlevel:"COLW"%d\n"COLO"Fraktion:"COLW"%s\n"COLO"Rang:"COLW"%d",GetName(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pAdminlevel],GetFrakName(SpielerInfo[playerid][pFraktion]),SpielerInfo[playerid][pRang]);
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,""COLO"[4YR]Statistiken",string,"Ok","");
return 1;
} -
Ich habe diesen Error :
C:\Users\kevin\Desktop\server\gamemodes\reallife.pwn(5870) : error 025: function heading differs from prototype
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Zeile:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)// Das ist die Zeile
{
new string[128], tazerTime, stelle[24];
if(Spieler[playerid][pFraktion] == 1)
{
if(GetPlayerWeapon(playerid) == 23)
{
if(Spieler[playerid][pTazerReady])
{
switch(bodypart)
{
case 3: {tazerTime = 20; stelle = "Torso";}// Torso
case 4: {tazerTime = 15; stelle = "Groin";}// Groin
case 5: {tazerTime = 10; stelle = "Left Arm";} // Left Arm
case 6: {tazerTime = 10; stelle = "Right Arm";} // Right Arm
case 7: {tazerTime = 15; stelle = "Left Leg";} // Left Leg
case 8: {tazerTime = 15; stelle = "Right Leg";} // Right Leg
case 9: {tazerTime = 45; stelle = "Head";} // Head
}
Spieler[damagedid][pTazered] = 1;
Spieler[playerid][pTazerReady] = false;
SetTimerEx("OnTazerReady", 4000, 0, "i", playerid);
Spieler[playerid][pTazerTimer] = SetTimerEx("OnPlayerTazer", tazerTime*1000, 0, "i", damagedid);
format(string, sizeof(string), "* %s wurde von %s geschockt.", GetName(damagedid), GetName(playerid));
RoundMessage(damagedid, COLOR_PURPLE, string, 20.0);
FreezePlayer(damagedid);
PlayerTextDrawShow(damagedid, pTextTazer[damagedid][0]);
format(string, sizeof(string), "[DEBUG] %s hat %s geschockt, Stelle: %s, Tazer-Zeit: %d", stelle, tazerTime);
SendClientMessageToAll(COLOR_YELLOW, string);
}
}
}
return 1;
} -
Hallo Liebe Leute,
für mein Script was ich anfertige benötige ich einen Testserver mit 5 Slots,weil ich einige Befehle testen möchte,
die man nur zu zweit testen kann.
Danke im voraus -
Wielange dauert es denn ca. bis man freigeschaltet wird?
Ansonten ein Top Server gutes Forum gutes Konzept etc... -
Schau dir doch mal deine Variablen und dein "/makeleader"-Befehl an. Alleine an den beiden Sachen kann man doch mindestens schon ein Grundgerüst aufbauen.
Du kannst auch nicht erwarten, das wir dir alle drei Befehle hier fertig schreiben und dir überreichen.
Da hast du Recht. Das wäre auch nicht der Sinn der ganzen Sache hier,sondern evtl. einfach nur schreiben,
was ich dafür denn machen müsste.Damit ich auch selber daraus lerneocmd:invite(playerid,params[])
{
new pID,fID;
if(SpielerInfo[playerid][pRang] < 6) return SendClientMessage(playerid,Rot,""COLO"[4YR]Du bist kein Leader");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/invite [playerid] ");
return 1;
}
Ab hier komme ich nicht weiter,weil ich nicht weiß was ich jz machen muss haha -
Kann mir sonst noch evtl. jemand hilfe geben wie ich ein /invite /uninvite Befehl damit machen kann?
-
Sollen die Koordinaten der Spawnpunkt der Fraktion sein?
Und wo bzw. wie (Format) wird die Fraktion in der Spielerdatei gespeichert?
Die Koordinaten ist der Spawn genau
Speicherformat ist MYSQL und hier:
isPlayerInFrakt(playerid, f_id){
if(SpielerInfo[playerid][pFraktion]==f_id)return 1;
return 0;
}
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid))
{
SpielerInfo[playerid][ pGeld ] = GetPlayerMoney(playerid);
SpielerInfo[playerid][ pLevel ] = GetPlayerScore(playerid);
SpielerInfo[playerid][ pSkin ] = GetPlayerSkin(playerid);
mysql_SetInt(Tabelle_Spieler,"Level",SpielerInfo[playerid][pLevel],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Adminlevel",SpielerInfo[playerid][pAdminlevel],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Skin",SpielerInfo[playerid][pSkin],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Geld",SpielerInfo[playerid][pGeld],"Name",GetName(playerid));
mysql_SetString(Tabelle_Spieler,"Registrierungsdatum",SpielerInfo[playerid][ pRegDate], "Name", GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Leader",SpielerInfo[playerid][pLeader],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Fraktion",SpielerInfo[playerid][pFraktion],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Rang",SpielerInfo[playerid][pRang],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Perso",SpielerInfo[playerid][pPerso],"Name",GetName(playerid));
mysql_SetInt(Tabelle_Spieler,"Ban",SpielerInfo[playerid][pBan],"Name",GetName(playerid));
}
return 1;
} -
Hast du deine Fraktionen im Script Definiert, wenn ja wie genau?
ocmd:makeleader(playerid, params[])
{
if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 6");
new pID, fID;
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,Rot, ""COLO"Verwendung: "COLR"/makeleader [playerid] [Fraktionsid]");
if(fID >= sizeof(fInfo))return SendClientMessage(playerid,Rot, ""COLO"[4YR]"COLR"Fraktion existiert nicht.");
SpielerInfo[pID][pFraktion] = fID;
SpielerInfo[pID][pRang] = 6;
SpielerInfo[pID][pLeader] = fID;
SavePlayer(pID);
new string[128];
format(string,sizeof(string),""COLO"[%s]%s "COLR"hat dich zum Leader der Fraktion "COLO"%s"COLR" gemacht.",adminrang(playerid),GetName(playerid), fInfo[fID][f_name]);
SendClientMessage(pID, Rot, string);
SendClientMessage(playerid, Rot, ""COLO"[4YR]""Du hast einen Spieler zum Leader gemacht.");
return 1;
}enum fraktEnum{
f_name[128],
Float:f_x,
Float:f_y,
Float:f_z,
Float:f_r,
f_inter,
f_world,
}
new fInfo[][fraktEnum] = {
{"Zivilist", 588.5975,-1517.7601,15.3436, 0.0, 0, 0},
{"Los Santos Police Department", 295.2865,-55.4151,2.7772,293.463, 0, 0},
{"Bundeswehr", 0.0, 0.0, 0.0, 0.0, 0, 0},
{"Los Santos News Children's", 0.0, 0.0, 0.0, 0.0, 0, 0}};
-
Hallo Liebes breadfish Forum,
ich wollte nachfragen wie man einen /invite und einen /uninvite und /getrang etc.
für ALLE Fragen benutzen kann,dass allerdings immer in der dazugehörigen Fraktion gehört.Mit freundlichem Gruß
Smiley
Danke im voraus -
Ich habe eine Stadthalle gemacht mit dem Befehl /stadthalle
nun will ich machen das man nur einmal den Personalausweis beantragen kann,aber wie frage ich dann noch ob Perso 1 ist=return SendClientMessage(playerid,Rot,"Du besitzt bereits einen Personalausweis!");
SendClientMessage(playerid,Rot,"Du hast dir Erfolgreich einen Personalausweis beantragt! Benutze ihn mit /showperso");
mysql_SetInt(Tabelle_Spieler, "Perso",1, "Name", GetName(playerid)); -
Habs hinbekommen,weiß aber nicht wie ich die Abfrage bei OnPlayerConnect mache:
{
mysql_GetInt(Tabelle_Spieler, "Ban","Name", GetName(playerid));
SendClientMessage(playerid,Rot,"Du bist gebannt vom Server!");
Kick(playerid);
} -
Speichern tut er das ja komischerweise auch nicht also der Wert Ban in der Datenbank wird nicht auf 1 gesetzt.
-
Gute Frage nächste Frage haha
Habe ein Ban Befehl erstellt,aber wie gehts nun weiter beim Login abfragen ob der gebannt ist und das auch Speichern also pBan auf 1 setzen usw.ocmd:ban(playerid,params[])
{
new pID,reason[128],string[128],msg[128];
if(SpielerInfo[playerid][pAdminlevel] < 1) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 1");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/ban [ID] [Grund]");
format(string,sizeof(string),""COLO"[%s] %s "COLR"hat dich vom Server gebannt, "COLO"Grund: "COLR"%s.",adminrang(playerid),GetName(playerid),reason);
format(msg,sizeof(msg),""COLO"[%s] %s "COLR"hat den Spieler "COLO"%s "COLR"vom Server gebannt, "COLO"Grund: "COLR"%s",adminrang(playerid),GetName(playerid),GetName(pID),reason);
ShowPlayerDialog(pID,DIALOG_BAN,DIALOG_STYLE_MSGBOX,"Ban",string,"Verlassen","");
SendClientMessageToAll(Rot,msg);
mysql_SetInt(Tabelle_Spieler, "Ban",1, "Name", GetName(pID));
SavePlayer(pID);
Kick(pID);
return 1;
} -
ocmd:stats(playerid,params[])
{
new string[256];
/*401*/ format(string, sizeof(string),""COLB"|===============Allgemeine Informationen===============|\n"COLO"Name: "COLW"%s\n"COLO"Level: "COLW"%d\n"COLO"Geld: "COLW"%d\n"COLO"Adminlevel:"COLW"%d\n"COLO"Fraktion:"COLW"%s\n"COLO"Rang:"COLW"%d",GetName(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pAdminlevel],GetFrakName(SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pRang]));
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,""COLO"[4YR]Statistiken",string,"Ok","");
return 1;
}
C:\Users\kevin\Desktop\server\gamemodes\self.pwn(401) : warning 202: number of arguments does not match definition
Bitte mit Erklärung was falsch war/ist