Hilft mir nicht weiter^^
Beiträge von Quetai
-
-
Wie kann man Läden wie z.B. den Ammunation oder die Stadthalle an Sonntagen schließen? Bzw. den Befehl an Sonntagen sperren.
-
Ich hab's jetzt so gemacht:
CMD:myfriends(playerid, params[])
{
new count = 0;
new Str[512];
new iStr[1024] = "Friends Online:\n";
foreach(Player, i)
{
new USER_FILE[64];
format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
{
strins(iStr, GetPlayerNameIns(i), strlen(iStr));
count++;
}}
if(count == 0)
{
format(Str,512,"Name: %s Status: {FF0000}Offline\n",GetPlayerNameEx(playerid));
}
else
{
format(Str,512,"Name: %s Status: {00FF28}Online\n",GetPlayerNameEx(playerid));
}
ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",Str,"Ok","");
return 1;
}
Wenn ich dann Ingame /myfriends mache, steht da jedes mal: "Meinname" : Offline....
Der Name des Freundes wird da nicht anzeigt. -
Tut mir leid, aber ich komm damit nicht klar.^^
Dein Thread hat mir aber schon etwas geholfen... -
CMD:myfriends(playerid, params[])
{
new count = 0;
new iStr[1024] = "Friends Online:~n~";
foreach(Player, i)
{
new USER_FILE[64];
format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
{
strins(iStr, GetPlayerNameIns(i), strlen(iStr));
count++;
}}
if(count == 0)
{
new Str[512];
format(Str,512,"Keiner deiner Freunde ist online.");
ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_MSGBOX,"Freunde",Str,"Ok","");
}
else
{
new Str[512];
new giveplayerid;
format(Str,512,"Name: %s Status: {00FF28}Online\n",GetPlayerNameEx(giveplayerid));
ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",Str,"Ok","");
}
return 1;
}Meine Frage:
Wie schaff ich das, dass all' meine Freunde in einem Dialog gezeigt werden. Aber dann soll da halt stehen, ob dieser offline oder online ist... -
http://wiki.sa-mp.com/wiki/Create3DTextLabel
z.B.:
Create3DTextLabel("Gebe hier nun /tanken ein.(5$ pro Liter)",NEONGRÜN,1552.7512,-1803.0767,13.5469,10,0);Du musst nur diese Zeile unter OnGameModeInit packen.
-
if(strcmp(cmdtext, "/hmaske", true) == 0)
{
if(PlayerInfo[playerid][pTot] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Tote können keine Befehle nutzen!");
return 1;
}
if(IsPlayerInFrac(playerid, 8) && PlayerInfo[playerid][pRank] >= 3)
{
if(Mask[playerid] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 1);
Mask[playerid] = 0;
SendClientMessage(playerid, COLOR_YELLOW, "* Du hast deine Maske abgenommen. Mit /hmaske kannst du sie wieder aufsetzen.");
}
else if(Mask[playerid] == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 0);
Mask[playerid] = 1;
SendClientMessage(playerid, COLOR_YELLOW, "* Du hast deine Maske aufgesetzt. Mit /hmaske kannst du sie wieder absetzen.");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du kannst erst ab Rang 3 eine Maske aufsetzen!");
}
return 1;
}Das ist der Befehl, das kannst du für dich halt dann umändern.
Unter OnplayerConnect und OnplayerDisconnect packst du dann noch das hier rein:
Mask[playerid] = 0;Und das wichtige, damit man den Namen auch weiterhin nachdem man das Gebäude betritt und verlässt nicht mehr sieht...
public OnPlayerStreamIn(playerid, forplayerid)
{
if(Mask[playerid] == 1)
{
ShowPlayerNameTagForPlayer(forplayerid, playerid, 0);
}
return 1;
} -
Sehr schön. Das ging bei mir auch. Aber hab's grad wieder versucht. Nachdem ich /report gemacht habe, öffnet sich der erste Dialog. Aber nachdem ich auf etwas klicke passiert nichts. Es öffnet sich kein weiterer Dialog.
Eine Idee wieso?
-
if(strcmp(cmd, "/arrestinalka", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pTot] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Tote können keine Befehle benutzen!");
return 1;
}
if(gTeam[playerid] == 2)
{
if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!");
return 1;
}
if(!IsPlayerInRangeOfPoint(playerid,10.0, 1579.5474,-1635.4021,13.5611))
{// Jail spot
SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe des Schwerverbrecher-Transportpunktes!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /arrestinalka [Playerid/Name]");
return 1;
}
giveplayerid = ReturnUser(tmp);
new time = WantedLevel[playerid];
new bail = strval(tmp);
new suspect = GetClosestPlayer(playerid);
if(IsACop(suspect))
{
SendClientMessage(playerid, COLOR_GREY, "Du kannst keinen Beamten einsperren!");
return 1;
}
if(IsPlayerConnected(suspect))
{
if(GetDistanceBetweenPlayers(playerid,suspect) < 10)
{
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(WantedLevel[suspect] < 5)
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat nicht 60 oder mehr Wantedpunkte!");
return 1;
}
GivePlayerMoney(playerid, moneys);
format(string, sizeof(string), "* Du hast %s für $%d eingesperrt!", giveplayer, moneys);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
GivePlayerMoney(suspect, -moneys);
format(string, sizeof(string), "Eingesperrt von %s ~n~ für $%d", sendername, moneys);
GameTextForPlayer(suspect, string, 5000, 5);
ResetPlayerWeapons(suspect);
SetPlayerSpawn(suspect);
if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1||PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "<< Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "<< Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
{
format(string, sizeof(string), "<< Soldat %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==21||PlayerInfo[playerid][pLeader]==21)
{
format(string, sizeof(string), "<< Fbi Agent %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
SetPlayerInterior(suspect, 0);
SetPlayerVirtualWorld(suspect, 0);
SetPlayerPos(suspect,2086.6379,3560.7078,3.0000);
PlayerInfo[suspect][pJailTime] = time * 600;
if(bail == 1)
{
JailPrice[suspect] = 0;
format(string, sizeof(string), "Du bist für %d Sekunden eingesperrt. Kaution: nicht möglich", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
}
PlayerInfo[suspect][pJailed] = 1;
PlayerInfo[suspect][pArrested] += 1;
SetPlayerFree(suspect,playerid, "Festgenommen!");
WantedPoints[suspect] = 0;
WantedLevel[suspect] = 0;
WantLawyer[suspect] = 1;
SetPlayerSpawn(suspect);
}//distance
}//not connected
else
{
SendClientMessage(playerid, COLOR_GREY, "Es ist kein gesuchter in ihrer Nähe.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Sie sind kein Staatsbeamter!");
return 1;
}
}//not connected
return 1;
}Wenn der Spieler mehr als 6 Wanteds hat und dann eingesperrt wird sollte er eigentlich hier: SetPlayerPos(suspect,2086.6379,3560.7078,3.0000); hinkommen.
Der kommt aber nicht dorthin. -
Also müsste ich diese Zeile:
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(playerid,X,Y+1,Z);zu:
GetPlayerPos(giveplayerid,X,Y,Z);
SetPlayerPos(giveplayerid,X,Y+1,Z); -
if(strcmp(cmd, "/ungrab", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsACop(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /ungrab [Playerid/Name]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst freilassen!"); return 1; }
if(PlayerCuffed[giveplayerid])
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du wurdest von %s freigelassen.", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Du hast %s freigelassen.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s hat %s freigelassen.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GameTextForPlayer(giveplayerid, "~g~Freiheit", 2500, 3);
UnFreezePlayer(giveplayerid);
PlayerCuffed[giveplayerid] = 0;
//RemovePlayerFromVehicle(giveplayerid);
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(playerid,X,Y+1,Z);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Die Person hat keine Handschellen!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht nah genug bei dir!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist offline!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist/Fbiler/Soldat/GSG!");
}
}
return 1;
}Wenn ich den Befehl ausführen möchte werde ich, halt der jenige der den Befehl benutzt hat aus dem Auto geschmissen...
Woran liegt das? -
Du hast ein "," nach dem "playerid" vergessen.
Richtig:
SendClientMessage(playerid, COLOR_ORANGE, "Du bist nun Eine Frau!Viel Spaß noch in deinem leben"); -
Was müsste ich alles wegmachen, um das Speedo/Tacho/Tank was auch immer System zu entfernen?
Hab ein eigenes und will das behalten... -
ocmd:licht(playerid,params[])
{
new status[4];
if(sscanf(params,"s",status))return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /licht [an/aus]");
new engine,lights1,alarm,doors,bonnet,boot,objective;
if(IsPlayerInAnyVehicle(playerid))
{
new vid = GetPlayerVehicleID(playerid);
if(strcmp(status,"an",true) == 0)
{
GetVehicleParamsEx(vid,engine,lights1,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
licht[vid] = true;
SendClientMessage(playerid,0xFFFF00FF,"Du hast das Licht angeschaltet.");
}
else
if(strcmp(status,"aus",true) == 0)
{
GetVehicleParamsEx(vid,engine,lights1,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
licht[vid] = false;
SendClientMessage(playerid,0xFFFF00FF,"Du hast das Licht ausgeschaltet.");
}
}
return 1;
}Muss du nur an deinem System anpassen.
-
InternetInk aka Benjamin hatte da mal was gemacht.
Wenn du's richtig machst, klappt alles.
[ SCRIPTING ] [GODFATHER] Nach Tot > Krankenhaus+/wiederbeleben -
if(strcmp(cmd, "/robperson", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /robperson [Playerid/Name]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pLocal] == 106)
{
SendClientMessage(playerid, COLOR_GREY, "Der Befehl ist in dieser Lage nicht erlaubt.");
return 1;
}
if (ProxDetectorS(5.0, playerid, giveplayerid))
{
new robcash;
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
robcash = GetPlayerMoney(giveplayerid);
ConsumingMoney[giveplayerid] = 1;
GivePlayerMoney(playerid, (robcash/10));
GivePlayerMoney(giveplayerid, -robcash/10);
format(string, sizeof(string), "Du hast %s(%d) $%d gestohlen.", giveplayer,giveplayerid, robcash);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "%s(%d) hat dir $%d gestohlen.", sendername, playerid, robcash);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "", sendername, moneys, giveplayer);
PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
format(string, sizeof(string), "* %s hat %s ausgeraubt.", sendername ,giveplayer);
ProxDetector(15.0, playerid, string, COLOR_LIGHTRED,COLOR_LIGHTRED,COLOR_LIGHTRED,COLOR_LIGHTRED,COLOR_LIGHTRED);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht nah genug bei dir!");
}
}
}
else
{
format(string, sizeof(string), "%d ist kein aktiver Spieler!", giveplayerid);
SendClientMessage(playerid, COLOR_GREY, string);
}
}
return 1;
}Ich schaff das irgendwie nicht, dass 10% vom Bargeld des Opfers abgezogen werden und der Räuber die 10% dann kriegt...
-
format(string,sizeof(string),"%s legt %s Handschellen an.",SpielerName(playerid),SpielerName(pID));
ProxDetector(25.0, playerid, string, ROT,ROT,ROT,ROT,ROT); -
Wie schafft man das, dass wenn ein Spieler andere mit dem Rotor eines Flugzeuges Oder Helikopters killt, dass eine Nachricht an die Admins geschickt wird...?
Wie schaff man das an sich, dass das als Rotorkill gezeigt wird? -
CMD:myfriends(playerid, params[])
{
new count = 0;
new iStr[1024] = "Friends Online:~n~";
foreach(Player, i)
{
new USER_FILE[64];
format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
{
strins(iStr, GetPlayerNameIns(i), strlen(iStr));
count++;
}}
if(count == 0)
{
new Str[512];
format(Str,512,"Keiner deiner Freunde ist online.");
ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_MSGBOX,"Freunde",Str,"Ok","");
}
else
{
SetFriendBoxForPlayer(playerid, iStr);
FriendTimer[playerid] = SetTimerEx("HideFriendBoxForPlayer", 6000, false, "i", playerid);
new Str[512];
format(Str,512,"Name: %s Status: {00FF28}Online\n",GetPlayerNameEx(playerid));
ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",Str,"Ok","");
}
return 1;
}Ich hab' das jetzt in Dialogen gemacht. Wie schaff ich das, dass alle Freunde in einem Dialog angezeigt werden. Und wie sortiere ich diese nach dem Status: Offline & Online...?
Edit: Rechtschreibung
-
if(strcmp(cmd, "/addfriend", true) == 0)
{
if(IsPlayerConnected (playerid))
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /addfriend [Playerid]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
AddFriend(playerid,tmp);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist offline!");
}
}
return 1;
}
Es passiert nichts...