Hey Leute,
Wie mache ich einen /heal Befehl, bei dem man das eingeben muss:
/heal [Spieler-ID] [Preis]
MfG
DJ D!_Deagle
/edit
Soweit bin ich auch schon:
if(strcmp(cmdtext,"/heal",true)==0)
Hey Leute,
Wie mache ich einen /heal Befehl, bei dem man das eingeben muss:
/heal [Spieler-ID] [Preis]
MfG
DJ D!_Deagle
/edit
Soweit bin ich auch schon:
if(strcmp(cmdtext,"/heal",true)==0)
Für eine Frakktion?
Wenn ja welche ID ? Also von der Frakk.
ocmd:heal(playerid,params[])
{
if(!IsPlayerInFrakt(playerid,3))return 0;
{
new Medic;
new verletzter;
if(sscanf(params,"u",verletzter))return SendClientMessage(playerid,ROT,"/heal [SpielerID]");
{
SetPlayerHealth(verletzter,100);
GivePlayerMoney(Medic,50);
GivePlayerMoney(verletzter,-50);
new string[256];
format(string,sizeof(verletzter),"Du wurdest von Artzt %s geheilt und bezahlst 50$.",verletzter);
SendClientMessage(verletzter,ROT,string);
}
}
return 1;
}
Ist ne grobe Lösung und ist in ocmd gescriptet
Musst halt anpassen
Ihr schreibt, dass ein Preis auch eingegeben werden muss, doch bestimmt den Preis selber.
Und GoldHamster, das hier ist völliger Schwachsinn:
format(string,sizeof(verletzter)
Und Medic brauchst Du garnicht extra zu definieren, (playerid) reicht auch aus, soweit ich weiß
ocmd:heal(playerid,params[])
{
if(!isPlayerInFrakt(playerid,3))
{
new verletzter;
new preis;
if(sscanf(params,"ui",verletzter,preis))return SendClientMessage(playerid,ROT,"/heal [SpielerID] [Preis]");
SetPlayerHealth(verletzter,100);
GivePlayerMoney(playerid,preis);
GivePlayerMoney(verletzter,-preis);
new string[128];// 128 reicht vollkommen
format(string,sizeof(string),"Du wurdest von Artzt %s geheilt und bezahlst %d$.",SpielerName(playerid),preis);// Da gehört nicht verletzer sonder Medic weil du wirst ja nicht vom verletzten geheilt
SendClientMessage(verletzter,ROT,string);
}
else
{
SendClientMessage(playerid,FARBE,"Du bist kein Medic!");
}
return 1;
}
So dürfte es klappen
GoldHamster deins ist auch Falsch, da du eine Klammer zuviel gemacht hast.
Einfach:
ocmd:heal(playerid,params[])
{
new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME];
if(!isPlayerInFrakt(playerid,3))return 0;
if(sscanf(params,"ui", pID, money))return SendClientMessage(playerid, farbe, "Benutze: /heal [SpielerID/TeilDesNamens] [Preis]");
if(GetPlayerMoney(pID) < money);return SendClientMessage(playerid, farbe, "Der Spieler hat nicht genügend Geld");
SetPlayerHealth(pID, 100);
GivePlayerMoney(playerid, money);
GivePlayerMoney(pID, -money);
GetPlayerName(pID, namepID, MAX_PLAYER_NAME);
GetPlayerName(playerid, nameplayerid, MAX_PLAYER_NAME);
format(string, sizeof(string), "Du hast %s für $%d geheilt.", namepID, money);
SendClientMessage(playerid, farbe, string);
format(string, sizeof(string), "Du wurdest von Arzt %s für $%d geheilt.", nameplayerid, money);
SendClientMessage(pID, farbe, string);
return 1;
}
(edit): Kleiner Fehler (GivePlayerMoney(playerid, +money) -> GivePlayerMoney(playerid, money);)
Achja... stimmt :DD
Alles anzeigenGoldHamster deins ist auch Falsch, da du eine Klammer zuviel gemacht hast.
Einfach:
ocmd:heal(playerid,params[])
{
new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME];
if(!isPlayerInFrakt(playerid,3))return 0;
if(sscanf(params,"ui", pID, money))return SendClientMessage(playerid, farbe, "Benutze: /heal [SpielerID/TeilDesNamens] [Preis]");
if(GetPlayerMoney(pID) < money);return SendClientMessage(playerid, farbe, "Der Spieler hat nicht genügend Geld");
SetPlayerHealth(pID, 100);
GivePlayerMoney(playerid, money);
GivePlayerMoney(pID, -money);
GetPlayerName(pID, namepID, MAX_PLAYER_NAME);
GetPlayerName(playerid, nameplayerid, MAX_PLAYER_NAME);
format(string, sizeof(string), "Du hast %s für $%d geheilt.", namepID, money);
SendClientMessage(playerid, farbe, string);
format(string, sizeof(string), "Du wurdest von Arzt %s für $%d geheilt.", nameplayerid, money);
SendClientMessage(pID, farbe, string);
return 1;
}
(edit): Kleiner Fehler (GivePlayerMoney(playerid, +money) -> GivePlayerMoney(playerid, money);)
C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(421) : error 036: empty statement
C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(422) : warning 225: unreachable code
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Hier die Zeilen:
if(GetPlayerMoney(pID) < money);return SendClientMessage(playerid, Rot, "Der Spieler hat nicht genügend Geld");//Zeile 421
SetPlayerHealth(pID, 100);//Zeile 422
vor dem return muss das ; weg