int cmdSchaenden(int id, int plnid) { int friedhof; int apcost = 3; if (!(svTickStatus)) { cmdErrorString = "Wenn die Zeit steht, können noch keine Gräber geschändet werden.
"; return -3; } /* if (cmdRace[dbMaind[id].raceid].name != "Elras") { cmdErrorString = "Unser Volk kann das nicht.
"; cmdErrorString = cmdRace[dbMaind[id].raceid].name; return -1; }*/ if (apcost > dbMaind[id].ressource[CMD_RESSOURCE_AP]) { cmdErrorString = "Wir haben nicht genug Aktionspunkte, um die Gräber zu schänden.
"; return -1; } if ((dbPlanetd[plnid].owner == -1) && (dbMaind[id].besucher != plnid)) { cmdErrorString = "Du bist gerade nicht auf Besuch bei diesem Dorf.
"; return -1; } if ((dbMaind[id].besucher != plnid) || (dbPlanetd[plnid].owner != -1)) { cmdErrorString = "Du kannst nur in unkontrollierten Dörfern den Friedhof schänden"; return -1; } if (dbMaind[id].schloss[CMD_SCHLOSS_OPFER] < 2) { cmdErrorString = "Unser Ritualplatz hat nicht die entsprechende Ausbaustufe"; return -1; } if (dbPlanetd[plnid].population > dbPlanetd[plnid].size*CMD_HUMAN_SURVIVOR) { cmdErrorString = "Es sind noch zu viele Bewohner in diesem Dorf"; return -1; } if (dbPlanetd[plnid].friedhof*0.85 < dbPlanetd[plnid].size*0.33) { cmdErrorString = "Es sind nicht genug Gräber auf dem Friedhof vorhanden"; return -1; } cmdAddFleet(id, CMD_UNIT_SKELETT, dbPlanetd[plnid].friedhof * 0.15, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20); dbPlanetd[plnid].friedhof *= 0.85; dbMaind[id].ressource[CMD_RESSOURCE_AP] -= apcost; int randvar = rand()%100; char *retstr; char *retunit; int type; int quantity; int filarbon; if (randvar < 40) { //40% type = CMD_UNIT_HEILTRANK; quantity = 2*dbPlanetd[plnid].friedhof/6; filarbon = 40 * dbPlanetd[plnid].friedhof; cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20); dbMaind[id].totalunit[type] += quantity; dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon; retstr = "In einem recht frischen Grab findest du eine kleine Menge alchemistischer Fläschchen."; retunit = "Heiltränke"; } else if (randvar < 63) { //23% type = CMD_UNIT_SCHWERT; quantity = dbPlanetd[plnid].friedhof/6; filarbon = 20 * dbPlanetd[plnid].friedhof; cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20); dbMaind[id].totalunit[type] += quantity; dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon; retstr = "Im Grab eines Ritter findest du einen guten Teil seiner irdischen Besitztümer. Er scheint reich gewesen zu sein."; retunit = "Stahlschwerter"; } else if (randvar < 83) { //20% type = CMD_UNIT_RUESTUNG; quantity = dbPlanetd[plnid].friedhof/6; filarbon = 20 * dbPlanetd[plnid].friedhof; cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20); dbMaind[id].totalunit[type] += quantity; dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon; retstr = "Im Grab eines Ritter findest du einen guten Teil seiner irdischen Besitztümer. Er scheint reich gewesen zu sein."; retunit = "Rüstungen"; } else if (randvar < 97) { //15% type = 0; quantity = 0; filarbon = 60 * dbPlanetd[plnid].friedhof; cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20); dbMaind[id].totalunit[type] += quantity; dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon; retstr = "In einem verwitterten Grab stößt du auf eine kleine Menge Filar."; retunit = ""; } else { //2% type = CMD_UNIT_DIEBIN; quantity = 1; filarbon = 30 * dbPlanetd[plnid].friedhof; cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20); dbMaind[id].totalunit[type] += quantity; dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon; retstr = "Bei genauer Betrachtung entdeckst du hinter ein paar Büschen eine Höhle, in der sich ein paar Diebinnen versteckt halten."; retunit = "Diebinnen"; } if (quantity > 0) { sprintf(cmdErrorBuffer, "%s
Ihr erhaltet %d Filar und %d %s.", retstr, filarbon, quantity, retunit); } else { sprintf(cmdErrorBuffer, "%s
Ihr erhaltet %d Filar.", retstr, filarbon); } cmdErrorString = cmdErrorBuffer; return quantity; }