Vielen Dank für die Antwort, ich habe den Code, wie angenommen, im gamrmode geschrieben. Habe diesen ,aber nun in ein Filterscript hineinkopiert. Die Fehlermeldungen sind nun natürlich nicht mehr da, aber bis jetzt habe ich noch nie etwas mit Filterscripts am Hut gehabt und leider auch keine Idee wie man diese benutzt.
Ich hoffe man könne mir bei diesem Problem weiterhelfen.
Beiträge von Shadre
-
-
Hallo, ich habe diesen Code
#include <a_samp>enum e_PlayerBusInfo {
bool:pmi_bAktiv,
pmi_Checkpoint
}
new Busfahrer[MAX_PLAYERS][e_PlayerBusInfo];enum e_Bus {
Float:B_fX,
Float:B_fY,
Float:B_fZ,
Float:B_fRad}
new
Bus_Stationen[][e_Bus] = {
{-74.2252, -1128.7936, 1.6359, 6.0},
{-89.2432, -1189.7782, 2.3241, 6.0},
{-63.3734, -1588.5732, 3.1782, 6.0},
{220.8943, -1393.5308, 52.1264, 6.0},
{169.0361, -1356.8065, 69.8208, 6.0},
{263.5524, -1341.0842, 53.7643, 6.0},
{871.9646, -864.5255, 77.2742, 6.0},
{935.7687, -835.7352, 94.4455, 6.0},
{1496.5879, -698.0237, 94.5207, 6.0},
{1001.1724, -935.0218, 41.9509, 6.0},
{-546.9002, -488.6077, 25.2961, 6.0}
};public OnFilterScriptInit()
{
print("-] Tutorial - Checkpoints abfahren [-");
CreateVehicle(408,-535.8450,-502.6665,26.0667,358.0911,1,1,-1);
return 1;
}public OnPlayerCommandText(playerid, cmdtext[]) {
if (strcmp("/starten", cmdtext, true, 8) == 0) {
if(!Busfahrer[playerid][pmi_bAktiv]) {
new
vehicleid = GetPlayerVehicleID(playerid),
model = GetVehicleModel(vehicleid);
if(model == 408) {
Busfahrer[playerid][pmi_Checkpoint]=0;
Busfahrer[playerid][pmi_bAktiv]=true;
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Linie gestartet, fahre nun zu den einzelnen Haltestellen!");
SetPlayerCheckpoint(playerid,Bus_Stationen[0][B_fX],Bus_Stationen[0][B_fY],Bus_Stationen[0][B_fZ],Bus_Stationen[0][B_fRad]);
}
else {
SendClientMessage(playerid, COLOR_RED, "Du bist nicht im Bus!");
}
}
else {
SendClientMessage(playerid, COLOR_RED, "Es laeuft schon eine Mission!");
}
return 1;
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid) {
if(Busfahrer[playerid][pmi_bAktiv]) {
Busfahrer[playerid][pmi_Checkpoint]++;
DisablePlayerCheckpoint(playerid);
new
playercp = Busfahrer[playerid][pmi_Checkpoint];
if(playercp == sizeof(Bus_Stationen)) {
Busfahrer[playerid][pmi_bAktiv]=false;
// Extra code
SendClientMessage(playerid, COLOR_GREEN, "Super Arbeit,du hast die bürger hervorragend transportiert");
GivePlayerMoney(playerid, 2000);
}
else {
new
String[128];
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
format(String,sizeof(String),"Weiter so,du hast es fasst geschafft ! (%d / %d)",playercp,sizeof(Bus_Stationen));
SendClientMessage(playerid,COLOR_LIGHTGREEN,String);
SetPlayerCheckpoint(playerid,Bus_Stationen[playercp][B_fX],Bus_Stationen[playercp][B_fY],Bus_Stationen[playercp][B_fZ],Bus_Stationen[playercp][B_fRad]);
}
return 1;
}
return 1;
}aus einem Tutorial und beim compelieren erscheint folgende Fehlermeldung:
DRP.p(8358) : error 029: invalid expression, assumed zero
DRP.p(8358) : error 004: function "Streamer_OnFilterScriptInit" is not implemented
DRP.p(8365) : warning 225: unreachable code
DRP.p(8365) : error 029: invalid expression, assumed zero
DRP.p(8365) : error 017: undefined symbol "cmdtext"
DRP.p(8366) : error 017: undefined symbol "cmdtext"
DRP.p(8388) : warning 225: unreachable code
DRP.p(8388) : error 029: invalid expression, assumed zero
DRP.p(8388) : error 001: expected token: ";", but found "{"Also wie kann ich die Probleme beheben ?
Ich hoffe auf eine schnelle Antwort -
if(strcmp(cmd,"/drugs",true)==0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pJob] != 8)
{
SendClientMessage(playerid,COLOR_GREY,"Du bist kein drogenhändler !");
return 1;
}
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /drugs [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: Get, Deliver.");
return 1;
}
if(strcmp(x_nr,"get",true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,-1825.7820,42.7433,15.1228))
{
if(MatsHolding[playerid] >= 10)
{
SendClientMessage(playerid, COLOR_GREY, "Kein Platz mehr für mehr Drogen Pakete! !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /drugs get [Betrag]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 10) { SendClientMessage(playerid, COLOR_GREY, "Du kannst maximal 10 Pakete mitnehmen !"); return 1; }
new price = moneys * 100;
if(GetPlayerMoney(playerid) > price)
{
format(string, sizeof(string), "* Du hast %d Drogen Pakete für $%d gekauft.", moneys, price);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Bringe sie zur Drogen-Fabrik an den San Fierro Docks!");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Die Docks sind auf der Map markiert, löschen mit /dc.");
SetPlayerCheckpoint(playerid, -1824.5602967283965, 44.043216977757766, 13.2, 3.0);
GivePlayerMoney(playerid, - price);
MatsHolding[playerid] = moneys;
}
else
{
format(string, sizeof(string), " Du hast keine $%d !", price);
SendClientMessage(playerid, COLOR_GREY, string);
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "An dieser Stelle kannst du keine Drogen-Pakete kaufen!");
return 1;
}
}
else if(strcmp(x_nr,"deliver",true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,-1826.4926,42.1423,15.1228))
{
if(MatsHolding[playerid] > 0)
{
new payout = (1)*(MatsHolding[playerid]);
if(payout + PlayerInfo[playerid][pDrugs] > )
{if(level >= 0 && level <= 50)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 6)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 6 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 51 && level <= 100)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 12)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 12 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 101 && level <= 200)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 20)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 20 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 201 && level <= 400)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 30)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 30 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 401)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 99)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 99 Gramm Drogen mit dir tragen!");
return 1;
}
}}
format(string, sizeof(string), "* Die Fabrik hat dir %d Drugs für %d Pakete gegeben.", payout, MatsHolding[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pMats] += payout;
MatsHolding[playerid] = 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du haste keine Pakete !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du bist nicht an der Drogenfabrik in San Fierro nähe der Docks !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Unbekannter Drogen-Name !");
return 1;
}
}
return 1;
} -
Leider nicht viel, als ich habe versucht das Waffendealer-script in das Drogendealer-script umzuwandeln:
if(strcmp(cmd,"/drugs",true)==0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pJob] !=
{
SendClientMessage(playerid,COLOR_GREY,"Du bist kein drogenhändler !");
return 1;
}
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /drugs [name]");
SendClientMessage(playerid, COLOR_WHITE, "Befehle: Get, Deliver.");
return 1;
}
if(strcmp(x_nr,"get",true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,-1825.7820,42.7433,15.1228))
{
if(MatsHolding[playerid] >= 10)
{
SendClientMessage(playerid, COLOR_GREY, "Kein Platz mehr für mehr Drogen Pakete! !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /drugs get [Betrag]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 moneys > 10) { SendClientMessage(playerid, COLOR_GREY, "Du kannst maximal 10 Pakete mitnehmen !"); return 1; }
new price = moneys * 100;
if(GetPlayerMoney(playerid) > price)
{
format(string, sizeof(string), "* Du hast %d Drogen Pakete für $%d gekauft.", moneys, price);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Bringe sie zur Drogen-Fabrik an den San Fierro Docks!");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Die Docks sind auf der Map markiert, löschen mit /dc.");
SetPlayerCheckpoint(playerid, -1824.5602967283965, 44.043216977757766, 13.2, 3.0);
GivePlayerMoney(playerid, - price);
MatsHolding[playerid] = moneys;
}
else
{
format(string, sizeof(string), " Du hast keine $%d !", price);
SendClientMessage(playerid, COLOR_GREY, string);
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "An dieser Stelle kannst du keine Drogen-Pakete kaufen!");
return 1;
}
}
else if(strcmp(x_nr,"deliver",true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,-1826.4926,42.1423,15.1228))
{
if(MatsHolding[playerid] > 0)
{
new payout = (1)*(MatsHolding[playerid]);
if(payout + PlayerInfo[playerid][pDrugs] > )
{if(level >= 0 && level <= 50)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 6)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 6 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 51 && level <= 100)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 12)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 12 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 101 && level <= 200)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 20)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 20 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 201 && level <= 400)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 30)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 30 Gramm Drogen mit dir tragen!");
return 1;
}
}
else if(level >= 401)
{
if(PlayerInfo[playerid][pDrugs] + ammount > 99)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nicht mehr als 99 Gramm Drogen mit dir tragen!");
return 1;
}
}}
format(string, sizeof(string), "* Die Fabrik hat dir %d Drugs für %d Pakete gegeben.", payout, MatsHolding[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
PlayerInfo[playerid][pMats] += payout;
MatsHolding[playerid] = 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du haste keine Pakete !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du bist nicht an der Drogenfabrik in San Fierro nähe der Docks !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Unbekannter Drogen-Name !");
return 1;
}
}
return 1;
} -
Ich benutze das Godfather -script und versuche nun schon länger und ohne Erfolg in diesem den Job des Drogendealers zu verändern.
Ich wollte Versuchen, dass man Checkpoints passieren muss, genauso wie beim Waffendealer.
Ich hoffe, dass jemand mehr Erfolg hatte und einen Code besitzt mit dem ich den Job verändern kann.MFG, Shadre