Oh jaa
es sollten dringend 2 Plugins wieder rein
1. der Fehlererklärbär
und 2. das PawnCode Plugin weil es z.B "schwer" ist sich ein Tutorial durchzulesen weil der Pwn Code ja nicht funktioniert
Beiträge von [COE]CodeX
-
-
Thema ist schon erldegigt^^
ich hab schon geschrieben, dass es nur Fail war weil ich die Maximale Stringlänge zu kurz gemacht habeAußerdem ist es doch egal ob eine TD bim Spawn oder bem Connect angezeigt wird
Aber trotzdem Danke
-
Ich hab den Fehler gefunden
Ich sagte ja es wird etwas banales sein
Es lag daran, dass Ich am Anfang in diese TD nur die Punkte machen wollte, deswegen hab ich z.B bei stand eine Stringlänge von 10 gemacht und die reichte natürlich nichtSooo ein rießien FAIL
Aber trotzdem Danke für deine Hilfe
-
Zitat
Wenn du einen TextDraw anzeigen lässt, muss du "Text:" nicht mit schreiben.
//e: Genauso auch bei TextDrawSetString etc.
Theoretischweiß ich das^^
Und weil ich schon so viel rum probiert hab bin ich mir nicht mehr sicher ob ich das jemals ohne text: dastehen hatte^^
hat du eine Ahung ob das etwas ausmacht? -
Hey erneut^^
In den letzten Tagen hab ichs echt mit den TextDraw's
dieses mal wird meine Gangwar TextDraw die den aktuellen Stand beinhaltet einfach nicht angezeigt.
Alle anderen TD's die ich habe funktionieren nur diese nichtHier mal der Code
Hoffe jmd kann helfen...
ist bestimmer wieder was ganz banales
TextDraw "definition"TextDraw Erstellung unter OnGameModeInit
CodeT1 = TextDrawCreate(234 ,35 , "--------------------"); TextDrawFont(T1 , 1); TextDrawLetterSize(T1 , 0.6, 4.2); TextDrawColor(T1 , 0x050000FF); TextDrawSetOutline(T1 , false); TextDrawSetProportional(T1 , true); TextDrawSetShadow(T1 , 1);
Unter OnPlayer Connect
CodeTextDrawShowForAll(Text:T1); new Stand[10]; format(Stand,sizeof(Stand),"Team 1 %i : %i Team 2",T1Count,T2Count); TextDrawSetString(Text:T1,Stand); TextDrawShowForAll(Text:T1);
OnPlayerDeathAbfrage
Code
Alles anzeigenif(GetPlayerTeam(playerid) == 1 && GetPlayerTeam(killerid) == 2 && IsPlayerInArea(playerid,1017.6841,1383.3768,1177.0291,1702.6935) && IsPlayerInArea(killerid,1017.6841,1383.3768,1177.0291,1702.6935)) { TextDrawShowForAll(Text:T1); new stand[10]; T2Count ++; format(stand,sizeof(stand),"Team 1 %i : %i Team 2",T1Count,T2Count); TextDrawSetString(Text:T1,stand); TextDrawShowForAll(Text:T1); if(T2Count >= 3 && T1Count < 3) { SCMTA(lila,"Team 2 hat gewonnen"); T2Count = 0; T1Count = 0; format(stand,sizeof(stand),"Team 1 %i : %i Team 2",T1Count,T2Count); TextDrawShowForAll(Text:T1); TextDrawSetString(Text:T1,stand); TextDrawShowForAll(Text:T1); } } else if(GetPlayerTeam(playerid) == 2 && GetPlayerTeam(killerid) == 1 && IsPlayerInArea(playerid,1017.6841,1383.3768,1177.0291,1702.6935) && IsPlayerInArea(killerid,1017.6841,1383.3768,1177.0291,1702.6935)) { TextDrawShowForAll(Text:T1); new stand2[10]; T1Count ++; format(stand2,sizeof(stand2),"Team 1 %i : Team 2 %i",T1Count,T2Count); TextDrawSetString(Text:T1,stand2); TextDrawShowForAll(Text:T1); if(T1Count >= 3 && T2Count < 3) { SCMTA(lila,"Team 1 hat gewonnen"); T2Count = 0; T1Count = 0; format(stand2,sizeof(stand2),"Team 1 %i : %i Team 2",T1Count,T2Count); TextDrawShowForAll(Text:T1); TextDrawSetString(Text:T1,stand2); TextDrawShowForAll(Text:T1); } }
-
Naja bisher hab ich den BSN TextDraw Editor 0.8 benutzt aber der zeigt zum Beispiel keine Boxen an
/edit: Hab ihn hier das war er glaube ich
Kann mir jemand helfen oder einen guten textDraw Editor empfehlen?
Vor ein paar Tagen hat jemand von einem sehr guten IngameTextDraw Editor "geredet" der sich auch mit der Maus bedienen lässt weiß jmd wie der heißt?Kann mir trotzdem jmd. bei meinem Problem noch helfen?^^
-
du musst bei MKills = TextDrawCreate(510 ,380 , "0"); immer so editieren MKills[playerid] = TextDrawCreate(510 ,380 , "0");
Warum?
MKills ist eine naja wie soll ich sagen Allgmeine textDraw also weder ist sie für jeden Spieler unterschiedlich noch sonst etwas sie wird für jeden angezeigt usw
deswegen ja auch
und nicht -
Hey
Ich hab die ein oder andere TextDraw für meinen "Server" erstellt und weil ich es besser fand eine TextDrawBox drum gepackt aber die ist ein bisschen Fail weil sie sich bis zum rechten Rand zieht
naja seht selbst
Wie bekomm ich das weg?
Hat das etwas mit der String länge zutun oder was?
Hier mal de Code zu den TextDraws gemeint sind natürlich Kills/Tode und auch die meisten KillsCodeMKills = TextDrawCreate(510 ,380 , "0"); TextDrawFont(MKills , 2); TextDrawLetterSize(MKills , 0.25, 1.9); TextDrawColor(MKills , 0xFEFEFEFF); TextDrawSetOutline(MKills , false); TextDrawSetProportional(MKills , true); TextDrawSetShadow(MKills , 1); TextDrawUseBox(MKills, 1); TextDrawBoxColor(MKills, 0x000000AA);
Codenew KillAnzahl[30]; format(KillAnzahl,sizeof(KillAnzahl),"Kills: %i~n~Tode: %i",pInfo[playerid][Kills],pInfo[playerid][Tode]); PlayerTextDrawShow(playerid,KillZahl[playerid]); PlayerTextDrawSetString(playerid,KillZahl[playerid],KillAnzahl); PlayerTextDrawShow(playerid,KillZahl[playerid]);
/edit: Ich hätte noch erwähnen sollen, dass DIe TextDraw "KillZahl" die wichtigeere ist die Kills/Tode wiedergibt
Die mit dem meisten Kills habe ich "angepasst" -
Zuviel der Ehre^^
Aber du hast hoffentlich auch damagedid an dein Callback angepasst oder?
Weil ich OnPlayerGiveDamage und nicht OnPlayertakeDamage verwendet habe -
Arbeite lieber mit dem Public Hier mein Code mal :
public OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
{
if(Spieler[Shooter][fraktion] == 1)
{
if(GetPlayerWeapon(Shooter) == 23)
{
new Float:xx,Float:yy,Float:zz , Float:yx,Float:xy,Float:xz;
GetPlayerPos(Shooter,xx,yy,zz);
GetPlayerPos(Target,yx,xy,xz);
getaze[Target] = 1;
SetTimerEx("getazed", 12000, 0, "d", Target);
SendClientMessage(Target, hellblau, "Du wurdest für 12 Sekunden getazed!");
TogglePlayerControllable(Target,0);
PlayerPlaySound(Shooter,6003,xx,yy,zz);
PlayerPlaySound(Target,6003,yx,xy,xz);
}
}
return 1;
}Wird nicht OnPlayerShootPlayer erst durch das Include OPSP eingefügt? Das ist doch kein STandard public oder?
Hab mich wohl geirrt^^@ ShiiX Du musst für ein SchussTazer swieso mit SetTimerEx arbeiten
z.B so das ist meiner aber bei OnPlayerGiveDamage
forward TazerCount(playerid);
public OnPlayerGiveDamage(playerid,damagedid,Float: amount,weaponid)
{
if(Tazer[playerid] == 1)
{
if(weaponid == 23)
{
TogglePlayerControllable(damagedid,0);
SCM(damagedid,grau,"Du wurdest für 5 Sekunden geschockt");
SetTimerEx("TazerCount",1000*5,false,"i",damagedid);
}
}
if(weaponid == 34)
{
SetPlayerHealth(damagedid,0.0);
}
return 1;
}public TazerCount(playerid)
{
TogglePlayerControllable(playerid,1);
SCM(playerid,grau,"Du kannst dich nun wieder bewegen");
} -
Oh Stimmt ich hab GivePlayerCash etc. vergessen
das hab ich aus einem Tutorial aus dem englischen Forum und noch bisschen angepasst//SERVERSIDE MONEY
stock GivePlayerCash(playerid, money)
{
pInfo[playerid][Geld] += money;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,pInfo[playerid][Geld]);
return pInfo[playerid][Geld];
}
stock SetPlayerCash(playerid, money)
{
pInfo[playerid][Geld] = money;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,pInfo[playerid][Geld]);
return pInfo[playerid][Geld];
}
stock ResetPlayerCash(playerid)
{
pInfo[playerid][Geld] = 0;
ResetMoneyBar(playerid);
UpdateMoneyBar(playerid,pInfo[playerid][Geld]);
return pInfo[playerid][Geld];
}
stock GetPlayerCash(playerid)
{
return pInfo[playerid][Geld];
}Ich teste mal kurz eure Vorschläge wegen dem Float^^
/edit:
Kaliber: das verändert ja nur die Anzahl an Kommastellen aber ich meinte hauptsächlich, dass die Kommastellen zu sehr gerundet wurden aber egal habs trotzdem drin gelassen
Haxler: DANKE hat funktioniert jetzt wird es genau angezeigt -
Hey Leute ich hab bei meinem kleinen DM Script 2 kleine Fehler die ich nicht beheben kann^^
Das 1. Problem ist das wohl einfachere
Ich möchte wenn man /stats tipp die K/D(Kill/Death Quote) des Spielers ausrechen aber obwohl ich es als Float angegeben habe rundet es immer auf .0
ocmd:stats(playerid,params[])
{
#pragma unused params
new zeile1[128],zeile2[128],zeile3[128],zeile4[128],Float:kd;
kd = pInfo[playerid][Kills]/pInfo[playerid][Tode];
format(zeile1,sizeof(zeile1),"**************************************Statistik**************************************");
format(zeile2,sizeof(zeile2),"[Name: %s] [Geld: %i] [Level: %i] [Adminlevel: %i]",Spielername(playerid),GetPlayerCash(playerid),GetPlayerScore(playerid),pInfo[playerid][Adminlevel]);
format(zeile3,sizeof(zeile3),"[Kills: %i] [Tode: %i] [K/D: %f] [Wanteds: %i]",pInfo[playerid][Kills],pInfo[playerid][Tode],kd,pInfo[playerid][Wanteds]);
format(zeile4,sizeof(zeile4),"*************************************************************************************");
SCM(playerid,weiß,zeile1);
SCM(playerid,weiß,zeile2);
SCM(playerid,weiß,zeile3);
SCM(playerid,weiß,zeile4);
return 1;
}
Wenn ich zum Beispiel 28Kills und 17Tode habe würde im Spiel dastehen 1.0000000 Ich möchte aber dass 1.647 oder 1.68 oder ähnliches angezeigt wirdDas 2. Problem ist schon merkwürdiger Jedesmal wenn man sich einloggt bekommt man 115€ gutgeschrieben o_O Obwohl nichts dergleichen im Script geschrieben wurde weder beim Login noch bei OnPlayerConnect noch sonst wo
Aber hier trotzdem mal die Callbacks
public OnPlayerConnect(playerid)
{
if(fexist(getINI(playerid)))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Dieser Account existiert nicht. Bitte gib dein gewünschtes Passwort ein","Registrieren","Abbrechen");
}
ResetPlayerCash(playerid);
//WantedZahl
TextDrawShowForPlayer(playerid,Stern);
WtdZahl[playerid] = CreatePlayerTextDraw(playerid, 528 ,98 ,"0");
PlayerTextDrawFont(playerid,WtdZahl[playerid] , 2);
PlayerTextDrawLetterSize(playerid,WtdZahl[playerid] , 0.5, 2.8);
PlayerTextDrawColor(playerid,WtdZahl[playerid] , 0xFEFEFEFF);
PlayerTextDrawSetOutline(playerid, WtdZahl[playerid] , true);
PlayerTextDrawSetProportional(playerid,WtdZahl[playerid] , true);
PlayerTextDrawSetShadow(playerid,WtdZahl[playerid] , 1);
return 1;
}
public OnPlayerSpawn(playerid)
{
new WtdAnzahl[10];
format(WtdAnzahl,sizeof(WtdAnzahl),"%i",pInfo[playerid][Wanteds]);
PlayerTextDrawShow(playerid,WtdZahl[playerid]);
PlayerTextDrawSetString(playerid,WtdZahl[playerid],WtdAnzahl);
PlayerTextDrawShow(playerid,WtdZahl[playerid]);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTER:
{
if(!response)return Kick(playerid);
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Dieser Account existiert nicht. Bitte gib dein gewünschtes Passwort ein","Registrieren","Abbrechen");
}
if(INI_Open(getINI(playerid)))
{
INI_WriteString("Passwort",inputtext);
INI_WriteInt("Level",1);
INI_WriteInt("Geld",2000);
INI_WriteInt("Adminlevel",0);
INI_WriteInt("Kills",0);
INI_WriteInt("Tode",0);
INI_WriteInt("Wanteds",0);
INI_WriteInt("Warns",0);
INI_WriteInt("Banned",0);
INI_Save();
INI_Close();
SCM(playerid,grün,"Du hast dich erfolgreich registriert. Nun logge dich mit deinem Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
}
}
}
case DIALOG_LOGIN:
{
if(!response)return Kick(playerid);
if(response)
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
}
if(INI_Open(getINI(playerid)))
{
INI_ReadString(pInfo[playerid][Passwort],"Passwort",20);
if(strcmp(inputtext,pInfo[playerid][Passwort],false))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Bitte gib dein Passwort ein.","Login","Abbrechen");
SCM(playerid,rot,"Falsches Passwort");
}
else
{
new Nachricht[128];
format(Nachricht,sizeof(Nachricht),"%s hat den Server betreten",Spielername(playerid));
SCMTA(gelb,Nachricht);SetPlayerScore( playerid, INI_ReadInt("Level" ) );
ResetPlayerMoney( playerid );
GivePlayerCash( playerid, INI_ReadInt( "Geld" ) );
pInfo[playerid][Adminlevel] = INI_ReadInt("Adminlevel");
pInfo[playerid][Kills] = INI_ReadInt("Kills");
pInfo[playerid][Tode] = INI_ReadInt("Tode");
pInfo[playerid][Wanteds] = INI_ReadInt("Wanteds");
pInfo[playerid][Warns] = INI_ReadInt("Warns");
pInfo[playerid][Banned] = INI_ReadInt("Banned");
INI_Close();
SCM(playerid,grün,"Erfolgreich eingeloggt");
}
}
}
}
}
return 1;
}Ich hoffe jemand kann mir helfen
MfG
MrMonkey -
Ja ich hab mir extra ein Textcommand /teste gemacht der die erfahrung auf 500 setzt das wird auch per /stats so angezeigt
-
Funktioniert es ohne Unterordner?
Also wenn ich den gesamten Code genauso lasse nur die Unterordner rausnehme funktioniert es trotzdem nicht/edit:
Aber an den Unterordnern kann es eigentlich nicht liegen ich hab nämlich die Fraktionskassen auch auf HSA umgeschrieben und bei denen funktioniert das tadellos
stock LoadKasse()
{
new kasse[64];
format(kasse,sizeof(kasse),"/FrakKassen/FraktionsKassen");
FrakKasse[LVPD] = getInt:kasse("LVPD");
FrakKasse[FBI] = getInt:kasse("FBI");
FrakKasse[US_Army] = getInt:kasse("US_Army");
FrakKasse[US_Government] = getInt:kasse("US_Government");
FrakKasse[BBC] = getInt:kasse("BBC");
FrakKasse[Medics] = getInt:kasse("Medics");
FrakKasse[Fahrschule] = getInt:kasse("Fahrschule");
FrakKasse[Yakuza] = getInt:kasse("Yakuza");
FrakKasse[Ndrangheta] = getInt:kasse("Ndrangheta");
FrakKasse[Brigada] = getInt:kasse("Brigada");
FrakKasse[Sacra_Corona_Unita] = getInt:kasse("Sacra_Corona_Unita");
FrakKasse[Triaden] = getInt:kasse("Triaden");
FrakKasse[Terroristen] = getInt:kasse("Terroristen");
return 1;
}stock SaveKasse()
{
new kasse[64];
format(kasse,sizeof(kasse),"/FrakKassen/FraktionsKassen");setInt:kasse("LVPD",FrakKasse[LVPD]);
setInt:kasse("FBI",FrakKasse[FBI]);
setInt:kasse("US_Army",FrakKasse[US_Army]);
setInt:kasse("US_Government",FrakKasse[US_Government]);
setInt:kasse("BBC",FrakKasse[BBC]);
setInt:kasse("Medics",FrakKasse[Medics]);
setInt:kasse("Fahrschule",FrakKasse[Fahrschule]);
setInt:kasse("Yakuza",FrakKasse[Yakuza]);
setInt:kasse("Ndrangheta",FrakKasse[Ndrangheta]);
setInt:kasse("Brigada",FrakKasse[Brigada]);
setInt:kasse("Sacra_Corona_Unita",FrakKasse[Sacra_Corona_Unita]);
setInt:kasse("Triaden",FrakKasse[Triaden]);
setInt:kasse("Terroristen",FrakKasse[Terroristen]);
Save(kasse); -
Also mein Login/register System speichert irgendwie nicht richtig.
Ich habe es erst von Dini in HSA Multi umgeschrieben.
Am Anfang funktionierte noch alles aber nachdem ich noch ein bisschen rumprobiert hab speichert er die Daten nicht mehrHier mal alles was mit dem Login/Register zutun hat
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.hsa",name);
if(fexist(Spielerdatei))
{
RemoveBuildingForPlayer(playerid, 1231, -2805.4063, -333.7969, 8.9219, 0.25);
RemoveBuildingForPlayer(playerid, 1231, -2804.5156, -325.9688, 8.9219, 0.25);
RemoveBuildingForPlayer(playerid, 10402, -2778.6719, -414.2500, 7.7422, 0.25);
ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_PASSWORD,"Login"," Dein Account wurde gefunden, bitte gib dein Passwort ein.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_Register,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes Passwort ein","Registrieren","Abbrechen");
}
//Register
if(dialogid==DIALOG_Register)
{
if(response==0)
{
SendClientMessage(playerid,rot,"Du hast den Vorgang abgebrochen");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,blau,"Das Passwort war icht lang genug");
ShowPlayerDialog(playerid,DIALOG_Register,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte dein gewünschtes Passwort ein","Registrieren","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}}
}//Für Login
if(dialogid==DIALOG_Login)
{
if(response==0)
{
SendClientMessage(playerid,rot,"Du hast den Vorgang abgebrochen");
Kick(playerid);
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,blau,"Das Passwort war nicht lang genug");
ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_PASSWORD,"Login"," Dein Account wurde gefunden, bitte gib dein Passwort ein.","Login","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
stock Register(playerid,key[])
{
new Spielerdatei[64];
new Inventar[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",name);
format(Inventar,sizeof(Inventar),"/Inventar/%s",name);
//dini_Create(Spielerdatei);
//dini_Create(Inventar);
setString:Spielerdatei("Passwort",key);
SendClientMessage(playerid,grün,"Herzlichen Glückwunsch, du hast dich erfolgreich registriert");
GiveStartVars(playerid);
GiveStartInventar(playerid);
//SpielerSpeichern(playerid);
setInt:Spielerdatei("Erfahrung",pInfo[playerid][Erfahrung]);
setInt:Spielerdatei("Warns",pInfo[playerid][Warns]);
setInt:Spielerdatei("Bargeld",GetPlayerMoney(playerid));
setInt:Spielerdatei("Bankguthaben",pInfo[playerid][Bankguthaben]);
setInt:Spielerdatei("Adminlevel",pInfo[playerid][Adminlevel]);
setInt:Spielerdatei("Level",GetPlayerScore(playerid));
setInt:Spielerdatei("Wanteds",pInfo[playerid][Wanteds]);
setInt:Spielerdatei("Banned",pInfo[playerid][Banned]);
setInt:Spielerdatei("Hunger",pInfo[playerid][Hunger]);
setInt:Spielerdatei("Durst",pInfo[playerid][Durst]);
setInt:Spielerdatei("Viren",pInfo[playerid][Viren]);
setInt:Spielerdatei("Fraktion",pInfo[playerid][Fraktion]);
setInt:Spielerdatei("Nebenjob",pInfo[playerid][Nebenjob]);
setInt:Spielerdatei("Fraktionsrang",pInfo[playerid][Fraktionsrang]);
setInt:Spielerdatei("Zeit bis Payday",pInfo[playerid][ZbP]);
setInt:Spielerdatei("LeaderRechte",pInfo[playerid][Leader]);
setInt:Spielerdatei("Spielzeitinsgesamt",pInfo[playerid][SzI]);
setInt:Spielerdatei("Coins",pInfo[playerid][Coins]);
setInt:Spielerdatei("FarmerCP",pInfo[playerid][FarmerCP]);
setInt:Spielerdatei("TruckerCP",pInfo[playerid][TruckerCP]);
setInt:Spielerdatei("Benötigtes Geld",pInfo[playerid][BenGeld]);
setInt:Spielerdatei("Benötigte Erfahrung",pInfo[playerid][BenErfahrung]);
setInt:Spielerdatei("Bonus Erfahrung",pInfo[playerid][PlusErfahrung]);
Save(Spielerdatei);
//InventarSpeichern(playerid);
setInt:Inventar("Medikamente",iInfo[playerid][Medikamente]);
setInt:Inventar("Hamburger",iInfo[playerid][Hamburger]);
setInt:Inventar("Wasser",iInfo[playerid][Wasser]);
setInt:Inventar("Alkohol",iInfo[playerid][Alkohol]);
setInt:Inventar("Eisen",iInfo[playerid][Eisen]);
setInt:Inventar("Holz",iInfo[playerid][Holz]);
setInt:Inventar("Schwarzpulver",iInfo[playerid][Schwarzpulver]);
Save(Inventar);
//AccountLaden(playerid);
//InventarLaden(playerid);
pInfo[playerid][Eingeloggt] = 1;
return 1;
}stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",name);
if(!strcmp(key,getString:Spielerdatei("Passwort"),false))
{
AccountLaden(playerid);
InventarLaden(playerid);
pInfo[playerid][Eingeloggt] = 1;
pInfo[playerid][ZsL]=0;
Anfrage[playerid] = 0;
Zielfrak[playerid] = 0;
AdminDuty[playerid] = 0;
TVDuty[playerid] = 0;
gemuted[playerid] = 0;
AnfrageID[playerid] = 0;
Tognews[playerid] = 0;
Tazer[playerid] = 0;
PingWarnungen[playerid] = 0;
FarmCP[playerid] = 0;
TruckCP[playerid] = 0;
KeinCP[playerid] = 0;
BauerAnnahme[playerid] = 0;
TruckerAnnahme[playerid] = 0;
Ueberweiser[playerid] = 0;
RemoveBuildingForPlayer(playerid, 10402, -2778.6719, -414.2500, 7.7422, 0.25);
SendClientMessage(playerid,grün,"Du hast dich erfolgreich eingeloggt");
return 1;
}
else
{
SendClientMessage(playerid,rot,"Falsches Passwort");
ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_PASSWORD,"Login"," Dein Account wurde gefunden, bitte gib dein Passwort ein.","Login","Abbrechen");
return 1;
}}
stock SpielerSpeichern(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s",name);
if(fexist(Spielerdatei))
{
setInt:Spielerdatei("Erfahrung",pInfo[playerid][Erfahrung]);
setInt:Spielerdatei("Warns",pInfo[playerid][Warns]);
setInt:Spielerdatei("Bargeld",GetPlayerMoney(playerid));
setInt:Spielerdatei("Bankguthaben",pInfo[playerid][Bankguthaben]);
setInt:Spielerdatei("Adminlevel",pInfo[playerid][Adminlevel]);
setInt:Spielerdatei("Level",GetPlayerScore(playerid));
setInt:Spielerdatei("Wanteds",pInfo[playerid][Wanteds]);
setInt:Spielerdatei("Banned",pInfo[playerid][Banned]);
setInt:Spielerdatei("Hunger",pInfo[playerid][Hunger]);
setInt:Spielerdatei("Durst",pInfo[playerid][Durst]);
setInt:Spielerdatei("Viren",pInfo[playerid][Viren]);
setInt:Spielerdatei("Fraktion",pInfo[playerid][Fraktion]);
setInt:Spielerdatei("Nebenjob",pInfo[playerid][Nebenjob]);
setInt:Spielerdatei("Fraktionsrang",pInfo[playerid][Fraktionsrang]);
setInt:Spielerdatei("Zeit bis Payday",pInfo[playerid][ZbP]);
setInt:Spielerdatei("LeaderRechte",pInfo[playerid][Leader]);
setInt:Spielerdatei("Spielzeitinsgesamt",pInfo[playerid][SzI]);
setInt:Spielerdatei("Coins",pInfo[playerid][Coins]);
setInt:Spielerdatei("FarmerCP",pInfo[playerid][FarmerCP]);
setInt:Spielerdatei("TruckerCP",pInfo[playerid][TruckerCP]);
setInt:Spielerdatei("Benötigtes Geld",pInfo[playerid][BenGeld]);
setInt:Spielerdatei("Benötigte Erfahrung",pInfo[playerid][BenErfahrung]);
setInt:Spielerdatei("Bonus Erfahrung",pInfo[playerid][PlusErfahrung]);
Save(Spielerdatei);
/* dini_IntSet(Spielerdatei,"Erfahrung",pInfo[playerid][Erfahrung]);
dini_IntSet(Spielerdatei,"Warns",pInfo[playerid][Warns]);
dini_IntSet(Spielerdatei,"Bargeld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Bankguthaben",pInfo[playerid][Bankguthaben]);
dini_IntSet(Spielerdatei,"Adminlevel",pInfo[playerid][Adminlevel]);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Wanteds",pInfo[playerid][Wanteds]);
dini_IntSet(Spielerdatei,"Banned",pInfo[playerid][Banned]);
dini_IntSet(Spielerdatei,"Hunger",pInfo[playerid][Hunger]);
dini_IntSet(Spielerdatei,"Durst",pInfo[playerid][Durst]);
dini_IntSet(Spielerdatei,"Viren",pInfo[playerid][Viren]);
dini_IntSet(Spielerdatei,"Fraktion",pInfo[playerid][Fraktion]);
dini_IntSet(Spielerdatei,"Nebenjob",pInfo[playerid][Nebenjob]);
dini_IntSet(Spielerdatei,"Fraktionsrang",pInfo[playerid][Fraktionsrang]);
dini_IntSet(Spielerdatei,"Zeit bis Payday",pInfo[playerid][ZbP]);
dini_IntSet(Spielerdatei,"Hat Uhr",pInfo[playerid][HatUhr]);
dini_IntSet(Spielerdatei,"LeaderRechte",pInfo[playerid][Leader]);
dini_IntSet(Spielerdatei,"Spielzeitinsgesamt",pInfo[playerid][SzI]);
dini_IntSet(Spielerdatei,"Coins",pInfo[playerid][Coins]);
dini_IntSet(Spielerdatei,"FarmerCP",pInfo[playerid][FarmerCP]);
dini_IntSet(Spielerdatei,"TruckerCP",pInfo[playerid][TruckerCP]);
dini_IntSet(Spielerdatei,"BenErfahrung",pInfo[playerid][BenErfahrung]);
dini_IntSet(Spielerdatei,"BenGeld",pInfo[playerid][BenGeld]);
dini_IntSet(Spielerdatei,"PlusErfahrung",pInfo[playerid][PlusErfahrung]);
dini_IntSet(Spielerdatei,"Autos",pInfo[playerid][AnzAutos]);
*/
}
return 1;
}stock InventarSpeichern(playerid)
{
new Inventar[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Inventar,sizeof(Inventar),"/Inventar/%s",name);
if(fexist(Inventar))
{
setInt:Inventar("Medikamente",iInfo[playerid][Medikamente]);
setInt:Inventar("Hamburger",iInfo[playerid][Hamburger]);
setInt:Inventar("Wasser",iInfo[playerid][Wasser]);
setInt:Inventar("Alkohol",iInfo[playerid][Alkohol]);
setInt:Inventar("Eisen",iInfo[playerid][Eisen]);
setInt:Inventar("Holz",iInfo[playerid][Holz]);
setInt:Inventar("Schwarzpulver",iInfo[playerid][Schwarzpulver]);
Save(Inventar);
/* dini_IntSet(Inventar,"Medikamente",iInfo[playerid][Medikamente]);
dini_IntSet(Inventar,"Hamburger",iInfo[playerid][Hamburger]);
dini_IntSet(Inventar,"Wasser",iInfo[playerid][Wasser]);
dini_IntSet(Inventar,"Alkohol",iInfo[playerid][Alkohol]);
dini_IntSet(Inventar,"Eisen",iInfo[playerid][Eisen]);
dini_IntSet(Inventar,"Holz",iInfo[playerid][Holz]);
dini_IntSet(Inventar,"Schwarzpulver",iInfo[playerid][Schwarzpulver]);
*/
}
return 1;
}stock AccountLaden(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.hsa",name);
if(fexist(Spielerdatei))
{
SetPlayerScore(playerid,getInt:Spielerdatei("Level"));
GivePlayerMoney(playerid,getInt:Spielerdatei("Bargeld"));
pInfo[playerid][Wanteds] = getInt:Spielerdatei("Wanteds");
pInfo[playerid][Bankguthaben] = getInt:Spielerdatei("Bankguthaben");
pInfo[playerid][Erfahrung] = getInt:Spielerdatei("Erfahrung");
pInfo[playerid][Adminlevel] = getInt:Spielerdatei("Adminlevel");
pInfo[playerid][Banned] = getInt:Spielerdatei("Banned");
pInfo[playerid][Warns] = getInt:Spielerdatei("Warns");
pInfo[playerid][Hunger] = getInt:Spielerdatei("Hunger");
pInfo[playerid][Durst] = getInt:Spielerdatei("Durst");
pInfo[playerid][Viren] = getInt:Spielerdatei("Viren");
pInfo[playerid][Fraktion] = getInt:Spielerdatei("Fraktion");
pInfo[playerid][Nebenjob] = getInt:Spielerdatei("Nebenjob");
pInfo[playerid][Fraktionsrang] = getInt:Spielerdatei("Fraktionsrang");
pInfo[playerid][ZbP] = getInt:Spielerdatei("Zeit bis Payday");
pInfo[playerid][Leader] = getInt:Spielerdatei("LeaderRechte");
pInfo[playerid][SzI] = getInt:Spielerdatei("Spielzeitinsgesamt");
pInfo[playerid][Coins] = getInt:Spielerdatei("Coins");
pInfo[playerid][FarmerCP] = getInt:Spielerdatei("FarmerCP");
pInfo[playerid][TruckerCP] = getInt:Spielerdatei("TruckerCP");
pInfo[playerid][BenErfahrung] = getInt:Spielerdatei("Benötigte Erfahrung");
pInfo[playerid][BenGeld] = getInt:Spielerdatei("Benötigtes Geld");
pInfo[playerid][PlusErfahrung] = getInt:Spielerdatei("Bonus Erfahrung");/* SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Bargeld"));
pInfo[playerid][Wanteds] = dini_Int(Spielerdatei,"Wanteds");
pInfo[playerid][Bankguthaben] = dini_Int(Spielerdatei,"Bankguthaben");
pInfo[playerid][Erfahrung] = dini_Int(Spielerdatei,"Erfahrung");
pInfo[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
pInfo[playerid][Banned] = dini_Int(Spielerdatei,"Banned");
pInfo[playerid][Warns] = dini_Int(Spielerdatei,"Warns");
pInfo[playerid][Hunger] = dini_Int(Spielerdatei,"Hunger");
pInfo[playerid][Durst] = dini_Int(Spielerdatei,"Durst");
pInfo[playerid][Viren] = dini_Int(Spielerdatei,"Viren");
pInfo[playerid][Fraktion] = dini_Int(Spielerdatei,"Fraktion");
pInfo[playerid][Nebenjob] = dini_Int(Spielerdatei,"Nebenjob");
pInfo[playerid][Fraktionsrang] = dini_Int(Spielerdatei,"Fraktionsrang");
pInfo[playerid][ZbP] = dini_Int(Spielerdatei,"Zeit bis Payday");
pInfo[playerid][HatUhr] = dini_Int(Spielerdatei,"Hat Uhr");
pInfo[playerid][Leader] = dini_Int(Spielerdatei,"LeaderRechte");
pInfo[playerid][SzI] = dini_Int(Spielerdatei,"Spielzeitinsgesamt");
pInfo[playerid][Coins] = dini_Int(Spielerdatei,"Coins");
pInfo[playerid][FarmerCP] = dini_Int(Spielerdatei,"FarmerCP");
pInfo[playerid][TruckerCP] = dini_Int(Spielerdatei,"TruckerCP");
pInfo[playerid][BenErfahrung] = dini_Int(Spielerdatei,"BenErfahrung");
pInfo[playerid][BenGeld] = dini_Int(Spielerdatei,"BenGeld");
pInfo[playerid][PlusErfahrung] = dini_Int(Spielerdatei,"PlusErfahrung");
pInfo[playerid][AnzAutos] = dini_Int(Spielerdatei,"Autos");
*/}
if(pInfo[playerid][Banned]==1)
{
SendClientMessage(playerid,rot,"Du wurdest gebannt. Wenn es ein Failban ist,");
SendClientMessage(playerid,rot,"dann kontaktiere einen Admin");
Kick(playerid);
Ban(playerid);
}
if(pInfo[playerid][Warns]==3)
{
SendClientMessage(playerid,rot,"Du hast 3 Spielerverwarnungen");
SendClientMessage(playerid,rot,"das bedeutet du wirst vom Server ausgeschlossen");
Kick(playerid);
Ban(playerid);
}
return 1;
}stock InventarLaden(playerid)
{
new Inventar[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Inventar,sizeof(Inventar),"/Inventar/%s.hsa",name);
if(fexist(Inventar))
{
iInfo[playerid][Medikamente] = getInt:Inventar("Medikamente");
iInfo[playerid][Hamburger] = getInt:Inventar("Hamburger");
iInfo[playerid][Wasser] = getInt:Inventar("Wasser");
iInfo[playerid][Alkohol] = getInt:Inventar("Alkohol");
iInfo[playerid][Eisen] = getInt:Inventar("Eisen");
iInfo[playerid][Holz] = getInt:Inventar("Holz");
iInfo[playerid][Schwarzpulver] = getInt:Inventar("Schwarzpulver");/* iInfo[playerid][Medikamente] = dini_Int(Inventar,"Medikamente");
iInfo[playerid][Hamburger] = dini_Int(Inventar,"Hamburger");
iInfo[playerid][Wasser] = dini_Int(Inventar,"Wasser");
iInfo[playerid][Alkohol] = dini_Int(Inventar,"Alkohol");
iInfo[playerid][Eisen] = dini_Int(Inventar,"Eisen");
iInfo[playerid][Holz] = dini_Int(Inventar,"Holz");
iInfo[playerid][Schwarzpulver] = dini_Int(Inventar,"Schwarzpulver");
*/
}
return 1;
}stock GiveStartVars(playerid)
{
SetPlayerHealth(playerid,50);
pInfo[playerid][Erfahrung] = 0;
GivePlayerMoney(playerid,5000);
pInfo[playerid][Adminlevel] = 0;
pInfo[playerid][Bankguthaben] = 0;
SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
pInfo[playerid][Banned] =0;
pInfo[playerid][Hunger] = 0;
pInfo[playerid][Durst] = 0;
pInfo[playerid][Viren] = 1;
pInfo[playerid][Fraktion] = 0;
pInfo[playerid][Nebenjob] = 0;
pInfo[playerid][Fraktionsrang] = 0;
pInfo[playerid][ZbP] = 60;
pInfo[playerid][ZsL] = 0;
pInfo[playerid][BenErfahrung] = 1000;
pInfo[playerid][BenGeld] = 20000;
return 1;
}stock GiveStartInventar(playerid)
{
iInfo[playerid][Medikamente] = 1;
iInfo[playerid][Hamburger] = 1;
iInfo[playerid][Wasser] = 1;
iInfo[playerid][Alkohol] = 2;
iInfo[playerid][Eisen] = 3;
iInfo[playerid][Holz] = 3;
iInfo[playerid][Schwarzpulver] = 3;
return 1;
}So Ich hab mittlerweile soviel rumprobiert, dass manches etwas doppelt gemoppelt ist^^ aber wie gesagt ich war am verzweifeln
So und jetzt nochmal ne genaue Fehlerbeschreibung
Wenn man sich registriert wird einem das StartInventar und die Startvars ordentlich gegeben wie es sein soll aber egal was man dann Ingame macht es werden auch die StartVars gespeichert z.B Ich registriere mich -> gebe von den 5000€ Startbudget 2000€ auf mein Bankkonto so werden trotzdem die 5000€ BarGeld in die Datei gesaved
Ich hoffe mir kann jmd helfen
-
ohh xD Na dann hat das natürlich ein extremen Vorteil
Na gut dann werde ich das mal umschreiben^^ -
Das ist nicht weit weg sieht man ja an dem X-Wert
Ja das es für jeden Spieler beim Connect eine TextDraw erstellt verstehe ich schon aber ob ich nun eine textDraw mache die für jeden Spieler unterschiedlich ist/sein kann oder eine die für einen beim Connect erstellt wird ist doch egal oder?
Oder gibts doch unterschiede wo man sagen kann ja eine PlayerTextDraw zunutzen ist viel besser als eine "normale" mit [MAX_PLAYERS]Sry für die Fragen^^ aber ich hab bisher noch nie wirklich mit textDraw's gearbeitet
-
Mit deiner Vermutung hast du Recht das , wenn sich die wanetdanzahl bei einem spieler ändert das dies bei jedem ist.
Wie kann man das verhindern das jeder dies unterschiedlich hat.
Dazu gäbe es zwei option wenn die textdraws für den spieler erstellst wenn ein neuer Spielerconnectet.
daher solltest du deine definierte Textdraws umbennen
vonnew Text:Stern;
new Text:WtdZahl;zu
new Text:Stern[MAX_PLAYERS];
new Text:WtdZahl[MAX_PLAYERS];oder du arbeitet mit PlayerTextDraws
Vielen Dank für die ausführliche Hilfe
Ich bin gestern Abend selbst noch drauf gekommen, dass man ja auch eine TextDraw mit [MAX_PLAYERS] versehen kann um sie für jeden unterschiedlich zumachen
und hab das ganze dann wie folgt gelöst:new Text:Stern;
new Text:WtdZahl[MAX_PLAYERS];
Public OnGameModeInit()
Stern = TextDrawCreate(510 ,100 , "]");
TextDrawFont(Stern , 0);
TextDrawLetterSize(Stern , 0.5, 2.6);
TextDrawColor(Stern , 0xffd500FF);
TextDrawSetOutline(Stern , true);
TextDrawSetProportional(Stern , true);
TextDrawSetShadow(Stern , 1);
public OnPlayerSpawn
new WtdAnzahl[10];
format(WtdAnzahl,sizeof(WtdAnzahl),"%i",pInfo[playerid][Wanteds]);
TextDrawShowForPlayer(playerid,Stern);
WtdZahl[playerid] = TextDrawCreate(528 ,98 ,"0");
TextDrawFont(WtdZahl[playerid] , 2);
TextDrawLetterSize(WtdZahl[playerid] , 0.5, 2.8);
TextDrawColor(WtdZahl[playerid] , 0xFEFEFEFF);
TextDrawSetOutline(WtdZahl[playerid] , true);
TextDrawSetProportional(WtdZahl[playerid] , true);
TextDrawSetShadow(WtdZahl[playerid] , 1);
TextDrawSetString(WtdZahl[playerid],WtdAnzahl);
TextDrawShowForPlayer(playerid,WtdZahl[playerid]);
ocmd:sw(playerid,params[])
{
new pID,wanteds,grund[128],wantedmessage[256],wantedmessage2[256],test[10];
if(pInfo[playerid][Fraktion] == 2 || pInfo[playerid][Fraktion] == 3 ||pInfo[playerid][Fraktion] == 4)
{
if(sscanf(params,"uis",pID,wanteds,grund))return SendClientMessage(playerid,rot,"Benutze /sw [ID] [Anzahl der Wanteds] [Grund]");
if(wanteds < 1 || wanteds > 20)return SCM(playerid,rot,"Du kannst nur 1 bis 20 Wanteds geben");
switch(pInfo[playerid][Fraktion])
{
case 2:{format(wantedmessage,sizeof(wantedmessage),"Officer %s gibt dir %i Wanted(s) || Grund: %s",Spielername(playerid),wanteds,grund);
format(wantedmessage2,sizeof(wantedmessage2),"Du hast %s %i Wanteds gegeben || Grund: %s",Spielername(pID),wanteds,grund);
SCM(playerid,weinrot,wantedmessage2);
SCM(pID,weinrot,wantedmessage);
pInfo[pID][Wanteds] += wanteds;
format(test,sizeof(test),"%i",pInfo[pID][Wanteds]);
TextDrawSetString(WtdZahl[pID],test);
if(pInfo[pID][Wanteds] > 20)
{
pInfo[pID][Wanteds] = 20;
}
TextDrawShowForPlayer(pID,WtdZahl[playerid]);}
case 3:{format(wantedmessage,sizeof(wantedmessage),"Agent %s gibt dir %i Wanted(s) || Grund: %s",Spielername(playerid),wanteds,grund);
format(wantedmessage2,sizeof(wantedmessage2),"Du hast %s %i Wanteds gegeben || Grund: %s",Spielername(pID),wanteds,grund);
SCM(playerid,weinrot,wantedmessage2);
SCM(pID,weinrot,wantedmessage);
pInfo[pID][Wanteds] += wanteds;
format(test,sizeof(test),"%i",pInfo[pID][Wanteds]);
TextDrawSetString(WtdZahl[pID],test);
if(pInfo[pID][Wanteds] > 20)
{
pInfo[pID][Wanteds] = 20;
}
TextDrawShowForPlayer(pID,WtdZahl[playerid]);}
case 4:{format(wantedmessage,sizeof(wantedmessage),"Soldat %s gibt dir %i Wanted(s) || Grund: %s",Spielername(playerid),wanteds,grund);
format(wantedmessage2,sizeof(wantedmessage2),"Du hast %s %i Wanteds gegeben || Grund: %s",Spielername(pID),wanteds,grund);
SCM(playerid,weinrot,wantedmessage2);
SCM(pID,weinrot,wantedmessage);
pInfo[pID][Wanteds] += wanteds;
format(test,sizeof(test),"%i",pInfo[pID][Wanteds]);
TextDrawSetString(WtdZahl[pID],test);
if(pInfo[pID][Wanteds] > 20)
{
pInfo[pID][Wanteds] = 20;
}
TextDrawShowForPlayer(pID,WtdZahl[playerid]);}
}
}
return 1;
}Das sollte doch auch funktionieren oder?
Wie gesgat ich kanns leider nicht testenUnd was ist der Unterschied zu den PlayerTextDraw's haben die einen Vorteil?
Den Stern habe ich übrigens bei OnGameModeInit gelassen weil der sich nie verändert und bei jedem immer dasteht auch bei 0 Wantds dann steht da ne 0 neben dem Stern^^
-
Hey Com.
Nachdem ich heute herausgefunden habe wie man per TextDraw einen (Wanted)Stern ausgibt wollte ich halt durch 2 TextDraw's das WantedLevel anzeigen lassen
Scripttechnisch habe ich das so gelöst
new Text:Stern;
new Text:WtdZahl;
Stern = TextDrawCreate(510 ,100 , "]");
TextDrawFont(Stern , 0);
TextDrawLetterSize(Stern , 0.5, 2.6);
TextDrawColor(Stern , 0xffd500FF);
TextDrawSetOutline(Stern , true);
TextDrawSetProportional(Stern , true);
TextDrawSetShadow(Stern , 1);WtdZahl = TextDrawCreate(528 ,98 , "0");
TextDrawFont(WtdZahl , 2);
TextDrawLetterSize(WtdZahl , 0.5, 2.8);
TextDrawColor(WtdZahl , 0xFEFEFEFF);
TextDrawSetOutline(WtdZahl , true);
TextDrawSetProportional(WtdZahl , true);
TextDrawSetShadow(WtdZahl , 1);
ocmd:sw(playerid,params[])
{
new pID,wanteds,grund[128],wantedmessage[256],wantedmessage2[256],test[10];
if(pInfo[playerid][Fraktion] == 2 || pInfo[playerid][Fraktion] == 3 ||pInfo[playerid][Fraktion] == 4)
{
if(sscanf(params,"uis",pID,wanteds,grund))return SendClientMessage(playerid,rot,"Benutze /sw [ID] [Anzahl der Wanteds] [Grund]");
//if(wanteds < 1 || wanteds > 6)return SCM(playerid,rot,"Du kannst nur 1 bis 6 Wanteds geben");
switch(pInfo[playerid][Fraktion])
{
case 2:{format(wantedmessage,sizeof(wantedmessage),"Officer %s gibt dir %i Wanted(s) || Grund: %s",Spielername(playerid),wanteds,grund);
format(wantedmessage2,sizeof(wantedmessage2),"Du hast %s %i Wanteds gegeben || Grund: %s",Spielername(pID),wanteds,grund);
SCM(playerid,weinrot,wantedmessage2);
SCM(pID,weinrot,wantedmessage);
pInfo[pID][Wanteds] += wanteds;
format(test,sizeof(test),"%i",pInfo[pID][Wanteds]);
TextDrawSetString(WtdZahl,test);
TextDrawShowForPlayer(pID,WtdZahl);}
case 3:{format(wantedmessage,sizeof(wantedmessage),"Agent %s gibt dir %i Wanted(s) || Grund: %s",Spielername(playerid),wanteds,grund);
format(wantedmessage2,sizeof(wantedmessage2),"Du hast %s %i Wanteds gegeben || Grund: %s",Spielername(pID),wanteds,grund);
SCM(playerid,weinrot,wantedmessage2);
SCM(pID,weinrot,wantedmessage);
pInfo[pID][Wanteds] += wanteds;
format(test,sizeof(test),"%i",pInfo[pID][Wanteds]);
TextDrawSetString(WtdZahl,test);
TextDrawShowForPlayer(pID,WtdZahl);}
case 4:{format(wantedmessage,sizeof(wantedmessage),"Soldat %s gibt dir %i Wanted(s) || Grund: %s",Spielername(playerid),wanteds,grund);
format(wantedmessage2,sizeof(wantedmessage2),"Du hast %s %i Wanteds gegeben || Grund: %s",Spielername(pID),wanteds,grund);
SCM(playerid,weinrot,wantedmessage2);
SCM(pID,weinrot,wantedmessage);
pInfo[pID][Wanteds] += wanteds;
format(test,sizeof(test),"%i",pInfo[pID][Wanteds]);
TextDrawSetString(WtdZahl,test);
TextDrawShowForPlayer(pID,WtdZahl);}
}
}
return 1;
}Meine Frage dazu ist folgende:
Ich bin zurzeit leider allein was den Server und das Script angeht und kann deswegen nicht alles bestens testen.
Ich weiß, dass die Wanteds vergeben werden und auch in der TextDraw angezeifgt werden aber kann es sein, dass wenn ein Cop jmd 5 Wanteds gibt,
dass dann für jeden die 5 Wanteds in der TextDraw dastehen?
Ich bin mir bei der Funktion TextDrawSetString unsicher
Die gilt doch bei jedem für die TextDraw oder? Also wenn einer 5Wanteds hat stehen bei jedem 5 egal wv er/sie hat
Wie kann ich das besser lösen?So ich hoffe das war nicht zu Wild formuliert und das mit jmd helfen kann
Ich muss übrigens gleich off wenn noch jmd Fragen oder so hat kann ich erst morgen antworten
MfG
MrMonkey -
Textdraws mit ] erstellen.
Also einfach so oder was?
new Text:Stern;
Stern = TextDrawCreate(504 ,113 , "[");
TextDrawFont(Stern , 0);
TextDrawLetterSize(Stern , 0.6, 4.2);
TextDrawColor(Stern , 0x9c3d3dFF);
TextDrawSetOutline(Stern , true);
TextDrawSetProportional(Stern , true);
TextDrawSetShadow(Stern , 1);public OnPlayerSpawn(playerid)
{
TextDrawShowForAll(Stern);
return 1;
}Weil so klappt es bei mir nicht
Nichtmal die Textdraw wird angezeigt
/Edit:Ok funktioniert doch^Ich hab die Klammer Falsch herum gesetzt
Statt
Stern = TextDrawCreate(504 ,113 , "[");
So
Stern = TextDrawCreate(504 ,113 , "]");