Freut mich, funktioniert nun alles?
Fragen zu /contract
- DerFamer
- Geschlossen
- Erledigt
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
-
-
if(strcmp(cmd, "/contract", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]");
return 1;
}
moneys = strval(tmp);
if(moneys < 50000 || moneys > 1000000) { SendClientMessage(playerid, COLOR_GREY, " Die Vertragssumme muss mindestens $50000-, aber nicht mehr als $1.000.000 betragen!"); return 1; }
if(PlayerInfo[playerid][pLevel] < 3)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du musst mindestens Level 3 haben um einen Vertrag zu erstellen.");
return 1;
}
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pMember] == 8 && PlayerInfo[playerid][pLeader] == 8)
{
SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!");
return 1;
}
else if(PlayerInfo[giveplayerid][pLeader] == 8 && PlayerInfo[playerid][pMember] == 8)
{
SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!");
return 1;
}
else if(PlayerInfo[giveplayerid][pMember] == 8||PlayerInfo[giveplayerid][pLeader] == 8)
{
SendClientMessage(playerid, COLOR_GREY, " Du kannst keinen Hitman unter Vertrag nehmen !");
return 1;
}
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber unter Vertrag nehmen!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys)
{
GivePlayerMoney(playerid, (0 - moneys));
format(PlayerInfo[giveplayerid][pAuftraggeber], MAX_PLAYER_NAME, "%s", sendername); // Neu
PlayerInfo[giveplayerid][pHeadValue]+=moneys;
format(string, sizeof(string), "%s möchte das ein Hitman die Zielperson: %s für $%d tötet.",sendername, giveplayer, moneys);
SendFamilyMessage(8, COLOR_YELLOW, string);
format(string, sizeof(string), "* Du hast einem Hitman den Auftrag zur Beseitigung von %s für $%d erteilt.",giveplayer, moneys);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Falsche Angaben!");
}
}
}
else
{
format(string, sizeof(string), " %d ist kein Aktiver Spieler.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
// OnPlayerDeath
if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8)
{
ConsumingMoney[killerid] = 1;
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
FraktionsKasse[7] += PlayerInfo[playerid][pHeadValue]/2;
GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2);
// Neu
if(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]) != INVALID_PLAYER_ID && IsPlayerConnected(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]))){
format(string, 128, "Hitman %s hat dein Contract %s getötet.", killer, name);
SendClientMessage(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]), COLOR_YELLOW, string);
}
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2);
SendFamilyMessage(8, COLOR_YELLOW, string);
PlayerInfo[playerid][pHeadValue] = 0;
}
}
}Der Befehl klappt nicht ganz
Kommt das selbe wie ich vorhin gepostet habe bei Paste 1
-
So, müsste nun funktionieren.
Code
Alles anzeigenif(strcmp(cmd, "/contract", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]"); return 1; } giveplayerid = ReturnUser(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]"); return 1; } moneys = strval(tmp); if(moneys < 50000 || moneys > 1000000)return SendClientMessage(playerid, COLOR_GREY, " Die Vertragssumme muss mindestens $50000-, aber nicht mehr als $1.000.000 betragen!"); if(PlayerInfo[playerid][pLevel] < 3) { SendClientMessage(playerid, COLOR_GRAD1, "Du musst mindestens Level 3 haben um einen Vertrag zu erstellen."); return 1; } if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid][pMember] == 8 && PlayerInfo[playerid][pLeader] == 8) { SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!"); return 1; } else if(PlayerInfo[giveplayerid][pLeader] == 8 && PlayerInfo[playerid][pMember] == 8) { SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!"); return 1; } else if(PlayerInfo[giveplayerid][pMember] == 8||PlayerInfo[giveplayerid][pLeader] == 8) { SendClientMessage(playerid, COLOR_GREY, " Du kannst keinen Hitman unter Vertrag nehmen !"); return 1; } if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber unter Vertrag nehmen!"); return 1; } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); playermoney = GetPlayerMoney(playerid); if (moneys > 0 && playermoney >= moneys) { GivePlayerMoney(playerid, (0 - moneys)); format(PlayerInfo[giveplayerid][pAuftraggeber], MAX_PLAYER_NAME, "%s", sendername); // Neu PlayerInfo[giveplayerid][pHeadValue]+=moneys; format(string, sizeof(string), "%s möchte das ein Hitman die Zielperson: %s für $%d tötet.",sendername, giveplayer, moneys); SendFamilyMessage(8, COLOR_YELLOW, string); format(string, sizeof(string), "* Du hast einem Hitman den Auftrag zur Beseitigung von %s für $%d erteilt.",giveplayer, moneys); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else { SendClientMessage(playerid, COLOR_GRAD1, " Falsche Angaben!"); } } } else { format(string, sizeof(string), " %d ist kein Aktiver Spieler.", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
-
// OnPlayerDeath
if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8)
{
ConsumingMoney[killerid] = 1;
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
FraktionsKasse[7] += PlayerInfo[playerid][pHeadValue]/2;
GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2);
// Neu
if(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]) != INVALID_PLAYER_ID && IsPlayerConnected(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]))){
format(string, 128, "Hitman %s hat dein Contract %s getötet.", killer, name);
SendClientMessage(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]), COLOR_YELLOW, string);
}
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2);
SendFamilyMessage(8, COLOR_YELLOW, string);
PlayerInfo[playerid][pHeadValue] = 0;
}
}
}Der letzte code dann sollte es hoffentlich passen
-
Das hatte ich doch eigentlich schon eingerückt?
Du kannst das auch eigentlich selbst machen, bei Notepad++ werden dir die zusammengehörigen Klammern rot angezeigt, dann weißt du nämlich was du einrücken musst.Code
Alles anzeigen// OnPlayerDeath if(PlayerInfo[playerid][pHeadValue] > 0) { if(IsPlayerConnected(killerid)) { if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8) { ConsumingMoney[killerid] = 1; new killer[MAX_PLAYER_NAME]; GetPlayerName(killerid, killer, sizeof(killer)); FraktionsKasse[7] += PlayerInfo[playerid][pHeadValue]/2; GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2); // Neu if(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]) != INVALID_PLAYER_ID && IsPlayerConnected(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]))) { format(string, 128, "Hitman %s hat dein Contract %s getötet.", killer, name); SendClientMessage(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]), COLOR_YELLOW, string); } format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2); SendFamilyMessage(8, COLOR_YELLOW, string); PlayerInfo[playerid][pHeadValue] = 0; } } }
-
C:\Windows\Vss\First Person\German-Next-Era-Life-v2.5-0.3x\German Reallife v1.2\gamemodes\German.pwn(6101) : error 033: array must be indexed (variable "pAuftraggeber")
C:\Windows\Vss\First Person\German-Next-Era-Life-v2.5-0.3x\German Reallife v1.2\gamemodes\German.pwn(6104) : error 033: array must be indexed (variable "pAuftraggeber")
C:\Windows\Vss\First Person\German-Next-Era-Life-v2.5-0.3x\German Reallife v1.2\gamemodes\German.pwn(49497) : error 033: array must be indexed (variable "pAuftraggeber")format(PlayerInfo[giveplayerid][pAuftraggeber], MAX_PLAYER_NAME, "%s", sendername);//49497
if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pMember] == 8 PlayerInfo[killerid][pLeader] ==
{
ConsumingMoney[killerid] = 1;
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
FraktionsKasse[7] += PlayerInfo[playerid][pHeadValue]/2;
GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2);
// Neu
if(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]) != INVALID_PLAYER_ID && IsPlayerConnected(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]))) //6101
{
format(string, 128, "Hitman %s hat dein Contract %s getötet.", killer, name);
SendClientMessage(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]), COLOR_YELLOW, string); //6104
}
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2);
SendFamilyMessage(8, COLOR_YELLOW, string);
PlayerInfo[playerid][pHeadValue] = 0;
}
}
}Dann ist es fertig
-
Du musst pAuftraggeber in deinem Enum einfügen. Dann tauchen diese Errors auch nicht mehr auf.
if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pMember] == 8 PlayerInfo[killerid][pLeader] ==
{
ConsumingMoney[killerid] = 1;
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
FraktionsKasse[7] += PlayerInfo[playerid][pHeadValue]/2;
GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2);
// Neu
if(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]) != INVALID_PLAYER_ID && IsPlayerConnected(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]))) //6101
{
format(string, 128, "Hitman %s hat dein Contract %s getötet.", killer, name);
SendClientMessage(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]), COLOR_YELLOW, string); //6104
}
format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2);
SendFamilyMessage(8, COLOR_YELLOW, string);
PlayerInfo[playerid][pHeadValue] = 0;
}
}
}Was ist damit? Habe ich doch schon jetzt mehrmals eingerückt.
-
in Welchem enum bitte? da wo die ganzen Spielerdaten drinne sind wie admin usw?
oder in welches ?
-
Genau.
-
else if(IsPlayerInFrac(playerid,2))
{
if(IsPlayerInRangeOfPoint(playerid,15,1572.16016, 658.79889, 6.90220)) //Schranke
{
MoveObject(FBITor,-1572.16016, 658.79889, 6.90220,3);
SetTimer("CloseFBI",5000,0);
}
}
else if(IsPlayerInFrac(playerid,2))
{
if(IsPlayerInRangeOfPoint(playerid,15,-1701.42346, 687.67249, 24.75240)) //schranke
{
MoveObject(FBITor1,-1701.42346, 687.67249, 24.75240,3);
SetTimer("CloseFBI1",5000,0);
}
}
else if(IsPlayerInFrac(playerid,2))
{
if(IsPlayerInRangeOfPoint(playerid,15,-1631.49512, 688.35559, 8.70930)) //Tor
{
MoveObject(FBITor2,-1631.4951, 688.3556, 14.0679,3);
SetTimer("CloseFBI2",5000,0);
}
}Function CloseFBI()
{
MoveObject(FBITor, -1572.16016, 658.79889, 6.90220,3);
return 1;
}
Function CloseFBI1()
{
MoveObject(FBITor1, -1701.42346, 687.67249, 24.75240,3);
return 1;
}
Function CloseFBI2()
{
MoveObject(FBITor2, -1631.49512, 688.35559, 8.70930,3);
return 1;
}Beim Timer sollte es klappen habe das eben gemacht aber es rüht sich kein tor vom fleck warum?
-
Schau mal bei deinem ersten Code, du bewegst die Objekte auf die selbe Position.
Also MoveObject ist die selbe Position wie IsPlayerInRangeOfPoint. -
das ist Richtig.
Habe nur dir Root Geändert habe das angepasst beim map Editor wie es sich öffnen sol :l>
//CreateDynamicObject(968, -1572.16016, 658.79889, 6.90220, 0.00000, 0.00000, 90.00000); //FBI Schranke Unten Offen
//CreateDynamicObject(968, -1701.42346, 687.67249, 24.75240, 0.00000, 0.00000, 270.13831); //FBI Schranke Oben Offen
FBITor = CreateObject(968, -1572.16016, 658.79889, 6.90220, 0.00000, 90.00000, 90.40604); //FBI Schranke Unten
FBITor1 = CreateObject(968, -1701.42346, 687.67249, 24.75240, 0.00000, 90.00000, 270.13831); //FBI Schranke Oben
FBITor2 = CreateObject(10184, -1631.49512, 688.35559, 8.70930, 0.00000, 0.00000, 270.50000); //FBI Garagen Tor -
Du hast bei den MoveObjects auch nur die X Y Z Koordinaten "geändert", warum fügst du nicht die Rotations noch ein, dann funktioniert es auch.
Hier die Parameters von [wiki]MoveObject[/wiki]
(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0) -
else if(IsACop(playerid))
{
if(IsPlayerInRangeOfPoint(playerid,15,1572.16016, 658.79889, 6.90220))
{
MoveObject(FBITor,-1572.16016, 658.79889,6.90220,0.00000,0.00000, 90.000,3);
SetTimer("CloseFBI",5000,0);
}
}
else if(IsACop(playerid))
{
if(IsPlayerInRangeOfPoint(playerid,15,-1701.42346, 687.67249, 24.75240))
{
MoveObject(FBITor1,-1701.42346, 687.67249,24.75240,0.00000,0.00000,270.13831,3);
SetTimer("CloseFBI1",5000,0);
}
}
else if(IsACop(playerid))
{
if(IsPlayerInRangeOfPoint(playerid,15,-1631.49512, 688.35559, 8.70930))
{
MoveObject(FBITor2,-1631.49512,688.35559,14.09787,0.00000,0.00000,270.50000,3);
SetTimer("CloseFBI2",5000,0);
}
}das mag mich nicht mehr^^ nein klappt nicht
-
Warum achtest du denn nicht auf die Parameter?
Schau dir noch einmal bitte die Parameter an, besonders auf den Speed.Code
Alles anzeigenelse if(IsACop(playerid)) { if(IsPlayerInRangeOfPoint(playerid,15,1572.16016, 658.79889, 6.90220)) { MoveObject(FBITor,-1572.16016, 658.79889,6.90220,3,0.00000,0.00000, 90.000); SetTimer("CloseFBI",5000,0); } } else if(IsACop(playerid)) { if(IsPlayerInRangeOfPoint(playerid,15,-1701.42346, 687.67249, 24.75240)) { MoveObject(FBITor1,-1701.42346, 687.67249,24.75240,3,0.00000,0.00000,270.13831); SetTimer("CloseFBI1",5000,0); } } else if(IsACop(playerid)) { if(IsPlayerInRangeOfPoint(playerid,15,-1631.49512, 688.35559, 8.70930)) { MoveObject(FBITor2,-1631.49512,688.35559,14.09787,3,0.00000,0.00000,270.50000); SetTimer("CloseFBI2",5000,0); } }
-
-1631.49512,688.35559,14.09787,3,0 //.00000,0.00000,270.50000 //Danach das einsetzet verstehe
-
breadfish.de
Hat das Thema geschlossen.