gibts schon ein script?^^
Beiträge von Geeflow
-
-
Hey meine Leader & Admin Liste Updaten erst den Rank wenn ich z.B. 2000 habe steht bei /admins Projektleitung: dann muss ich erst rlg damit der angezeigt wird und wenn ich mir dann Rank 1 gebe auch wieder rlg damit nicht mehr Projektleitung steht sondern z.B. Admin (1)
Warum?
stock GetAdmin(frak){
new aName[20]="Unbekannt";
switch(frak){
case 1: aName="AdminLevel (1)";
case 2: aName="AdminLevel (2)";
case 3: aName="AdminLevel (3)";
case 4: aName="AdminLevel (4)";
case 5: aName="AdminLevel (5)";
case 1338: aName="Full-Admin";
case 2000: aName="Projektleitung";
}
return aName;}
stock GetFraktion(frak){
new fName[20]="Unbekannt";
switch(frak){
case 1: fName="N.S.A";
case 2: fName="Parkhouse Drifer";
case 3: fName="Feuerwehr";
case 4: fName="Medic";
case 5: fName="La Cosa Nostra";
case 6: fName="Yakuza";
case 7: fName="F.B.I";
case 8: fName="Hitman";
case 9: fName="News Reporter";
case 10: fName="Wheelman";
case 11: fName="Fahrschule";
case 12: fName="Regierung";
case 13: fName="Ordnungsamt";
case 14: fName="SAPD";
case 15: fName="Hells Angels";
case 16: fName="Nichts";
case 17: fName="Russen Mafia";
case 18: fName="Aztecas";
case 19: fName="Grove Street";
case 20: fName="Ballas";
case 21: fName="WCC";
case 22: fName="Triaden";
case 23: fName="Red Soliders";
case 24: fName="L.S Vagos";
case 25: fName="Guerilla";
case 26: fName="Cali Kartell";
}
return fName;}
stock OnlineByName(string[])
{
for(new i; i < MAX_PLAYERS ; ++i) if(IsPlayerConnected(i) && !strcmp(string,pName(i),false)) return 1;
return 0;
}stock pName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}
if(strcmp("/leader", cmd, true) == 0)
{
new data[128],fName,sName[MAX_PLAYER_NAME],showList[1200];
mysql_query("SELECT `Name`, `Leader` FROM `users` WHERE `Leader` > 0");
mysql_store_result();
while(mysql_fetch_row_format(data)){
format(data, sizeof(data), "%s|", data);
printf("data: %s", data);
sscanf(data,"p<|>s[20]d",sName,fName);
printf("sName: %s | fName: %d | return: %s", sName, fName, GetFraktion(fName));
format(showList,sizeof(showList),"%s{FFFFFF}%s Leader: %s (%s{FFFFFF})\n",showList,GetFraktion(fName),sName,((!OnlineByName(sName))?("{F6000F}Offline"):("{00EE14}Online")));
}
mysql_free_result();
ShowPlayerDialog(playerid,DIALOG_VOGELLEADER,DIALOG_STYLE_MSGBOX,"Leaders",showList,"Bestätigen","");
return 1;
}
if(strcmp("/admins", cmd, true) == 0)
{
new data[128],aName,sName[MAX_PLAYER_NAME],ShowList[1200];
mysql_query("SELECT `Name`, `Adminlevel` FROM `users` WHERE `Adminlevel` > 0");
mysql_store_result();
while(mysql_fetch_row_format(data)){
sscanf(data,"p<|>s[20]d",sName,aName);
format(data,128,"{FFFFFF}%s: %s (%s{FFFFFF})\n",GetAdmin(aName),sName,((!OnlineByName(sName))?("{F6000F}Offline"):("{00EE14}Online")));
strcat(ShowList,data);
}
mysql_free_result();
ShowPlayerDialog(playerid,DIALOG_VOGELADMIN,DIALOG_STYLE_MSGBOX,"Admin Team",ShowList,"Schließen","");
return 1;
}Makeleader Befehl:
if(strcmp("/makeleader", cmd, true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_BENUTZETEXT,"/makeleader [Spieler ID] [Fraktionsid]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
new level = strval(tmp);
if(level > 26 || level < -1) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Es gibt nur 26 Fraktionen/Gangs, bitte wähle zwischen 1-26!"); return 1; }
if(PlayerInfo[playerid][pAdmin] >= 1338)
{
if(IsPlayerConnected(giveplayerid))
{
if(PlayerInfo[giveplayerid][pMember] > 0)
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Dieser Spieler ist ein Member einer Gang/Fraktion!");
return 1;
}
new ftext[20];
if(level == -1) { ftext = "Zivilisten"; }
else if(level == 2) { ftext = "Drift Access"; }
else if(level == 3) { ftext = "Brigada"; }
else if(level == 4) { ftext = "Medic"; }
else if(level == 5) { ftext = "La Cosa Nostra"; }
else if(level == 6) { ftext = "Yakuza"; }
else if(level == 7) { ftext = "FBI"; }
else if(level == 8) { ftext = "Hitman Agency"; }
else if(level == 9) { ftext = "News Reporter"; }
else if(level == 10) { ftext = "Wheelman Agency"; }
else if(level == 11) { ftext = "Fahrschule"; }
else if(level == 12) { ftext = "Regierung"; }
else if(level == 13) { ftext = "Ordnungsamt"; }
else if(level == 14) { ftext = "LS-PD"; }
else if(level == 15) { ftext = "Biker Boys"; }
else if(level == 16) { ftext = "SF-PD"; }
else if(level == 17) { ftext = "Camorra"; }
else if(level == 18) { ftext = "V.L.Atztecas"; }
else if(level == 19) { ftext = "Grove Street"; }
else if(level == 20) { ftext = "Ballas"; }
else if(level == 21) { ftext = "West Coast Customs"; }
else if(level == 22) { ftext = "Triaden"; }
else if(level == 23) { ftext = "Red Soldiers"; }
else if(level == 24) { ftext = "L.S.Vagos"; }
else if(level == 25) { ftext = "Irish Crime Familys"; }
else if(level == 26) { ftext = "Cali Kartell"; }
else if(level == 1) { ftext = "SF Rifa"; }
else { return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[giveplayerid][pLeader] = level;
PlayerInfo[giveplayerid][pTeam] = level;
PlayerInfo[giveplayerid][pRank] = 12;
PlayerInfo[giveplayerid][pGehalt] = 0;
format(string, sizeof(string), " Du wurdest vom Admin %s zum Leader der/den %s gemacht.", sendername, ftext);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Du hast %s zum Leader der/den %s gemacht.", giveplayer,ftext);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SetPVarInt(playerid, "PVTeam", PlayerInfo[playerid][pLeader]);
printf("Admin %s hat %s einen Leaderinvite für %s gegeben.", sendername, giveplayer, ftext);
format(string,sizeof(string),"Admin %s hat %s zum Leader der/den %s gemacht!", sendername,giveplayer,ftext);
EnterToLog("Leader",string);
if(level != -1)
{
new Tage = 7;
new wielange = (Tage*24*60*60);
new Zeit = wielange+Time();
PlayerInfo[giveplayerid][pInviteSperre] = Zeit;
format(string, sizeof(string), "UPDATE `users` SET `InviteDatum`='%d' WHERE `Name`='%s'", Time(), giveplayer);
self_mysql_queryEx(string);
}
Kleidungsshop[giveplayerid] = 1;
PlayerInfo[giveplayerid][pJob] = 0;
JoinSkinAuswahl(giveplayerid);
SendClientMessage(giveplayerid, COLOR_LIGHTRED, "* Wähle einen Skin aus mit den Pfeiltasten. Bestätigen mit Umschalt.");
SetPVarInt(giveplayerid, "PVTeam", level);
}
}
else
{
SendClientMessage(playerid, COLOR_KEINADMIN, "*** INFO: Dies ist ein Adminbefehl, du bist kein Admin.");
}
}
return 1;
}Make Admin befehl:
if(strcmp("/makeadmin", cmd, true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /makeadmin [SpielerName/ID] [Admin Level]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /makeadmin [SpielerName/ID] [Admin Level]");
return 1;
}
new level = strval(tmp);
if(PlayerInfo[playerid][pSQLID] == 1 || PlayerInfo[playerid][pSQLID] == 2)
{
if(IsPlayerConnected(giveplayerid))
{
if(level > 2000)
{
SendClientMessage(playerid, COLOR_WHITE, "SERVER: Da du ein Ungültigen Admin Rank eingegeben hast, wirst du aus Sicherheitsgründen gekickt!");
SetTimerEx("ConnectKick", 10,0,"i",playerid);
return 1;
}
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername)) ;
PlayerInfo[giveplayerid][pAdmin] = level;
printf("AdmCmd: %s hat %s zum Adminlevel %d gemacht.", sendername, giveplayer, level);
format(string, sizeof(string), " Du wurdest zum Admin Level %d gemacht von %s", level, sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Du hast %s zum Admin Level %d gemacht.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "AdmCmd: %s hat %s zum Admin Level %d gemacht.", sendername, giveplayer,level);
SendAdminMessage(COLOR_YELLOW, 1, string);
SetPVarInt(giveplayerid, "PVAdmin", level);
format(string,sizeof(string),"AdmCmd: %s hat %s zum Admin Level %d gemacht.", sendername,giveplayer,level);
EnterToLog("Makeadmin",string);
if(level >= 1)
{
if(level > 1338)
{
TextDrawHideForPlayer(giveplayerid,TicketsTextdraw);
}
else{TextDrawShowForPlayer(giveplayerid,TicketsTextdraw);}
}
else{
TextDrawHideForPlayer(giveplayerid,TicketsTextdraw);
}
}
}
else
{
SendClientMessage(playerid, COLOR_KEINADMIN, "*** INFO: Dies ist ein Adminbefehl, du bist kein Admin.");
}
}
return 1;
} -
Danke, klappt.
-
Error behoben in dem ich MAX_PLAYERS in groß geschrieben habe.
Es klappt jetzt wenn man desktop ist das dort steht afk/desktop und wenn man wieder kommt nicht
aber ein problem ist wenn man sich ausloggt neu on kommt hat man das 3dlabel doppelt über dem kopf
vil liegt es hierdran? weils nach dem rlg passiert
public OnPlayerDisconnect(playerid)
{
DeletePlayer3DTextLabel(playerid, label[playerid]);//ERROR ZEILE
return 1;
}C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(94) : warning 213: tag mismatch
bitte um hilfescreen davon http://fs1.directupload.net/images/150118/dkh5tlim.png
-
habe jetzt einen fehler in
forward updateTimer();
public updateTimer()
{
new str[128];
new name[MAX_PLAYER_NAME], Float:pHP, Float:armour;
for(new i=0; i<max_players; i++)//FEHLER
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
GetPlayerName(i, name, sizeof(name));
GetPlayerHealth(i,pHP);
GetPlayerArmour(i,armour);
if(IsPlayerOnDesktop(i)) format(str, sizeof(str), "AFK/Desktop\n%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
else format(str, sizeof(str), "%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
Update3DTextLabelText(label[i],0xFFFFFFFF,str);
}
return 1;
}
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(524) : error 017: undefined symbol "max_players"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
-
Kannst es so schreiben:
forward updateTimer();
public updateTimer()
{
new str[128];
new name[MAX_PLAYER_NAME], Float:pHP, Float:armour;
for(new i=0; i<max_players; i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
GetPlayerName(i, name, sizeof(name));
GetPlayerHealth(i,pHP);
GetPlayerArmour(i,armour);
if(IsPlayerOnDesktop(i)) format(str, sizeof(str), "AFK/Desktop\n%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
else format(str, sizeof(str), "%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
Update3DTextLabelText(label[i],0xFFFFFFFF,str);
}
return 1;
}
Es funktioniert leider nicht bzw es kommen keine errors mehr aber die Abfrage ob jemand auf den desktop ist oder nicht Funktioniert nicht kennst du eine Abfrage wie man abfrägt ob jemand zurzeit auf dem desktop ist und wenn er wieder da ist es steht einfach AFK/desktop obwohl man ingame ist und wenn man desktop ist ebenso^^
benutze das include für desktop abfrage funkt aber anscheinend nicht:
[ TOOL ] Desktop Check Version 0.2 -
Es klappt nur die label buggen wäre das so möglich?
forward updateTimer();
public updateTimer()
{
new str[128];
new name[MAX_PLAYER_NAME], Float:pHP, Float:armour;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
GetPlayerName(i, name, sizeof(name));
GetPlayerHealth(i,pHP);
GetPlayerArmour(i,armour);
format(str, sizeof(str), "%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
Update3DTextLabelText(label[i],0xFFFFFFFF,str);
}
else
{
if(IsPlayerOnDesktop(i))
{
GetPlayerName(i, name, sizeof(name));
GetPlayerHealth(i,pHP);
GetPlayerArmour(i,armour);
format(str, sizeof(str), "AFK/Desktop\n%s (%d)\n%0.2f HP | %0.2f R", name, i, pHP, armour);
Update3DTextLabelText(label[i],0xFFFFFFFF,str);
}
}
}
return 1;
}Habe aber errors weils falsch wieder gemacht wurde bitte um hilfe dabei
(also einrücken klammern) -
forward desktoptimer();
forward desktoptimer();
public desktoptimer()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerOnDesktop(i))
{
new str[32];
format(str, 32, "%s Sekunden AFK", GetPlayerDesktopTime(i));
if(GetPVarInt(i, "TextSend") == 0)
{
SetPVarInt(i, "TextSend", 1);
PlayerText[i] = Create3DTextLabel(str, COLOR_LIGHTRED, 0.0, 0.0, 0.0, 20.0, -1, -1);}
Attach3DTextLabelToPlayer(PlayerText[i], i, 0.0, 0.0, 0.0);
}
Update3DTextLabelText(PlayerText[i], 0x0069FFFF, str);
}
else
{
if(GetPVarInt(i, "TextSend") == 1)
{
Delete3DTextLabel(PlayerText[i]);
SetPVarInt(i, "TextSend", 0);
}
}
return 1;
}
troz nochC:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(95) : warning 213: tag mismatch
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(104) : warning 204: symbol is assigned a value that is never used: "randSpawn"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(527) : error 017: undefined symbol "str"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(529) : error 029: invalid expression, assumed zero
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(531) : error 017: undefined symbol "i"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(533) : error 017: undefined symbol "i"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(534) : error 017: undefined symbol "i"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(556) : warning 203: symbol is never used: "lastanimid"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(556) : warning 203: symbol is never used: "thisanimid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase5 Errors.
-
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(95) : warning 213: tag mismatch
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(104) : warning 204: symbol is assigned a value that is never used: "randSpawn"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(512) : error 010: invalid function or declaration
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(513) : warning 235: public function lacks forward declaration (symbol "desktoptimer")
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(527) : error 017: undefined symbol "str"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(529) : error 029: invalid expression, assumed zero
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(531) : error 017: undefined symbol "i"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(533) : error 017: undefined symbol "playerid"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(534) : error 017: undefined symbol "i"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(556) : warning 203: symbol is never used: "lastanimid"
C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(556) : warning 203: symbol is never used: "thisanimid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase6 Errors.
forwrd desktoptimer();
public desktoptimer()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerOnDesktop(i))
{
new str[32];
format(str, 32, "%s Sekunden AFK", GetPlayerDesktopTime(i));
if(GetPVarInt(i, "TextSend") == 0)
{
SetPVarInt(i, "TextSend", 1);
PlayerText[i] = Create3DTextLabel(str, COLOR_LIGHTRED, 0.0, 0.0, 0.0, 20.0, -1, -1);}
Attach3DTextLabelToPlayer(PlayerText[i], i, 0.0, 0.0, 0.0);
}
Update3DTextLabelText(PlayerText[i], 0x0069FFFF, str);
}
else
{
if(GetPVarInt(i, "TextSend") == 1)
{
Delete3DTextLabel(PlayerText[playerid]);
SetPVarInt(i, "TextSend", 0);
}
}
return 1;
}
Kriege hier errors wegen i warum? und str -
Habe das eingefügt eben,
Aber es geht um ein neues 3Dtextlabel ..
das ich eingefügt habe keine ahnung ob es falsch ist oder es nicht geht weil schon ein label auf dem kopf ist
hier code code:#define MAX_ESC_TIME 3600 //60 Minute
forward UpdateSpieler(playerid);
new UpdateCount[MAX_PLAYERS], OldUpdateCount[MAX_PLAYERS], Spawned[MAX_PLAYERS],ESCWarns[MAX_PLAYERS];
new PlayerUpTimer[MAX_PLAYERS],IsPaused[MAX_PLAYERS],ESCSeconds[MAX_PLAYERS];
new ESCTime[MAX_PLAYERS];
new Text3D:ESCLabel[MAX_PLAYERS];public OnPlayerDisconnect(playerid)
{
Spawned[playerid] = 0;
ESCTime[playerid] = 0;
UpdateCount[playerid] = 0;
OldUpdateCount[playerid] = 0;
ESCWarns[playerid] = 0;
KillTimer(PlayerUpTimer[playerid]);
if(IsPaused[playerid] == 1)
{
IsPaused[playerid] = 0;
Delete3DTextLabel(ESCLabel[playerid]);
ESCSeconds[playerid] = 0;
}
DeletePlayer3DTextLabel(playerid, label[playerid]);
return 1;
}public OnPlayerUpdate(playerid)
{
UpdateCount[playerid] ++;
if(UpdateCount[playerid] >= 999999)
{
UpdateCount[playerid] = 0;
}
if(IsPaused[playerid] == 1)
{
IsPaused[playerid] = 0;
Delete3DTextLabel(ESCLabel[playerid]);
ESCSeconds[playerid] = 0;
ESCTime[playerid] = 0;
}public UpdateSpieler(playerid)
{
if(IsPlayerConnected(playerid) && Spawned[playerid] == 1)
{
if(IsPaused[playerid] == 0)
{
if(UpdateCount[playerid] == OldUpdateCount[playerid])
{
ESCWarns[playerid]++;
switch (ESCWarns[playerid])
{
case 10:
{
IsPaused[playerid] = 1;
ESCSeconds[playerid] = 10;
ESCLabel[playerid] = Create3DTextLabel("menu/desktop seit 05 sek.",0xE00023FF,0.0,0.0,0.8,80,0,0);
Attach3DTextLabelToPlayer(ESCLabel[playerid],playerid,0.0, 0.0, 0.8);
}
}
}
else
{
ESCTime[playerid] = 0;
IsPaused[playerid] = 0;
ESCWarns[playerid] = 0;
OldUpdateCount[playerid] = UpdateCount[playerid];
}
}
else
{
ESCSeconds[playerid]++;
if(ESCSeconds[playerid] >= 3600)
{
ESCSeconds[playerid] = 0;
}
new str[30];
format(str,sizeof(str),"menu/desktop seit: d sek.",ESCSeconds[playerid]);
Update3DTextLabelText(ESCLabel[playerid],COLOR_WHITE,str);
ESCTime[playerid] ++;
if(ESCTime[playerid] >= MAX_ESC_TIME)
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Du wurdest gekickt da du Über 60 Minuten auf dem MENU/DESKTOP Warst!");
Kick(playerid);// Hier wird man dann gekickt nach einer Minute oben im Script Zeit gerne auf mehr Definieren
}
}
}
return 1;
}//EDIT:
onplayerconnect:
ESCTime[playerid] = 0;
UpdateCount[playerid] = 0;
OldUpdateCount[playerid] = 0;
ESCSeconds[playerid] = 0;
IsPaused[playerid] = 0;
ESCWarns[playerid] = 0;
PlayerUpTimer[playerid] = SetTimerEx("UpdateSpieler",1000,1,"d",playerid);
Spawned[playerid] = 0;Habe ich irgendwas falsch gemacht bzw vergessen oder warum kommt kein Label seit xyz sekunden auf dem desktop über dem kopf ?
-
public OnPlayerDisconnect(playerid)
{
DeletePlayer3DTextLabel(playerid, label[playerid]);
return 1;
}new name[MAX_PLAYER_NAME], Float:pHP;
GetPlayerName(playerid, name, sizeof(name));
GetPlayerHealth(playerid,pHP);
new str[128];
format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
printf("pHP: %f", pHP);
label[playerid] = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0); //WARNING ZEILE
Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.2);
Klappt danke an alle für die Hilfe.- > Habe es nun auch für rüstung gemacht^^
screen:
-
Hab das jetzt alles eingefügt.
Wenn ich das einfüge,
public OnPlayerDisconnect(playerid)
{
DeletePlayer3DTextLabel(playerid, label);
}Kriege ich einen error
Und was genau muss ich hier machen :o
new name[MAX_PLAYER_NAME], Float:pHP;
GetPlayerName(playerid, name, sizeof(name));
GetPlayerHealth(playerid,pHP);
new str[128];
format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
printf("pHP: %f", pHP);
new Text3D:label = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0); //WARNING ZEILE
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.2);
wenn ich hinter label[playerid] mache kriege ich ebenso auch einen errorund habe einen warning C:\Users\Heiko\Desktop\Script\gamemodes\grandlarc.pwn(59) : warning 219: local variable "label" shadows a variable at a preceding level
-
e
Ok, das passt soweit schon, nur musst du das aktualisieren. (in OnPlayerConnect hat der Spieler noch keine HP).
Entweder du updatest es in einem Sekundentimer,
oder du updatest beim Login und bei OnPlayerTakeDamage (würde ich empfehlen)Ich will es in OnPlayerTakeDamage und Login haben ..
aber ich weis nicht genau wie ich das schreiben muss
-
debugge das mal:
füger unter format folgende Zeile ein:
printf("pHP: %f", pHP);
Und schau was in der Serverlog steht.In welchem Callback (public) hast du diesen Code?
Eventuell hat der Spieler da noch keine HP.
OnPlayerConnect ist das allesmir wird geprintet:
[16:23:24] pHP: 0.000000vil weil
Update3DTextLabelText(mylabel, 0xFFFFFFFF, "New text.");
sowas eingefügt werden muss für pHP da es ja ein 3dlabel ist aber wie mache ich das dann .. -
new name[MAX_PLAYER_NAME], Float:pHP;
GetPlayerName(playerid, name, sizeof(name));
GetPlayerHealth(playerid,pHP);
new str[128];
format(str, sizeof(str), "%s (%d)\n%0.2f", name, playerid, pHP); //Die 1 ersetzen mit der Variable die du da haben willst.
new Text3D:label = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.2);Habe das jetzt so
aber InGame steht 0.00 hp -
Habe das ja jetzt so
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new str[128];
format(str, sizeof(str), "%s (%d)\n%d", name, playerid, 1); //Die 1 ersetzen mit der Variable die du da haben willst.
new Text3D:label = Create3DTextLabel(str, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.2);Jetzt ist die Frage wie kann ich das aktuelle leben anzeigen lassen :o
-
Wie kann ich jetzt z.B.
name bei dem ersten %s auslesen lassen? bei einem 3dlabel?
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new Text3D:label = Create3DTextLabel("%s (%d)\n%d", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7); -
http://fs2.directupload.net/images/150118/h7llyksz.png
Wie kann man sowas erstellen?
ich weis nicht mal wie man den namen und alte lebensanzeige entfernen kann^^ -
Klappt leider nicht Syntro ist Online also ich^^Ich habe es bei mir mal so geschrieben, da klappt es:
stock OnlineByName(string[])
{
for(new i; i < MAX_PLAYERS ; ++i) if(IsPlayerConnected(i) && !strcmp(string,pName(i),false)) return 1;
return 0;
}stock pName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}Teste es mal so. Ich hab es halt ohne die Variable geschrieben, da ich die ja nicht habe, aber vom Prinzip her ist es das gleiche.
Klappt nun mit Online Offline sind halt nur paar neue Warnings 3 stückC:\Users\bizzi\Desktop\Los Santos Roleplay - by Source 2.0\gamemodes\LsR-RP455.pwn(81054) : warning 219: local variable "pName" shadows a variable at a preceding level
C:\Users\bizzi\Desktop\Los Santos Roleplay - by Source 2.0\gamemodes\LsR-RP455.pwn(81070) : warning 219: local variable "pName" shadows a variable at a preceding level
C:\Users\bizzi\Desktop\Los Santos Roleplay - by Source 2.0\gamemodes\LsR-RP455.pwn(81085) : warning 219: local variable "pName" shadows a variable at a preceding level
ist aber nicht weiter schlimm denke ich^^ -
Schreibe die Funktion mal so, geht es dann?
Wenn nein, wer von den 4'en ist online?stock OnlineByName(string[])
{
for(new i; i < MAX_PLAYERS ; ++i) if(IsPlayerConnected(i) && !strcmp(string,PlayerInfo[i][pLeaderListe],false) && strlen(PlayerInfo[i][pLeaderListe]) > 1) return 1;
return 0;
}
Klappt leider nicht Syntro ist Online also ich^^